diff --git a/packages/webapp/package.json b/packages/webapp/package.json index 33038b06b..4c4884333 100644 --- a/packages/webapp/package.json +++ b/packages/webapp/package.json @@ -7,11 +7,12 @@ "@bigcapital/pdf-templates": "*", "@bigcapital/utils": "*", "@blueprintjs-formik/core": "^0.3.7", - "@blueprintjs-formik/datetime": "^0.3.7", + "@blueprintjs-formik/datetime": "^0.4.0", "@blueprintjs-formik/select": "^0.3.5", "@blueprintjs/colors": "4.1.19", "@blueprintjs/core": "^4.20.2", "@blueprintjs/datetime": "^4.4.37", + "@blueprintjs/datetime2": "^3.0.10", "@blueprintjs/popover2": "^1.14.11", "@blueprintjs/select": "^4.9.24", "@blueprintjs/table": "^4.10.12", @@ -108,11 +109,11 @@ "react-use": "^13.26.1", "react-use-context-menu": "^0.1.4", "react-virtualized": "^9.22.3", - "regenerator-runtime": "^0.14.1", "redux": "^4.2.1", "redux-devtools": "^3.5.0", "redux-persist": "^6.0.0", "redux-thunk": "^2.4.2", + "regenerator-runtime": "^0.14.1", "reselect": "4.1.7", "rtl-detect": "^1.0.3", "sass": "^1.68.0", @@ -126,8 +127,8 @@ "yup": "^0.28.1" }, "devDependencies": { - "@vitejs/plugin-react": "^4.3.4", "@vitejs/plugin-legacy": "^5.4.2", + "@vitejs/plugin-react": "^4.3.4", "eslint-config-react-app": "^7.0.1", "vite": "^5.1.6" }, diff --git a/packages/webapp/src/components/Forms/BlueprintFormik.tsx b/packages/webapp/src/components/Forms/BlueprintFormik.tsx index 6650bac54..aefe6eac5 100644 --- a/packages/webapp/src/components/Forms/BlueprintFormik.tsx +++ b/packages/webapp/src/components/Forms/BlueprintFormik.tsx @@ -1,4 +1,3 @@ -// @ts-nocheck import React from 'react'; import { FormGroup, @@ -12,7 +11,7 @@ import { HTMLSelect, } from '@blueprintjs-formik/core'; import { MultiSelect, SuggestField } from '@blueprintjs-formik/select'; -import { DateInput } from '@blueprintjs-formik/datetime'; +import { DateInput, TimezoneSelect } from '@blueprintjs-formik/datetime'; import { FSelect } from './Select'; export { @@ -29,4 +28,5 @@ export { TextArea as FTextArea, DateInput as FDateInput, HTMLSelect as FHTMLSelect, + TimezoneSelect as FTimezoneSelect, }; diff --git a/packages/webapp/src/components/Stepper/StepperStep.tsx b/packages/webapp/src/components/Stepper/StepperStep.tsx index 3b281018c..8337cd0bb 100644 --- a/packages/webapp/src/components/Stepper/StepperStep.tsx +++ b/packages/webapp/src/components/Stepper/StepperStep.tsx @@ -28,10 +28,11 @@ export function StepperStep({ isCompleted={state === StepperStepState.Completed} isActive={state === StepperStepState.Progress} > - {state === StepperStepState.Completed && ( + {state === StepperStepState.Completed ? ( + ) : ( + {step} )} - {step} diff --git a/packages/webapp/src/containers/Setup/SetupCongratsPage.tsx b/packages/webapp/src/containers/Setup/SetupCongratsPage.tsx index 9b3baaeaf..1a80ec2c2 100644 --- a/packages/webapp/src/containers/Setup/SetupCongratsPage.tsx +++ b/packages/webapp/src/containers/Setup/SetupCongratsPage.tsx @@ -1,6 +1,9 @@ // @ts-nocheck import React from 'react'; import { Button, Intent } from '@blueprintjs/core'; +import { x } from '@xstyled/emotion'; +import { css } from '@emotion/css'; +import { useIsDarkMode } from '@/hooks/useDarkMode'; import WorkflowIcon from './WorkflowIcon'; import { FormattedMessage as T } from '@/components'; @@ -8,13 +11,12 @@ import { FormattedMessage as T } from '@/components'; import withOrganizationActions from '@/containers/Organization/withOrganizationActions'; import { compose } from '@/utils'; -import '@/style/pages/Setup/Congrats.scss'; - /** * Setup congrats page. */ function SetupCongratsPage({ setOrganizationSetupCompleted }) { const [isReloading, setIsReloading] = React.useState(false); + const isDarkMode = useIsDarkMode(); const handleBtnClick = () => { setIsReloading(true); @@ -22,30 +24,55 @@ function SetupCongratsPage({ setOrganizationSetupCompleted }) { }; return ( -
-
+ + -
+ -
-

- -

- -

- -

- - -
-
+ + + + + + + + + + + + ); } diff --git a/packages/webapp/src/containers/Setup/SetupInitializingForm.tsx b/packages/webapp/src/containers/Setup/SetupInitializingForm.tsx index 85a816670..bc4526fc6 100644 --- a/packages/webapp/src/containers/Setup/SetupInitializingForm.tsx +++ b/packages/webapp/src/containers/Setup/SetupInitializingForm.tsx @@ -2,6 +2,9 @@ import React from 'react'; import { ProgressBar, Intent } from '@blueprintjs/core'; import * as R from 'ramda'; +import { x } from '@xstyled/emotion'; +import { css } from '@emotion/css'; +import { useIsDarkMode } from '@/hooks/useDarkMode'; import { useJob, useCurrentOrganization } from '@/hooks/query'; import { FormattedMessage as T } from '@/components'; @@ -10,8 +13,6 @@ import withOrganizationActions from '@/containers/Organization/withOrganizationA import withCurrentOrganization from '@/containers/Organization/withCurrentOrganization'; import withOrganization from '../Organization/withOrganization'; -import '@/style/pages/Setup/Initializing.scss'; - /** * Setup initializing step form. */ @@ -47,7 +48,7 @@ function SetupInitializingForm({ }, [setOrganizationSetupCompleted, isJobDone, isSuccess]); return ( -
+ {isFailed ? ( ) : isRunning || isWaiting || isJobFetching ? ( @@ -57,7 +58,7 @@ function SetupInitializingForm({ ) : ( )} -
+ ); } @@ -73,17 +74,29 @@ export default R.compose( * State initializing failed state. */ function SetupInitializingFailed() { + const isDarkMode = useIsDarkMode(); + return ( -
-
-

+ + + -

-

+ + -

-
-
+ + + ); } @@ -91,19 +104,49 @@ function SetupInitializingFailed() { * Setup initializing running state. */ function SetupInitializingRunning() { - return ( -
- + const isDarkMode = useIsDarkMode(); -
-

+ const progressBarStyles = css` + .bp4-progress-bar { + border-radius: 40px; + display: block; + height: 6px; + overflow: hidden; + position: relative; + width: 80%; + margin: 0 auto; + + .bp4-progress-meter { + background-color: #809cb3; + } + } + `; + + return ( + + + + + + + -

-

+ + -

-
-
+ + + ); } @@ -111,18 +154,30 @@ function SetupInitializingRunning() { * Setup initializing completed state. */ function SetupInitializingCompleted() { + const isDarkMode = useIsDarkMode(); + return ( -
-
-

+ + + -

-

+ + -

-
-
+ + + ); } diff --git a/packages/webapp/src/containers/Setup/SetupOrganizationForm.tsx b/packages/webapp/src/containers/Setup/SetupOrganizationForm.tsx index b7b63ac18..2f4d4e2f5 100644 --- a/packages/webapp/src/containers/Setup/SetupOrganizationForm.tsx +++ b/packages/webapp/src/containers/Setup/SetupOrganizationForm.tsx @@ -5,15 +5,18 @@ import { Button, Intent, FormGroup, Classes } from '@blueprintjs/core'; import classNames from 'classnames'; import { TimezonePicker } from '@blueprintjs/timezone'; import { getAllCountries } from '@bigcapital/utils'; +import { x } from '@xstyled/emotion'; import { FFormGroup, FInputGroup, FSelect, + FTimezoneSelect, FormattedMessage as T, } from '@/components'; import { Col, Row } from '@/components'; import { inputIntent } from '@/utils'; +import { useIsDarkMode } from '@/hooks/useDarkMode'; import { getFiscalYear } from '@/constants/fiscalYearOptions'; import { getLanguages } from '@/constants/languagesOptions'; @@ -28,19 +31,24 @@ export default function SetupOrganizationForm({ isSubmitting, values }) { const FiscalYear = getFiscalYear(); const Languages = getLanguages(); const currencies = getAllCurrenciesOptions(); + const isDarkMode = useIsDarkMode(); return (
-

+ -

+ {/* ---------- Organization name ---------- */} } - fastField={true} + fastField > - + {/* ---------- Location ---------- */} @@ -56,7 +64,8 @@ export default function SetupOrganizationForm({ isSubmitting, values }) { textAccessor={'name'} placeholder={} popoverProps={{ minimal: true }} - fastField={true} + buttonProps={{ large: true }} + fastField /> @@ -75,18 +84,15 @@ export default function SetupOrganizationForm({ isSubmitting, values }) { valueAccessor={'key'} textAccessor={'name'} placeholder={} - fastField={true} + buttonProps={{ large: true }} + fastField /> {/* ---------- Language ---------- */} - } - fastField={true} - > + } fastField> } popoverProps={{ minimal: true }} - fastField={true} + buttonProps={{ large: true }} + fastField /> @@ -104,7 +111,7 @@ export default function SetupOrganizationForm({ isSubmitting, values }) { } - fastField={true} + fastField > } popoverProps={{ minimal: true }} - fastField={true} + buttonProps={{ large: true }} + fastField /> {/* ---------- Time zone ---------- */} - - {({ - form: { setFieldValue }, - field: { value }, - meta: { error, touched }, - }) => ( - } - className={classNames( - 'form-group--time-zone', - 'form-group--select-list', - Classes.FILL, - )} - intent={inputIntent({ error, touched })} - helperText={} - > - { - setFieldValue('timezone', item); - }} - valueDisplayFormat="composite" - showLocalTimezone={true} - placeholder={} - popoverProps={{ minimal: true }} - /> - - )} - + }> + } + popoverProps={{ minimal: true }} + buttonProps={{ + alignText: 'left', + fill: true, + large: true, + }} + /> + -

+ -

+ -
- -
+ ); } diff --git a/packages/webapp/src/containers/Setup/SetupOrganizationPage.tsx b/packages/webapp/src/containers/Setup/SetupOrganizationPage.tsx index 7cf30db87..01bce7cfa 100644 --- a/packages/webapp/src/containers/Setup/SetupOrganizationPage.tsx +++ b/packages/webapp/src/containers/Setup/SetupOrganizationPage.tsx @@ -2,16 +2,15 @@ import React from 'react'; import { Formik } from 'formik'; import { FormattedMessage as T } from '@/components'; - -import '@/style/pages/Setup/Organization.scss'; +import { x } from '@xstyled/emotion'; import SetupOrganizationForm from './SetupOrganizationForm'; import { useOrganizationSetup } from '@/hooks/query'; import withSettingsActions from '@/containers/Settings/withSettingsActions'; -import { setCookie, compose, transfromToSnakeCase } from '@/utils'; import { getSetupOrganizationValidation } from './SetupOrganization.schema'; +import { setCookie, compose, transfromToSnakeCase } from '@/utils'; // Initial values. const defaultValues = { @@ -53,17 +52,22 @@ function SetupOrganizationPage({ wizard }) { }; return ( -
+ -
+ ); } -export default compose( - withSettingsActions, -)(SetupOrganizationPage); +export default compose(withSettingsActions)(SetupOrganizationPage); diff --git a/packages/webapp/src/containers/Setup/SetupRightSection.tsx b/packages/webapp/src/containers/Setup/SetupRightSection.tsx index 8d9415e82..bec693c33 100644 --- a/packages/webapp/src/containers/Setup/SetupRightSection.tsx +++ b/packages/webapp/src/containers/Setup/SetupRightSection.tsx @@ -1,5 +1,6 @@ // @ts-nocheck import React from 'react'; +import { x } from '@xstyled/emotion'; import SetupWizardContent from './SetupWizardContent'; @@ -27,9 +28,9 @@ function SetupRightSection({ isSubscriptionActive, }) { return ( -
+ -
+ ); } diff --git a/packages/webapp/src/containers/Setup/SetupWizardContent.module.scss b/packages/webapp/src/containers/Setup/SetupWizardContent.module.scss deleted file mode 100644 index b8c654451..000000000 --- a/packages/webapp/src/containers/Setup/SetupWizardContent.module.scss +++ /dev/null @@ -1,3 +0,0 @@ -.items { - padding: 40px 40px 20px; -} \ No newline at end of file diff --git a/packages/webapp/src/containers/Setup/SetupWizardContent.tsx b/packages/webapp/src/containers/Setup/SetupWizardContent.tsx index 3132226b4..a9c8f2463 100644 --- a/packages/webapp/src/containers/Setup/SetupWizardContent.tsx +++ b/packages/webapp/src/containers/Setup/SetupWizardContent.tsx @@ -1,18 +1,23 @@ // @ts-nocheck import React from 'react'; +import { x } from '@xstyled/emotion'; +import { css } from '@emotion/css'; import SetupSubscription from './SetupSubscription/SetupSubscription'; import SetupOrganizationPage from './SetupOrganizationPage'; import SetupInitializingForm from './SetupInitializingForm'; import SetupCongratsPage from './SetupCongratsPage'; import { Stepper } from '@/components/Stepper'; -import styles from './SetupWizardContent.module.scss'; interface SetupWizardContentProps { stepIndex: number; stepId: string; } +const itemsClassName = css` + padding: 40px 40px 20px; +`; + /** * Setup wizard content. */ @@ -21,12 +26,11 @@ export default function SetupWizardContent({ stepId, }: SetupWizardContentProps) { return ( -
+ @@ -45,6 +49,6 @@ export default function SetupWizardContent({ -
+ ); } diff --git a/packages/webapp/src/style/pages/Setup/Congrats.scss b/packages/webapp/src/style/pages/Setup/Congrats.scss index d5fb935aa..e69de29bb 100644 --- a/packages/webapp/src/style/pages/Setup/Congrats.scss +++ b/packages/webapp/src/style/pages/Setup/Congrats.scss @@ -1,30 +0,0 @@ -.setup-congrats { - width: 500px; - margin: 0 auto; - text-align: center; - padding-top: 80px; - - &__page { - } - - &__text { - margin-top: 30px; - - h1 { - color: #2d2b43; - margin-bottom: 12px; - } - .paragraph { - font-size: 16px; - opacity: 0.85; - margin-bottom: 14px; - } - .bp4-button { - height: 38px; - padding-left: 25px; - padding-right: 25px; - font-size: 15px; - margin-top: 12px; - } - } -} diff --git a/packages/webapp/src/style/pages/Setup/Initializing.scss b/packages/webapp/src/style/pages/Setup/Initializing.scss index 1575c0aed..e69de29bb 100644 --- a/packages/webapp/src/style/pages/Setup/Initializing.scss +++ b/packages/webapp/src/style/pages/Setup/Initializing.scss @@ -1,41 +0,0 @@ - -// Setup initializing form -.setup-initializing-form { - width: 95%; - margin: 0 auto; - padding: 16% 0 0; - - .bp4-progress-bar { - background: rgba(92, 112, 128, 0.2); - border-radius: 40px; - display: block; - height: 6px; - overflow: hidden; - position: relative; - width: 80%; - margin: 0 auto; - - .bp4-progress-meter { - background-color: #809cb3; - } - } - - &__title { - text-align: center; - margin-top: 35px; - - h1 { - font-size: 22px; - font-weight: 600; - color: #454c59; - margin-top: 0; - margin-bottom: 14px; - } - - .paragraph { - width: 70%; - margin: 0 auto; - color: #2e4266; - } - } -} \ No newline at end of file diff --git a/packages/webapp/src/style/pages/Setup/Organization.scss b/packages/webapp/src/style/pages/Setup/Organization.scss index dd5623f6e..8b1378917 100644 --- a/packages/webapp/src/style/pages/Setup/Organization.scss +++ b/packages/webapp/src/style/pages/Setup/Organization.scss @@ -1,65 +1 @@ -.setup-organization { - max-width: 600px; - width: 100%; - margin: 0 auto; - padding: 45px 25px 20px; - - form { - h3 { - color: #868f9f; - margin-bottom: 2rem; - font-weight: 600; - } - } - .bp4-form-group { - margin-bottom: 24px; - - .bp4-input-group { - .bp4-input { - height: 38px; - } - - } - .bp4-input, - .form-group--select-list .bp4-button{ - font-size: 15px; - } - } - - label.bp4-label{ - color: #20242e; - } - - .bp4-button:not([class*='bp4-intent-']):not(.bp4-minimal) { - width: 100%; - height: 38px; - padding: 8px; - } - - .bp4-text-muted { - color: #000000; - } - - .register-org-note { - font-size: 13px; - padding-bottom: 10px; - border-bottom: 1px solid #e1e1e1; - margin-bottom: 1.75rem; - color: #666; - } - - .register-org-button { - .bp4-button { - background-color: #1c2448; - height: 40px; - font-size: 15px; - width: 100%; - - &:disabled, - &.bp4-loading{ - background-color: rgba(28, 36, 72, 0.5); - } - } - } -} diff --git a/packages/webapp/src/style/pages/Setup/SetupPage.scss b/packages/webapp/src/style/pages/Setup/SetupPage.scss index 53355fa23..6f476eecd 100644 --- a/packages/webapp/src/style/pages/Setup/SetupPage.scss +++ b/packages/webapp/src/style/pages/Setup/SetupPage.scss @@ -13,30 +13,13 @@ grid-template-columns: 26% 74%; } - &__right-section { - width: 100%; - overflow: auto; - - h1 { - font-size: 22px; - } - h1, - h3 { - font-weight: 500; - color: #6b7382; - } - } - - &__content { - width: 100%; - padding-bottom: 80px; - } - &__left-section { background-color: #2f3d6f; - z-index: 1; width: 100%; + .bp4-dark & { + background-color: #2f343c; + } .content { display: flex; flex-direction: column; @@ -173,9 +156,7 @@ &::before { background-color: #75859c; } - ~li { - &:before, &:after { background: #e0e0e0; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 98a0652ce..9580edde4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -410,8 +410,8 @@ importers: specifier: ^0.3.7 version: 0.3.7(@babel/core@7.28.5)(@blueprintjs/core@4.20.2)(@blueprintjs/select@4.9.24)(formik@2.4.6)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1) '@blueprintjs-formik/datetime': - specifier: ^0.3.7 - version: 0.3.7(@babel/core@7.28.5)(@blueprintjs-formik/core@0.3.7)(@blueprintjs/core@4.20.2)(@blueprintjs/select@4.9.24)(formik@2.4.6)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1) + specifier: ^0.4.0 + version: 0.4.0(@babel/core@7.28.5)(@blueprintjs-formik/core@0.3.7)(@blueprintjs/core@4.20.2)(@blueprintjs/datetime2@3.0.10)(@blueprintjs/datetime@4.4.37)(@blueprintjs/select@4.9.24)(formik@2.4.6)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1) '@blueprintjs-formik/select': specifier: ^0.3.5 version: 0.3.5(@blueprintjs/core@4.20.2)(@blueprintjs/select@4.9.24)(formik@2.4.6)(react-dom@18.3.1)(react@18.3.1) @@ -424,6 +424,9 @@ importers: '@blueprintjs/datetime': specifier: ^4.4.37 version: 4.4.37(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) + '@blueprintjs/datetime2': + specifier: ^3.0.10 + version: 3.0.10(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) '@blueprintjs/popover2': specifier: ^1.14.11 version: 1.14.11(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) @@ -5413,18 +5416,22 @@ packages: - react-is dev: false - /@blueprintjs-formik/datetime@0.3.7(@babel/core@7.28.5)(@blueprintjs-formik/core@0.3.7)(@blueprintjs/core@4.20.2)(@blueprintjs/select@4.9.24)(formik@2.4.6)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-AZCxM0at6n0kuQaufp5oMYID9tHwz5UlsSGW58j6gNdbJSwQBkeOt5DWPMj6oD7kJGaMXeKxW5/7rLahDX3BPQ==} + /@blueprintjs-formik/datetime@0.4.0(@babel/core@7.28.5)(@blueprintjs-formik/core@0.3.7)(@blueprintjs/core@4.20.2)(@blueprintjs/datetime2@3.0.10)(@blueprintjs/datetime@4.4.37)(@blueprintjs/select@4.9.24)(formik@2.4.6)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-51RW41DSM96seIgOGz2gw2DX1SfH8+Ydi9JBCNmLaFZRqyKZgRX+qpxmltgbS97lk2IOfCEyKSxoGGfz4XlnPg==} peerDependencies: '@blueprintjs-formik/core': ^0.3.2 || 4 || 5 '@blueprintjs/core': ^3.52.0 || 4 || 5 + '@blueprintjs/datetime': ^3.21.0 || 4 || 5 + '@blueprintjs/datetime2': ^0.9.0 '@blueprintjs/select': ^3.18.12 || 4 || 5 formik: ^2.2.9 - react: 16 || ^17.0.2 || 18 - react-dom: 16 || ^17.0.2 || 18 + react: 16 || ^17.0.2 || ^18.2.0 + react-dom: 16 || ^17.0.2 || ^18.2.0 dependencies: '@blueprintjs-formik/core': 0.3.7(@babel/core@7.28.5)(@blueprintjs/core@4.20.2)(@blueprintjs/select@4.9.24)(formik@2.4.6)(react-dom@18.3.1)(react-is@18.3.1)(react@18.3.1) '@blueprintjs/core': 4.20.2(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) + '@blueprintjs/datetime': 4.4.37(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) + '@blueprintjs/datetime2': 3.0.10(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) '@blueprintjs/select': 4.9.24(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) formik: 2.4.6(react@18.3.1) lodash.get: 4.4.2 @@ -5467,6 +5474,12 @@ packages: tslib: 2.5.3 dev: false + /@blueprintjs/colors@5.1.12: + resolution: {integrity: sha512-7GQWUQ82eLE1te++DC8fRO2B31bsSwia82NLamZfKgjHY9V4zxafMT1DK5gKlmmy0nCjpdcCc+df4aVZMHGLww==} + dependencies: + tslib: 2.6.2 + dev: false + /@blueprintjs/core@4.20.2(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-5v4Nr0jozfAjiOkjY4zvt1XSpt4ldnrSaxtwo506S2cxJYfwFeMTmDshXNPFcc8L1fjZMxi0IWI2WABXzZXS6w==} hasBin: true @@ -5494,6 +5507,53 @@ packages: tslib: 2.5.3 dev: false + /@blueprintjs/core@6.4.1(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-JSA8seGiZ2dpmugO7Cea4bh0XEkTioDyzM1Z/0piFsziVv4OeV3jrmMXMegtCdHqpwpWYj8reGuPzFKHGemXXw==} + hasBin: true + peerDependencies: + '@types/react': '18' + react: '18' + react-dom: '18' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@blueprintjs/colors': 5.1.12 + '@blueprintjs/icons': 6.3.2(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) + '@popperjs/core': 2.11.8 + '@types/react': 18.3.4 + classnames: 2.5.1 + normalize.css: 8.0.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-popper: 2.3.0(@popperjs/core@2.11.8)(react-dom@18.3.1)(react@18.3.1) + react-transition-group: 4.4.5(react-dom@18.3.1)(react@18.3.1) + tslib: 2.6.2 + use-sync-external-store: 1.6.0(react@18.3.1) + dev: false + + /@blueprintjs/datetime2@3.0.10(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-pli0hkv93aH2Ou3inZ2KIdNBLj5dYW8XVu21Rr3fSoh5b9aUsThAVDmb51LjlfNiPVi1i+y2omGuDRTKV+zUgw==} + peerDependencies: + '@types/react': '18' + react: '18' + react-dom: '18' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@blueprintjs/colors': 5.1.12 + '@blueprintjs/core': 6.4.1(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) + '@blueprintjs/datetime': 6.0.10(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) + '@blueprintjs/icons': 6.3.2(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.4 + date-fns: 2.30.0 + react: 18.3.1 + react-day-picker: 8.10.1(date-fns@2.30.0)(react@18.3.1) + react-dom: 18.3.1(react@18.3.1) + tslib: 2.6.2 + dev: false + /@blueprintjs/datetime@4.4.37(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-YJiWzUH1eefCMvvvdsLimrLZNk5XW1yTMK4OmX6BP+gAt/u7cNKyv+42XO4tlymeWRqT0K7HbQOPP4ybt/xzEw==} peerDependencies: @@ -5513,6 +5573,30 @@ packages: tslib: 2.5.3 dev: false + /@blueprintjs/datetime@6.0.10(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-8i8P12OwCe0JGTkX20EtHvembEjwfqkf1pQcec3lMdPDDeEpPmV3vzPWxwCS+NSc6vUGl/2aAFs+Ro7qDW1msw==} + peerDependencies: + '@types/react': '18' + react: '18' + react-dom: '18' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@blueprintjs/core': 6.4.1(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) + '@blueprintjs/icons': 6.3.2(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) + '@blueprintjs/select': 6.0.10(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.4 + classnames: 2.5.1 + date-fns: 2.30.0 + date-fns-tz: 2.0.1(date-fns@2.30.0) + react: 18.3.1 + react-day-picker: 8.10.1(date-fns@2.30.0)(react@18.3.1) + react-dom: 18.3.1(react@18.3.1) + react-innertext: 1.1.5(@types/react@18.3.4)(react@18.3.1) + tslib: 2.6.2 + dev: false + /@blueprintjs/icons@4.16.0: resolution: {integrity: sha512-cyfgjUZcZCtQrXWUV8FwqYTFEzduV4a0N7yhOU38jY+cBRCLu/sDrD0Osvfk4DGRvNe4YjY7pohVLFSxpg68Uw==} dependencies: @@ -5521,6 +5605,24 @@ packages: tslib: 2.5.3 dev: false + /@blueprintjs/icons@6.3.2(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-rOdSg7yPmjtqy3e+wD66tXCrzt57M59htVOikwunTaCyQ61+bsF0PyqLfNlhsw1mXqZm8uxSINs1bhnwXhQCiw==} + peerDependencies: + '@types/react': '18' + react: '18' + react-dom: '18' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@types/react': 18.3.4 + change-case: 4.1.2 + classnames: 2.5.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.6.2 + dev: false + /@blueprintjs/popover2@1.14.11(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-5XAjeb2mlWjYXC0pqrNDLzHSsX85Zaiv8jixxUN9abarMUUFKGATgGF8MRsWTLAW94Gli6CB1lzVkrYkRHHf6Q==} peerDependencies: @@ -5562,6 +5664,26 @@ packages: tslib: 2.5.3 dev: false + /@blueprintjs/select@6.0.10(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1): + resolution: {integrity: sha512-RjDuomn4KhluiN7tVofLLX6S+b+un0mLehvmOSETpqk1C8lHXCxReIXxFiWqTB+YiIgkqQ6aRNjQs35cJBbrfg==} + peerDependencies: + '@types/react': '18' + react: '18' + react-dom: '18' + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@blueprintjs/colors': 5.1.12 + '@blueprintjs/core': 6.4.1(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) + '@blueprintjs/icons': 6.3.2(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1) + '@types/react': 18.3.4 + classnames: 2.5.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tslib: 2.6.2 + dev: false + /@blueprintjs/table@4.10.12(@types/react@18.3.4)(react-dom@18.3.1)(react@18.3.1): resolution: {integrity: sha512-f5NbjuHQ/1vb5hkT+WsCnjIU3Vp2OCWdyDUopVmgj4qHIgzgX38vP2sLS8aUFlbsEQr/xAU9mfkpp4FT+65mXA==} peerDependencies: @@ -15705,6 +15827,21 @@ packages: is-data-view: 1.0.1 dev: true + /date-fns-tz@2.0.1(date-fns@2.30.0): + resolution: {integrity: sha512-fJCG3Pwx8HUoLhkepdsP7Z5RsucUi+ZBOxyM5d0ZZ6c4SdYustq0VMmOu6Wf7bli+yS/Jwp91TOCqn9jMcVrUA==} + peerDependencies: + date-fns: 2.x + dependencies: + date-fns: 2.30.0 + dev: false + + /date-fns@2.30.0: + resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} + engines: {node: '>=0.11'} + dependencies: + '@babel/runtime': 7.24.5 + dev: false + /dateformat@3.0.3: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} dev: true @@ -20379,6 +20516,7 @@ packages: /lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. dev: false /lodash.includes@4.3.0: @@ -23212,6 +23350,16 @@ packages: react: 18.3.1 dev: false + /react-day-picker@8.10.1(date-fns@2.30.0)(react@18.3.1): + resolution: {integrity: sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==} + peerDependencies: + date-fns: ^2.28.0 || ^3.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + date-fns: 2.30.0 + react: 18.3.1 + dev: false + /react-docgen-typescript@2.2.2(typescript@5.6.3): resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} peerDependencies: @@ -26552,6 +26700,14 @@ packages: tslib: 2.8.1 dev: true + /use-sync-external-store@1.6.0(react@18.3.1): + resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + dependencies: + react: 18.3.1 + dev: false + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}