From 4253669cd5345f9ed230e3c54c7bce27d6fd560b Mon Sep 17 00:00:00 2001
From: Ayobami Akingbade
Date: Wed, 19 Jun 2024 03:11:41 +0100
Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(ui-revamp):=20move=20to=20tail?=
=?UTF-8?q?wind=20and=20shadcn-ui?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components.json | 17 +
package-lock.json | 3570 +++++++++++++----
package.json | 33 +-
postcss.config.js | 6 +
src/__tests__/_/Provider.tsx | 2 +-
src/__tests__/api/_test-utils/_dashboard.ts | 3 +-
.../dashboard-widgets.service.ts | 7 +-
.../app/alert}/Stories.tsx | 2 +-
src/components/app/alert/index.tsx | 117 +
.../app/breadcrumbs}/Stories.tsx | 0
.../app/breadcrumbs}/index.tsx | 2 +-
.../app/button/action.tsx} | 27 +-
.../app/button}/constants.ts | 7 +-
src/components/app/button/form.tsx | 82 +
src/components/app/button/soft.tsx | 84 +
.../app/button}/types.d.ts | 16 +-
src/components/app/confirm-alert.tsx | 79 +
.../app/content-layout}/Stories.tsx | 0
.../app/content-layout}/index.tsx | 19 +-
src/components/app/drop-down.tsx | 23 +
.../app/drop-drop-menu}/Stories.tsx | 0
src/components/app/drop-drop-menu/index.tsx | 90 +
.../app/empty-wrapper}/Stories.tsx | 0
src/components/app/empty-wrapper/index.tsx | 22 +
.../app/empty-wrapper}/types.d.ts | 0
.../app/error-boundary.tsx} | 2 +-
.../app/form/input}/Stories.tsx | 63 +-
.../form/input/icon}/IconInputField.spec.tsx | 6 +-
.../app/form/input/icon}/index.tsx | 6 +-
.../app/form/input/label-and-error.tsx} | 55 +-
.../app/form/input/number.tsx} | 4 +-
.../app/form/input/password.tsx} | 4 +-
.../app/form/input/select-button.tsx} | 31 +-
src/components/app/form/input/spectrum.tsx | 37 +
src/components/app/form/input/switch.tsx | 43 +
.../app/form/input/text.tsx} | 11 +-
.../app/form/input/textarea.tsx} | 24 +-
.../app/form/input}/types.d.ts | 1 -
.../app/form/schema}/SchemaForm.spec.tsx | 0
.../app/form/schema}/_RenderFormInput.tsx | 12 +-
.../app/form/schema}/form-grid.tsx | 0
.../app/form/schema}/form-run.ts | 0
.../app/form/schema}/index.tsx | 2 +-
.../app/form/schema}/types.d.ts | 0
.../app/list-manager}/ListManager.spec.tsx | 0
.../app/list-manager}/Stories.tsx | 0
.../app/list-manager}/index.tsx | 34 +-
.../list-manager-item}/Stories.tsx | 0
.../list-manager/list-manager-item}/index.tsx | 118 +-
.../app/list-manager}/utils.ts | 0
.../app/loading-component.tsx} | 0
src/components/app/menu-section.tsx | 127 +
.../app/next-portal.tsx} | 0
src/components/app/off-canvas.tsx | 43 +
.../app/pagination-table}/index.tsx | 11 +-
.../useFEPagination.spec.tsx | 0
.../app/pagination-table}/useFEPagination.ts | 0
.../app/render-code}/Stories.tsx | 0
.../app/render-code}/index.tsx | 1 +
.../app/render-code}/styles.ts | 0
.../index.tsx => components/app/roots.tsx} | 4 +-
.../app/section-box}/Stories.tsx | 0
src/components/app/section-box/index.tsx | 67 +
.../app/skeleton/form}/Stories.tsx | 0
.../app/skeleton/form}/index.tsx | 22 +-
.../app/skeleton/list}/Stories.tsx | 0
.../app/skeleton/list}/index.tsx | 4 +-
.../app/skeleton/table}/Stories.tsx | 0
src/components/app/skeleton/table/index.tsx | 38 +
src/components/app/system-icons.tsx | 45 +
src/components/app/table/Body.tsx | 53 +
src/components/app/table/Foot.tsx | 35 +
.../Table => components/app/table}/Head.tsx | 73 +-
.../app/table}/Stories.tsx | 0
.../app/table}/Table.spec.tsx | 0
.../app/table}/_Pagination.tsx | 29 +-
.../app/table}/constants.ts | 0
.../app/table}/data/index.tsx | 0
.../app/table}/filters/Boolean.tsx | 21 +-
.../app/table}/filters/Date/_Selection.tsx | 21 +-
.../app/table}/filters/Date/constants.ts | 0
.../app/table}/filters/Date/index.tsx | 9 +-
.../app/table}/filters/IdField.tsx | 2 +-
.../app/table}/filters/List.tsx | 3 +-
.../app/table}/filters/Number.tsx | 30 +-
.../app/table}/filters/Status.tsx | 2 +-
.../app/table}/filters/Text.tsx | 2 +-
.../app/table}/filters/_FilterOperator.tsx | 43 +-
.../app/table}/filters/_FilterWrapper.tsx | 44 +-
.../table}/filters/__tests__/index.spec.tsx | 0
.../app/table}/filters/config.tsx | 0
.../app/table}/filters/constants.ts | 0
.../app/table}/filters/index.tsx | 14 +-
.../app/table}/filters/types.d.ts | 0
.../Table => components/app/table}/hooks.tsx | 0
.../Table => components/app/table}/index.tsx | 77 +-
.../Table => components/app/table}/types.ts | 2 +-
.../Table => components/app/table}/utils.ts | 0
src/components/app/tabs.tsx | 67 +
.../app/tooltip}/Stories.tsx | 0
src/components/app/tooltip/index.tsx | 32 +
.../ViewStateMachine.spec.tsx | 0
.../app/view-state-machine}/index.tsx | 4 +-
src/components/ui/alert-dialog.tsx | 147 +
src/components/ui/button.tsx | 57 +
src/components/ui/calendar.tsx | 115 +
src/components/ui/card.tsx | 74 +
src/components/ui/command.tsx | 151 +
src/components/ui/dialog.tsx | 125 +
src/components/ui/dropdown-menu.tsx | 204 +
src/components/ui/input.tsx | 22 +
src/components/ui/label.tsx | 24 +
src/components/ui/pagination.tsx | 133 +
src/components/ui/scroll-area.tsx | 47 +
src/components/ui/select.tsx | 198 +
src/components/ui/separator.tsx | 30 +
src/components/ui/sheet.tsx | 116 +
src/components/ui/skeleton.tsx | 13 +
src/components/ui/spectrum.tsx | 32 +
src/components/ui/switch.tsx | 28 +
src/components/ui/table.tsx | 121 +
src/components/ui/tabs.tsx | 52 +
src/components/ui/textarea.tsx | 25 +
src/components/ui/toast.tsx | 128 +
src/components/ui/toaster.tsx | 33 +
src/components/ui/tooltip.tsx | 29 +
src/components/ui/use-toast.ts | 190 +
src/frontend/_layouts/app/IsSignedIn.tsx | 2 +-
.../NavigationSideBar/NavigationSkeleton.tsx | 48 +-
.../app/NavigationSideBar/Profile.tsx | 41 +-
.../NavigationSideBar/RenderNavigation.tsx | 255 +-
.../app/NavigationSideBar/SideBar.tsx | 147 +-
.../_layouts/app/NavigationSideBar/index.tsx | 47 +-
.../app/NavigationSideBar/portal/main.ts | 4 +-
src/frontend/_layouts/app/constant.ts | 15 +-
src/frontend/_layouts/app/index.tsx | 40 +-
src/frontend/_layouts/guest/index.tsx | 61 +-
src/frontend/design-system/Icons/Grab.tsx | 29 -
src/frontend/design-system/Icons/System.tsx | 55 -
.../design-system/components/Alert/index.tsx | 158 -
.../design-system/components/Button/Button.ts | 138 -
.../components/Button/FormButton/index.tsx | 108 -
.../components/Button/SoftButton.tsx | 104 -
.../components/Button/Stories.tsx | 80 -
.../components/Button/TextButton.tsx | 37 -
.../design-system/components/Card/index.ts | 43 -
.../components/ConfirmAlert/Stories.tsx | 26 -
.../components/ConfirmAlert/index.tsx | 144 -
.../components/Dropdown/Stories.tsx | 38 -
.../components/Dropdown/index.tsx | 100 -
.../components/DropdownMenu/index.tsx | 281 --
.../components/EmptyWrapper/index.tsx | 37 -
.../components/Form/CheckBox/index.tsx | 57 -
.../components/Form/CodeEditor/index.tsx | 9 +-
.../components/Form/Date/index.tsx | 63 +-
.../components/Form/File/Presentation.tsx | 47 +-
.../components/Form/File/index.tsx | 7 +-
.../components/Form/RichText/index.tsx | 7 +-
.../components/Form/Search/index.tsx | 72 -
.../components/Form/Select/Async/index.tsx | 14 +-
.../components/Form/Select/Simple.tsx | 66 -
.../components/Form/Select/index.tsx | 93 +-
.../components/Form/Select/styles.ts | 2 -
.../components/Form/Select/types.ts | 4 +-
.../design-system/components/Form/Styles.ts | 111 -
.../components/Form/Switch/Stories.tsx | 49 -
.../components/Form/Switch/index.tsx | 124 -
.../components/OffCanvas/Stories.tsx | 35 -
.../components/OffCanvas/index.tsx | 98 -
.../components/ProgressBar/index.tsx | 67 -
.../Section/MenuSection/Stories.tsx | 54 -
.../components/Section/MenuSection/index.tsx | 61 -
.../components/Section/SectionBox/index.tsx | 72 -
.../components/Skeleton/Base/Stories.tsx | 31 -
.../components/Skeleton/Base/index.tsx | 36 -
.../components/Skeleton/Table/index.tsx | 46 -
.../design-system/components/Table/Body.tsx | 67 -
.../design-system/components/Table/Foot.tsx | 46 -
.../design-system/components/Table/styles.ts | 16 -
.../design-system/components/Tabs/Stories.tsx | 50 -
.../components/Tabs/Tabs.spec.tsx | 113 -
.../design-system/components/Tabs/index.tsx | 132 -
.../components/Tooltip/index.tsx | 23 -
.../components/Widgets/Summary/index.tsx | 112 +-
.../design-system/components/_/Spin.ts | 14 -
.../design-system/constants/breakpoints.ts | 4 -
src/frontend/design-system/constants/index.ts | 1 -
src/frontend/design-system/constants/sizes.ts | 6 -
.../design-system/constants/zIndex.ts | 2 -
src/frontend/design-system/globals/index.ts | 142 -
.../design-system/globals/normalize.ts | 190 -
.../design-system/globals/off-canvas.ts | 22 -
src/frontend/design-system/globals/tooltip.ts | 50 -
.../design-system/primitives/Divider.tsx | 6 -
.../design-system/primitives/Spacer.tsx | 32 -
.../design-system/primitives/Stack.tsx | 59 -
.../design-system/primitives/Typo.tsx | 97 -
src/frontend/design-system/theme/modes.ts | 4 +-
src/frontend/design-system/theme/system.ts | 5 -
src/frontend/design-system/theme/useTheme.ts | 39 +-
src/frontend/docs/_base.tsx | 10 +-
src/frontend/docs/constants.ts | 2 +-
src/frontend/docs/crud.tsx | 5 +-
src/frontend/docs/form-integrations.tsx | 4 +-
src/frontend/docs/persistent-query.tsx | 2 -
src/frontend/docs/relations.tsx | 2 +-
src/frontend/docs/roles.tsx | 4 +-
src/frontend/docs/scripts/form-scripts.tsx | 5 +-
.../docs/scripts/presentations-scripts.tsx | 8 +-
src/frontend/docs/scripts/widget-scripts.tsx | 5 +-
src/frontend/docs/system-settings.tsx | 2 -
src/frontend/docs/views.tsx | 2 -
src/frontend/lib/routing/usePageDetails.ts | 2 +-
.../views/Dashboard/List/_BaseDashboard.tsx | 2 +-
.../Dashboard/Manage/_BaseManageDashboard.tsx | 2 +-
src/frontend/views/Dashboard/Skeleton.tsx | 10 +-
.../Widget/_components/WidgetFrame/index.tsx | 42 +-
.../Widget/_components/WidgetHeader/index.tsx | 30 +-
.../views/Dashboard/Widget/_manage/Form.tsx | 118 +-
.../views/Dashboard/Widget/_manage/index.tsx | 12 +-
.../Widget/_render/Summary/index.tsx | 3 +-
.../Dashboard/Widget/_render/Table/index.tsx | 4 +-
.../views/Dashboard/Widget/constants.tsx | 19 +-
src/frontend/views/SignIn/index.tsx | 13 +-
src/frontend/views/account/Password/index.tsx | 4 +-
.../views/account/Preferences/index.tsx | 109 +-
src/frontend/views/account/Profile/index.tsx | 14 +-
src/frontend/views/account/_Base.tsx | 23 +-
src/frontend/views/data/Create/index.tsx | 4 +-
.../views/data/Details/DetailsView.tsx | 27 +-
.../views/data/Details/RelationsDetails.tsx | 13 +-
src/frontend/views/data/Details/_Layout.tsx | 17 +-
src/frontend/views/data/Details/index.tsx | 2 +-
.../views/data/Details/portal/main.ts | 8 +-
src/frontend/views/data/OptionTag.tsx | 33 +-
.../views/data/ReferenceComponent.tsx | 11 +-
.../views/data/Table/DataTable/index.tsx | 6 +-
.../Table/_WholeEntityTable/DetailsCanvas.tsx | 9 +-
.../_WholeEntityTable/EntityDataTable.tsx | 9 +-
.../data/Table/_WholeEntityTable/index.tsx | 65 +-
.../Table/hooks/useCurrentTableState.store.ts | 2 +-
.../data/Table/hooks/useEntityContextState.ts | 2 +-
.../views/data/Table/hooks/useTableState.ts | 2 +-
src/frontend/views/data/Table/portal/main.tsx | 8 +-
.../views/data/Table/useTableColumns.tsx | 8 +-
.../views/data/Table/useTableMenuItems.ts | 4 +-
src/frontend/views/data/Update/index.tsx | 4 +-
src/frontend/views/data/_BaseEntityForm.tsx | 12 +-
.../data/hooks/useEntityActionButtons.ts | 4 +-
src/frontend/views/data/portal/main.ts | 2 +-
.../views/data/viewSpecialDataTypes.tsx | 6 +-
src/frontend/views/entity/Actions/Base.tsx | 32 +-
src/frontend/views/entity/Actions/Form.tsx | 2 +-
src/frontend/views/entity/Actions/index.tsx | 2 +-
.../Crud/EntityFieldsSelectionSettings.tsx | 22 +-
src/frontend/views/entity/Crud/index.tsx | 4 +-
src/frontend/views/entity/Diction/index.tsx | 14 +-
.../views/entity/Fields/FieldsLabel.form.tsx | 8 +-
.../views/entity/Fields/FieldsSelection.tsx | 94 +-
.../views/entity/Fields/FieldsType.form.tsx | 14 +-
.../views/entity/Fields/FieldsValidation.tsx | 102 +-
src/frontend/views/entity/Fields/index.tsx | 14 +-
.../views/entity/Fields/isBlackOrWhite.ts | 26 -
src/frontend/views/entity/Form/ScriptForm.tsx | 12 +-
src/frontend/views/entity/Form/index.tsx | 17 +-
src/frontend/views/entity/Form/types.ts | 2 +-
.../views/entity/PersistentQuery/Form.tsx | 46 +-
.../views/entity/PersistentQuery/index.tsx | 12 +-
.../views/entity/Presentation/index.tsx | 14 +-
.../views/entity/Relations/Relations.form.tsx | 4 +-
src/frontend/views/entity/Relations/index.tsx | 48 +-
src/frontend/views/entity/Views/Form.tsx | 31 +-
src/frontend/views/entity/Views/index.tsx | 12 +-
src/frontend/views/entity/_Base.tsx | 64 +-
src/frontend/views/entity/constants.ts | 4 +-
src/frontend/views/entity/portal/main.ts | 4 +-
src/frontend/views/integrations/Password.tsx | 14 +-
src/frontend/views/integrations/_Base.tsx | 86 +-
.../integrations/actions/View/Configure.tsx | 19 +-
.../integrations/actions/View/Deactivate.tsx | 18 +-
.../views/integrations/actions/View/index.tsx | 13 +-
.../views/integrations/actions/index.tsx | 12 +-
.../integrations/storage/Credentials.tsx | 12 +-
.../views/integrations/storage/General.tsx | 12 +-
.../views/integrations/storage/index.tsx | 4 +-
src/frontend/views/roles/Create/index.tsx | 6 +-
src/frontend/views/roles/List.tsx | 18 +-
.../roles/Permissions/MutatePermission.tsx | 57 +-
.../views/roles/Permissions/index.tsx | 12 +-
src/frontend/views/settings/Data/index.tsx | 22 +-
.../views/settings/Entities/Selection.tsx | 4 +-
.../views/settings/Entities/index.tsx | 6 +-
src/frontend/views/settings/Menu/index.tsx | 6 +-
src/frontend/views/settings/Site/index.tsx | 14 +-
src/frontend/views/settings/System/index.tsx | 14 +-
src/frontend/views/settings/Theme/index.tsx | 14 +-
.../views/settings/Variables/Base.tsx | 62 +-
.../views/settings/Variables/Form.tsx | 2 +-
.../Variables/ManageCredentialGroup.tsx | 45 +-
.../views/settings/Versions/index.tsx | 21 +-
src/frontend/views/settings/_Base.tsx | 32 +-
src/frontend/views/settings/portal/main.ts | 4 +-
src/frontend/views/setup/Credentials/Form.tsx | 18 +-
.../views/setup/Credentials/index.tsx | 10 +-
src/frontend/views/setup/User/index.tsx | 12 +-
src/frontend/views/users/Create/index.tsx | 6 +-
.../views/users/DatabaseLink/index.tsx | 16 +-
src/frontend/views/users/List.tsx | 22 +-
src/frontend/views/users/Update/index.tsx | 93 +-
src/lib/utils.ts | 6 +
src/pages/_app.tsx | 3 +-
src/shared/constants/Icons.tsx | 4 +-
src/shared/constants/colors.ts | 27 -
.../getEntitySelectionConfig.spec.ts | 64 +-
.../__tests__/getEntitySelections.spec.ts | 20 +-
.../entities/getEntitySelectionConfig.ts | 11 +-
src/shared/logic/entities/selection.utils.ts | 13 +-
src/shared/types/dashboard/index.ts | 3 +-
src/shared/types/ui.d.ts | 3 +-
src/styles/globals.css | 69 +
tailwind.config.js | 95 +
tsconfig.json | 5 +-
322 files changed, 8045 insertions(+), 6479 deletions(-)
create mode 100644 components.json
create mode 100644 postcss.config.js
rename src/{frontend/design-system/components/Alert => components/app/alert}/Stories.tsx (97%)
create mode 100644 src/components/app/alert/index.tsx
rename src/{frontend/design-system/components/Breadcrumbs => components/app/breadcrumbs}/Stories.tsx (100%)
rename src/{frontend/design-system/components/Breadcrumbs => components/app/breadcrumbs}/index.tsx (96%)
rename src/{frontend/design-system/components/Button/ActionButtons/index.tsx => components/app/button/action.tsx} (56%)
rename src/{frontend/design-system/components/Button => components/app/button}/constants.ts (74%)
create mode 100644 src/components/app/button/form.tsx
create mode 100644 src/components/app/button/soft.tsx
rename src/{frontend/design-system/components/Button => components/app/button}/types.d.ts (54%)
create mode 100644 src/components/app/confirm-alert.tsx
rename src/{frontend/design-system/components/Section/SectionDivider => components/app/content-layout}/Stories.tsx (100%)
rename src/{frontend/design-system/components/Section/SectionDivider => components/app/content-layout}/index.tsx (69%)
create mode 100644 src/components/app/drop-down.tsx
rename src/{frontend/design-system/components/DropdownMenu => components/app/drop-drop-menu}/Stories.tsx (100%)
create mode 100644 src/components/app/drop-drop-menu/index.tsx
rename src/{frontend/design-system/components/EmptyWrapper => components/app/empty-wrapper}/Stories.tsx (100%)
create mode 100644 src/components/app/empty-wrapper/index.tsx
rename src/{frontend/design-system/components/EmptyWrapper => components/app/empty-wrapper}/types.d.ts (100%)
rename src/{frontend/components/ErrorBoundary/index.tsx => components/app/error-boundary.tsx} (94%)
rename src/{frontend/design-system/components/Form => components/app/form/input}/Stories.tsx (88%)
rename src/{frontend/components/IconInputField => components/app/form/input/icon}/IconInputField.spec.tsx (96%)
rename src/{frontend/components/IconInputField => components/app/form/input/icon}/index.tsx (87%)
rename src/{frontend/design-system/components/Form/LabelAndError.tsx => components/app/form/input/label-and-error.tsx} (59%)
rename src/{frontend/design-system/components/Form/Number/index.tsx => components/app/form/input/number.tsx} (91%)
rename src/{frontend/design-system/components/Form/Password/index.tsx => components/app/form/input/password.tsx} (90%)
rename src/{frontend/design-system/components/Form/SelectButton/index.tsx => components/app/form/input/select-button.tsx} (74%)
create mode 100644 src/components/app/form/input/spectrum.tsx
create mode 100644 src/components/app/form/input/switch.tsx
rename src/{frontend/design-system/components/Form/Input/index.tsx => components/app/form/input/text.tsx} (72%)
rename src/{frontend/design-system/components/Form/TextArea/index.tsx => components/app/form/input/textarea.tsx} (64%)
rename src/{frontend/design-system/components/Form => components/app/form/input}/types.d.ts (97%)
rename src/{frontend/components/SchemaForm => components/app/form/schema}/SchemaForm.spec.tsx (100%)
rename src/{frontend/components/SchemaForm => components/app/form/schema}/_RenderFormInput.tsx (86%)
rename src/{frontend/components/SchemaForm => components/app/form/schema}/form-grid.tsx (100%)
rename src/{frontend/components/SchemaForm => components/app/form/schema}/form-run.ts (100%)
rename src/{frontend/components/SchemaForm => components/app/form/schema}/index.tsx (98%)
rename src/{frontend/components/SchemaForm => components/app/form/schema}/types.d.ts (100%)
rename src/{frontend/design-system/components/ListManager => components/app/list-manager}/ListManager.spec.tsx (100%)
rename src/{frontend/design-system/components/ListManager => components/app/list-manager}/Stories.tsx (100%)
rename src/{frontend/design-system/components/ListManager => components/app/list-manager}/index.tsx (78%)
rename src/{frontend/design-system/components/ListManager/ListManagerItem => components/app/list-manager/list-manager-item}/Stories.tsx (100%)
rename src/{frontend/design-system/components/ListManager/ListManagerItem => components/app/list-manager/list-manager-item}/index.tsx (70%)
rename src/{frontend/design-system/components/ListManager => components/app/list-manager}/utils.ts (100%)
rename src/{frontend/design-system/components/ComponentIsLoading/index.tsx => components/app/loading-component.tsx} (100%)
create mode 100644 src/components/app/menu-section.tsx
rename src/{frontend/design-system/components/_/NextPortal.tsx => components/app/next-portal.tsx} (100%)
create mode 100644 src/components/app/off-canvas.tsx
rename src/{frontend/components/FEPaginationTable => components/app/pagination-table}/index.tsx (78%)
rename src/{frontend/components/FEPaginationTable => components/app/pagination-table}/useFEPagination.spec.tsx (100%)
rename src/{frontend/components/FEPaginationTable => components/app/pagination-table}/useFEPagination.ts (100%)
rename src/{frontend/design-system/components/RenderCode => components/app/render-code}/Stories.tsx (100%)
rename src/{frontend/design-system/components/RenderCode => components/app/render-code}/index.tsx (98%)
rename src/{frontend/design-system/components/RenderCode => components/app/render-code}/styles.ts (100%)
rename src/{frontend/components/ApplicationRoot/index.tsx => components/app/roots.tsx} (84%)
rename src/{frontend/design-system/components/Section/SectionBox => components/app/section-box}/Stories.tsx (100%)
create mode 100644 src/components/app/section-box/index.tsx
rename src/{frontend/design-system/components/Skeleton/Form => components/app/skeleton/form}/Stories.tsx (100%)
rename src/{frontend/design-system/components/Skeleton/Form => components/app/skeleton/form}/index.tsx (51%)
rename src/{frontend/design-system/components/Skeleton/List => components/app/skeleton/list}/Stories.tsx (100%)
rename src/{frontend/design-system/components/Skeleton/List => components/app/skeleton/list}/index.tsx (69%)
rename src/{frontend/design-system/components/Skeleton/Table => components/app/skeleton/table}/Stories.tsx (100%)
create mode 100644 src/components/app/skeleton/table/index.tsx
create mode 100644 src/components/app/system-icons.tsx
create mode 100644 src/components/app/table/Body.tsx
create mode 100644 src/components/app/table/Foot.tsx
rename src/{frontend/design-system/components/Table => components/app/table}/Head.tsx (53%)
rename src/{frontend/design-system/components/Table => components/app/table}/Stories.tsx (100%)
rename src/{frontend/design-system/components/Table => components/app/table}/Table.spec.tsx (100%)
rename src/{frontend/design-system/components/Table => components/app/table}/_Pagination.tsx (85%)
rename src/{frontend/design-system/components/Table => components/app/table}/constants.ts (100%)
rename src/{frontend/design-system/components/Table => components/app/table}/data/index.tsx (100%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/Boolean.tsx (63%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/Date/_Selection.tsx (87%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/Date/constants.ts (100%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/Date/index.tsx (91%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/IdField.tsx (91%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/List.tsx (84%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/Number.tsx (55%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/Status.tsx (88%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/Text.tsx (93%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/_FilterOperator.tsx (50%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/_FilterWrapper.tsx (66%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/__tests__/index.spec.tsx (100%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/config.tsx (100%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/constants.ts (100%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/index.tsx (88%)
rename src/{frontend/design-system/components/Table => components/app/table}/filters/types.d.ts (100%)
rename src/{frontend/design-system/components/Table => components/app/table}/hooks.tsx (100%)
rename src/{frontend/design-system/components/Table => components/app/table}/index.tsx (64%)
rename src/{frontend/design-system/components/Table => components/app/table}/types.ts (94%)
rename src/{frontend/design-system/components/Table => components/app/table}/utils.ts (100%)
create mode 100644 src/components/app/tabs.tsx
rename src/{frontend/design-system/components/Tooltip => components/app/tooltip}/Stories.tsx (100%)
create mode 100644 src/components/app/tooltip/index.tsx
rename src/{frontend/components/ViewStateMachine => components/app/view-state-machine}/ViewStateMachine.spec.tsx (100%)
rename src/{frontend/components/ViewStateMachine => components/app/view-state-machine}/index.tsx (81%)
create mode 100644 src/components/ui/alert-dialog.tsx
create mode 100644 src/components/ui/button.tsx
create mode 100644 src/components/ui/calendar.tsx
create mode 100644 src/components/ui/card.tsx
create mode 100644 src/components/ui/command.tsx
create mode 100644 src/components/ui/dialog.tsx
create mode 100644 src/components/ui/dropdown-menu.tsx
create mode 100644 src/components/ui/input.tsx
create mode 100644 src/components/ui/label.tsx
create mode 100644 src/components/ui/pagination.tsx
create mode 100644 src/components/ui/scroll-area.tsx
create mode 100644 src/components/ui/select.tsx
create mode 100644 src/components/ui/separator.tsx
create mode 100644 src/components/ui/sheet.tsx
create mode 100644 src/components/ui/skeleton.tsx
create mode 100644 src/components/ui/spectrum.tsx
create mode 100644 src/components/ui/switch.tsx
create mode 100644 src/components/ui/table.tsx
create mode 100644 src/components/ui/tabs.tsx
create mode 100644 src/components/ui/textarea.tsx
create mode 100644 src/components/ui/toast.tsx
create mode 100644 src/components/ui/toaster.tsx
create mode 100644 src/components/ui/tooltip.tsx
create mode 100644 src/components/ui/use-toast.ts
delete mode 100644 src/frontend/design-system/Icons/Grab.tsx
delete mode 100644 src/frontend/design-system/Icons/System.tsx
delete mode 100644 src/frontend/design-system/components/Alert/index.tsx
delete mode 100644 src/frontend/design-system/components/Button/Button.ts
delete mode 100644 src/frontend/design-system/components/Button/FormButton/index.tsx
delete mode 100644 src/frontend/design-system/components/Button/SoftButton.tsx
delete mode 100644 src/frontend/design-system/components/Button/Stories.tsx
delete mode 100644 src/frontend/design-system/components/Button/TextButton.tsx
delete mode 100644 src/frontend/design-system/components/Card/index.ts
delete mode 100644 src/frontend/design-system/components/ConfirmAlert/Stories.tsx
delete mode 100644 src/frontend/design-system/components/ConfirmAlert/index.tsx
delete mode 100644 src/frontend/design-system/components/Dropdown/Stories.tsx
delete mode 100644 src/frontend/design-system/components/Dropdown/index.tsx
delete mode 100644 src/frontend/design-system/components/DropdownMenu/index.tsx
delete mode 100644 src/frontend/design-system/components/EmptyWrapper/index.tsx
delete mode 100644 src/frontend/design-system/components/Form/CheckBox/index.tsx
delete mode 100644 src/frontend/design-system/components/Form/Search/index.tsx
delete mode 100644 src/frontend/design-system/components/Form/Select/Simple.tsx
delete mode 100644 src/frontend/design-system/components/Form/Styles.ts
delete mode 100644 src/frontend/design-system/components/Form/Switch/Stories.tsx
delete mode 100644 src/frontend/design-system/components/Form/Switch/index.tsx
delete mode 100644 src/frontend/design-system/components/OffCanvas/Stories.tsx
delete mode 100644 src/frontend/design-system/components/OffCanvas/index.tsx
delete mode 100644 src/frontend/design-system/components/ProgressBar/index.tsx
delete mode 100644 src/frontend/design-system/components/Section/MenuSection/Stories.tsx
delete mode 100644 src/frontend/design-system/components/Section/MenuSection/index.tsx
delete mode 100644 src/frontend/design-system/components/Section/SectionBox/index.tsx
delete mode 100644 src/frontend/design-system/components/Skeleton/Base/Stories.tsx
delete mode 100644 src/frontend/design-system/components/Skeleton/Base/index.tsx
delete mode 100644 src/frontend/design-system/components/Skeleton/Table/index.tsx
delete mode 100644 src/frontend/design-system/components/Table/Body.tsx
delete mode 100644 src/frontend/design-system/components/Table/Foot.tsx
delete mode 100644 src/frontend/design-system/components/Table/styles.ts
delete mode 100644 src/frontend/design-system/components/Tabs/Stories.tsx
delete mode 100644 src/frontend/design-system/components/Tabs/Tabs.spec.tsx
delete mode 100644 src/frontend/design-system/components/Tabs/index.tsx
delete mode 100644 src/frontend/design-system/components/Tooltip/index.tsx
delete mode 100644 src/frontend/design-system/components/_/Spin.ts
delete mode 100644 src/frontend/design-system/constants/sizes.ts
delete mode 100644 src/frontend/design-system/globals/index.ts
delete mode 100644 src/frontend/design-system/globals/normalize.ts
delete mode 100644 src/frontend/design-system/globals/off-canvas.ts
delete mode 100644 src/frontend/design-system/globals/tooltip.ts
delete mode 100644 src/frontend/design-system/primitives/Divider.tsx
delete mode 100644 src/frontend/design-system/primitives/Spacer.tsx
delete mode 100644 src/frontend/design-system/primitives/Stack.tsx
delete mode 100644 src/frontend/design-system/primitives/Typo.tsx
delete mode 100644 src/frontend/views/entity/Fields/isBlackOrWhite.ts
create mode 100644 src/lib/utils.ts
delete mode 100644 src/shared/constants/colors.ts
create mode 100644 src/styles/globals.css
create mode 100644 tailwind.config.js
diff --git a/components.json b/components.json
new file mode 100644
index 000000000..124b2edb8
--- /dev/null
+++ b/components.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "https://ui.shadcn.com/schema.json",
+ "style": "new-york",
+ "rsc": false,
+ "tsx": true,
+ "tailwind": {
+ "config": "tailwind.config.ts",
+ "css": "src/styles/globals.css",
+ "baseColor": "zinc",
+ "cssVariables": true,
+ "prefix": ""
+ },
+ "aliases": {
+ "components": "@/components",
+ "utils": "@/lib/utils"
+ }
+}
diff --git a/package-lock.json b/package-lock.json
index 8504a41dc..c34a6fd60 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -12,6 +12,19 @@
"@dashpress/bacteria": "^0.0.13",
"@lingui/core": "^4.10.0",
"@lingui/react": "^4.10.0",
+ "@radix-ui/react-alert-dialog": "^1.0.5",
+ "@radix-ui/react-dialog": "^1.0.5",
+ "@radix-ui/react-dropdown-menu": "^2.0.6",
+ "@radix-ui/react-icons": "^1.3.0",
+ "@radix-ui/react-label": "^2.0.2",
+ "@radix-ui/react-scroll-area": "^1.0.5",
+ "@radix-ui/react-select": "^2.0.0",
+ "@radix-ui/react-separator": "^1.0.3",
+ "@radix-ui/react-slot": "^1.0.2",
+ "@radix-ui/react-switch": "^1.0.3",
+ "@radix-ui/react-tabs": "^1.0.4",
+ "@radix-ui/react-toast": "^1.1.5",
+ "@radix-ui/react-tooltip": "^1.0.7",
"@tanstack/query-async-storage-persister": "^5.36.0",
"@tanstack/react-query": "^5.28.9",
"@tanstack/react-query-persist-client": "^5.36.0",
@@ -19,8 +32,11 @@
"bcrypt": "^5.0.1",
"change-case": "^4.1.2",
"class-validator": "^0.13.2",
+ "class-variance-authority": "^0.7.0",
+ "clsx": "^2.1.1",
+ "cmdk": "^1.0.0",
"cryptr": "^6.0.3",
- "date-fns": "^2.28.0",
+ "date-fns": "^2.30.0",
"execa": "^6.1.0",
"final-form": "^4.20.7",
"final-form-arrays": "^3.0.2",
@@ -43,8 +59,8 @@
"ramda": "0.27.1",
"randomstring": "^1.2.2",
"react": "18.2.0",
- "react-bootstrap": "^2.4.0",
"react-datepicker": "^4.8.0",
+ "react-day-picker": "^8.10.1",
"react-dom": "18.2.0",
"react-dropzone": "^14.2.1",
"react-easy-sort": "^1.5.0",
@@ -60,8 +76,9 @@
"react-use": "^17.4.0",
"redis": "^4.4.0",
"styled-components": "^6.1.8",
+ "tailwind-merge": "^2.3.0",
+ "tailwindcss-animate": "^1.0.7",
"terminal-link": "^3.0.0",
- "tiny-skeleton-loader-react": "^1.2.1",
"winston": "^3.8.2",
"zod": "^3.21.4",
"zustand": "3.4.2"
@@ -106,6 +123,7 @@
"@types/react-dom": "^18.0.4",
"@typescript-eslint/eslint-plugin": "^5.31.0",
"@typescript-eslint/parser": "^5.31.0",
+ "autoprefixer": "^10.4.19",
"babel-loader": "^8.2.5",
"commitlint-config-git-commit-emoji": "^1.0.0",
"cross-env": "^7.0.3",
@@ -119,9 +137,9 @@
"jest-environment-jsdom": "^29.0.3",
"jest-fetch-mock": "^3.0.3",
"lint-staged": "^13.0.2",
- "msw": "^0.44.1",
+ "msw": "^0.49.3",
"node-mocks-http": "^1.11.0",
- "postcss": "^8.4.16",
+ "postcss": "^8.4.38",
"prettier": "^2.7.1",
"react-is": "^18.1.0",
"rimraf": "^3.0.2",
@@ -129,13 +147,25 @@
"rollup-plugin-svg": "^2.0.0",
"rollup-plugin-svg-import": "^1.6.0",
"standard-version": "^9.5.0",
+ "tailwindcss": "^3.4.3",
"tsup": "^6.2.2",
- "typescript": "^4.7.4"
+ "typescript": "^4.9.5"
},
"engines": {
"node": ">=16"
}
},
+ "node_modules/@alloc/quick-lru": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/@ampproject/remapping": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
@@ -3321,7 +3351,7 @@
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@jridgewell/trace-mapping": "0.3.9"
@@ -3334,7 +3364,7 @@
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "^3.0.3",
@@ -4281,6 +4311,18 @@
"@floating-ui/core": "^1.1.0"
}
},
+ "node_modules/@floating-ui/react-dom": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.0.tgz",
+ "integrity": "sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==",
+ "dependencies": {
+ "@floating-ui/dom": "^1.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8.0",
+ "react-dom": ">=16.8.0"
+ }
+ },
"node_modules/@gar/promisify": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
@@ -4319,6 +4361,90 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
"node_modules/@istanbuljs/load-nyc-config": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
@@ -5345,17 +5471,16 @@
}
},
"node_modules/@mswjs/interceptors": {
- "version": "0.17.3",
- "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.3.tgz",
- "integrity": "sha512-jBRFPeHBPqKv3od8KPjmrvt4b/+e1DorizFDYJ8NQCrjFT9YGnxA8ojGi0MIo64x/JgdjYkhP8bG9EY4BGPoqg==",
+ "version": "0.17.10",
+ "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.10.tgz",
+ "integrity": "sha512-N8x7eSLGcmUFNWZRxT1vsHvypzIRgQYdG0rJey/rZCy6zT/30qDt8Joj7FxzGNLSwXbeZqJOMqDurp7ra4hgbw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@open-draft/until": "^1.0.3",
"@types/debug": "^4.1.7",
- "@xmldom/xmldom": "^0.7.5",
+ "@xmldom/xmldom": "^0.8.3",
"debug": "^4.3.3",
- "headers-polyfill": "^3.0.4",
+ "headers-polyfill": "3.2.5",
"outvariant": "^1.2.1",
"strict-event-emitter": "^0.2.4",
"web-encoding": "^1.1.5"
@@ -5364,6 +5489,21 @@
"node": ">=14"
}
},
+ "node_modules/@mswjs/interceptors/node_modules/headers-polyfill": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.2.5.tgz",
+ "integrity": "sha512-tUCGvt191vNSQgttSyJoibR+VO+I6+iCHIUdhzEMJKE+EAL8BwCN7fUOZlY4ofOelNHsK+gEjxB/B+9N3EWtdA==",
+ "dev": true
+ },
+ "node_modules/@mswjs/interceptors/node_modules/strict-event-emitter": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.8.tgz",
+ "integrity": "sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==",
+ "dev": true,
+ "dependencies": {
+ "events": "^3.3.0"
+ }
+ },
"node_modules/@next/bundle-analyzer": {
"version": "14.2.2",
"resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-14.2.2.tgz",
@@ -5548,7 +5688,6 @@
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
"license": "MIT",
"dependencies": {
"@nodelib/fs.stat": "2.0.5",
@@ -5562,7 +5701,6 @@
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
"integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 8"
@@ -5572,7 +5710,6 @@
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"@nodelib/fs.scandir": "2.1.5",
@@ -5625,8 +5762,16 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz",
"integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==",
- "dev": true,
- "license": "MIT"
+ "dev": true
+ },
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
},
"node_modules/@pmmmwh/react-refresh-webpack-plugin": {
"version": "0.5.10",
@@ -5790,16 +5935,900 @@
"url": "https://opencollective.com/popperjs"
}
},
- "node_modules/@react-aria/ssr": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.3.0.tgz",
- "integrity": "sha512-yNqUDuOVZIUGP81R87BJVi/ZUZp/nYOBXbPsRe7oltJOfErQZD+UezMpw4vM2KRz18cURffvmC8tJ6JTeyDtaQ==",
- "license": "Apache-2.0",
+ "node_modules/@radix-ui/number": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.0.1.tgz",
+ "integrity": "sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10"
+ }
+ },
+ "node_modules/@radix-ui/primitive": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz",
+ "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10"
+ }
+ },
+ "node_modules/@radix-ui/react-alert-dialog": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.0.5.tgz",
+ "integrity": "sha512-OrVIOcZL0tl6xibeuGt5/+UxoT2N27KCFOPjFyfXMnchxSHZ/OW7cCX2nGlIYJrbHK/fczPcFzAwvNBB6XBNMA==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-dialog": "1.0.5",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-slot": "1.0.2"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-arrow": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz",
+ "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-primitive": "1.0.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-collection": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.3.tgz",
+ "integrity": "sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-slot": "1.0.2"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-compose-refs": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz",
+ "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-context": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz",
+ "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-dialog": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz",
+ "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-dismissable-layer": "1.0.5",
+ "@radix-ui/react-focus-guards": "1.0.1",
+ "@radix-ui/react-focus-scope": "1.0.4",
+ "@radix-ui/react-id": "1.0.1",
+ "@radix-ui/react-portal": "1.0.4",
+ "@radix-ui/react-presence": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-slot": "1.0.2",
+ "@radix-ui/react-use-controllable-state": "1.0.1",
+ "aria-hidden": "^1.1.1",
+ "react-remove-scroll": "2.5.5"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-direction": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.1.tgz",
+ "integrity": "sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-dismissable-layer": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz",
+ "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-callback-ref": "1.0.1",
+ "@radix-ui/react-use-escape-keydown": "1.0.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-dropdown-menu": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.6.tgz",
+ "integrity": "sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-id": "1.0.1",
+ "@radix-ui/react-menu": "2.0.6",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-controllable-state": "1.0.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-focus-guards": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz",
+ "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-focus-scope": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz",
+ "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-callback-ref": "1.0.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-icons": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz",
+ "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==",
+ "peerDependencies": {
+ "react": "^16.x || ^17.x || ^18.x"
+ }
+ },
+ "node_modules/@radix-ui/react-id": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz",
+ "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-use-layout-effect": "1.0.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-label": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.0.2.tgz",
+ "integrity": "sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-primitive": "1.0.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-menu": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.0.6.tgz",
+ "integrity": "sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-collection": "1.0.3",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-direction": "1.0.1",
+ "@radix-ui/react-dismissable-layer": "1.0.5",
+ "@radix-ui/react-focus-guards": "1.0.1",
+ "@radix-ui/react-focus-scope": "1.0.4",
+ "@radix-ui/react-id": "1.0.1",
+ "@radix-ui/react-popper": "1.1.3",
+ "@radix-ui/react-portal": "1.0.4",
+ "@radix-ui/react-presence": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-roving-focus": "1.0.4",
+ "@radix-ui/react-slot": "1.0.2",
+ "@radix-ui/react-use-callback-ref": "1.0.1",
+ "aria-hidden": "^1.1.1",
+ "react-remove-scroll": "2.5.5"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-popper": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.3.tgz",
+ "integrity": "sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@floating-ui/react-dom": "^2.0.0",
+ "@radix-ui/react-arrow": "1.0.3",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-callback-ref": "1.0.1",
+ "@radix-ui/react-use-layout-effect": "1.0.1",
+ "@radix-ui/react-use-rect": "1.0.1",
+ "@radix-ui/react-use-size": "1.0.1",
+ "@radix-ui/rect": "1.0.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-portal": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz",
+ "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-primitive": "1.0.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-presence": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz",
+ "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-use-layout-effect": "1.0.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-primitive": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz",
+ "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-slot": "1.0.2"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-roving-focus": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz",
+ "integrity": "sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-collection": "1.0.3",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-direction": "1.0.1",
+ "@radix-ui/react-id": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-callback-ref": "1.0.1",
+ "@radix-ui/react-use-controllable-state": "1.0.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-scroll-area": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.0.5.tgz",
+ "integrity": "sha512-b6PAgH4GQf9QEn8zbT2XUHpW5z8BzqEc7Kl11TwDrvuTrxlkcjTD5qa/bxgKr+nmuXKu4L/W5UZ4mlP/VG/5Gw==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/number": "1.0.1",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-direction": "1.0.1",
+ "@radix-ui/react-presence": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-callback-ref": "1.0.1",
+ "@radix-ui/react-use-layout-effect": "1.0.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-select": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.0.0.tgz",
+ "integrity": "sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/number": "1.0.1",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-collection": "1.0.3",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-direction": "1.0.1",
+ "@radix-ui/react-dismissable-layer": "1.0.5",
+ "@radix-ui/react-focus-guards": "1.0.1",
+ "@radix-ui/react-focus-scope": "1.0.4",
+ "@radix-ui/react-id": "1.0.1",
+ "@radix-ui/react-popper": "1.1.3",
+ "@radix-ui/react-portal": "1.0.4",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-slot": "1.0.2",
+ "@radix-ui/react-use-callback-ref": "1.0.1",
+ "@radix-ui/react-use-controllable-state": "1.0.1",
+ "@radix-ui/react-use-layout-effect": "1.0.1",
+ "@radix-ui/react-use-previous": "1.0.1",
+ "@radix-ui/react-visually-hidden": "1.0.3",
+ "aria-hidden": "^1.1.1",
+ "react-remove-scroll": "2.5.5"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-separator": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.0.3.tgz",
+ "integrity": "sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-primitive": "1.0.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-slot": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz",
+ "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-compose-refs": "1.0.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-switch": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.0.3.tgz",
+ "integrity": "sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-controllable-state": "1.0.1",
+ "@radix-ui/react-use-previous": "1.0.1",
+ "@radix-ui/react-use-size": "1.0.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-tabs": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.0.4.tgz",
+ "integrity": "sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-direction": "1.0.1",
+ "@radix-ui/react-id": "1.0.1",
+ "@radix-ui/react-presence": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-roving-focus": "1.0.4",
+ "@radix-ui/react-use-controllable-state": "1.0.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-toast": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.1.5.tgz",
+ "integrity": "sha512-fRLn227WHIBRSzuRzGJ8W+5YALxofH23y0MlPLddaIpLpCDqdE0NZlS2NRQDRiptfxDeeCjgFIpexB1/zkxDlw==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-collection": "1.0.3",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-dismissable-layer": "1.0.5",
+ "@radix-ui/react-portal": "1.0.4",
+ "@radix-ui/react-presence": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-callback-ref": "1.0.1",
+ "@radix-ui/react-use-controllable-state": "1.0.1",
+ "@radix-ui/react-use-layout-effect": "1.0.1",
+ "@radix-ui/react-visually-hidden": "1.0.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-tooltip": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.0.7.tgz",
+ "integrity": "sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-dismissable-layer": "1.0.5",
+ "@radix-ui/react-id": "1.0.1",
+ "@radix-ui/react-popper": "1.1.3",
+ "@radix-ui/react-portal": "1.0.4",
+ "@radix-ui/react-presence": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-slot": "1.0.2",
+ "@radix-ui/react-use-controllable-state": "1.0.1",
+ "@radix-ui/react-visually-hidden": "1.0.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-callback-ref": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz",
+ "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-controllable-state": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz",
+ "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-use-callback-ref": "1.0.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-escape-keydown": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz",
+ "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-use-callback-ref": "1.0.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-layout-effect": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz",
+ "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-previous": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.0.1.tgz",
+ "integrity": "sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==",
"dependencies": {
- "@babel/runtime": "^7.6.2"
+ "@babel/runtime": "^7.13.10"
},
"peerDependencies": {
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-rect": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz",
+ "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/rect": "1.0.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-use-size": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz",
+ "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-use-layout-effect": "1.0.1"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "react": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/react-visually-hidden": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz",
+ "integrity": "sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-primitive": "1.0.3"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0",
+ "react-dom": "^16.8 || ^17.0 || ^18.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@radix-ui/rect": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz",
+ "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.13.10"
}
},
"node_modules/@redis/bloom": {
@@ -5857,39 +6886,6 @@
"@redis/client": "^1.0.0"
}
},
- "node_modules/@restart/hooks": {
- "version": "0.4.7",
- "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.7.tgz",
- "integrity": "sha512-ZbjlEHcG+FQtpDPHd7i4FzNNvJf2enAwZfJbpM8CW7BhmOAbsHpZe3tsHwfQUrBuyrxWqPYp2x5UMnilWcY22A==",
- "license": "MIT",
- "dependencies": {
- "dequal": "^2.0.2"
- },
- "peerDependencies": {
- "react": ">=16.8.0"
- }
- },
- "node_modules/@restart/ui": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.3.1.tgz",
- "integrity": "sha512-MYvMs2eeZTHu2dBJHOXKx72vxzEZeWbZx2z1QjeXq62iYjpjIyukBC2ZEy8x+sb9Gl0AiOiHkPXrl1wn95aOGQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.18.3",
- "@popperjs/core": "^2.11.5",
- "@react-aria/ssr": "^3.2.0",
- "@restart/hooks": "^0.4.7",
- "@types/warning": "^3.0.0",
- "dequal": "^2.0.2",
- "dom-helpers": "^5.2.0",
- "uncontrollable": "^7.2.1",
- "warning": "^4.0.3"
- },
- "peerDependencies": {
- "react": ">=16.14.0",
- "react-dom": ">=16.14.0"
- }
- },
"node_modules/@rollup/pluginutils": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
@@ -6971,6 +7967,28 @@
"node": ">=4"
}
},
+ "node_modules/@storybook/builder-webpack4/node_modules/autoprefixer": {
+ "version": "9.8.8",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz",
+ "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==",
+ "dev": true,
+ "dependencies": {
+ "browserslist": "^4.12.0",
+ "caniuse-lite": "^1.0.30001109",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "picocolors": "^0.2.1",
+ "postcss": "^7.0.32",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "funding": {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ }
+ },
"node_modules/@storybook/builder-webpack4/node_modules/braces": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
@@ -11334,28 +12352,28 @@
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
"integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/@tsconfig/node12": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
"integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/@tsconfig/node14": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
"integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/@tsconfig/node16": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
"integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/@types/aria-query": {
@@ -11425,11 +12443,10 @@
"license": "MIT"
},
"node_modules/@types/debug": {
- "version": "4.1.7",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
- "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
+ "version": "4.1.12",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
+ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/ms": "*"
}
@@ -11746,11 +12763,10 @@
"license": "MIT"
},
"node_modules/@types/ms": {
- "version": "0.7.31",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
- "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==",
- "dev": true,
- "license": "MIT"
+ "version": "0.7.34",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
+ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==",
+ "dev": true
},
"node_modules/@types/node": {
"version": "18.0.3",
@@ -11905,7 +12921,7 @@
"version": "18.0.6",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.6.tgz",
"integrity": "sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@types/react": "*"
@@ -12003,12 +13019,6 @@
"integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==",
"dev": true
},
- "node_modules/@types/warning": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz",
- "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==",
- "license": "MIT"
- },
"node_modules/@types/webpack": {
"version": "4.41.33",
"resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.33.tgz",
@@ -12583,9 +13593,9 @@
}
},
"node_modules/@xmldom/xmldom": {
- "version": "0.7.9",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.9.tgz",
- "integrity": "sha512-yceMpm/xd4W2a85iqZyO09gTnHvXF6pyiWjD2jcOJs7hRoZtNNOO1eJlhHj1ixA+xip2hOyGn+LgcvLCMo5zXA==",
+ "version": "0.8.10",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
+ "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
"dev": true,
"engines": {
"node": ">=10.0.0"
@@ -12614,7 +13624,6 @@
"resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz",
"integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==",
"dev": true,
- "license": "(Unlicense OR Apache-2.0)",
"optional": true
},
"node_modules/abab": {
@@ -12659,7 +13668,7 @@
"version": "8.9.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz",
"integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==",
- "dev": true,
+ "devOptional": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -12724,7 +13733,7 @@
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=0.4.0"
@@ -12904,7 +13913,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
@@ -12944,14 +13952,12 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dev": true,
"license": "MIT"
},
"node_modules/anymatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
"integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dev": true,
"license": "ISC",
"dependencies": {
"normalize-path": "^3.0.0",
@@ -12990,7 +13996,7 @@
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/argparse": {
@@ -13000,6 +14006,17 @@
"dev": true,
"license": "Python-2.0"
},
+ "node_modules/aria-hidden": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz",
+ "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==",
+ "dependencies": {
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/aria-query": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz",
@@ -13370,48 +14387,40 @@
}
},
"node_modules/autoprefixer": {
- "version": "9.8.8",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz",
- "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==",
+ "version": "10.4.19",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz",
+ "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==",
"dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
"dependencies": {
- "browserslist": "^4.12.0",
- "caniuse-lite": "^1.0.30001109",
+ "browserslist": "^4.23.0",
+ "caniuse-lite": "^1.0.30001599",
+ "fraction.js": "^4.3.7",
"normalize-range": "^0.1.2",
- "num2fraction": "^1.2.2",
- "picocolors": "^0.2.1",
- "postcss": "^7.0.32",
- "postcss-value-parser": "^4.1.0"
+ "picocolors": "^1.0.0",
+ "postcss-value-parser": "^4.2.0"
},
"bin": {
"autoprefixer": "bin/autoprefixer"
},
- "funding": {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/autoprefixer"
- }
- },
- "node_modules/autoprefixer/node_modules/picocolors": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
- "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
- "dev": true
- },
- "node_modules/autoprefixer/node_modules/postcss": {
- "version": "7.0.39",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
- "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
- "dev": true,
- "dependencies": {
- "picocolors": "^0.2.1",
- "source-map": "^0.6.1"
- },
"engines": {
- "node": ">=6.0.0"
+ "node": "^10 || ^12 || >=14"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
+ "peerDependencies": {
+ "postcss": "^8.1.0"
}
},
"node_modules/available-typed-arrays": {
@@ -13877,7 +14886,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -14075,7 +15083,6 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
"license": "MIT",
"dependencies": {
"fill-range": "^7.0.1"
@@ -14612,7 +15619,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
"integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
- "dev": true,
"engines": {
"node": ">= 6"
}
@@ -14816,7 +15822,6 @@
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -14996,6 +16001,25 @@
"validator": "^13.7.0"
}
},
+ "node_modules/class-variance-authority": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz",
+ "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==",
+ "dependencies": {
+ "clsx": "2.0.0"
+ },
+ "funding": {
+ "url": "https://joebell.co.uk"
+ }
+ },
+ "node_modules/class-variance-authority/node_modules/clsx": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz",
+ "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/classnames": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
@@ -15201,6 +16225,14 @@
"node": ">=6"
}
},
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/cluster-key-slot": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.1.tgz",
@@ -15209,6 +16241,19 @@
"node": ">=0.10.0"
}
},
+ "node_modules/cmdk": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.0.0.tgz",
+ "integrity": "sha512-gDzVf0a09TvoJ5jnuPvygTB77+XdOSwEmJ88L6XPFPlv7T3RxbP9jgenfylrAMD0+Le1aO0nVjQUzl2g+vjz5Q==",
+ "dependencies": {
+ "@radix-ui/react-dialog": "1.0.5",
+ "@radix-ui/react-primitive": "1.0.3"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
"node_modules/co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -15263,7 +16308,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
@@ -15724,19 +16768,6 @@
"node": ">=10"
}
},
- "node_modules/conventional-changelog-core/node_modules/is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/conventional-changelog-core/node_modules/normalize-package-data": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
@@ -16477,7 +17508,7 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/cross-env": {
@@ -16740,7 +17771,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true,
"bin": {
"cssesc": "bin/cssesc"
},
@@ -17021,9 +18051,12 @@
}
},
"node_modules/date-fns": {
- "version": "2.29.3",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz",
- "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==",
+ "version": "2.30.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",
+ "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==",
+ "dependencies": {
+ "@babel/runtime": "^7.21.0"
+ },
"engines": {
"node": ">=0.11"
},
@@ -17533,15 +18566,6 @@
"node": ">= 0.6"
}
},
- "node_modules/dequal": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
- "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/des.js": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz",
@@ -17614,6 +18638,11 @@
"node": ">=8"
}
},
+ "node_modules/detect-node-es": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
+ "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="
+ },
"node_modules/detect-package-manager": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-2.0.1.tgz",
@@ -17714,11 +18743,16 @@
"wrappy": "1"
}
},
+ "node_modules/didyoumean": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
+ },
"node_modules/diff": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
+ "devOptional": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.3.1"
@@ -17764,6 +18798,11 @@
"node": ">=8"
}
},
+ "node_modules/dlv": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
+ },
"node_modules/doctrine": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
@@ -18056,7 +19095,6 @@
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true,
"license": "MIT"
},
"node_modules/ecdsa-sig-formatter": {
@@ -18117,7 +19155,6 @@
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true,
"license": "MIT"
},
"node_modules/emojis-list": {
@@ -20146,11 +21183,9 @@
"license": "Apache-2.0"
},
"node_modules/fast-glob": {
- "version": "3.2.11",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
- "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
- "dev": true,
- "license": "MIT",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -20197,7 +21232,6 @@
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
"integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
- "dev": true,
"license": "ISC",
"dependencies": {
"reusify": "^1.0.4"
@@ -20373,7 +21407,6 @@
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
@@ -20848,6 +21881,19 @@
"node": ">= 0.6"
}
},
+ "node_modules/fraction.js": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
+ "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "patreon",
+ "url": "https://github.com/sponsors/rawify"
+ }
+ },
"node_modules/fragment-cache": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
@@ -20999,7 +22045,6 @@
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
"hasInstallScript": true,
"optional": true,
"os": [
@@ -21141,6 +22186,14 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/get-nonce": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
+ "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/get-package-type": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
@@ -21427,7 +22480,6 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
"license": "ISC",
"dependencies": {
"is-glob": "^4.0.1"
@@ -22032,11 +23084,10 @@
}
},
"node_modules/headers-polyfill": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.0.10.tgz",
- "integrity": "sha512-lOhQU7iG3AMcjmb8NIWCa+KwfJw5bY44BoWPtrj5A4iDbSD3ylGf5QcYr0ZyQnhkKQ2GgWNLdF2rfrXtXlF3nQ==",
- "dev": true,
- "license": "MIT"
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.3.0.tgz",
+ "integrity": "sha512-5e57etwBpNcDc0b6KCVWEh/Ro063OxPvzVimUdM0/tsYM/T7Hfy3kknIGj78SFTOhNd8AZY41U8mOHoO4LzmIQ==",
+ "dev": true
},
"node_modules/hexoid": {
"version": "1.0.0",
@@ -22772,7 +23823,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"binary-extensions": "^2.0.0"
@@ -22850,12 +23900,11 @@
"dev": true
},
"node_modules/is-core-module": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
- "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
- "license": "MIT",
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dependencies": {
- "has": "^1.0.3"
+ "hasown": "^2.0.0"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -22953,7 +24002,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -23002,7 +24050,6 @@
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
"integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"has-tostringtag": "^1.0.0"
},
@@ -23017,7 +24064,6 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"is-extglob": "^2.1.1"
@@ -23078,7 +24124,6 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.12.0"
@@ -23480,6 +24525,23 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/jackspeak": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz",
+ "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
"node_modules/jest": {
"version": "29.0.3",
"resolved": "https://registry.npmjs.org/jest/-/jest-29.0.3.tgz",
@@ -24235,7 +25297,6 @@
"version": "1.21.0",
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz",
"integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==",
- "dev": true,
"bin": {
"jiti": "bin/jiti.js"
}
@@ -25224,7 +26285,7 @@
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true,
+ "devOptional": true,
"license": "ISC"
},
"node_modules/makeerror": {
@@ -25489,19 +26550,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/meow/node_modules/is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "has": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/meow/node_modules/normalize-package-data": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
@@ -25655,7 +26703,6 @@
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 8"
@@ -25681,7 +26728,6 @@
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"braces": "^3.0.2",
@@ -26079,32 +27125,30 @@
"license": "MIT"
},
"node_modules/msw": {
- "version": "0.44.2",
- "resolved": "https://registry.npmjs.org/msw/-/msw-0.44.2.tgz",
- "integrity": "sha512-u8wjzzcMWouoZtuIShCwx4M3wFF5sBAV1f8K4a0WX8kiihFjzl89IKE1VYmTclLyMIwpOq8qQ1HTpuh2BFX/3A==",
+ "version": "0.49.3",
+ "resolved": "https://registry.npmjs.org/msw/-/msw-0.49.3.tgz",
+ "integrity": "sha512-kRCbDNbNnRq5LC1H/NUceZlrPAvSrMH6Or0mirIuH69NY84xwDruPn/hkXTovIK1KwDwbk+ZdoSyJlpiekLxEA==",
"dev": true,
"hasInstallScript": true,
- "license": "MIT",
"dependencies": {
"@mswjs/cookies": "^0.2.2",
- "@mswjs/interceptors": "^0.17.2",
+ "@mswjs/interceptors": "^0.17.5",
"@open-draft/until": "^1.0.3",
"@types/cookie": "^0.4.1",
"@types/js-levenshtein": "^1.1.1",
"chalk": "4.1.1",
"chokidar": "^3.4.2",
"cookie": "^0.4.2",
- "graphql": "^16.3.0",
- "headers-polyfill": "^3.0.4",
+ "graphql": "^15.0.0 || ^16.0.0",
+ "headers-polyfill": "^3.1.0",
"inquirer": "^8.2.0",
"is-node-process": "^1.0.1",
"js-levenshtein": "^1.1.6",
"node-fetch": "^2.6.7",
"outvariant": "^1.3.0",
"path-to-regexp": "^6.2.0",
- "statuses": "^2.0.0",
- "strict-event-emitter": "^0.2.0",
- "type-fest": "^1.2.2",
+ "strict-event-emitter": "^0.4.3",
+ "type-fest": "^2.19.0",
"yargs": "^17.3.1"
},
"bin": {
@@ -26118,7 +27162,7 @@
"url": "https://opencollective.com/mswjs"
},
"peerDependencies": {
- "typescript": ">= 4.2.x <= 4.7.x"
+ "typescript": ">= 4.4.x <= 4.9.x"
},
"peerDependenciesMeta": {
"typescript": {
@@ -26143,6 +27187,18 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
+ "node_modules/msw/node_modules/type-fest": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
+ "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/msw/node_modules/yargs": {
"version": "17.5.1",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
@@ -26218,7 +27274,6 @@
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dev": true,
"license": "MIT",
"dependencies": {
"any-promise": "^1.0.0",
@@ -26746,7 +27801,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -26936,6 +27990,14 @@
"node": ">=0.10.0"
}
},
+ "node_modules/object-hash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/object-inspect": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
@@ -27276,11 +28338,10 @@
}
},
"node_modules/outvariant": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.3.0.tgz",
- "integrity": "sha512-yeWM9k6UPfG/nzxdaPlJkB2p08hCg4xP6Lx99F+vP8YF7xyZVfTmJjrrNalkmzudD4WFvNLVudQikqUmF8zhVQ==",
- "dev": true,
- "license": "MIT"
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.2.tgz",
+ "integrity": "sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==",
+ "dev": true
},
"node_modules/p-all": {
"version": "2.1.0",
@@ -27742,6 +28803,37 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"license": "MIT"
},
+ "node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.2.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz",
+ "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==",
+ "engines": {
+ "node": "14 || >=16.14"
+ }
+ },
+ "node_modules/path-scurry/node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
"node_modules/path-to-regexp": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
@@ -27947,7 +29039,6 @@
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8.6"
@@ -28006,7 +29097,6 @@
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
"integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 6"
@@ -28129,9 +29219,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "version": "8.4.38",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+ "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
"funding": [
{
"type": "opencollective",
@@ -28147,9 +29237,9 @@
}
],
"dependencies": {
- "nanoid": "^3.3.6",
+ "nanoid": "^3.3.7",
"picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "source-map-js": "^1.2.0"
},
"engines": {
"node": "^10 || ^12 || >=14"
@@ -28282,6 +29372,40 @@
"url": "https://opencollective.com/postcss/"
}
},
+ "node_modules/postcss-import": {
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
+ "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
+ "dependencies": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.0"
+ }
+ },
+ "node_modules/postcss-js": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
+ "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
+ "dependencies": {
+ "camelcase-css": "^2.0.1"
+ },
+ "engines": {
+ "node": "^12 || ^14 || >= 16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.21"
+ }
+ },
"node_modules/postcss-load-config": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
@@ -28691,6 +29815,24 @@
"postcss": "^8.1.0"
}
},
+ "node_modules/postcss-nested": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
+ "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.11"
+ },
+ "engines": {
+ "node": ">=12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.14"
+ }
+ },
"node_modules/postcss-normalize-charset": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
@@ -28888,7 +30030,6 @@
"version": "6.0.13",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
"integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
- "dev": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -28935,9 +30076,9 @@
"license": "MIT"
},
"node_modules/postcss/node_modules/nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
"funding": [
{
"type": "github",
@@ -29218,24 +30359,6 @@
"react-is": "^16.13.1"
}
},
- "node_modules/prop-types-extra": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz",
- "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==",
- "license": "MIT",
- "dependencies": {
- "react-is": "^16.3.2",
- "warning": "^4.0.0"
- },
- "peerDependencies": {
- "react": ">=0.14.0"
- }
- },
- "node_modules/prop-types-extra/node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
- },
"node_modules/prop-types/node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -29406,7 +30529,6 @@
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -29619,36 +30741,6 @@
"object-assign": "^4.1.0"
}
},
- "node_modules/react-bootstrap": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.5.0.tgz",
- "integrity": "sha512-j/aLR+okzbYk61TM3eDOU1NqOqnUdwyVrF+ojoCRUxPdzc2R0xXvqyRsjSoyRoCo7n82Fs/LWjPCin/QJNdwvA==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.17.2",
- "@restart/hooks": "^0.4.6",
- "@restart/ui": "^1.3.1",
- "@types/react-transition-group": "^4.4.4",
- "classnames": "^2.3.1",
- "dom-helpers": "^5.2.1",
- "invariant": "^2.2.4",
- "prop-types": "^15.8.1",
- "prop-types-extra": "^1.1.0",
- "react-transition-group": "^4.4.2",
- "uncontrollable": "^7.2.1",
- "warning": "^4.0.3"
- },
- "peerDependencies": {
- "@types/react": ">=16.14.8",
- "react": ">=16.14.0",
- "react-dom": ">=16.14.0"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- }
- }
- },
"node_modules/react-datepicker": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.8.0.tgz",
@@ -29667,6 +30759,19 @@
"react-dom": "^16.9.0 || ^17 || ^18"
}
},
+ "node_modules/react-day-picker": {
+ "version": "8.10.1",
+ "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.10.1.tgz",
+ "integrity": "sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==",
+ "funding": {
+ "type": "individual",
+ "url": "https://github.com/sponsors/gpbl"
+ },
+ "peerDependencies": {
+ "date-fns": "^2.28.0 || ^3.0.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
"node_modules/react-docgen": {
"version": "5.4.3",
"resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.4.3.tgz",
@@ -29841,6 +30946,7 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==",
+ "dev": true,
"license": "MIT"
},
"node_modules/react-onclickoutside": {
@@ -29907,6 +31013,51 @@
"node": ">=0.10.0"
}
},
+ "node_modules/react-remove-scroll": {
+ "version": "2.5.5",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz",
+ "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==",
+ "dependencies": {
+ "react-remove-scroll-bar": "^2.3.3",
+ "react-style-singleton": "^2.2.1",
+ "tslib": "^2.1.0",
+ "use-callback-ref": "^1.3.0",
+ "use-sidecar": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/react-remove-scroll-bar": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz",
+ "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==",
+ "dependencies": {
+ "react-style-singleton": "^2.2.1",
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-select": {
"version": "5.4.0",
"resolved": "https://registry.npmjs.org/react-select/-/react-select-5.4.0.tgz",
@@ -29945,6 +31096,28 @@
"prop-types": "^15.5.4"
}
},
+ "node_modules/react-style-singleton": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz",
+ "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==",
+ "dependencies": {
+ "get-nonce": "^1.0.0",
+ "invariant": "^2.2.4",
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/react-tooltip": {
"version": "5.15.0",
"resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.15.0.tgz",
@@ -30009,6 +31182,22 @@
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
+ "node_modules/read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "dependencies": {
+ "pify": "^2.3.0"
+ }
+ },
+ "node_modules/read-cache/node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/read-pkg": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
@@ -30132,7 +31321,6 @@
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"picomatch": "^2.2.1"
@@ -30621,12 +31809,11 @@
"license": "MIT"
},
"node_modules/resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
- "license": "MIT",
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"dependencies": {
- "is-core-module": "^2.9.0",
+ "is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
@@ -30749,7 +31936,6 @@
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true,
"license": "MIT",
"engines": {
"iojs": ">=1.0.0",
@@ -30927,7 +32113,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -32090,10 +33275,9 @@
}
},
"node_modules/source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
- "license": "BSD-3-Clause",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
"engines": {
"node": ">=0.10.0"
}
@@ -32751,14 +33935,10 @@
}
},
"node_modules/strict-event-emitter": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.4.tgz",
- "integrity": "sha512-xIqTLS5azUH1djSUsLH9DbP6UnM/nI18vu8d43JigCQEoVsnY+mrlE+qv6kYqs6/1OkMnMIiL6ffedQSZStuoQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "events": "^3.3.0"
- }
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.4.6.tgz",
+ "integrity": "sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==",
+ "dev": true
},
"node_modules/string_decoder": {
"version": "1.3.0",
@@ -32813,6 +33993,25 @@
"node": ">=8"
}
},
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
"node_modules/string-width/node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -32934,6 +34133,18 @@
"node": ">=8"
}
},
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -33071,6 +34282,50 @@
"react-dom": ">= 16.8.0"
}
},
+ "node_modules/styled-components/node_modules/nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/styled-components/node_modules/postcss": {
+ "version": "8.4.31",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+ "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.6",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
"node_modules/styled-components/node_modules/stylis": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz",
@@ -33121,14 +34376,13 @@
"license": "MIT"
},
"node_modules/sucrase": {
- "version": "3.25.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.25.0.tgz",
- "integrity": "sha512-WxTtwEYXSmZArPGStGBicyRsg5TBEFhT5b7N+tF+zauImP0Acy+CoUK0/byJ8JNPK/5lbpWIVuFagI4+0l85QQ==",
- "dev": true,
- "license": "MIT",
+ "version": "3.35.0",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
+ "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
"dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.2",
"commander": "^4.0.0",
- "glob": "7.1.6",
+ "glob": "^10.3.10",
"lines-and-columns": "^1.1.6",
"mz": "^2.7.0",
"pirates": "^4.0.1",
@@ -33139,35 +34393,90 @@
"sucrase-node": "bin/sucrase-node"
},
"engines": {
- "node": ">=8"
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/sucrase/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
}
},
"node_modules/sucrase/node_modules/commander": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
"integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 6"
}
},
+ "node_modules/sucrase/node_modules/foreground-child": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
+ "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/sucrase/node_modules/glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "dev": true,
- "license": "ISC",
+ "version": "10.4.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+ "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
"dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
},
"engines": {
- "node": "*"
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/sucrase/node_modules/minimatch": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+ "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/sucrase/node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/sucrase/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "engines": {
+ "node": ">=14"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -33277,6 +34586,142 @@
"integrity": "sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==",
"dev": true
},
+ "node_modules/tailwind-merge": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.3.0.tgz",
+ "integrity": "sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA==",
+ "dependencies": {
+ "@babel/runtime": "^7.24.1"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/dcastil"
+ }
+ },
+ "node_modules/tailwindcss": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz",
+ "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==",
+ "dependencies": {
+ "@alloc/quick-lru": "^5.2.0",
+ "arg": "^5.0.2",
+ "chokidar": "^3.5.3",
+ "didyoumean": "^1.2.2",
+ "dlv": "^1.1.3",
+ "fast-glob": "^3.3.0",
+ "glob-parent": "^6.0.2",
+ "is-glob": "^4.0.3",
+ "jiti": "^1.21.0",
+ "lilconfig": "^2.1.0",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "object-hash": "^3.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.23",
+ "postcss-import": "^15.1.0",
+ "postcss-js": "^4.0.1",
+ "postcss-load-config": "^4.0.1",
+ "postcss-nested": "^6.0.1",
+ "postcss-selector-parser": "^6.0.11",
+ "resolve": "^1.22.2",
+ "sucrase": "^3.32.0"
+ },
+ "bin": {
+ "tailwind": "lib/cli.js",
+ "tailwindcss": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/tailwindcss-animate": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz",
+ "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==",
+ "peerDependencies": {
+ "tailwindcss": ">=3.0.0 || insiders"
+ }
+ },
+ "node_modules/tailwindcss/node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
+ },
+ "node_modules/tailwindcss/node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/tailwindcss/node_modules/lilconfig": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
+ "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/tailwindcss/node_modules/postcss-load-config": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
+ "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "lilconfig": "^3.0.0",
+ "yaml": "^2.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ },
+ "peerDependencies": {
+ "postcss": ">=8.0.9",
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "postcss": {
+ "optional": true
+ },
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tailwindcss/node_modules/postcss-load-config/node_modules/lilconfig": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz",
+ "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antonk52"
+ }
+ },
+ "node_modules/tailwindcss/node_modules/yaml": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz",
+ "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==",
+ "bin": {
+ "yaml": "bin.mjs"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
"node_modules/tapable": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
@@ -33625,7 +35070,6 @@
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"any-promise": "^1.0.0"
@@ -33635,7 +35079,6 @@
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"thenify": ">= 3.1.0 < 4"
@@ -33691,19 +35134,6 @@
"node": ">=0.6.0"
}
},
- "node_modules/tiny-skeleton-loader-react": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/tiny-skeleton-loader-react/-/tiny-skeleton-loader-react-1.2.1.tgz",
- "integrity": "sha512-EtGljSHATQ7DA8Usng3KE/E1ZDYCy3Qnkqje3k4WVCmYVHtEq1DbgbQIQRVfn7OGYe4z8IDquOCBsQ6PVWydqg==",
- "engines": {
- "node": ">=8",
- "npm": ">=5"
- },
- "peerDependencies": {
- "react": "^16 || ^17 || ^18",
- "react-dom": "^16 || ^17 || ^18"
- }
- },
"node_modules/tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
@@ -33788,7 +35218,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
@@ -33930,14 +35359,13 @@
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dev": true,
"license": "Apache-2.0"
},
"node_modules/ts-node": {
"version": "10.8.2",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.2.tgz",
"integrity": "sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"dependencies": {
"@cspotcode/source-map-support": "^0.8.0",
@@ -34340,10 +35768,10 @@
}
},
"node_modules/typescript": {
- "version": "4.7.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
- "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
- "dev": true,
+ "version": "4.9.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+ "devOptional": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -34400,32 +35828,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/uncontrollable": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz",
- "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.6.3",
- "@types/react": ">=16.9.11",
- "invariant": "^2.2.4",
- "react-lifecycles-compat": "^3.0.4"
- },
- "peerDependencies": {
- "react": ">=15.0.0"
- }
- },
- "node_modules/uncontrollable/node_modules/@types/react": {
- "version": "18.0.17",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.17.tgz",
- "integrity": "sha512-38ETy4tL+rn4uQQi7mB81G7V1g0u2ryquNmsVIOKUAEIDK+3CUjZ6rSRpdvS99dNBnkLFL83qfmtLacGOTIhwQ==",
- "license": "MIT",
- "dependencies": {
- "@types/prop-types": "*",
- "@types/scheduler": "*",
- "csstype": "^3.0.2"
- }
- },
"node_modules/unfetch": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz",
@@ -34874,6 +36276,47 @@
"node": ">=0.10.0"
}
},
+ "node_modules/use-callback-ref": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz",
+ "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==",
+ "dependencies": {
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/use-sidecar": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz",
+ "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==",
+ "dependencies": {
+ "detect-node-es": "^1.1.0",
+ "tslib": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
"node_modules/util": {
"version": "0.10.4",
"resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
@@ -34946,7 +36389,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "dev": true,
+ "devOptional": true,
"license": "MIT"
},
"node_modules/v8-to-istanbul": {
@@ -35427,7 +36870,6 @@
"resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz",
"integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"util": "^0.12.3"
},
@@ -35436,17 +36878,15 @@
}
},
"node_modules/web-encoding/node_modules/util": {
- "version": "0.12.4",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz",
- "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==",
+ "version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
"is-generator-function": "^1.0.7",
"is-typed-array": "^1.1.3",
- "safe-buffer": "^5.1.2",
"which-typed-array": "^1.1.2"
}
},
@@ -36092,6 +37532,23 @@
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -36230,7 +37687,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "dev": true,
+ "devOptional": true,
"license": "MIT",
"engines": {
"node": ">=6"
@@ -36277,6 +37734,11 @@
}
},
"dependencies": {
+ "@alloc/quick-lru": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="
+ },
"@ampproject/remapping": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
@@ -38506,7 +39968,7 @@
"version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
- "dev": true,
+ "devOptional": true,
"requires": {
"@jridgewell/trace-mapping": "0.3.9"
},
@@ -38515,7 +39977,7 @@
"version": "0.3.9",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
- "dev": true,
+ "devOptional": true,
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
@@ -39169,6 +40631,14 @@
"@floating-ui/core": "^1.1.0"
}
},
+ "@floating-ui/react-dom": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.0.tgz",
+ "integrity": "sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==",
+ "requires": {
+ "@floating-ui/dom": "^1.0.0"
+ }
+ },
"@gar/promisify": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
@@ -39198,6 +40668,59 @@
"integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==",
"dev": true
},
+ "@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "requires": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="
+ },
+ "ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug=="
+ },
+ "string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "requires": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ },
+ "wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "requires": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ }
+ }
+ }
+ },
"@istanbuljs/load-nyc-config": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
@@ -39989,19 +41512,36 @@
}
},
"@mswjs/interceptors": {
- "version": "0.17.3",
- "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.3.tgz",
- "integrity": "sha512-jBRFPeHBPqKv3od8KPjmrvt4b/+e1DorizFDYJ8NQCrjFT9YGnxA8ojGi0MIo64x/JgdjYkhP8bG9EY4BGPoqg==",
+ "version": "0.17.10",
+ "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.10.tgz",
+ "integrity": "sha512-N8x7eSLGcmUFNWZRxT1vsHvypzIRgQYdG0rJey/rZCy6zT/30qDt8Joj7FxzGNLSwXbeZqJOMqDurp7ra4hgbw==",
"dev": true,
"requires": {
"@open-draft/until": "^1.0.3",
"@types/debug": "^4.1.7",
- "@xmldom/xmldom": "^0.7.5",
+ "@xmldom/xmldom": "^0.8.3",
"debug": "^4.3.3",
- "headers-polyfill": "^3.0.4",
+ "headers-polyfill": "3.2.5",
"outvariant": "^1.2.1",
"strict-event-emitter": "^0.2.4",
"web-encoding": "^1.1.5"
+ },
+ "dependencies": {
+ "headers-polyfill": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.2.5.tgz",
+ "integrity": "sha512-tUCGvt191vNSQgttSyJoibR+VO+I6+iCHIUdhzEMJKE+EAL8BwCN7fUOZlY4ofOelNHsK+gEjxB/B+9N3EWtdA==",
+ "dev": true
+ },
+ "strict-event-emitter": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.8.tgz",
+ "integrity": "sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==",
+ "dev": true,
+ "requires": {
+ "events": "^3.3.0"
+ }
+ }
}
},
"@next/bundle-analyzer": {
@@ -40101,7 +41641,6 @@
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
"integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
"requires": {
"@nodelib/fs.stat": "2.0.5",
"run-parallel": "^1.1.9"
@@ -40110,14 +41649,12 @@
"@nodelib/fs.stat": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
},
"@nodelib/fs.walk": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
"integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
"requires": {
"@nodelib/fs.scandir": "2.1.5",
"fastq": "^1.6.0"
@@ -40160,6 +41697,12 @@
"integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==",
"dev": true
},
+ "@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "optional": true
+ },
"@pmmmwh/react-refresh-webpack-plugin": {
"version": "0.5.10",
"resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz",
@@ -40253,12 +41796,473 @@
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz",
"integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw=="
},
- "@react-aria/ssr": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/@react-aria/ssr/-/ssr-3.3.0.tgz",
- "integrity": "sha512-yNqUDuOVZIUGP81R87BJVi/ZUZp/nYOBXbPsRe7oltJOfErQZD+UezMpw4vM2KRz18cURffvmC8tJ6JTeyDtaQ==",
+ "@radix-ui/number": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.0.1.tgz",
+ "integrity": "sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==",
+ "requires": {
+ "@babel/runtime": "^7.13.10"
+ }
+ },
+ "@radix-ui/primitive": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz",
+ "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==",
+ "requires": {
+ "@babel/runtime": "^7.13.10"
+ }
+ },
+ "@radix-ui/react-alert-dialog": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.0.5.tgz",
+ "integrity": "sha512-OrVIOcZL0tl6xibeuGt5/+UxoT2N27KCFOPjFyfXMnchxSHZ/OW7cCX2nGlIYJrbHK/fczPcFzAwvNBB6XBNMA==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-dialog": "1.0.5",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-slot": "1.0.2"
+ }
+ },
+ "@radix-ui/react-arrow": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz",
+ "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-primitive": "1.0.3"
+ }
+ },
+ "@radix-ui/react-collection": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.3.tgz",
+ "integrity": "sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-slot": "1.0.2"
+ }
+ },
+ "@radix-ui/react-compose-refs": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz",
+ "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==",
+ "requires": {
+ "@babel/runtime": "^7.13.10"
+ }
+ },
+ "@radix-ui/react-context": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz",
+ "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==",
+ "requires": {
+ "@babel/runtime": "^7.13.10"
+ }
+ },
+ "@radix-ui/react-dialog": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz",
+ "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-dismissable-layer": "1.0.5",
+ "@radix-ui/react-focus-guards": "1.0.1",
+ "@radix-ui/react-focus-scope": "1.0.4",
+ "@radix-ui/react-id": "1.0.1",
+ "@radix-ui/react-portal": "1.0.4",
+ "@radix-ui/react-presence": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-slot": "1.0.2",
+ "@radix-ui/react-use-controllable-state": "1.0.1",
+ "aria-hidden": "^1.1.1",
+ "react-remove-scroll": "2.5.5"
+ }
+ },
+ "@radix-ui/react-direction": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.1.tgz",
+ "integrity": "sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==",
+ "requires": {
+ "@babel/runtime": "^7.13.10"
+ }
+ },
+ "@radix-ui/react-dismissable-layer": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz",
+ "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-callback-ref": "1.0.1",
+ "@radix-ui/react-use-escape-keydown": "1.0.3"
+ }
+ },
+ "@radix-ui/react-dropdown-menu": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.6.tgz",
+ "integrity": "sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-id": "1.0.1",
+ "@radix-ui/react-menu": "2.0.6",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-controllable-state": "1.0.1"
+ }
+ },
+ "@radix-ui/react-focus-guards": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz",
+ "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==",
+ "requires": {
+ "@babel/runtime": "^7.13.10"
+ }
+ },
+ "@radix-ui/react-focus-scope": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz",
+ "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-callback-ref": "1.0.1"
+ }
+ },
+ "@radix-ui/react-icons": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz",
+ "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==",
+ "requires": {}
+ },
+ "@radix-ui/react-id": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz",
+ "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-use-layout-effect": "1.0.1"
+ }
+ },
+ "@radix-ui/react-label": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.0.2.tgz",
+ "integrity": "sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-primitive": "1.0.3"
+ }
+ },
+ "@radix-ui/react-menu": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.0.6.tgz",
+ "integrity": "sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-collection": "1.0.3",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-direction": "1.0.1",
+ "@radix-ui/react-dismissable-layer": "1.0.5",
+ "@radix-ui/react-focus-guards": "1.0.1",
+ "@radix-ui/react-focus-scope": "1.0.4",
+ "@radix-ui/react-id": "1.0.1",
+ "@radix-ui/react-popper": "1.1.3",
+ "@radix-ui/react-portal": "1.0.4",
+ "@radix-ui/react-presence": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-roving-focus": "1.0.4",
+ "@radix-ui/react-slot": "1.0.2",
+ "@radix-ui/react-use-callback-ref": "1.0.1",
+ "aria-hidden": "^1.1.1",
+ "react-remove-scroll": "2.5.5"
+ }
+ },
+ "@radix-ui/react-popper": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.3.tgz",
+ "integrity": "sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@floating-ui/react-dom": "^2.0.0",
+ "@radix-ui/react-arrow": "1.0.3",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-callback-ref": "1.0.1",
+ "@radix-ui/react-use-layout-effect": "1.0.1",
+ "@radix-ui/react-use-rect": "1.0.1",
+ "@radix-ui/react-use-size": "1.0.1",
+ "@radix-ui/rect": "1.0.1"
+ }
+ },
+ "@radix-ui/react-portal": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz",
+ "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-primitive": "1.0.3"
+ }
+ },
+ "@radix-ui/react-presence": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz",
+ "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-use-layout-effect": "1.0.1"
+ }
+ },
+ "@radix-ui/react-primitive": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz",
+ "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-slot": "1.0.2"
+ }
+ },
+ "@radix-ui/react-roving-focus": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz",
+ "integrity": "sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-collection": "1.0.3",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-direction": "1.0.1",
+ "@radix-ui/react-id": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-callback-ref": "1.0.1",
+ "@radix-ui/react-use-controllable-state": "1.0.1"
+ }
+ },
+ "@radix-ui/react-scroll-area": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.0.5.tgz",
+ "integrity": "sha512-b6PAgH4GQf9QEn8zbT2XUHpW5z8BzqEc7Kl11TwDrvuTrxlkcjTD5qa/bxgKr+nmuXKu4L/W5UZ4mlP/VG/5Gw==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/number": "1.0.1",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-direction": "1.0.1",
+ "@radix-ui/react-presence": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-callback-ref": "1.0.1",
+ "@radix-ui/react-use-layout-effect": "1.0.1"
+ }
+ },
+ "@radix-ui/react-select": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.0.0.tgz",
+ "integrity": "sha512-RH5b7af4oHtkcHS7pG6Sgv5rk5Wxa7XI8W5gvB1N/yiuDGZxko1ynvOiVhFM7Cis2A8zxF9bTOUVbRDzPepe6w==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/number": "1.0.1",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-collection": "1.0.3",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-direction": "1.0.1",
+ "@radix-ui/react-dismissable-layer": "1.0.5",
+ "@radix-ui/react-focus-guards": "1.0.1",
+ "@radix-ui/react-focus-scope": "1.0.4",
+ "@radix-ui/react-id": "1.0.1",
+ "@radix-ui/react-popper": "1.1.3",
+ "@radix-ui/react-portal": "1.0.4",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-slot": "1.0.2",
+ "@radix-ui/react-use-callback-ref": "1.0.1",
+ "@radix-ui/react-use-controllable-state": "1.0.1",
+ "@radix-ui/react-use-layout-effect": "1.0.1",
+ "@radix-ui/react-use-previous": "1.0.1",
+ "@radix-ui/react-visually-hidden": "1.0.3",
+ "aria-hidden": "^1.1.1",
+ "react-remove-scroll": "2.5.5"
+ }
+ },
+ "@radix-ui/react-separator": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.0.3.tgz",
+ "integrity": "sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-primitive": "1.0.3"
+ }
+ },
+ "@radix-ui/react-slot": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz",
+ "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-compose-refs": "1.0.1"
+ }
+ },
+ "@radix-ui/react-switch": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.0.3.tgz",
+ "integrity": "sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-controllable-state": "1.0.1",
+ "@radix-ui/react-use-previous": "1.0.1",
+ "@radix-ui/react-use-size": "1.0.1"
+ }
+ },
+ "@radix-ui/react-tabs": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.0.4.tgz",
+ "integrity": "sha512-egZfYY/+wRNCflXNHx+dePvnz9FbmssDTJBtgRfDY7e8SE5oIo3Py2eCB1ckAbh1Q7cQ/6yJZThJ++sgbxibog==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-direction": "1.0.1",
+ "@radix-ui/react-id": "1.0.1",
+ "@radix-ui/react-presence": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-roving-focus": "1.0.4",
+ "@radix-ui/react-use-controllable-state": "1.0.1"
+ }
+ },
+ "@radix-ui/react-toast": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.1.5.tgz",
+ "integrity": "sha512-fRLn227WHIBRSzuRzGJ8W+5YALxofH23y0MlPLddaIpLpCDqdE0NZlS2NRQDRiptfxDeeCjgFIpexB1/zkxDlw==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-collection": "1.0.3",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-dismissable-layer": "1.0.5",
+ "@radix-ui/react-portal": "1.0.4",
+ "@radix-ui/react-presence": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-use-callback-ref": "1.0.1",
+ "@radix-ui/react-use-controllable-state": "1.0.1",
+ "@radix-ui/react-use-layout-effect": "1.0.1",
+ "@radix-ui/react-visually-hidden": "1.0.3"
+ }
+ },
+ "@radix-ui/react-tooltip": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.0.7.tgz",
+ "integrity": "sha512-lPh5iKNFVQ/jav/j6ZrWq3blfDJ0OH9R6FlNUHPMqdLuQ9vwDgFsRxvl8b7Asuy5c8xmoojHUxKHQSOAvMHxyw==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/primitive": "1.0.1",
+ "@radix-ui/react-compose-refs": "1.0.1",
+ "@radix-ui/react-context": "1.0.1",
+ "@radix-ui/react-dismissable-layer": "1.0.5",
+ "@radix-ui/react-id": "1.0.1",
+ "@radix-ui/react-popper": "1.1.3",
+ "@radix-ui/react-portal": "1.0.4",
+ "@radix-ui/react-presence": "1.0.1",
+ "@radix-ui/react-primitive": "1.0.3",
+ "@radix-ui/react-slot": "1.0.2",
+ "@radix-ui/react-use-controllable-state": "1.0.1",
+ "@radix-ui/react-visually-hidden": "1.0.3"
+ }
+ },
+ "@radix-ui/react-use-callback-ref": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz",
+ "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==",
+ "requires": {
+ "@babel/runtime": "^7.13.10"
+ }
+ },
+ "@radix-ui/react-use-controllable-state": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz",
+ "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-use-callback-ref": "1.0.1"
+ }
+ },
+ "@radix-ui/react-use-escape-keydown": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz",
+ "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-use-callback-ref": "1.0.1"
+ }
+ },
+ "@radix-ui/react-use-layout-effect": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz",
+ "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==",
+ "requires": {
+ "@babel/runtime": "^7.13.10"
+ }
+ },
+ "@radix-ui/react-use-previous": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.0.1.tgz",
+ "integrity": "sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==",
+ "requires": {
+ "@babel/runtime": "^7.13.10"
+ }
+ },
+ "@radix-ui/react-use-rect": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz",
+ "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/rect": "1.0.1"
+ }
+ },
+ "@radix-ui/react-use-size": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz",
+ "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==",
+ "requires": {
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-use-layout-effect": "1.0.1"
+ }
+ },
+ "@radix-ui/react-visually-hidden": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz",
+ "integrity": "sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==",
"requires": {
- "@babel/runtime": "^7.6.2"
+ "@babel/runtime": "^7.13.10",
+ "@radix-ui/react-primitive": "1.0.3"
+ }
+ },
+ "@radix-ui/rect": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz",
+ "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==",
+ "requires": {
+ "@babel/runtime": "^7.13.10"
}
},
"@redis/bloom": {
@@ -40301,30 +42305,6 @@
"integrity": "sha512-ThUIgo2U/g7cCuZavucQTQzA9g9JbDDY2f64u3AbAoz/8vE2lt2U37LamDUVChhaDA3IRT9R6VvJwqnUfTJzng==",
"requires": {}
},
- "@restart/hooks": {
- "version": "0.4.7",
- "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.4.7.tgz",
- "integrity": "sha512-ZbjlEHcG+FQtpDPHd7i4FzNNvJf2enAwZfJbpM8CW7BhmOAbsHpZe3tsHwfQUrBuyrxWqPYp2x5UMnilWcY22A==",
- "requires": {
- "dequal": "^2.0.2"
- }
- },
- "@restart/ui": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/@restart/ui/-/ui-1.3.1.tgz",
- "integrity": "sha512-MYvMs2eeZTHu2dBJHOXKx72vxzEZeWbZx2z1QjeXq62iYjpjIyukBC2ZEy8x+sb9Gl0AiOiHkPXrl1wn95aOGQ==",
- "requires": {
- "@babel/runtime": "^7.18.3",
- "@popperjs/core": "^2.11.5",
- "@react-aria/ssr": "^3.2.0",
- "@restart/hooks": "^0.4.7",
- "@types/warning": "^3.0.0",
- "dequal": "^2.0.2",
- "dom-helpers": "^5.2.0",
- "uncontrollable": "^7.2.1",
- "warning": "^4.0.3"
- }
- },
"@rollup/pluginutils": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
@@ -41102,6 +43082,21 @@
"color-convert": "^1.9.0"
}
},
+ "autoprefixer": {
+ "version": "9.8.8",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz",
+ "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==",
+ "dev": true,
+ "requires": {
+ "browserslist": "^4.12.0",
+ "caniuse-lite": "^1.0.30001109",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "picocolors": "^0.2.1",
+ "postcss": "^7.0.32",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
"braces": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
@@ -44491,25 +46486,25 @@
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
"integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
- "dev": true
+ "devOptional": true
},
"@tsconfig/node12": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
"integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
- "dev": true
+ "devOptional": true
},
"@tsconfig/node14": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
"integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
- "dev": true
+ "devOptional": true
},
"@tsconfig/node16": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
"integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
- "dev": true
+ "devOptional": true
},
"@types/aria-query": {
"version": "4.2.2",
@@ -44571,9 +46566,9 @@
"dev": true
},
"@types/debug": {
- "version": "4.1.7",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz",
- "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==",
+ "version": "4.1.12",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
+ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
"dev": true,
"requires": {
"@types/ms": "*"
@@ -44849,9 +46844,9 @@
"dev": true
},
"@types/ms": {
- "version": "0.7.31",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz",
- "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==",
+ "version": "0.7.34",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
+ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==",
"dev": true
},
"@types/node": {
@@ -44996,7 +46991,7 @@
"version": "18.0.6",
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.6.tgz",
"integrity": "sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==",
- "dev": true,
+ "devOptional": true,
"requires": {
"@types/react": "*"
}
@@ -45087,11 +47082,6 @@
"integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==",
"dev": true
},
- "@types/warning": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz",
- "integrity": "sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA=="
- },
"@types/webpack": {
"version": "4.41.33",
"resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.33.tgz",
@@ -45559,9 +47549,9 @@
}
},
"@xmldom/xmldom": {
- "version": "0.7.9",
- "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.9.tgz",
- "integrity": "sha512-yceMpm/xd4W2a85iqZyO09gTnHvXF6pyiWjD2jcOJs7hRoZtNNOO1eJlhHj1ixA+xip2hOyGn+LgcvLCMo5zXA==",
+ "version": "0.8.10",
+ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz",
+ "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==",
"dev": true
},
"@xobotyi/scrollbar-width": {
@@ -45621,7 +47611,7 @@
"version": "8.9.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz",
"integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==",
- "dev": true
+ "devOptional": true
},
"acorn-globals": {
"version": "6.0.0",
@@ -45665,7 +47655,7 @@
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
- "dev": true
+ "devOptional": true
},
"add-stream": {
"version": "1.0.0",
@@ -45795,7 +47785,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
"requires": {
"color-convert": "^2.0.1"
}
@@ -45820,14 +47809,12 @@
"any-promise": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dev": true
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
},
"anymatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
"integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dev": true,
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -45857,7 +47844,7 @@
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true
+ "devOptional": true
},
"argparse": {
"version": "2.0.1",
@@ -45865,6 +47852,14 @@
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"dev": true
},
+ "aria-hidden": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz",
+ "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==",
+ "requires": {
+ "tslib": "^2.0.0"
+ }
+ },
"aria-query": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz",
@@ -46121,36 +48116,17 @@
"integrity": "sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg=="
},
"autoprefixer": {
- "version": "9.8.8",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz",
- "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==",
+ "version": "10.4.19",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz",
+ "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==",
"dev": true,
"requires": {
- "browserslist": "^4.12.0",
- "caniuse-lite": "^1.0.30001109",
+ "browserslist": "^4.23.0",
+ "caniuse-lite": "^1.0.30001599",
+ "fraction.js": "^4.3.7",
"normalize-range": "^0.1.2",
- "num2fraction": "^1.2.2",
- "picocolors": "^0.2.1",
- "postcss": "^7.0.32",
- "postcss-value-parser": "^4.1.0"
- },
- "dependencies": {
- "picocolors": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
- "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
- "dev": true
- },
- "postcss": {
- "version": "7.0.39",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
- "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
- "dev": true,
- "requires": {
- "picocolors": "^0.2.1",
- "source-map": "^0.6.1"
- }
- }
+ "picocolors": "^1.0.0",
+ "postcss-value-parser": "^4.2.0"
}
},
"available-typed-arrays": {
@@ -46495,8 +48471,7 @@
"binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
},
"bindings": {
"version": "1.5.0",
@@ -46654,7 +48629,6 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
"requires": {
"fill-range": "^7.0.1"
}
@@ -47064,8 +49038,7 @@
"camelcase-css": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
- "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
- "dev": true
+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="
},
"camelcase-keys": {
"version": "6.2.2",
@@ -47202,7 +49175,6 @@
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
"requires": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -47342,6 +49314,21 @@
"validator": "^13.7.0"
}
},
+ "class-variance-authority": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz",
+ "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==",
+ "requires": {
+ "clsx": "2.0.0"
+ },
+ "dependencies": {
+ "clsx": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz",
+ "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q=="
+ }
+ }
+ },
"classnames": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
@@ -47478,11 +49465,25 @@
"shallow-clone": "^3.0.0"
}
},
+ "clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="
+ },
"cluster-key-slot": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.1.tgz",
"integrity": "sha512-rwHwUfXL40Chm1r08yrhU3qpUvdVlgkKNeyeGPOxnW8/SyVDvgRaed/Uz54AqWNaTCAThlj6QAs3TZcKI0xDEw=="
},
+ "cmdk": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.0.0.tgz",
+ "integrity": "sha512-gDzVf0a09TvoJ5jnuPvygTB77+XdOSwEmJ88L6XPFPlv7T3RxbP9jgenfylrAMD0+Le1aO0nVjQUzl2g+vjz5Q==",
+ "requires": {
+ "@radix-ui/react-dialog": "1.0.5",
+ "@radix-ui/react-primitive": "1.0.3"
+ }
+ },
"co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -47539,7 +49540,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
"requires": {
"color-name": "~1.1.4"
}
@@ -47901,15 +49901,6 @@
"through2": "^4.0.0"
},
"dependencies": {
- "is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
"normalize-package-data": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
@@ -48498,7 +50489,7 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true
+ "devOptional": true
},
"cross-env": {
"version": "7.0.3",
@@ -48692,8 +50683,7 @@
"cssesc": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
},
"cssnano": {
"version": "5.1.15",
@@ -48905,9 +50895,12 @@
}
},
"date-fns": {
- "version": "2.29.3",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz",
- "integrity": "sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA=="
+ "version": "2.30.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz",
+ "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==",
+ "requires": {
+ "@babel/runtime": "^7.21.0"
+ }
},
"dateformat": {
"version": "3.0.3",
@@ -49274,11 +51267,6 @@
"integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
"dev": true
},
- "dequal": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
- "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA=="
- },
"des.js": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz",
@@ -49327,6 +51315,11 @@
"integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
"dev": true
},
+ "detect-node-es": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz",
+ "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ=="
+ },
"detect-package-manager": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-2.0.1.tgz",
@@ -49401,11 +51394,16 @@
"wrappy": "1"
}
},
+ "didyoumean": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw=="
+ },
"diff": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true
+ "devOptional": true
},
"diff-sequences": {
"version": "29.0.0",
@@ -49441,6 +51439,11 @@
"path-type": "^4.0.0"
}
},
+ "dlv": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
+ },
"doctrine": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
@@ -49672,8 +51675,7 @@
"eastasianwidth": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
},
"ecdsa-sig-formatter": {
"version": "1.0.11",
@@ -49726,8 +51728,7 @@
"emoji-regex": {
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
},
"emojis-list": {
"version": "3.0.0",
@@ -51123,10 +53124,9 @@
"dev": true
},
"fast-glob": {
- "version": "3.2.11",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
- "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
- "dev": true,
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
"requires": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
@@ -51167,7 +53167,6 @@
"version": "1.13.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
"integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
- "dev": true,
"requires": {
"reusify": "^1.0.4"
}
@@ -51310,7 +53309,6 @@
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
"requires": {
"to-regex-range": "^5.0.1"
}
@@ -51674,6 +53672,12 @@
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"dev": true
},
+ "fraction.js": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
+ "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
+ "dev": true
+ },
"fragment-cache": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
@@ -51813,7 +53817,6 @@
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
"optional": true
},
"function-bind": {
@@ -51912,6 +53915,11 @@
"hasown": "^2.0.0"
}
},
+ "get-nonce": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz",
+ "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q=="
+ },
"get-package-type": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
@@ -52118,7 +54126,6 @@
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
"requires": {
"is-glob": "^4.0.1"
}
@@ -52562,9 +54569,9 @@
}
},
"headers-polyfill": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.0.10.tgz",
- "integrity": "sha512-lOhQU7iG3AMcjmb8NIWCa+KwfJw5bY44BoWPtrj5A4iDbSD3ylGf5QcYr0ZyQnhkKQ2GgWNLdF2rfrXtXlF3nQ==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.3.0.tgz",
+ "integrity": "sha512-5e57etwBpNcDc0b6KCVWEh/Ro063OxPvzVimUdM0/tsYM/T7Hfy3kknIGj78SFTOhNd8AZY41U8mOHoO4LzmIQ==",
"dev": true
},
"hexoid": {
@@ -53092,7 +55099,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
"requires": {
"binary-extensions": "^2.0.0"
}
@@ -53135,11 +55141,11 @@
}
},
"is-core-module": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
- "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"requires": {
- "has": "^1.0.3"
+ "hasown": "^2.0.0"
}
},
"is-data-descriptor": {
@@ -53203,8 +55209,7 @@
"is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
},
"is-finite": {
"version": "1.1.0",
@@ -53243,7 +55248,6 @@
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
"integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
"requires": {
"is-extglob": "^2.1.1"
}
@@ -53280,8 +55284,7 @@
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
},
"is-number-object": {
"version": "1.0.7",
@@ -53551,6 +55554,15 @@
"iterate-iterator": "^1.0.1"
}
},
+ "jackspeak": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz",
+ "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==",
+ "requires": {
+ "@isaacs/cliui": "^8.0.2",
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
"jest": {
"version": "29.0.3",
"resolved": "https://registry.npmjs.org/jest/-/jest-29.0.3.tgz",
@@ -54105,8 +56117,7 @@
"jiti": {
"version": "1.21.0",
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz",
- "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==",
- "dev": true
+ "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q=="
},
"joycon": {
"version": "3.1.1",
@@ -54818,7 +56829,7 @@
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true
+ "devOptional": true
},
"makeerror": {
"version": "1.0.12",
@@ -55031,15 +57042,6 @@
"yargs-parser": "^20.2.3"
},
"dependencies": {
- "is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
"normalize-package-data": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
@@ -55152,8 +57154,7 @@
"merge2": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "dev": true
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
},
"methods": {
"version": "1.1.2",
@@ -55171,7 +57172,6 @@
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
- "dev": true,
"requires": {
"braces": "^3.0.2",
"picomatch": "^2.3.1"
@@ -55482,30 +57482,29 @@
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"msw": {
- "version": "0.44.2",
- "resolved": "https://registry.npmjs.org/msw/-/msw-0.44.2.tgz",
- "integrity": "sha512-u8wjzzcMWouoZtuIShCwx4M3wFF5sBAV1f8K4a0WX8kiihFjzl89IKE1VYmTclLyMIwpOq8qQ1HTpuh2BFX/3A==",
+ "version": "0.49.3",
+ "resolved": "https://registry.npmjs.org/msw/-/msw-0.49.3.tgz",
+ "integrity": "sha512-kRCbDNbNnRq5LC1H/NUceZlrPAvSrMH6Or0mirIuH69NY84xwDruPn/hkXTovIK1KwDwbk+ZdoSyJlpiekLxEA==",
"dev": true,
"requires": {
"@mswjs/cookies": "^0.2.2",
- "@mswjs/interceptors": "^0.17.2",
+ "@mswjs/interceptors": "^0.17.5",
"@open-draft/until": "^1.0.3",
"@types/cookie": "^0.4.1",
"@types/js-levenshtein": "^1.1.1",
"chalk": "4.1.1",
"chokidar": "^3.4.2",
"cookie": "^0.4.2",
- "graphql": "^16.3.0",
- "headers-polyfill": "^3.0.4",
+ "graphql": "^15.0.0 || ^16.0.0",
+ "headers-polyfill": "^3.1.0",
"inquirer": "^8.2.0",
"is-node-process": "^1.0.1",
"js-levenshtein": "^1.1.6",
"node-fetch": "^2.6.7",
"outvariant": "^1.3.0",
"path-to-regexp": "^6.2.0",
- "statuses": "^2.0.0",
- "strict-event-emitter": "^0.2.0",
- "type-fest": "^1.2.2",
+ "strict-event-emitter": "^0.4.3",
+ "type-fest": "^2.19.0",
"yargs": "^17.3.1"
},
"dependencies": {
@@ -55519,6 +57518,12 @@
"supports-color": "^7.1.0"
}
},
+ "type-fest": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
+ "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
+ "dev": true
+ },
"yargs": {
"version": "17.5.1",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
@@ -55579,7 +57584,6 @@
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dev": true,
"requires": {
"any-promise": "^1.0.0",
"object-assign": "^4.0.1",
@@ -55986,8 +57990,7 @@
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
},
"normalize-range": {
"version": "0.1.2",
@@ -56126,6 +58129,11 @@
}
}
},
+ "object-hash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="
+ },
"object-inspect": {
"version": "1.13.1",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
@@ -56365,9 +58373,9 @@
"dev": true
},
"outvariant": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.3.0.tgz",
- "integrity": "sha512-yeWM9k6UPfG/nzxdaPlJkB2p08hCg4xP6Lx99F+vP8YF7xyZVfTmJjrrNalkmzudD4WFvNLVudQikqUmF8zhVQ==",
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.2.tgz",
+ "integrity": "sha512-Ou3dJ6bA/UJ5GVHxah4LnqDwZRwAmWxrG3wtrHrbGnP4RnLCtA64A4F+ae7Y8ww660JaddSoArUR5HjipWSHAQ==",
"dev": true
},
"p-all": {
@@ -56718,6 +58726,27 @@
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
+ "path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "requires": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "10.2.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz",
+ "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ=="
+ },
+ "minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="
+ }
+ }
+ },
"path-to-regexp": {
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
@@ -56874,8 +58903,7 @@
"picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
},
"pidtree": {
"version": "0.6.0",
@@ -56909,8 +58937,7 @@
"pirates": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
- "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
- "dev": true
+ "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ=="
},
"pkg-dir": {
"version": "4.2.0",
@@ -57000,19 +59027,19 @@
"dev": true
},
"postcss": {
- "version": "8.4.31",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
- "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "version": "8.4.38",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+ "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
"requires": {
- "nanoid": "^3.3.6",
+ "nanoid": "^3.3.7",
"picocolors": "^1.0.0",
- "source-map-js": "^1.0.2"
+ "source-map-js": "^1.2.0"
},
"dependencies": {
"nanoid": {
- "version": "3.3.6",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
- "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="
}
}
},
@@ -57103,6 +59130,24 @@
}
}
},
+ "postcss-import": {
+ "version": "15.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
+ "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
+ "requires": {
+ "postcss-value-parser": "^4.0.0",
+ "read-cache": "^1.0.0",
+ "resolve": "^1.1.7"
+ }
+ },
+ "postcss-js": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
+ "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
+ "requires": {
+ "camelcase-css": "^2.0.1"
+ }
+ },
"postcss-load-config": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz",
@@ -57381,6 +59426,14 @@
}
}
},
+ "postcss-nested": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
+ "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.11"
+ }
+ },
"postcss-normalize-charset": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
@@ -57503,7 +59556,6 @@
"version": "6.0.13",
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
"integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
- "dev": true,
"requires": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -57731,22 +59783,6 @@
}
}
},
- "prop-types-extra": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz",
- "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==",
- "requires": {
- "react-is": "^16.3.2",
- "warning": "^4.0.0"
- },
- "dependencies": {
- "react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
- }
- }
- },
"property-information": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz",
@@ -57882,8 +59918,7 @@
"queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
},
"quick-lru": {
"version": "4.0.1",
@@ -58042,25 +60077,6 @@
"object-assign": "^4.1.0"
}
},
- "react-bootstrap": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-2.5.0.tgz",
- "integrity": "sha512-j/aLR+okzbYk61TM3eDOU1NqOqnUdwyVrF+ojoCRUxPdzc2R0xXvqyRsjSoyRoCo7n82Fs/LWjPCin/QJNdwvA==",
- "requires": {
- "@babel/runtime": "^7.17.2",
- "@restart/hooks": "^0.4.6",
- "@restart/ui": "^1.3.1",
- "@types/react-transition-group": "^4.4.4",
- "classnames": "^2.3.1",
- "dom-helpers": "^5.2.1",
- "invariant": "^2.2.4",
- "prop-types": "^15.8.1",
- "prop-types-extra": "^1.1.0",
- "react-transition-group": "^4.4.2",
- "uncontrollable": "^7.2.1",
- "warning": "^4.0.3"
- }
- },
"react-datepicker": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-4.8.0.tgz",
@@ -58074,6 +60090,12 @@
"react-popper": "^2.2.5"
}
},
+ "react-day-picker": {
+ "version": "8.10.1",
+ "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.10.1.tgz",
+ "integrity": "sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==",
+ "requires": {}
+ },
"react-docgen": {
"version": "5.4.3",
"resolved": "https://registry.npmjs.org/react-docgen/-/react-docgen-5.4.3.tgz",
@@ -58197,7 +60219,8 @@
"react-lifecycles-compat": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
- "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
+ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==",
+ "dev": true
},
"react-onclickoutside": {
"version": "6.12.2",
@@ -58238,6 +60261,27 @@
"integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==",
"dev": true
},
+ "react-remove-scroll": {
+ "version": "2.5.5",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz",
+ "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==",
+ "requires": {
+ "react-remove-scroll-bar": "^2.3.3",
+ "react-style-singleton": "^2.2.1",
+ "tslib": "^2.1.0",
+ "use-callback-ref": "^1.3.0",
+ "use-sidecar": "^1.1.2"
+ }
+ },
+ "react-remove-scroll-bar": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz",
+ "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==",
+ "requires": {
+ "react-style-singleton": "^2.2.1",
+ "tslib": "^2.0.0"
+ }
+ },
"react-select": {
"version": "5.4.0",
"resolved": "https://registry.npmjs.org/react-select/-/react-select-5.4.0.tgz",
@@ -58267,6 +60311,16 @@
"prop-types": "^15.5.4"
}
},
+ "react-style-singleton": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz",
+ "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==",
+ "requires": {
+ "get-nonce": "^1.0.0",
+ "invariant": "^2.2.4",
+ "tslib": "^2.0.0"
+ }
+ },
"react-tooltip": {
"version": "5.15.0",
"resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.15.0.tgz",
@@ -58314,6 +60368,21 @@
"tslib": "^2.1.0"
}
},
+ "read-cache": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
+ "requires": {
+ "pify": "^2.3.0"
+ },
+ "dependencies": {
+ "pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
+ }
+ }
+ },
"read-pkg": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
@@ -58405,7 +60474,6 @@
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
"requires": {
"picomatch": "^2.2.1"
}
@@ -58775,11 +60843,11 @@
"integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
},
"resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
"requires": {
- "is-core-module": "^2.9.0",
+ "is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
}
@@ -58861,8 +60929,7 @@
"reusify": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
},
"rfdc": {
"version": "1.3.0",
@@ -59003,7 +61070,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
"integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
"requires": {
"queue-microtask": "^1.2.2"
}
@@ -59908,9 +61974,9 @@
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
},
"source-map-js": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
- "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg=="
},
"source-map-resolve": {
"version": "0.6.0",
@@ -60436,13 +62502,10 @@
"integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg=="
},
"strict-event-emitter": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.4.tgz",
- "integrity": "sha512-xIqTLS5azUH1djSUsLH9DbP6UnM/nI18vu8d43JigCQEoVsnY+mrlE+qv6kYqs6/1OkMnMIiL6ffedQSZStuoQ==",
- "dev": true,
- "requires": {
- "events": "^3.3.0"
- }
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.4.6.tgz",
+ "integrity": "sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==",
+ "dev": true
},
"string_decoder": {
"version": "1.3.0",
@@ -60491,6 +62554,23 @@
}
}
},
+ "string-width-cjs": {
+ "version": "npm:string-width@4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "dependencies": {
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ }
+ }
+ },
"string.prototype.matchall": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz",
@@ -60573,6 +62653,14 @@
"ansi-regex": "^5.0.1"
}
},
+ "strip-ansi-cjs": {
+ "version": "npm:strip-ansi@6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
"strip-bom": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
@@ -60659,6 +62747,21 @@
"tslib": "2.5.0"
},
"dependencies": {
+ "nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="
+ },
+ "postcss": {
+ "version": "8.4.31",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+ "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
+ "requires": {
+ "nanoid": "^3.3.6",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ }
+ },
"stylis": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz",
@@ -60690,38 +62793,70 @@
"integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag=="
},
"sucrase": {
- "version": "3.25.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.25.0.tgz",
- "integrity": "sha512-WxTtwEYXSmZArPGStGBicyRsg5TBEFhT5b7N+tF+zauImP0Acy+CoUK0/byJ8JNPK/5lbpWIVuFagI4+0l85QQ==",
- "dev": true,
+ "version": "3.35.0",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
+ "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
"requires": {
+ "@jridgewell/gen-mapping": "^0.3.2",
"commander": "^4.0.0",
- "glob": "7.1.6",
+ "glob": "^10.3.10",
"lines-and-columns": "^1.1.6",
"mz": "^2.7.0",
"pirates": "^4.0.1",
"ts-interface-checker": "^0.1.9"
},
"dependencies": {
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
"commander": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "dev": true
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA=="
+ },
+ "foreground-child": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz",
+ "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==",
+ "requires": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ }
},
"glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "dev": true,
+ "version": "10.4.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+ "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
"requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "path-scurry": "^1.11.1"
+ }
+ },
+ "minimatch": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+ "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+ "requires": {
+ "brace-expansion": "^2.0.1"
}
+ },
+ "minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw=="
+ },
+ "signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw=="
}
}
},
@@ -60800,6 +62935,90 @@
"integrity": "sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==",
"dev": true
},
+ "tailwind-merge": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.3.0.tgz",
+ "integrity": "sha512-vkYrLpIP+lgR0tQCG6AP7zZXCTLc1Lnv/CCRT3BqJ9CZ3ui2++GPaGb1x/ILsINIMSYqqvrpqjUFsMNLlW99EA==",
+ "requires": {
+ "@babel/runtime": "^7.24.1"
+ }
+ },
+ "tailwindcss": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz",
+ "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==",
+ "requires": {
+ "@alloc/quick-lru": "^5.2.0",
+ "arg": "^5.0.2",
+ "chokidar": "^3.5.3",
+ "didyoumean": "^1.2.2",
+ "dlv": "^1.1.3",
+ "fast-glob": "^3.3.0",
+ "glob-parent": "^6.0.2",
+ "is-glob": "^4.0.3",
+ "jiti": "^1.21.0",
+ "lilconfig": "^2.1.0",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "object-hash": "^3.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.23",
+ "postcss-import": "^15.1.0",
+ "postcss-js": "^4.0.1",
+ "postcss-load-config": "^4.0.1",
+ "postcss-nested": "^6.0.1",
+ "postcss-selector-parser": "^6.0.11",
+ "resolve": "^1.22.2",
+ "sucrase": "^3.32.0"
+ },
+ "dependencies": {
+ "arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
+ },
+ "glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "requires": {
+ "is-glob": "^4.0.3"
+ }
+ },
+ "lilconfig": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
+ "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ=="
+ },
+ "postcss-load-config": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
+ "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==",
+ "requires": {
+ "lilconfig": "^3.0.0",
+ "yaml": "^2.3.4"
+ },
+ "dependencies": {
+ "lilconfig": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz",
+ "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ=="
+ }
+ }
+ },
+ "yaml": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz",
+ "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA=="
+ }
+ }
+ },
+ "tailwindcss-animate": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz",
+ "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==",
+ "requires": {}
+ },
"tapable": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
@@ -61069,7 +63288,6 @@
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "dev": true,
"requires": {
"any-promise": "^1.0.0"
}
@@ -61078,7 +63296,6 @@
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "dev": true,
"requires": {
"thenify": ">= 3.1.0 < 4"
}
@@ -61117,12 +63334,6 @@
"setimmediate": "^1.0.4"
}
},
- "tiny-skeleton-loader-react": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/tiny-skeleton-loader-react/-/tiny-skeleton-loader-react-1.2.1.tgz",
- "integrity": "sha512-EtGljSHATQ7DA8Usng3KE/E1ZDYCy3Qnkqje3k4WVCmYVHtEq1DbgbQIQRVfn7OGYe4z8IDquOCBsQ6PVWydqg==",
- "requires": {}
- },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
@@ -61191,7 +63402,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
"requires": {
"is-number": "^7.0.0"
}
@@ -61290,14 +63500,13 @@
"ts-interface-checker": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dev": true
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
},
"ts-node": {
"version": "10.8.2",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.2.tgz",
"integrity": "sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==",
- "dev": true,
+ "devOptional": true,
"requires": {
"@cspotcode/source-map-support": "^0.8.0",
"@tsconfig/node10": "^1.0.7",
@@ -61566,10 +63775,10 @@
}
},
"typescript": {
- "version": "4.7.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
- "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
- "dev": true
+ "version": "4.9.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+ "devOptional": true
},
"ua-parser-js": {
"version": "0.7.35",
@@ -61595,29 +63804,6 @@
"which-boxed-primitive": "^1.0.2"
}
},
- "uncontrollable": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz",
- "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==",
- "requires": {
- "@babel/runtime": "^7.6.3",
- "@types/react": ">=16.9.11",
- "invariant": "^2.2.4",
- "react-lifecycles-compat": "^3.0.4"
- },
- "dependencies": {
- "@types/react": {
- "version": "18.0.17",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.17.tgz",
- "integrity": "sha512-38ETy4tL+rn4uQQi7mB81G7V1g0u2ryquNmsVIOKUAEIDK+3CUjZ6rSRpdvS99dNBnkLFL83qfmtLacGOTIhwQ==",
- "requires": {
- "@types/prop-types": "*",
- "@types/scheduler": "*",
- "csstype": "^3.0.2"
- }
- }
- }
- },
"unfetch": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz",
@@ -61942,6 +64128,23 @@
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
"dev": true
},
+ "use-callback-ref": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz",
+ "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==",
+ "requires": {
+ "tslib": "^2.0.0"
+ }
+ },
+ "use-sidecar": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz",
+ "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==",
+ "requires": {
+ "detect-node-es": "^1.1.0",
+ "tslib": "^2.0.0"
+ }
+ },
"util": {
"version": "0.10.4",
"resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
@@ -62005,7 +64208,7 @@
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "dev": true
+ "devOptional": true
},
"v8-to-istanbul": {
"version": "9.0.1",
@@ -62415,16 +64618,15 @@
},
"dependencies": {
"util": {
- "version": "0.12.4",
- "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz",
- "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==",
+ "version": "0.12.5",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",
+ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==",
"dev": true,
"requires": {
"inherits": "^2.0.3",
"is-arguments": "^1.0.4",
"is-generator-function": "^1.0.7",
"is-typed-array": "^1.1.3",
- "safe-buffer": "^5.1.2",
"which-typed-array": "^1.1.2"
}
}
@@ -62898,6 +65100,16 @@
"strip-ansi": "^6.0.0"
}
},
+ "wrap-ansi-cjs": {
+ "version": "npm:wrap-ansi@7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -62987,7 +65199,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "dev": true
+ "devOptional": true
},
"yocto-queue": {
"version": "0.1.0",
diff --git a/package.json b/package.json
index 948445068..117b60815 100644
--- a/package.json
+++ b/package.json
@@ -20,7 +20,7 @@
"translations:extract": "lingui extract --clean",
"translations:compile": "lingui compile",
"lint": "eslint --ext ts,tsx .",
- "lint:fix": "eslint --fix",
+ "lint:fix": "eslint --fix --ext ts,tsx .",
"verify": "node ./scripts/ci && npm run typecheck && npm run lint && npm run test:cov",
"storybook": "start-storybook -p 6006",
"prepare": "husky install"
@@ -37,6 +37,19 @@
"@dashpress/bacteria": "^0.0.13",
"@lingui/core": "^4.10.0",
"@lingui/react": "^4.10.0",
+ "@radix-ui/react-alert-dialog": "^1.0.5",
+ "@radix-ui/react-dialog": "^1.0.5",
+ "@radix-ui/react-dropdown-menu": "^2.0.6",
+ "@radix-ui/react-icons": "^1.3.0",
+ "@radix-ui/react-label": "^2.0.2",
+ "@radix-ui/react-scroll-area": "^1.0.5",
+ "@radix-ui/react-select": "^2.0.0",
+ "@radix-ui/react-separator": "^1.0.3",
+ "@radix-ui/react-slot": "^1.0.2",
+ "@radix-ui/react-switch": "^1.0.3",
+ "@radix-ui/react-tabs": "^1.0.4",
+ "@radix-ui/react-toast": "^1.1.5",
+ "@radix-ui/react-tooltip": "^1.0.7",
"@tanstack/query-async-storage-persister": "^5.36.0",
"@tanstack/react-query": "^5.28.9",
"@tanstack/react-query-persist-client": "^5.36.0",
@@ -44,8 +57,11 @@
"bcrypt": "^5.0.1",
"change-case": "^4.1.2",
"class-validator": "^0.13.2",
+ "class-variance-authority": "^0.7.0",
+ "clsx": "^2.1.1",
+ "cmdk": "^1.0.0",
"cryptr": "^6.0.3",
- "date-fns": "^2.28.0",
+ "date-fns": "^2.30.0",
"execa": "^6.1.0",
"final-form": "^4.20.7",
"final-form-arrays": "^3.0.2",
@@ -68,8 +84,8 @@
"ramda": "0.27.1",
"randomstring": "^1.2.2",
"react": "18.2.0",
- "react-bootstrap": "^2.4.0",
"react-datepicker": "^4.8.0",
+ "react-day-picker": "^8.10.1",
"react-dom": "18.2.0",
"react-dropzone": "^14.2.1",
"react-easy-sort": "^1.5.0",
@@ -85,8 +101,9 @@
"react-use": "^17.4.0",
"redis": "^4.4.0",
"styled-components": "^6.1.8",
+ "tailwind-merge": "^2.3.0",
+ "tailwindcss-animate": "^1.0.7",
"terminal-link": "^3.0.0",
- "tiny-skeleton-loader-react": "^1.2.1",
"winston": "^3.8.2",
"zod": "^3.21.4",
"zustand": "3.4.2"
@@ -128,6 +145,7 @@
"@types/react-dom": "^18.0.4",
"@typescript-eslint/eslint-plugin": "^5.31.0",
"@typescript-eslint/parser": "^5.31.0",
+ "autoprefixer": "^10.4.19",
"babel-loader": "^8.2.5",
"commitlint-config-git-commit-emoji": "^1.0.0",
"cross-env": "^7.0.3",
@@ -141,9 +159,9 @@
"jest-environment-jsdom": "^29.0.3",
"jest-fetch-mock": "^3.0.3",
"lint-staged": "^13.0.2",
- "msw": "^0.44.1",
+ "msw": "^0.49.3",
"node-mocks-http": "^1.11.0",
- "postcss": "^8.4.16",
+ "postcss": "^8.4.38",
"prettier": "^2.7.1",
"react-is": "^18.1.0",
"rimraf": "^3.0.2",
@@ -151,8 +169,9 @@
"rollup-plugin-svg": "^2.0.0",
"rollup-plugin-svg-import": "^1.6.0",
"standard-version": "^9.5.0",
+ "tailwindcss": "^3.4.3",
"tsup": "^6.2.2",
- "typescript": "^4.7.4"
+ "typescript": "^4.9.5"
},
"engines": {
"node": ">=16"
diff --git a/postcss.config.js b/postcss.config.js
new file mode 100644
index 000000000..12a703d90
--- /dev/null
+++ b/postcss.config.js
@@ -0,0 +1,6 @@
+module.exports = {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+};
diff --git a/src/__tests__/_/Provider.tsx b/src/__tests__/_/Provider.tsx
index a09b9de55..9a2aea556 100644
--- a/src/__tests__/_/Provider.tsx
+++ b/src/__tests__/_/Provider.tsx
@@ -3,12 +3,12 @@ import { Toaster } from "react-hot-toast";
import { ThemeContextProvider } from "frontend/design-system/theme/Context";
import { LinguiProvider } from "translations/utils";
import { Messages } from "@lingui/core";
-import { ConfirmAlert } from "frontend/design-system/components/ConfirmAlert";
import {
QueryCache,
QueryClient,
QueryClientProvider,
} from "@tanstack/react-query";
+import { ConfirmAlert } from "@/components/app/confirm-alert";
export const queryCache = new QueryCache();
diff --git a/src/__tests__/api/_test-utils/_dashboard.ts b/src/__tests__/api/_test-utils/_dashboard.ts
index a14f8828a..739975bee 100644
--- a/src/__tests__/api/_test-utils/_dashboard.ts
+++ b/src/__tests__/api/_test-utils/_dashboard.ts
@@ -1,5 +1,4 @@
import { createConfigDomainPersistenceService } from "backend/lib/config-persistence";
-import { ROYGBIV } from "shared/constants/colors";
import { HOME_DASHBOARD_KEY, IWidgetConfig } from "shared/types/dashboard";
const TEST_DASHBOARDS: Array = [
@@ -17,7 +16,7 @@ const TEST_DASHBOARDS: Array = [
title: "Widget 2",
entity: "base-model",
queryId: "",
- color: ROYGBIV.blue,
+ color: "blue",
icon: "home",
script: `return await $.query("SELECT count(*) FROM tests")`,
},
diff --git a/src/backend/dashboard-widgets/dashboard-widgets.service.ts b/src/backend/dashboard-widgets/dashboard-widgets.service.ts
index 742316b4c..f14fb1a46 100644
--- a/src/backend/dashboard-widgets/dashboard-widgets.service.ts
+++ b/src/backend/dashboard-widgets/dashboard-widgets.service.ts
@@ -18,7 +18,6 @@ import {
import { rolesApiService, RolesApiService } from "backend/roles/roles.service";
import { userFriendlyCase } from "shared/lib/strings/friendly-case";
import { nanoid } from "nanoid";
-import { ROYGBIV } from "shared/constants/colors";
import { SystemIconsList } from "shared/constants/Icons";
import { BadRequestError } from "backend/lib/errors";
import {
@@ -30,11 +29,11 @@ import { relativeDateNotationToActualDate } from "backend/data/data-access/time.
import { ILabelValue } from "shared/types/options";
import { sortListByOrder } from "shared/lib/array/sort";
import { DATA_SOURCES_CONFIG } from "shared/types/data-sources";
-import { typescriptSafeObjectDotKeys } from "shared/lib/objects";
import {
mutateGeneratedDashboardWidgets,
PORTAL_DASHBOARD_PERMISSION,
} from "./portal";
+import { SPECTRUM_COLORS } from "@/components/ui/spectrum";
const runAsyncJavascriptString = async (
javascriptString: string,
@@ -120,8 +119,6 @@ export class DashboardWidgetsApiService {
}
private generateDashboardWidgets = async (entitiesToShow: ILabelValue[]) => {
- const colorsList = typescriptSafeObjectDotKeys(ROYGBIV);
-
const DEFAULT_NUMBER_OF_SUMMARY_CARDS = 8;
const dbCredentials = await RDBMSDataApiService.getDbCredentials();
@@ -155,7 +152,7 @@ export class DashboardWidgetsApiService {
title: userFriendlyCase(`${entity.value}`),
_type: "summary-card",
entity: entity.value,
- color: colorsList[index % (colorsList.length - 1)],
+ color: SPECTRUM_COLORS[index % (SPECTRUM_COLORS.length - 1)],
icon: SystemIconsList[index % (SystemIconsList.length - 1)],
script: dateField
? `const actual = await $.query(${queryQuote}${plainCountQuery}${queryQuote});
diff --git a/src/frontend/design-system/components/Alert/Stories.tsx b/src/components/app/alert/Stories.tsx
similarity index 97%
rename from src/frontend/design-system/components/Alert/Stories.tsx
rename to src/components/app/alert/Stories.tsx
index 9aff65b8e..65996c404 100644
--- a/src/frontend/design-system/components/Alert/Stories.tsx
+++ b/src/components/app/alert/Stories.tsx
@@ -4,7 +4,7 @@ import { Story } from "@storybook/react";
import { GitHub } from "react-feather";
import { action } from "@storybook/addon-actions";
import { TestProviders } from "__tests__/_/Provider";
-import { Alert, IProps, AlertType } from ".";
+import { Alert, AlertType, IProps } from ".";
export default {
title: "Components/Alert",
diff --git a/src/components/app/alert/index.tsx b/src/components/app/alert/index.tsx
new file mode 100644
index 000000000..49c5709d0
--- /dev/null
+++ b/src/components/app/alert/index.tsx
@@ -0,0 +1,117 @@
+import { useEffect } from "react";
+import {
+ AlertTriangle,
+ ThumbsUp,
+ Icon,
+ Info as InfoIcon,
+ X,
+} from "react-feather";
+import { SYSTEM_COLORS } from "frontend/design-system/theme/system";
+import { getBestErrorMessage } from "frontend/lib/toast/utils";
+import { useToggle } from "frontend/hooks/state/useToggleState";
+import { cn } from "@/lib/utils";
+import { SpectrumColorTypes, spectrumVariants } from "@/components/ui/spectrum";
+import { Button } from "@/components/ui/button";
+
+export enum AlertType {
+ Success = "success",
+ Error = "danger",
+ Warning = "warning",
+ Info = "info",
+}
+
+interface IAlert {
+ message: Record | string | unknown;
+ action?: {
+ label: string;
+ action: () => void;
+ Icon: Icon;
+ };
+ renderJsx?: boolean;
+}
+
+export type IProps = {
+ type: AlertType;
+} & IAlert;
+
+const AlertMap: Record<
+ AlertType,
+ { Icon: Icon; spectrum: SpectrumColorTypes }
+> = {
+ [AlertType.Info]: { Icon: InfoIcon, spectrum: "blue" },
+ [AlertType.Error]: { Icon: AlertTriangle, spectrum: "red" },
+ [AlertType.Warning]: { Icon: AlertTriangle, spectrum: "yellow" },
+ [AlertType.Success]: { Icon: ThumbsUp, spectrum: "green" },
+};
+
+export function Alert({ type, message, renderJsx, action }: IProps) {
+ const renderMode = useToggle(true);
+ const { Icon: IconCmp, spectrum } = AlertMap[type];
+ useEffect(() => {
+ renderMode.on();
+ }, [message]);
+
+ if (!renderMode.isOn || !message) {
+ return null;
+ }
+
+ const hexColor = SYSTEM_COLORS[spectrum];
+
+ return (
+
+
+
+
+
+
+ {(renderJsx ? message : getBestErrorMessage(message)) as string}
+
+ {action && (
+
+
+
+ )}
+
+ {type !== AlertType.Error && (
+
+
+
+ )}
+
+ );
+}
+
+export function ErrorAlert(props: IAlert) {
+ return ;
+}
+export function SuccessAlert(props: IAlert) {
+ return ;
+}
+export function InfoAlert(props: IAlert) {
+ return ;
+}
+export function WarningAlert(props: IAlert) {
+ return ;
+}
diff --git a/src/frontend/design-system/components/Breadcrumbs/Stories.tsx b/src/components/app/breadcrumbs/Stories.tsx
similarity index 100%
rename from src/frontend/design-system/components/Breadcrumbs/Stories.tsx
rename to src/components/app/breadcrumbs/Stories.tsx
diff --git a/src/frontend/design-system/components/Breadcrumbs/index.tsx b/src/components/app/breadcrumbs/index.tsx
similarity index 96%
rename from src/frontend/design-system/components/Breadcrumbs/index.tsx
rename to src/components/app/breadcrumbs/index.tsx
index e442f6138..813be34ed 100644
--- a/src/frontend/design-system/components/Breadcrumbs/index.tsx
+++ b/src/components/app/breadcrumbs/index.tsx
@@ -1,7 +1,7 @@
import styled, { css } from "styled-components";
import { USE_ROOT_COLOR } from "frontend/design-system/theme/root";
import { ILabelValue } from "shared/types/options";
-
+// TODO https://ui.shadcn.com/docs/components/breadcrumb
const Breadcrumb = styled.ol`
display: flex;
flex-wrap: wrap;
diff --git a/src/frontend/design-system/components/Button/ActionButtons/index.tsx b/src/components/app/button/action.tsx
similarity index 56%
rename from src/frontend/design-system/components/Button/ActionButtons/index.tsx
rename to src/components/app/button/action.tsx
index ce3a2a206..2ab2377c8 100644
--- a/src/frontend/design-system/components/Button/ActionButtons/index.tsx
+++ b/src/components/app/button/action.tsx
@@ -1,18 +1,18 @@
-import { Stack } from "frontend/design-system/primitives/Stack";
-import { SoftButton } from "../SoftButton";
-import { DropDownMenu } from "../../DropdownMenu";
-import { IGroupActionButton } from "../types";
+import { VariantProps } from "class-variance-authority";
-const ELLIPSIS_THRESHOLD = 3;
+import { buttonVariants } from "@/components/ui/button";
+import { IGroupActionButton } from "./types";
+import { SoftButton } from "./soft";
+import { DropDownMenu } from "../drop-drop-menu";
+
+const ELLIPSIS_THRESHOLD = 1;
export function ActionButtons({
actionButtons,
- justIcons,
size,
}: {
actionButtons: IGroupActionButton[];
- justIcons?: true;
- size?: "sm" | "xs";
+ size?: VariantProps["size"];
}) {
if (actionButtons.length === 0) {
return null;
@@ -24,14 +24,9 @@ export function ActionButtons({
const ellipsisButtons = sortedActions.slice(ELLIPSIS_THRESHOLD);
return (
-
+
{buttonsToShow.map((actionButton) => (
-
+
))}
{ellipsisButtons.length > 0 && (
)}
-
+
);
}
diff --git a/src/frontend/design-system/components/Button/constants.ts b/src/components/app/button/constants.ts
similarity index 74%
rename from src/frontend/design-system/components/Button/constants.ts
rename to src/components/app/button/constants.ts
index 63aa85c99..46e56ecc7 100644
--- a/src/frontend/design-system/components/Button/constants.ts
+++ b/src/components/app/button/constants.ts
@@ -1,16 +1,17 @@
import { MessageDescriptor } from "@lingui/core";
import { msg } from "@lingui/macro";
-import { IGroupActionButton } from "./types";
+import { IMenuActionItem } from "./types";
export const DELETE_BUTTON_PROPS = (props: {
action: () => void;
isMakingRequest: boolean;
label: MessageDescriptor;
shouldConfirmAlert?: undefined;
-}): IGroupActionButton => ({
+}): IMenuActionItem => ({
id: "delete",
systemIcon: "Thrash",
shouldConfirmAlert: msg`Confirm Delete`,
- color: "danger",
+ destructive: true,
+ variant: "destructive",
...props,
});
diff --git a/src/components/app/button/form.tsx b/src/components/app/button/form.tsx
new file mode 100644
index 000000000..fefdea9d5
--- /dev/null
+++ b/src/components/app/button/form.tsx
@@ -0,0 +1,82 @@
+import { Loader } from "react-feather";
+import { SystemIconsKeys } from "shared/constants/Icons";
+import React from "react";
+import { MessageDescriptor } from "@lingui/core";
+import { useLingui } from "@lingui/react";
+import { VariantProps } from "class-variance-authority";
+import { Button, buttonVariants } from "@/components/ui/button";
+import { cn } from "@/lib/utils";
+import { SystemIcon } from "../system-icons";
+
+interface IFormButton {
+ text: (isMakingRequest: boolean) => MessageDescriptor;
+ systemIcon: SystemIconsKeys;
+ isMakingRequest: boolean;
+ onClick?: (e: React.MouseEvent) => void;
+ disabled?: boolean;
+ size?: VariantProps["size"];
+ variant?: "outline";
+ className?: string;
+}
+
+export function ActionButtonIsMakingRequest({
+ isMakingRequest,
+ systemIcon,
+ text,
+}: {
+ isMakingRequest: boolean;
+ text: (isMakingRequest: boolean) => MessageDescriptor;
+ systemIcon: SystemIconsKeys;
+}) {
+ const { _ } = useLingui();
+
+ return (
+
+ {isMakingRequest ? (
+ <>
+
+ {_(text(true))}
+ >
+ ) : (
+ <>
+
+ {_(text(false))}
+ >
+ )}
+
+ );
+}
+
+export function FormButton({
+ text,
+ disabled,
+ isMakingRequest,
+ onClick,
+ systemIcon,
+ variant,
+ size = "lg",
+ className,
+}: IFormButton) {
+ const toRender = (
+
+ );
+
+ return (
+
+
+ {toRender}
+
+
+ );
+}
diff --git a/src/components/app/button/soft.tsx b/src/components/app/button/soft.tsx
new file mode 100644
index 000000000..e9650b220
--- /dev/null
+++ b/src/components/app/button/soft.tsx
@@ -0,0 +1,84 @@
+import Link from "next/link";
+import { Loader } from "react-feather";
+import { BaseSyntheticEvent } from "react";
+import { useLingui } from "@lingui/react";
+import { Tooltip } from "../tooltip";
+import { Button, buttonVariants } from "@/components/ui/button";
+import { cn } from "@/lib/utils";
+import { useConfirmAlert } from "../confirm-alert";
+import { IActionButton } from "./types";
+import { SystemIcon } from "../system-icons";
+
+export function SoftButton({
+ label,
+ size,
+ systemIcon,
+ shouldConfirmAlert,
+ disabled,
+ isMakingRequest,
+ action,
+ variant = "soft",
+ className,
+}: IActionButton) {
+ const confirmAlert = useConfirmAlert();
+
+ const { _ } = useLingui();
+
+ const labelString = _(label);
+
+ // eslint-disable-next-line no-nested-ternary
+ const content = isMakingRequest ? (
+
+ ) : size === "icon" ? (
+
+ ) : (
+
+
+ {labelString}
+
+ );
+
+ const buttonProps = {
+ "aria-label": size === "icon" ? labelString : undefined,
+ };
+
+ const buttonElement =
+ typeof action === "string" ? (
+
+ {content}
+
+ ) : (
+ {
+ e.stopPropagation();
+
+ if (shouldConfirmAlert) {
+ return confirmAlert({
+ title: shouldConfirmAlert,
+ action,
+ });
+ }
+ return action();
+ }}
+ {...buttonProps}
+ >
+ {content}
+
+ );
+
+ return size === "icon" ? (
+ {buttonElement}
+ ) : (
+ buttonElement
+ );
+}
diff --git a/src/frontend/design-system/components/Button/types.d.ts b/src/components/app/button/types.d.ts
similarity index 54%
rename from src/frontend/design-system/components/Button/types.d.ts
rename to src/components/app/button/types.d.ts
index aab2c0052..f19e089c9 100644
--- a/src/frontend/design-system/components/Button/types.d.ts
+++ b/src/components/app/button/types.d.ts
@@ -1,22 +1,26 @@
import { MessageDescriptor } from "@lingui/core";
-import { SYSTEM_COLORS } from "frontend/design-system/theme/system";
import { SystemIconsKeys } from "shared/constants/Icons";
+import { VariantProps } from "class-variance-authority";
+import { buttonVariants } from "@/components/ui/button";
export interface IActionButton {
label: MessageDescriptor;
systemIcon: SystemIconsKeys;
action: string | (() => void);
disabled?: boolean;
+ className?: string;
shouldConfirmAlert?: MessageDescriptor;
- size?: "sm" | "xs";
- block?: true;
- noToolTip?: true;
- justIcon?: true;
+ size?: VariantProps["size"];
+ variant?: VariantProps["variant"];
isMakingRequest?: boolean;
- color?: keyof typeof SYSTEM_COLORS;
}
export interface IGroupActionButton extends IActionButton {
id: string;
order?: number;
}
+
+export interface IMenuActionItem extends IGroupActionButton {
+ subtle?: boolean;
+ destructive?: boolean;
+}
diff --git a/src/components/app/confirm-alert.tsx b/src/components/app/confirm-alert.tsx
new file mode 100644
index 000000000..3ad51868d
--- /dev/null
+++ b/src/components/app/confirm-alert.tsx
@@ -0,0 +1,79 @@
+import { t } from "@lingui/macro";
+import { createStore } from "frontend/lib/store";
+import { MessageDescriptor } from "@lingui/core";
+import { useLingui } from "@lingui/react";
+import {
+ AlertDialog,
+ AlertDialogAction,
+ AlertDialogContent,
+ AlertDialogCancel,
+ AlertDialogDescription,
+ AlertDialogFooter,
+ AlertDialogHeader,
+ AlertDialogTitle,
+} from "@/components/ui/alert-dialog";
+import { NextPortal } from "./next-portal";
+
+interface IConfirmAlertDetails {
+ title: MessageDescriptor;
+ action: () => void;
+}
+
+type IStore = {
+ title?: MessageDescriptor;
+ action?: () => void;
+ setDetails: (details: IConfirmAlertDetails) => void;
+ onClose: () => void;
+};
+
+const useConfirmAlertStore = createStore((set) => ({
+ setDetails: (details: IConfirmAlertDetails) => set(() => details),
+ onClose: () =>
+ set(() => ({
+ title: undefined,
+ action: undefined,
+ })),
+}));
+
+export const useConfirmAlert = () => {
+ const confirmAlert = useConfirmAlertStore((store) => store.setDetails);
+
+ return confirmAlert;
+};
+
+export function ConfirmAlert() {
+ const { _ } = useLingui();
+ const [title, action, onClose] = useConfirmAlertStore((store) => [
+ store.title,
+ store.action,
+ store.onClose,
+ ]);
+
+ if (!title) {
+ return null;
+ }
+
+ return (
+
+
+
+
+ {_(title)}
+
+ {t`Are you sure you want to do this?`}
+
+
+
+ {t`Cancel`}
+ {
+ action();
+ onClose();
+ }}
+ >{t`Continue`}
+
+
+
+
+ );
+}
diff --git a/src/frontend/design-system/components/Section/SectionDivider/Stories.tsx b/src/components/app/content-layout/Stories.tsx
similarity index 100%
rename from src/frontend/design-system/components/Section/SectionDivider/Stories.tsx
rename to src/components/app/content-layout/Stories.tsx
diff --git a/src/frontend/design-system/components/Section/SectionDivider/index.tsx b/src/components/app/content-layout/index.tsx
similarity index 69%
rename from src/frontend/design-system/components/Section/SectionDivider/index.tsx
rename to src/components/app/content-layout/index.tsx
index dfd790428..d82695620 100644
--- a/src/frontend/design-system/components/Section/SectionDivider/index.tsx
+++ b/src/components/app/content-layout/index.tsx
@@ -1,8 +1,6 @@
import { ReactElement, ReactNode } from "react";
import styled from "styled-components";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
-import { Stack } from "frontend/design-system/primitives/Stack";
-import { BREAKPOINTS } from "../../../constants";
+import { BREAKPOINTS } from "@/frontend/design-system/constants";
interface IProps {
children: ReactNode;
@@ -29,17 +27,12 @@ export const ContentLayout: TContentLayout = ({ children }: IProps) => {
};
ContentLayout.Left = function SectionLeft({ children }: IProps) {
- return (
-
- {children}
-
-
- );
+ return {children}
;
};
ContentLayout.Right = function SectionRight({ children }: IProps) {
return (
-
+
{children}
);
@@ -47,8 +40,8 @@ ContentLayout.Right = function SectionRight({ children }: IProps) {
ContentLayout.Center = function SectionCenter({ children }: IProps) {
return (
-
- {children}
-
+
);
};
diff --git a/src/components/app/drop-down.tsx b/src/components/app/drop-down.tsx
new file mode 100644
index 000000000..2938e5dc5
--- /dev/null
+++ b/src/components/app/drop-down.tsx
@@ -0,0 +1,23 @@
+import { ReactNode } from "react";
+import {
+ DropdownMenuTrigger,
+ DropdownMenu,
+ DropdownMenuContent,
+} from "@/components/ui/dropdown-menu";
+
+export interface IProps {
+ target: ReactNode;
+ children: ReactNode;
+ className?: string;
+}
+
+export function Dropdown({ target, children, className }: IProps) {
+ return (
+
+ {target}
+
+ {children}
+
+
+ );
+}
diff --git a/src/frontend/design-system/components/DropdownMenu/Stories.tsx b/src/components/app/drop-drop-menu/Stories.tsx
similarity index 100%
rename from src/frontend/design-system/components/DropdownMenu/Stories.tsx
rename to src/components/app/drop-drop-menu/Stories.tsx
diff --git a/src/components/app/drop-drop-menu/index.tsx b/src/components/app/drop-drop-menu/index.tsx
new file mode 100644
index 000000000..cc0811d70
--- /dev/null
+++ b/src/components/app/drop-drop-menu/index.tsx
@@ -0,0 +1,90 @@
+import { useState, useEffect, useMemo } from "react";
+import { ChevronDown, MoreVertical } from "react-feather";
+
+import { Button } from "@/components/ui/button";
+import {
+ DropdownMenu,
+ DropdownMenuContent,
+ DropdownMenuTrigger,
+} from "@/components/ui/dropdown-menu";
+import { useToggle } from "@/frontend/hooks/state/useToggleState";
+import { MenuSection } from "@/components/app/menu-section";
+import { IMenuActionItem } from "../button/types";
+import { SoftButton } from "../button/soft";
+
+export interface IProps {
+ menuItems: IMenuActionItem[];
+ ariaLabel: string;
+ disabled?: boolean;
+ ellipsis?: true;
+ className?: string;
+}
+
+export function DropDownMenu({
+ menuItems: menuItems$1,
+ ellipsis,
+ ariaLabel,
+ className,
+}: IProps) {
+ const menuItems = useMemo(() => {
+ return [...menuItems$1].sort((a, b) => {
+ return (a.order || 0) - (b.order || 0);
+ });
+ }, [menuItems$1]);
+
+ const [currentMenuItem, setCurrentMenuItem] = useState
(
+ menuItems?.[0]
+ );
+
+ useEffect(() => {
+ setCurrentMenuItem(menuItems[0]);
+ }, [JSON.stringify(menuItems)]);
+
+ if (menuItems.length === 0) {
+ return null;
+ }
+
+ if (menuItems.length === 1 && !ellipsis) {
+ return ;
+ }
+
+ // TODO
+ // const onMenuItemClick = (menuIndex: number) => {
+ // const menuItem = menuItems[menuIndex];
+ // setCurrentMenuItem(menuItem);
+ // };
+
+ const { isOn: isOpen, toggle } = useToggle(false);
+
+ return (
+
+ {!ellipsis && (
+
+ )}
+
+
+ {ellipsis ? (
+
+
+
+ ) : (
+
+
+
+ )}
+
+
+
+
+
+
+ );
+}
diff --git a/src/frontend/design-system/components/EmptyWrapper/Stories.tsx b/src/components/app/empty-wrapper/Stories.tsx
similarity index 100%
rename from src/frontend/design-system/components/EmptyWrapper/Stories.tsx
rename to src/components/app/empty-wrapper/Stories.tsx
diff --git a/src/components/app/empty-wrapper/index.tsx b/src/components/app/empty-wrapper/index.tsx
new file mode 100644
index 000000000..5c612066b
--- /dev/null
+++ b/src/components/app/empty-wrapper/index.tsx
@@ -0,0 +1,22 @@
+import { Frown } from "react-feather";
+import { useLingui } from "@lingui/react";
+import { IEmptyWrapperProps } from "./types";
+import { SoftButton } from "../button/soft";
+
+export function EmptyWrapper({ text, createNew }: IEmptyWrapperProps) {
+ const { _ } = useLingui();
+ return (
+
+
+
{_(text)}
+ {createNew && (
+
+ )}
+
+ );
+}
diff --git a/src/frontend/design-system/components/EmptyWrapper/types.d.ts b/src/components/app/empty-wrapper/types.d.ts
similarity index 100%
rename from src/frontend/design-system/components/EmptyWrapper/types.d.ts
rename to src/components/app/empty-wrapper/types.d.ts
diff --git a/src/frontend/components/ErrorBoundary/index.tsx b/src/components/app/error-boundary.tsx
similarity index 94%
rename from src/frontend/components/ErrorBoundary/index.tsx
rename to src/components/app/error-boundary.tsx
index 0bf0c1313..d37c5e4c1 100644
--- a/src/frontend/components/ErrorBoundary/index.tsx
+++ b/src/components/app/error-boundary.tsx
@@ -1,6 +1,6 @@
-import { ErrorAlert } from "frontend/design-system/components/Alert";
import { Component, ErrorInfo, ReactNode } from "react";
import { GitHub } from "react-feather";
+import { ErrorAlert } from "./alert";
export class ErrorBoundary extends Component<
{ children: ReactNode },
diff --git a/src/frontend/design-system/components/Form/Stories.tsx b/src/components/app/form/input/Stories.tsx
similarity index 88%
rename from src/frontend/design-system/components/Form/Stories.tsx
rename to src/components/app/form/input/Stories.tsx
index ae5f35cae..ba434e950 100644
--- a/src/frontend/design-system/components/Form/Stories.tsx
+++ b/src/components/app/form/input/Stories.tsx
@@ -4,26 +4,26 @@ import { Story } from "@storybook/react";
import { Field, Form } from "react-final-form";
import { action } from "@storybook/addon-actions";
import { required } from "frontend/lib/validations";
-import { Stack } from "frontend/design-system/primitives/Stack";
import { fakeMessageDescriptor } from "translations/fake";
import { TestProviders } from "__tests__/_/Provider";
-import { FormCheckBox } from "./CheckBox";
-import { FormInput } from "./Input";
-import { FormNumberInput } from "./Number";
-import { FormRichTextArea } from "./RichText";
-import { FormButton } from "../Button/FormButton";
-import { FormDateInput } from "./Date";
-import { FormTextArea } from "./TextArea";
-import { FormMultiSelect, FormSelect } from "./Select";
-import { FormCodeEditor } from "./CodeEditor";
-import { AsyncFormSelect } from "./Select/Async";
-import { FormSwitch } from "./Switch";
-import { FormSearch } from "./Search";
-import { FormFileInput } from "./File";
-import { FormSelectButton } from "./SelectButton";
-import { ActionButtons } from "../Button/ActionButtons";
-import { DELETE_BUTTON_PROPS } from "../Button/constants";
-import { FormPasswordInput } from "./Password";
+import { FormInput } from "./text";
+import { FormNumberInput } from "./number";
+import { FormRichTextArea } from "../../../../frontend/design-system/components/Form/RichText";
+import { FormDateInput } from "../../../../frontend/design-system/components/Form/Date";
+import { FormTextArea } from "./textarea";
+import {
+ FormMultiSelect,
+ FormSelect,
+} from "../../../../frontend/design-system/components/Form/Select";
+import { FormCodeEditor } from "../../../../frontend/design-system/components/Form/CodeEditor";
+import { AsyncFormSelect } from "../../../../frontend/design-system/components/Form/Select/Async";
+import { FormSwitch } from "./switch";
+import { FormFileInput } from "../../../../frontend/design-system/components/Form/File";
+import { FormSelectButton } from "./select-button";
+import { DELETE_BUTTON_PROPS } from "../../button/constants";
+import { FormPasswordInput } from "./password";
+import { FormButton } from "../../button/form";
+import { ActionButtons } from "../../button/action";
function DemoForm() {
return (
@@ -31,15 +31,6 @@ function DemoForm() {
onSubmit={(values: unknown) => action(values as string)}
render={({ handleSubmit }) => (
)}
/>
diff --git a/src/frontend/components/IconInputField/IconInputField.spec.tsx b/src/components/app/form/input/icon/IconInputField.spec.tsx
similarity index 96%
rename from src/frontend/components/IconInputField/IconInputField.spec.tsx
rename to src/components/app/form/input/icon/IconInputField.spec.tsx
index 759ed5cbc..cb206357f 100644
--- a/src/frontend/components/IconInputField/IconInputField.spec.tsx
+++ b/src/components/app/form/input/icon/IconInputField.spec.tsx
@@ -2,11 +2,11 @@ import * as React from "react";
import { render, screen } from "@testing-library/react";
import { Form } from "react-final-form";
import userEvent from "@testing-library/user-event";
-import { FormButton } from "frontend/design-system/components/Button/FormButton";
import { USE_ROUTER_PARAMS } from "__tests__/_/constants";
import { msg } from "@lingui/macro";
import { TestProviders } from "__tests__/_/Provider";
import { IconInputField } from ".";
+import { FormButton } from "@/components/app/button/form";
function TestComponent({
onSubmit,
@@ -19,10 +19,10 @@ function TestComponent({
);
}
diff --git a/src/frontend/design-system/components/_/Spin.ts b/src/frontend/design-system/components/_/Spin.ts
deleted file mode 100644
index 420dafeb8..000000000
--- a/src/frontend/design-system/components/_/Spin.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import styled, { keyframes } from "styled-components";
-
-const spinKeyFrame = keyframes`
- from {
- transform:rotate(0deg);
- }
- to {
- transform:rotate(360deg);
- }
-`;
-
-export const Spin = styled.span`
- animation: ${spinKeyFrame} 1.5s linear infinite;
-`;
diff --git a/src/frontend/design-system/constants/breakpoints.ts b/src/frontend/design-system/constants/breakpoints.ts
index b051d8290..9530f5c9f 100644
--- a/src/frontend/design-system/constants/breakpoints.ts
+++ b/src/frontend/design-system/constants/breakpoints.ts
@@ -1,7 +1,3 @@
export const BREAKPOINTS = {
- xxl: "1400px",
- xl: "1200px",
- lg: "992px",
md: "768px",
- sm: "576px",
};
diff --git a/src/frontend/design-system/constants/index.ts b/src/frontend/design-system/constants/index.ts
index 92823187b..ed158e9b9 100644
--- a/src/frontend/design-system/constants/index.ts
+++ b/src/frontend/design-system/constants/index.ts
@@ -1,2 +1 @@
-export { DESIGN_SYSTEM_SIZES } from "./sizes";
export { BREAKPOINTS } from "./breakpoints";
diff --git a/src/frontend/design-system/constants/sizes.ts b/src/frontend/design-system/constants/sizes.ts
deleted file mode 100644
index cb167b714..000000000
--- a/src/frontend/design-system/constants/sizes.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export const DESIGN_SYSTEM_SIZES = {
- radius: 10,
- padding: 24,
- contentPadding: 20,
- margin: 12,
-};
diff --git a/src/frontend/design-system/constants/zIndex.ts b/src/frontend/design-system/constants/zIndex.ts
index 32152e63e..bdc519a6c 100644
--- a/src/frontend/design-system/constants/zIndex.ts
+++ b/src/frontend/design-system/constants/zIndex.ts
@@ -1,6 +1,4 @@
export const Z_INDEXES = {
dropDown: 100,
- confirmDelete: 101,
- offCanvas: 1000,
dragAndDrop: 1010,
};
diff --git a/src/frontend/design-system/globals/index.ts b/src/frontend/design-system/globals/index.ts
deleted file mode 100644
index aa8ba7fad..000000000
--- a/src/frontend/design-system/globals/index.ts
+++ /dev/null
@@ -1,142 +0,0 @@
-import { createGlobalStyle } from "styled-components";
-import { typescriptSafeObjectDotEntries } from "shared/lib/objects";
-import { LIGHT_MODE } from "../theme/modes";
-import { GLOBAL_NORMALIZE_CSS } from "./normalize";
-import { GLOBAL_TOOLTIP_CSS } from "./tooltip";
-import { GLOBAL_OFF_CANVAS_CSS } from "./off-canvas";
-import { colorModeToRootColors } from "../theme/generate";
-import { USE_ROOT_COLOR, prefixVarNameSpace } from "../theme/root";
-import { DEFAULT_PRIMARY_COLOR } from "../theme/constants";
-
-const rootColorString = typescriptSafeObjectDotEntries(
- colorModeToRootColors(DEFAULT_PRIMARY_COLOR, LIGHT_MODE)
-)
- .map(([key, value]) => `${prefixVarNameSpace(key)}: ${value}`)
- .join(";");
-
-export const GlobalStyles = createGlobalStyle`
-*,
-*::before,
-*::after {
- box-sizing: border-box
-}
-
-${GLOBAL_NORMALIZE_CSS}
-
-${GLOBAL_TOOLTIP_CSS}
-
-${GLOBAL_OFF_CANVAS_CSS}
-
-:root {
- ${rootColorString};
-}
-
-html {
- font-family: "Inter", sans-serif;
- line-height: 1.15;
- -webkit-text-size-adjust: 100%;
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
- position: relative;
- min-height: 100%
-}
-
-body {
- margin: 0;
- font-weight: 400;
- color: ${USE_ROOT_COLOR("main-text")};
- background-color: ${USE_ROOT_COLOR("base-color")};
- min-height: 100vh;
- letter-spacing: 0.1px;
- line-height: 1.5;
- position: relative;
-}
-
-[tabindex="-1"]:focus:not(:focus-visible) {
- outline: 0 !important
-}
-
-a {
- font-family: "Inter", sans-serif;
- color: ${USE_ROOT_COLOR("primary-color")};
- text-decoration: none;
- background-color: transparent
-}
-
-a:hover {
- color: ${USE_ROOT_COLOR("primary-color")};
-}
-
-button:focus {
- outline: 1px dotted;
- outline: 5px auto -webkit-focus-ring-color
-}
-
-button::-moz-focus-inner {
- padding: 0;
- border-style: none
-}
-
-* {
- outline: none !important
-}
-
-@media (max-width: 1024px) {
- body {
- display: block !important
- }
-}
-
-@media print {
-
- *,
- *::before,
- *::after {
- text-shadow: none !important;
- box-shadow: none !important
- }
-
- a:not(.btn) {
- text-decoration: underline
- }
-
- img {
- page-break-inside: avoid
- }
-
- p {
- orphans: 3;
- widows: 3
- }
-
- @page {
- size: a3
- }
-
- body {
- min-width: 992px !important
- }
-}
-
-h1, h2, h3, h4, h5, h6 {
- margin-top: 0;
- margin-bottom: .5rem;
- font-weight: 500;
- line-height: 1.2;
- color: ${USE_ROOT_COLOR("main-text")};
-
-}
-
-svg {
- overflow: hidden;
- vertical-align: middle;
-}
-
-.fade {
- transition: opacity .15s linear;
-}
-
-.gaussian-blur {
- filter: url(#gaussian-blur);
- filter: blur(2px);
-}
-`;
diff --git a/src/frontend/design-system/globals/normalize.ts b/src/frontend/design-system/globals/normalize.ts
deleted file mode 100644
index 6ff8ef5ff..000000000
--- a/src/frontend/design-system/globals/normalize.ts
+++ /dev/null
@@ -1,190 +0,0 @@
-export const GLOBAL_NORMALIZE_CSS = `
-html {
- line-height: 1.15;
- -webkit-text-size-adjust: 100%;
-}
-
-body {
- margin: 0;
-}
-
-main {
- display: block;
-}
-
-
-h1 {
- font-size: 2em;
- margin: 0.67em 0;
-}
-
-hr {
- box-sizing: content-box;
- height: 0;
- overflow: visible;
-}
-
-pre {
- font-family: monospace, monospace;
- font-size: 1em;
-}
-
-a {
- background-color: transparent;
-}
-
-
-abbr[title] {
- border-bottom: none;
- text-decoration: underline;
- text-decoration: underline dotted;
-}
-
-b,
-strong {
- font-weight: bolder;
-}
-
-
-code,
-kbd,
-samp {
- font-family: monospace, monospace;
- font-size: 1em;
-}
-
-small {
- font-size: 80%;
-}
-
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-sup {
- top: -0.5em;
-}
-
-img {
- border-style: none;
-}
-
-button,
-input,
-optgroup,
-select,
-textarea {
- font-family: inherit;
- font-size: 100%;
- line-height: 1.15;
- margin: 0;
-}
-
-button,
-input {
- overflow: visible;
-}
-
-button,
-select {
- text-transform: none;
-}
-
-button,
-[type="button"],
-[type="reset"],
-[type="submit"] {
- -webkit-appearance: button;
-}
-
-button::-moz-focus-inner,
-[type="button"]::-moz-focus-inner,
-[type="reset"]::-moz-focus-inner,
-[type="submit"]::-moz-focus-inner {
- border-style: none;
- padding: 0;
-}
-
-button:-moz-focusring,
-[type="button"]:-moz-focusring,
-[type="reset"]:-moz-focusring,
-[type="submit"]:-moz-focusring {
- outline: 1px dotted ButtonText;
-}
-
-fieldset {
- padding: 0.35em 0.75em 0.625em;
-}
-
-legend {
- box-sizing: border-box;
- color: inherit;
- display: table;
- max-width: 100%;
- padding: 0;
- white-space: normal;
-}
-
-progress {
- vertical-align: baseline;
-}
-
-
-textarea {
- overflow: auto;
-}
-
-[type="checkbox"],
-[type="radio"] {
- box-sizing: border-box;
- padding: 0;
-}
-
-
-[type="number"]::-webkit-inner-spin-button,
-[type="number"]::-webkit-outer-spin-button {
- height: auto;
-}
-
-
-[type="search"] {
- -webkit-appearance: textfield;
- outline-offset: -2px;
-}
-
-
-[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-::-webkit-file-upload-button {
- -webkit-appearance: button;
- font: inherit;
-}
-
-details {
- display: block;
-}
-
-summary {
- display: list-item;
-}
-
-
-template {
- display: none;
-}
-
-
-[hidden] {
- display: none;
-}
-`;
diff --git a/src/frontend/design-system/globals/off-canvas.ts b/src/frontend/design-system/globals/off-canvas.ts
deleted file mode 100644
index dacdd02d2..000000000
--- a/src/frontend/design-system/globals/off-canvas.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { Z_INDEXES } from "../constants/zIndex";
-import { SYSTEM_COLORS } from "../theme/system";
-
-export const GLOBAL_OFF_CANVAS_CSS = `
-.offcanvas-backdrop{
- position: fixed;
- top: 0;
- left: 0;
- z-index: ${Z_INDEXES.offCanvas - 1};
- width: 100vw;
- height: 100vh;
- background-color: ${SYSTEM_COLORS.black};
-
- &.fade{
- opacity: 0;
- }
-
- &.show{
- opacity: 0.5;
- }
- }
-`;
diff --git a/src/frontend/design-system/globals/tooltip.ts b/src/frontend/design-system/globals/tooltip.ts
deleted file mode 100644
index bd09afbb6..000000000
--- a/src/frontend/design-system/globals/tooltip.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-import { css } from "styled-components";
-import { USE_ROOT_COLOR } from "frontend/design-system/theme/root";
-import { SHADOW_CSS } from "../components/Card";
-
-export const GLOBAL_TOOLTIP_CSS = css`
- .styles-module_tooltip__mnnfp {
- visibility: hidden;
- width: max-content;
- position: absolute;
- top: 0;
- left: 0;
- padding: 0.4375rem 0.75rem;
- border-radius: 0.25rem;
- font-size: 14px;
- pointer-events: none;
- opacity: 0;
- transition: opacity 250ms ease-in-out, transform 250ms ease-in-out;
- will-change: opacity, visibility;
- background-color: ${USE_ROOT_COLOR("base-color")};
- color: ${USE_ROOT_COLOR("main-text")};
- ${SHADOW_CSS};
- }
-
- .styles-module_fixed__7ciUi {
- position: fixed;
- }
-
- .styles-module_arrow__K0L3T {
- position: absolute;
- background-color: ${USE_ROOT_COLOR("base-color")};
- width: 8px;
- height: 8px;
- border-left: 1px solid ${USE_ROOT_COLOR("border-color")};
- border-bottom: 1px solid ${USE_ROOT_COLOR("border-color")};
- transform: rotate(45deg);
- }
-
- .styles-module_no-arrow__KcFZN {
- display: none;
- }
-
- .styles-module_clickable__Bv9o7 {
- pointer-events: auto;
- }
-
- .styles-module_show__2NboJ {
- visibility: visible;
- opacity: 1;
- }
-`;
diff --git a/src/frontend/design-system/primitives/Divider.tsx b/src/frontend/design-system/primitives/Divider.tsx
deleted file mode 100644
index 484dcc3f3..000000000
--- a/src/frontend/design-system/primitives/Divider.tsx
+++ /dev/null
@@ -1,6 +0,0 @@
-import styled from "styled-components";
-import { USE_ROOT_COLOR } from "frontend/design-system/theme/root";
-
-export const Divider = styled.div`
- border-top: 2px solid ${USE_ROOT_COLOR("border-color")};
-`;
diff --git a/src/frontend/design-system/primitives/Spacer.tsx b/src/frontend/design-system/primitives/Spacer.tsx
deleted file mode 100644
index 9a03d5ce0..000000000
--- a/src/frontend/design-system/primitives/Spacer.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import { ReactNode } from "react";
-import { DESIGN_SYSTEM_SIZES } from "../constants/sizes";
-
-type SpacerSize = "xxs" | "xs" | "sm" | "md" | "xl" | "xxl";
-
-interface IProps {
- size?: SpacerSize;
- children?: ReactNode;
- direction?: "horizontal";
-}
-
-const MARGIN_CONFIG: Record = {
- xxs: DESIGN_SYSTEM_SIZES.margin / 16,
- xs: DESIGN_SYSTEM_SIZES.margin / 8,
- sm: DESIGN_SYSTEM_SIZES.margin / 2,
- xl: DESIGN_SYSTEM_SIZES.margin * 1.5,
- xxl: DESIGN_SYSTEM_SIZES.margin * 2,
- md: DESIGN_SYSTEM_SIZES.margin,
-};
-
-const getMarginProps = (size: SpacerSize, direction?: "horizontal") => {
- return direction === "horizontal"
- ? {
- marginLeft: MARGIN_CONFIG[size],
- marginRight: MARGIN_CONFIG[size],
- }
- : { margin: MARGIN_CONFIG[size] };
-};
-
-export function Spacer({ size = "md", direction, children }: IProps) {
- return {children}
;
-}
diff --git a/src/frontend/design-system/primitives/Stack.tsx b/src/frontend/design-system/primitives/Stack.tsx
deleted file mode 100644
index fbe111f6b..000000000
--- a/src/frontend/design-system/primitives/Stack.tsx
+++ /dev/null
@@ -1,59 +0,0 @@
-import styled from "styled-components";
-
-export type StackProps = {
- $spacing: number;
- $flex: number;
- $direction: "column";
- $align:
- | "normal"
- | "stretch"
- | "center"
- | "start"
- | "end"
- | "self-start"
- | "self-end"
- | "flex-start"
- | "baseline"
- | "flex-end"
- | "space-between"
- | "space-around"
- | "space-evenly";
- $justify:
- | "normal"
- | "stretch"
- | "center"
- | "start"
- | "end"
- | "self-start"
- | "self-end"
- | "flex-start"
- | "flex-end"
- | "space-between"
- | "space-around"
- | "space-evenly";
- $width: string;
-};
-
-const spacings: Record = {
- row: "columnGap",
- column: "rowGap",
-};
-
-export const Stack = styled.div>(
- ({
- $direction,
- $spacing = 8,
- $align = "normal",
- $justify = "normal",
- $flex,
- $width = "100%",
- }) => ({
- display: "flex",
- flex: $flex,
- flexDirection: $direction || "row",
- [spacings[$direction || "row"]]: `${$spacing}px`,
- alignItems: $align,
- justifyContent: $justify,
- width: $width,
- })
-);
diff --git a/src/frontend/design-system/primitives/Typo.tsx b/src/frontend/design-system/primitives/Typo.tsx
deleted file mode 100644
index 6024f223d..000000000
--- a/src/frontend/design-system/primitives/Typo.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-import { ReactNode } from "react";
-import styled from "styled-components";
-import { USE_ROOT_COLOR } from "../theme/root";
-import { SYSTEM_COLORS } from "../theme/system";
-
-const TEXT_COLORS = {
- main: USE_ROOT_COLOR("main-text"),
- muted: USE_ROOT_COLOR("muted-text"),
- inverse: USE_ROOT_COLOR("text-on-primary"),
- danger: SYSTEM_COLORS.danger,
-};
-
-export type TextProps = {
- $size: "1" | "2" | "3" | "4" | "5" | "6";
- $color: keyof typeof TEXT_COLORS;
- $weight: "light" | "regular" | "bold";
- $textStyle?: "italic";
- as: "p" | "span";
- id?: string;
- $ellipsis?: true;
- children: ReactNode;
-};
-
-const sizes: Record = {
- 1: 32,
- 2: 20,
- 3: 16,
- 4: 14,
- 5: 12,
- 6: 10,
-};
-
-const weights: Record = {
- light: 300,
- regular: 400,
- bold: 500,
-};
-
-// @ts-ignore
-const Text = styled.p.attrs((props: TextProps) => ({
- role: props.as || "p",
- id: props.id,
-}))>(
- ({
- $size = "4",
- $color = "main",
- $weight = "regular",
- $textStyle,
- $ellipsis,
- }) => ({
- color: TEXT_COLORS[$color],
- fontStyle: $textStyle || "normal",
- fontWeight: weights[$weight],
- fontSize: `${sizes[$size]}px`,
- lineHeight: `${sizes[$size] * 1.25}px`,
- margin: 0,
- padding: 0,
- textOverflow: $ellipsis ? "ellipsis" : undefined,
- whiteSpace: $ellipsis ? "nowrap" : undefined,
- overflow: $ellipsis ? "hidden" : undefined,
- })
-);
-
-type RawTypoProps = Partial;
-type TypoProps = Omit;
-
-export function Typo(props: Partial) {
- return ;
-}
-
-Typo.Raw = function Raw(props: TypoProps & { size: TextProps["$size"] }) {
- return ;
-};
-
-Typo.XL = function XLarge(props: TypoProps) {
- return ;
-};
-
-Typo.L = function Large(props: TypoProps) {
- return ;
-};
-
-Typo.MD = function Medium(props: TypoProps) {
- return ;
-};
-
-Typo.SM = function Small(props: TypoProps) {
- return ;
-};
-
-Typo.XS = function XSmall(props: TypoProps) {
- return ;
-};
-
-Typo.XXS = function XSmall(props: TypoProps) {
- return ;
-};
diff --git a/src/frontend/design-system/theme/modes.ts b/src/frontend/design-system/theme/modes.ts
index 1b6ab25ce..aea635921 100644
--- a/src/frontend/design-system/theme/modes.ts
+++ b/src/frontend/design-system/theme/modes.ts
@@ -15,10 +15,10 @@ export const DARK_MODE: IColorMode = {
};
export const LIGHT_MODE: IColorMode = {
- "main-text": "#5f6270",
+ "soft-color": "#f1f5fa",
"muted-text": "#a4abc5",
+ "main-text": "#5f6270",
"border-color": "#e3ebf6",
- "soft-color": "#f1f5fa",
"base-color": "#ffffff",
"foundation-color": "#f3f6f9",
"text-on-primary": "#ffffff",
diff --git a/src/frontend/design-system/theme/system.ts b/src/frontend/design-system/theme/system.ts
index b387b1aee..94448504f 100644
--- a/src/frontend/design-system/theme/system.ts
+++ b/src/frontend/design-system/theme/system.ts
@@ -1,8 +1,3 @@
export const SYSTEM_COLORS = {
danger: "#f5325c",
- black: "#000000",
- white: "#ffffff",
- warning: "#ffb822",
- info: "#12a4ed",
- success: "#03d87f",
};
diff --git a/src/frontend/design-system/theme/useTheme.ts b/src/frontend/design-system/theme/useTheme.ts
index aec8becce..1d3c0dfe4 100644
--- a/src/frontend/design-system/theme/useTheme.ts
+++ b/src/frontend/design-system/theme/useTheme.ts
@@ -1,11 +1,11 @@
-import { useCallback, useContext, useEffect } from "react";
+import { useContext, useEffect } from "react";
import { ColorSchemes } from "shared/types/ui";
import { typescriptSafeObjectDotEntries } from "shared/lib/objects";
import { DEFAULT_PRIMARY_COLOR } from "./constants";
import { ThemeContext } from "./Context";
import { colorModeToRootColors } from "./generate";
import { DARK_MODE, LIGHT_MODE } from "./modes";
-import { IColorMode, IRootColors } from "./types";
+import { IColorMode } from "./types";
import { prefixVarNameSpace } from "./root";
const getColorModeImplementation = (
@@ -22,30 +22,6 @@ const getColorModeImplementation = (
return colorMode;
};
-function darkenHexColor(hexColor$1: string, percentage: number) {
- const hexColor = hexColor$1.replace(/^#/, "");
-
- // Convert hexadecimal to RGB
- let red = parseInt(hexColor.substring(0, 2), 16);
- let green = parseInt(hexColor.substring(2, 4), 16);
- let blue = parseInt(hexColor.substring(4, 6), 16);
-
- // Calculate darken percentage
- const darkenFactor = 1 - percentage / 100;
-
- // Darken RGB components
- red = Math.max(0, Math.floor(red * darkenFactor));
- green = Math.max(0, Math.floor(green * darkenFactor));
- blue = Math.max(0, Math.floor(blue * darkenFactor));
-
- // Convert back to hexadecimal
- const darkenedHexColor = `#${red.toString(16).padStart(2, "0")}${green
- .toString(16)
- .padStart(2, "0")}${blue.toString(16).padStart(2, "0")}`;
-
- return darkenedHexColor;
-}
-
export const useTheme = (
themeColor?: string,
colorMode?: ColorSchemes | IColorMode
@@ -71,14 +47,3 @@ export const useTheme = (
});
}, [themeColor, colorMode]);
};
-
-export const useThemeColorShade = () => {
- const themeContext = useContext(ThemeContext);
-
- return useCallback(
- (colorKey: IRootColors, percent: number) => {
- return darkenHexColor(themeContext.value[colorKey], percent);
- },
- [themeContext.value]
- );
-};
diff --git a/src/frontend/docs/_base.tsx b/src/frontend/docs/_base.tsx
index a13658d5e..fe6280e27 100644
--- a/src/frontend/docs/_base.tsx
+++ b/src/frontend/docs/_base.tsx
@@ -1,12 +1,10 @@
-import { OffCanvas } from "frontend/design-system/components/OffCanvas";
import { ReactNode } from "react";
import styled from "styled-components";
import { msg } from "@lingui/macro";
import { useDocumentationCanvasStore } from "./constants";
+import { OffCanvas } from "@/components/app/off-canvas";
const Root = styled.div`
- margin-top: -8px;
-
h4,
h5 {
margin-bottom: -8px !important;
@@ -16,7 +14,8 @@ const Root = styled.div`
font-size: 15px;
}
- p {
+ p,
+ li {
font-size: 0.875rem;
margin: 12px 0;
}
@@ -33,6 +32,7 @@ const Root = styled.div`
ol {
margin-top: 0px;
padding-left: 24px;
+ list-style-type: disc;
}
`;
@@ -43,7 +43,7 @@ export function DocumentationRoot({ children }: { children: ReactNode }) {
title={msg`${canvasStore.title}`}
onClose={() => canvasStore.setTitle("")}
show={!!canvasStore.title}
- width={600}
+ size="lg"
>
{children}
diff --git a/src/frontend/docs/constants.ts b/src/frontend/docs/constants.ts
index 976d0a4de..1f0c0bc0f 100644
--- a/src/frontend/docs/constants.ts
+++ b/src/frontend/docs/constants.ts
@@ -1,8 +1,8 @@
import { createStore } from "frontend/lib/store";
-import { IGroupActionButton } from "frontend/design-system/components/Button/types";
import { MessageDescriptor } from "@lingui/core";
import { useLingui } from "@lingui/react";
import { DOCUMENTATION_LABEL } from ".";
+import { IGroupActionButton } from "@/components/app/button/types";
type IDocumentationCanvasStore = {
title: string;
diff --git a/src/frontend/docs/crud.tsx b/src/frontend/docs/crud.tsx
index 24abb1871..210ac61bd 100644
--- a/src/frontend/docs/crud.tsx
+++ b/src/frontend/docs/crud.tsx
@@ -1,5 +1,4 @@
-import { InfoAlert } from "frontend/design-system/components/Alert";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
+import { InfoAlert } from "@/components/app/alert";
import { DocumentationRoot } from "./_base";
export function CRUDDocumentation() {
@@ -27,7 +26,7 @@ export function CRUDDocumentation() {
decreasing the workload on your database and ensuring
that those data do not leak out of your server.`}
/>
-
+
Details
The same behavior for the fields selection as with tables, hide a field
diff --git a/src/frontend/docs/form-integrations.tsx b/src/frontend/docs/form-integrations.tsx
index 812ddd578..2245b0a29 100644
--- a/src/frontend/docs/form-integrations.tsx
+++ b/src/frontend/docs/form-integrations.tsx
@@ -1,10 +1,10 @@
import { INTEGRATIONS_GROUP_CONFIG } from "shared/config-bag/integrations";
-import { ErrorAlert, InfoAlert } from "frontend/design-system/components/Alert";
-import { RenderCode } from "frontend/design-system/components/RenderCode";
import { useLingui } from "@lingui/react";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
import { DocumentationRoot } from "./_base";
+import { ErrorAlert, InfoAlert } from "@/components/app/alert";
+import { RenderCode } from "@/components/app/render-code";
export function FormIntegrationsDocumentation() {
const { _ } = useLingui();
diff --git a/src/frontend/docs/persistent-query.tsx b/src/frontend/docs/persistent-query.tsx
index cbe9cdd75..b7ca7f7f2 100644
--- a/src/frontend/docs/persistent-query.tsx
+++ b/src/frontend/docs/persistent-query.tsx
@@ -1,4 +1,3 @@
-import { Spacer } from "frontend/design-system/primitives/Spacer";
import { DocumentationRoot } from "./_base";
export function PersistentDocumentation() {
@@ -30,7 +29,6 @@ export function PersistentDocumentation() {
You have access to the current user object through{" "}
{"{{ auth }}"}
.
-
);
}
diff --git a/src/frontend/docs/relations.tsx b/src/frontend/docs/relations.tsx
index 3ee3ec443..976ec9d2b 100644
--- a/src/frontend/docs/relations.tsx
+++ b/src/frontend/docs/relations.tsx
@@ -1,4 +1,4 @@
-import { RenderCode } from "frontend/design-system/components/RenderCode";
+import { RenderCode } from "@/components/app/render-code";
import { DocumentationRoot } from "./_base";
export function RelationsSettingsDocumentation() {
diff --git a/src/frontend/docs/roles.tsx b/src/frontend/docs/roles.tsx
index f221034f8..e3b74e5f4 100644
--- a/src/frontend/docs/roles.tsx
+++ b/src/frontend/docs/roles.tsx
@@ -1,8 +1,7 @@
import { UserPermissions } from "shared/constants/user";
import { userFriendlyCase } from "shared/lib/strings/friendly-case";
-import { InfoAlert } from "frontend/design-system/components/Alert";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
import { DocumentationRoot } from "./_base";
+import { InfoAlert } from "@/components/app/alert";
export function RolesDocumentation() {
return (
@@ -34,7 +33,6 @@ export function RolesDocumentation() {
-
Permissions Breakdown
diff --git a/src/frontend/docs/scripts/form-scripts.tsx b/src/frontend/docs/scripts/form-scripts.tsx
index 651339c69..9fd68dd27 100644
--- a/src/frontend/docs/scripts/form-scripts.tsx
+++ b/src/frontend/docs/scripts/form-scripts.tsx
@@ -1,5 +1,4 @@
-import { RenderCode } from "frontend/design-system/components/RenderCode";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
+import { RenderCode } from "@/components/app/render-code";
import { DocumentationRoot } from "../_base";
export function FormScriptDocumentation() {
@@ -175,7 +174,6 @@ if(customFunctionToReturnFalse()){
script.
-
2. Modify the form values
The second use for this tab to is modify the data you are submitting.
@@ -210,7 +208,6 @@ return {
slug: $.formValues.title?.replaceAll(" ", "-").toLowerCase()
}`}
/>
-
Needless to say, you can combine both Before Submit
usages
to both validate data before submitting and transform the data when
diff --git a/src/frontend/docs/scripts/presentations-scripts.tsx b/src/frontend/docs/scripts/presentations-scripts.tsx
index 4c2b40d62..78ca2d3e1 100644
--- a/src/frontend/docs/scripts/presentations-scripts.tsx
+++ b/src/frontend/docs/scripts/presentations-scripts.tsx
@@ -1,7 +1,6 @@
-import { RenderCode } from "frontend/design-system/components/RenderCode";
-import { WarningAlert } from "frontend/design-system/components/Alert";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
+import { RenderCode } from "@/components/app/render-code";
import { DocumentationRoot } from "../_base";
+import { WarningAlert } from "@/components/app/alert";
export function PresentationScriptDocumentation() {
return (
@@ -80,9 +79,8 @@ return "Hannah Frederick";
This script is not async, meaning you can't do Promises, so you
can't make network calls within this script.
-
-
+
someCustomProcessing(datum));
// Just make sure to return the data you want to render
return cleanData;`}
/>
-
Summary Card
Below are valid data for Summary Cards
-
$.RELATIVE_TIME
Create a new table widget and paste this
diff --git a/src/frontend/docs/system-settings.tsx b/src/frontend/docs/system-settings.tsx
index 8d84da343..abde2f5df 100644
--- a/src/frontend/docs/system-settings.tsx
+++ b/src/frontend/docs/system-settings.tsx
@@ -1,10 +1,8 @@
-import { Spacer } from "frontend/design-system/primitives/Spacer";
import { DocumentationRoot } from "./_base";
export function SystemSettingsDocumentation() {
return (
-
Token Validity Duration
By default DashPress invalidates the user&aos;s token after 14 days i.e.
diff --git a/src/frontend/docs/views.tsx b/src/frontend/docs/views.tsx
index 73c56aa2d..545ef4cdc 100644
--- a/src/frontend/docs/views.tsx
+++ b/src/frontend/docs/views.tsx
@@ -1,4 +1,3 @@
-import { Spacer } from "frontend/design-system/primitives/Spacer";
import { DocumentationRoot } from "./_base";
export function ViewsDocumentation() {
@@ -55,7 +54,6 @@ export function ViewsDocumentation() {
settings are just default values so other users can still edit the
filters as they see fit.
-
);
}
diff --git a/src/frontend/lib/routing/usePageDetails.ts b/src/frontend/lib/routing/usePageDetails.ts
index cd139161f..7eef2cda3 100644
--- a/src/frontend/lib/routing/usePageDetails.ts
+++ b/src/frontend/lib/routing/usePageDetails.ts
@@ -1,10 +1,10 @@
import { useRouter } from "next/router";
import { useEffect } from "react";
import { META_USER_PERMISSIONS } from "shared/constants/user";
-import { IGroupActionButton } from "frontend/design-system/components/Button/types";
import { MessageDescriptor } from "@lingui/core";
import { msg } from "@lingui/macro";
import { createStore } from "../store";
+import { IGroupActionButton } from "@/components/app/button/types";
export type IPageDetails = {
pageTitle: MessageDescriptor;
diff --git a/src/frontend/views/Dashboard/List/_BaseDashboard.tsx b/src/frontend/views/Dashboard/List/_BaseDashboard.tsx
index 4ec034612..0f9b0b1ea 100644
--- a/src/frontend/views/Dashboard/List/_BaseDashboard.tsx
+++ b/src/frontend/views/Dashboard/List/_BaseDashboard.tsx
@@ -1,11 +1,11 @@
import { UserPermissions } from "shared/constants/user";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { useUserHasPermission } from "frontend/hooks/auth/user.store";
import styled from "styled-components";
import { useRouter } from "next/router";
import { AppLayout } from "frontend/_layouts/app";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
import { useDashboardWidgets } from "../dashboard.store";
import { dashboardGridRoot } from "../styles";
import { DashboardSkeleton } from "../Skeleton";
diff --git a/src/frontend/views/Dashboard/Manage/_BaseManageDashboard.tsx b/src/frontend/views/Dashboard/Manage/_BaseManageDashboard.tsx
index 7296cffb9..a19e7591b 100644
--- a/src/frontend/views/Dashboard/Manage/_BaseManageDashboard.tsx
+++ b/src/frontend/views/Dashboard/Manage/_BaseManageDashboard.tsx
@@ -1,6 +1,5 @@
import styled from "styled-components";
import { UserPermissions } from "shared/constants/user";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import SortableList, { SortableItem } from "react-easy-sort";
import { useRouter } from "next/router";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
@@ -11,6 +10,7 @@ import { msg } from "@lingui/macro";
import { useLingui } from "@lingui/react";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
import {
useArrangeDashboardWidgetMutation,
useDashboardWidgets,
diff --git a/src/frontend/views/Dashboard/Skeleton.tsx b/src/frontend/views/Dashboard/Skeleton.tsx
index 7124654ab..f941ace98 100644
--- a/src/frontend/views/Dashboard/Skeleton.tsx
+++ b/src/frontend/views/Dashboard/Skeleton.tsx
@@ -1,8 +1,8 @@
import styled from "styled-components";
-import { BaseSkeleton } from "frontend/design-system/components/Skeleton/Base";
-import { TableSkeleton } from "frontend/design-system/components/Skeleton/Table";
-import { Card } from "frontend/design-system/components/Card";
+import { TableSkeleton } from "@/components/app/skeleton/table";
import { dashboardGridRoot, WidgetRoot } from "./styles";
+import { Card } from "@/components/ui/card";
+import { Skeleton } from "@/components/ui/skeleton";
const Root = styled.div`
${dashboardGridRoot};
@@ -11,10 +11,10 @@ const Root = styled.div`
export function DashboardSkeleton() {
return (
-
+
{[1, 2, 3, 4, 5, 6, 7, 8].map((i) => (
-
+
))}
diff --git a/src/frontend/views/Dashboard/Widget/_components/WidgetFrame/index.tsx b/src/frontend/views/Dashboard/Widget/_components/WidgetFrame/index.tsx
index ffc9eb999..efa5b4781 100644
--- a/src/frontend/views/Dashboard/Widget/_components/WidgetFrame/index.tsx
+++ b/src/frontend/views/Dashboard/Widget/_components/WidgetFrame/index.tsx
@@ -1,27 +1,21 @@
-import styled from "styled-components";
import { WidgetRoot } from "frontend/views/Dashboard/styles";
import { ReactElement, forwardRef } from "react";
import {
IWidgetConfig,
WIDGET_SCRIPT_RELATIVE_TIME_MARKER,
} from "shared/types/dashboard";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { ISharedWidgetConfig } from "shared/types/dashboard/base";
import { DataStateKeys } from "frontend/lib/data/types";
-import { Card } from "frontend/design-system/components/Card";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
-import { RenderCode } from "frontend/design-system/components/RenderCode";
-import { Stack } from "frontend/design-system/primitives/Stack";
-import { EmptyWrapper } from "frontend/design-system/components/EmptyWrapper";
import { msg } from "@lingui/macro";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
import { WidgetHeader } from "../WidgetHeader";
import { IWidgetSettingProps } from "../WidgetHeader/types";
import { WIDGET_CONFIG } from "../../constants";
import { useWidgetNavigationLink } from "../../../Widget/useWidgetNavigationLink";
-
-const Box = styled.div`
- padding: 16px;
-`;
+import { Card } from "@/components/ui/card";
+import { cn } from "@/lib/utils";
+import { EmptyWrapper } from "@/components/app/empty-wrapper";
+import { RenderCode } from "@/components/app/render-code";
interface IProps {
config: ISharedWidgetConfig;
@@ -83,8 +77,8 @@ export const WidgetFrame = forwardRef(
$span={config.span || configSpan}
$height={height}
>
-
-
+
+
(
isPreview={isPreview}
hasRelativeDate={hasRelativeDate}
/>
-
(
{schemaError ? (
) : isDataEmpty(data.data) ? (
-
-
-
+
) : (
)}
-
+
);
diff --git a/src/frontend/views/Dashboard/Widget/_components/WidgetHeader/index.tsx b/src/frontend/views/Dashboard/Widget/_components/WidgetHeader/index.tsx
index 9eba30f0b..bf45717e0 100644
--- a/src/frontend/views/Dashboard/Widget/_components/WidgetHeader/index.tsx
+++ b/src/frontend/views/Dashboard/Widget/_components/WidgetHeader/index.tsx
@@ -1,17 +1,15 @@
-import { SoftButton } from "frontend/design-system/components/Button/SoftButton";
-import { Stack } from "frontend/design-system/primitives/Stack";
-import { Typo } from "frontend/design-system/primitives/Typo";
-import { DropDownMenu } from "frontend/design-system/components/DropdownMenu";
import { SortableKnob } from "react-easy-sort";
-import { GrabIcon } from "frontend/design-system/Icons/Grab";
-import { ActionButtons } from "frontend/design-system/components/Button/ActionButtons";
-import { DELETE_BUTTON_PROPS } from "frontend/design-system/components/Button/constants";
import { msg } from "@lingui/macro";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import { DELETE_BUTTON_PROPS } from "@/components/app/button/constants";
+import { SoftButton } from "@/components/app/button/soft";
import { DASHBOARD_RELATIVE_DAYS } from "./constants";
import { IWidgetSettingProps } from "./types";
import { useDashboardWidgetRelativeDateStore } from "../../../relativeTime.store";
+import { ActionButtons } from "@/components/app/button/action";
+import { GrabIcon } from "@/components/app/system-icons";
+import { DropDownMenu } from "@/components/app/drop-drop-menu";
interface IProps {
setting?: IWidgetSettingProps;
@@ -36,18 +34,18 @@ export function WidgetHeader({
const domainMessages = useDomainMessages(LANG_DOMAINS.DASHBOARD.WIDGETS);
return (
-
-
+
+
{setting && (
)}
-
{title}
-
+
{title} dsds ds // TODO
+
{setting ? (
) : (
-
+
{hasRelativeDate && !isPreview && (
)}
-
+
)}
-
+
);
}
diff --git a/src/frontend/views/Dashboard/Widget/_manage/Form.tsx b/src/frontend/views/Dashboard/Widget/_manage/Form.tsx
index c6057e24d..c1000ac0d 100644
--- a/src/frontend/views/Dashboard/Widget/_manage/Form.tsx
+++ b/src/frontend/views/Dashboard/Widget/_manage/Form.tsx
@@ -1,10 +1,7 @@
import { useEntityConfiguration } from "frontend/hooks/configuration/configuration.store";
import { Field, Form } from "react-final-form";
-import { ISummaryWidgetConfig, IWidgetConfig } from "shared/types/dashboard";
-import { ROYGBIV, ROYGBIV_CONFIG } from "shared/constants/colors";
-import { IconInputField } from "frontend/components/IconInputField";
+import { IWidgetConfig } from "shared/types/dashboard";
import { useMutation } from "@tanstack/react-query";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { useEffect, useState } from "react";
import { WidgetScriptDocumentation } from "frontend/docs/scripts/widget-scripts";
import { required } from "frontend/lib/validations";
@@ -12,36 +9,33 @@ import { resetFormValues } from "frontend/lib/form/utils";
import { ApiRequest } from "frontend/lib/data/makeRequest";
import { IFormProps } from "frontend/lib/form/types";
import { ILabelValue } from "shared/types/options";
-import { FormInput } from "frontend/design-system/components/Form/Input";
import { FormSelect } from "frontend/design-system/components/Form/Select";
-import { BaseSkeleton } from "frontend/design-system/components/Skeleton/Base";
-import { Tabs } from "frontend/design-system/components/Tabs";
-import { RenderCode } from "frontend/design-system/components/RenderCode";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
-import { SoftButton } from "frontend/design-system/components/Button/SoftButton";
-import { Typo } from "frontend/design-system/primitives/Typo";
-import { Stack } from "frontend/design-system/primitives/Stack";
-import { FormButton } from "frontend/design-system/components/Button/FormButton";
import { FormCodeEditor } from "frontend/design-system/components/Form/CodeEditor";
import { loadedDataState } from "frontend/lib/data/constants/loadedDataState";
import { useDocumentationActionButton } from "frontend/docs/constants";
-import { FormGrid } from "frontend/components/SchemaForm/form-grid";
import { GRID_SPAN_OPTIONS } from "frontend/design-system/constants/grid";
import { msg } from "@lingui/macro";
-import {
- typescriptSafeObjectDotEntries,
- typescriptSafeObjectDotKeys,
-} from "shared/lib/objects";
+import { typescriptSafeObjectDotEntries } from "shared/lib/objects";
import { i18nNoop, transformLabelValueToSelectData } from "translations/fake";
import { MessageDescriptor } from "@lingui/core";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import { RenderCode } from "@/components/app/render-code";
+import { FormInput } from "@/components/app/form/input/text";
import { DashboardWidgetPresentation } from "../Presentation";
import { BASE_WIDGET_CONFIG } from "../constants";
import { PortalFormFields, PortalFormSchema } from "./portal";
import { WidgetFormField } from "./types";
import { DASHBOARD_WIDGET_HEIGHTS } from "./constants";
import { usePortalDashboardTypesOptions } from "../portal";
+import { Skeleton } from "@/components/ui/skeleton";
+import { FormGrid } from "@/components/app/form/schema/form-grid";
+import { SpectrumColorInputField } from "@/components/app/form/input/spectrum";
+import { IconInputField } from "@/components/app/form/input/icon";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
+import { Tabs } from "@/components/app/tabs";
+import { SoftButton } from "@/components/app/button/soft";
+import { FormButton } from "@/components/app/button/form";
const FormSchema: Partial> = {
"summary-card": ["color", "icon"],
@@ -194,28 +188,20 @@ export function DashboardWidgetForm({
{formFields.includes("color") && (
{({ input, meta }) => (
- ({
- value,
- label: ROYGBIV_CONFIG[value].label,
- })
- )}
- meta={meta}
- input={input}
+
)}
)}
- {formFields.includes("icon") && (
-
- )}
+ {formFields.includes("icon") && }
@@ -264,7 +250,9 @@ export function DashboardWidgetForm({
error={runWidgetScript.error}
loading={runWidgetScript.isPending}
loader={
-
+
}
>
{!runWidgetScript.isIdle && (
@@ -298,42 +286,38 @@ export function DashboardWidgetForm({
)}
{process.env.NEXT_PUBLIC_IS_DEMO ? (
-
-
-
+
+
You will be able to save this form on your own
installation
-
-
+
+
) : (
- <>
-
-
- {values._type && (
- {
- runWidgetScript.mutate(values.script);
- }}
- disabled={!values.script}
- isMakingRequest={runWidgetScript.isPending}
- systemIcon="Eye"
- size={null}
- label={msg`Test Widget Script`}
- />
- )}
-
-
+ {values._type && (
+ {
+ runWidgetScript.mutate(values.script);
+ }}
+ disabled={!values.script}
+ isMakingRequest={runWidgetScript.isPending}
+ systemIcon="Eye"
+ size="lg"
+ label={msg`Test Widget Script`}
/>
-
- >
+ )}
+
+
+
)}
diff --git a/src/frontend/views/Dashboard/Widget/_manage/index.tsx b/src/frontend/views/Dashboard/Widget/_manage/index.tsx
index dd123563a..36c761422 100644
--- a/src/frontend/views/Dashboard/Widget/_manage/index.tsx
+++ b/src/frontend/views/Dashboard/Widget/_manage/index.tsx
@@ -1,18 +1,18 @@
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { IWidgetConfig } from "shared/types/dashboard";
import { useActiveEntities } from "frontend/hooks/entity/entity.store";
import { useRouteParam } from "frontend/lib/routing/useRouteParam";
import { SystemIconsList } from "shared/constants/Icons";
import { AppLayout } from "frontend/_layouts/app";
import { useNavigationStack } from "frontend/lib/routing/useNavigationStack";
-import { ContentLayout } from "frontend/design-system/components/Section/SectionDivider";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
+import { useDomainMessages } from "frontend/lib/crud-config";
+import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import { ContentLayout } from "@/components/app/content-layout";
+import { SectionBox } from "@/components/app/section-box";
import {
FormSkeleton,
FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
-import { useDomainMessages } from "frontend/lib/crud-config";
-import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+} from "@/components/app/skeleton/form";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
import { DashboardWidgetForm } from "./Form";
import { useDashboardWidgets } from "../../dashboard.store";
diff --git a/src/frontend/views/Dashboard/Widget/_render/Summary/index.tsx b/src/frontend/views/Dashboard/Widget/_render/Summary/index.tsx
index 301ab9573..48c8ba69e 100644
--- a/src/frontend/views/Dashboard/Widget/_render/Summary/index.tsx
+++ b/src/frontend/views/Dashboard/Widget/_render/Summary/index.tsx
@@ -1,5 +1,4 @@
import { ISummaryWidgetConfig } from "shared/types/dashboard";
-import { ROYGBIV } from "shared/constants/colors";
import { systemIconToSVG } from "shared/constants/Icons";
import { SummaryWidget as SummaryWidgetPresentation } from "frontend/design-system/components/Widgets/Summary";
import { SummaryCardWidgetSchema } from "./types";
@@ -32,7 +31,7 @@ export function SummaryWidget({ config, data }: IProps) {
return (
@@ -34,13 +33,13 @@ export const BASE_WIDGET_CONFIG: Partial<
requiredInterface: `[{count: number} | number] | number`,
schema: SummaryCardWidgetSchema,
LoadingComponent: () => (
-
-
-
-
-
-
-
+
),
isDataEmpty: () => {
return false;
diff --git a/src/frontend/views/SignIn/index.tsx b/src/frontend/views/SignIn/index.tsx
index 8ee983d4d..f9dbf20c7 100644
--- a/src/frontend/views/SignIn/index.tsx
+++ b/src/frontend/views/SignIn/index.tsx
@@ -10,13 +10,12 @@ import { useAuthenticateUser } from "frontend/hooks/auth/useAuthenticateUser";
import { ApiRequest } from "frontend/lib/data/makeRequest";
import { ToastService } from "frontend/lib/toast";
import { NAVIGATION_LINKS } from "frontend/lib/routing/links";
-import { ComponentIsLoading } from "frontend/design-system/components/ComponentIsLoading";
-import { Typo } from "frontend/design-system/primitives/Typo";
-import { SchemaForm } from "frontend/components/SchemaForm";
import { useGuestCheck } from "frontend/hooks/auth/useGuestCheck";
import { msg } from "@lingui/macro";
import { CustomNextPage } from "frontend/_layouts/types";
+import { SchemaForm } from "@/components/app/form/schema";
import { useHandleNoTokenAuthResponse } from "./portal";
+import { ComponentIsLoading } from "@/components/app/loading-component";
function useSignInMutation() {
const authenticateUser = useAuthenticateUser();
@@ -66,12 +65,12 @@ export const SignIn: CustomNextPage = () => {
>
{process.env.NEXT_PUBLIC_IS_DEMO && (
-
+
Username is root
-
-
+
+
Password is password
-
+
)}
diff --git a/src/frontend/views/account/Password/index.tsx b/src/frontend/views/account/Password/index.tsx
index 418fe4aaa..2960583a7 100644
--- a/src/frontend/views/account/Password/index.tsx
+++ b/src/frontend/views/account/Password/index.tsx
@@ -1,13 +1,13 @@
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
import { META_USER_PERMISSIONS } from "shared/constants/user";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
-import { SchemaForm } from "frontend/components/SchemaForm";
import {
CHANGE_PASSWORD_FORM_SCHEMA,
IChangePasswordForm,
} from "shared/form-schemas/profile/password";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import { SchemaForm } from "@/components/app/form/schema";
+import { SectionBox } from "@/components/app/section-box";
import { useChangePasswordMutation } from "../account.store";
import { ACCOUNT_VIEW_KEY } from "../constants";
diff --git a/src/frontend/views/account/Preferences/index.tsx b/src/frontend/views/account/Preferences/index.tsx
index 6a0eb9d2e..701bd7a27 100644
--- a/src/frontend/views/account/Preferences/index.tsx
+++ b/src/frontend/views/account/Preferences/index.tsx
@@ -1,16 +1,9 @@
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { META_USER_PERMISSIONS } from "shared/constants/user";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
-import {
- FormSkeleton,
- FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
import {
useUpsertUserPreferenceMutation,
useUserPreference,
} from "frontend/hooks/auth/preferences.store";
-import { SchemaForm } from "frontend/components/SchemaForm";
import { usePortalThemes } from "frontend/_layouts/portal";
import { userFriendlyCase } from "shared/lib/strings/friendly-case";
import { uniqBy } from "shared/lib/array/uniq-by";
@@ -19,10 +12,16 @@ import { IAppliedSchemaFormConfig } from "shared/form-schemas/types";
import languages from "translations/languages";
import { msg } from "@lingui/macro";
import { useRouter } from "next/router";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
import { typescriptSafeObjectDotKeys } from "shared/lib/objects";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import { SchemaForm } from "@/components/app/form/schema";
+import {
+ FormSkeleton,
+ FormSkeletonSchema,
+} from "@/components/app/skeleton/form";
+import { SectionBox } from "@/components/app/section-box";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
import { ACCOUNT_VIEW_KEY } from "../constants";
import { BaseAccountLayout } from "../_Base";
import { UPDATE_USER_PREFERENCES_FORM_SCHEMA } from "./constants";
@@ -80,59 +79,59 @@ export function UserPreferences() {
return (
-
- }
+
+
+ }
+ >
+
+ onSubmit={async (data) => {
+ await upsertUserPreferenceMutation.mutateAsync(data.theme);
+ }}
+ initialValues={{ theme: userPreferences.data }}
+ buttonText={domainMessages.FORM_LANG.UPSERT}
+ fields={formSchema}
+ systemIcon="Save"
+ />
+
+
+
+
-
+
onSubmit={async (data) => {
- await upsertUserPreferenceMutation.mutateAsync(data.theme);
+ const { pathname, asPath, query } = router;
+
+ router.push({ pathname, query }, asPath, { locale: data.locale });
+
+ const date = new Date();
+ const expireMs = 100 * 24 * 60 * 60 * 1000; // 100 days
+ date.setTime(date.getTime() + expireMs);
+ document.cookie = `NEXT_LOCALE=${
+ data.locale
+ };expires=${date.toUTCString()};path=/`;
}}
- initialValues={{ theme: userPreferences.data }}
- buttonText={domainMessages.FORM_LANG.UPSERT}
- fields={formSchema}
+ initialValues={{ locale: router.locale || router.defaultLocale }}
+ buttonText={() => msg`Change Language`}
+ fields={LANGUAGE_PREFERENCES_FORM_SCHEMA}
systemIcon="Save"
/>
-
-
-
-
-
-
-
- onSubmit={async (data) => {
- const { pathname, asPath, query } = router;
-
- router.push({ pathname, query }, asPath, { locale: data.locale });
-
- const date = new Date();
- const expireMs = 100 * 24 * 60 * 60 * 1000; // 100 days
- date.setTime(date.getTime() + expireMs);
- document.cookie = `NEXT_LOCALE=${
- data.locale
- };expires=${date.toUTCString()};path=/`;
- }}
- initialValues={{ locale: router.locale || router.defaultLocale }}
- buttonText={() => msg`Change Language`}
- fields={LANGUAGE_PREFERENCES_FORM_SCHEMA}
- systemIcon="Save"
- />
-
+
-
+
+
);
}
diff --git a/src/frontend/views/account/Profile/index.tsx b/src/frontend/views/account/Profile/index.tsx
index f406714cc..597b26e30 100644
--- a/src/frontend/views/account/Profile/index.tsx
+++ b/src/frontend/views/account/Profile/index.tsx
@@ -1,19 +1,19 @@
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
-import {
- FormSkeleton,
- FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
import { useAuthenticatedUserBag } from "frontend/hooks/auth/user.store";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { META_USER_PERMISSIONS } from "shared/constants/user";
import {
IUpdateProfileForm,
UPDATE_PROFILE_FORM_SCHEMA,
} from "shared/form-schemas/profile/update";
-import { SchemaForm } from "frontend/components/SchemaForm";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
import { useDomainMessages } from "frontend/lib/crud-config";
+import { SchemaForm } from "@/components/app/form/schema";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
+import {
+ FormSkeleton,
+ FormSkeletonSchema,
+} from "@/components/app/skeleton/form";
+import { SectionBox } from "@/components/app/section-box";
import { useUpdateProfileMutation } from "../account.store";
import { ACCOUNT_VIEW_KEY } from "../constants";
import { BaseAccountLayout } from "../_Base";
diff --git a/src/frontend/views/account/_Base.tsx b/src/frontend/views/account/_Base.tsx
index 71535f6c8..3b451fab7 100644
--- a/src/frontend/views/account/_Base.tsx
+++ b/src/frontend/views/account/_Base.tsx
@@ -1,15 +1,13 @@
import { useRouter } from "next/router";
import { ReactNode } from "react";
-import { ContentLayout } from "frontend/design-system/components/Section/SectionDivider";
-import {
- IMenuSectionItem,
- MenuSection,
-} from "frontend/design-system/components/Section/MenuSection";
import { AppLayout } from "frontend/_layouts/app";
import { NAVIGATION_LINKS } from "frontend/lib/routing/links";
import { AuthActions } from "frontend/hooks/auth/auth.actions";
import { msg } from "@lingui/macro";
+import { ContentLayout } from "@/components/app/content-layout";
+import { MenuSection } from "@/components/app/menu-section";
import { usePortalAccountMenu } from "./portal";
+import { IMenuActionItem } from "@/components/app/button/types";
interface IProps {
children: ReactNode;
@@ -19,31 +17,36 @@ export function BaseAccountLayout({ children }: IProps) {
const router = useRouter();
const portalAccountMenu = usePortalAccountMenu();
- const baseMenuItems: IMenuSectionItem[] = [
+ const baseMenuItems: IMenuActionItem[] = [
{
+ id: "profile",
action: NAVIGATION_LINKS.ACCOUNT.PROFILE,
- name: msg`Profile`,
+ label: msg`Profile`,
systemIcon: "User",
order: 10,
},
{
+ id: "preferences",
action: NAVIGATION_LINKS.ACCOUNT.PREFERENCES,
- name: msg`Preferences`,
+ label: msg`Preferences`,
systemIcon: "Settings" as const,
order: 20,
},
{
+ id: "password",
action: NAVIGATION_LINKS.ACCOUNT.PASSWORD,
- name: msg`Password`,
+ label: msg`Password`,
systemIcon: "Lock",
order: 30,
},
{
+ id: "logout",
action: () => {
AuthActions.signOut();
},
- name: msg`Log Out`,
+ label: msg`Log Out`,
systemIcon: "LogOut",
+ destructive: true,
order: 40,
},
];
diff --git a/src/frontend/views/data/Create/index.tsx b/src/frontend/views/data/Create/index.tsx
index 592f487d5..26bf646ec 100644
--- a/src/frontend/views/data/Create/index.tsx
+++ b/src/frontend/views/data/Create/index.tsx
@@ -1,5 +1,3 @@
-import { ContentLayout } from "frontend/design-system/components/Section/SectionDivider";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
import { useNavigationStack } from "frontend/lib/routing/useNavigationStack";
import { META_USER_PERMISSIONS } from "shared/constants/user";
@@ -12,6 +10,8 @@ import { useEntityDataCreationMutation } from "frontend/hooks/data/data.store";
import { useRouteParams } from "frontend/lib/routing/useRouteParam";
import { useEntityConfiguration } from "frontend/hooks/configuration/configuration.store";
import { useEvaluateScriptContext } from "frontend/hooks/scripts";
+import { ContentLayout } from "@/components/app/content-layout";
+import { SectionBox } from "@/components/app/section-box";
import { useEntityActionMenuItems } from "../../entity/constants";
import { BaseEntityForm } from "../_BaseEntityForm";
import { runInitialValuesScript } from "./run-initial-values-scripts";
diff --git a/src/frontend/views/data/Details/DetailsView.tsx b/src/frontend/views/data/Details/DetailsView.tsx
index 181c43245..69623bbc9 100644
--- a/src/frontend/views/data/Details/DetailsView.tsx
+++ b/src/frontend/views/data/Details/DetailsView.tsx
@@ -3,10 +3,6 @@ import {
useAppConfiguration,
useEntityConfiguration,
} from "frontend/hooks/configuration/configuration.store";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
-import { BaseSkeleton } from "frontend/design-system/components/Skeleton/Base";
-import { Typo } from "frontend/design-system/primitives/Typo";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
import { useEntityDataDetails } from "frontend/hooks/data/data.store";
import {
useEntityFieldLabels,
@@ -18,15 +14,13 @@ import { useEntityToOneReferenceFields } from "frontend/hooks/entity/entity.stor
import { DataStates } from "frontend/lib/data/types";
import styled from "styled-components";
import { useEvaluateScriptContext } from "frontend/hooks/scripts";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
import { useEntityViewStateMachine } from "../hooks/useEntityViewStateMachine";
import { viewSpecialDataTypes } from "../viewSpecialDataTypes";
import { evalutePresentationScript } from "../evaluatePresentationScript";
import { PreDataDetails } from "./portal";
import { PortalColumnRender } from "../Table/portal";
-
-const ContentText = styled(Typo.SM)`
- overflow-wrap: anywhere;
-`;
+import { Skeleton } from "@/components/ui/skeleton";
const DetailItem = styled.div`
.show-on-hover {
@@ -93,8 +87,8 @@ export function EntityDetailsView({
<>
{Array.from({ length: 7 }, (_, k) => k).map((key) => (
-
-
+
+
))}
>
@@ -129,15 +123,17 @@ export function EntityDetailsView({
});
const contentToRender = specialDataTypeRender || (
-
+
{typeof value === "object" ? JSON.stringify(value) : value}
-
+
);
return (
- {getEntityFieldLabels(name)}
-
+
+ {getEntityFieldLabels(name)}
+
+
{contentToRender}
-
-
+
);
})}
diff --git a/src/frontend/views/data/Details/RelationsDetails.tsx b/src/frontend/views/data/Details/RelationsDetails.tsx
index b5dbc783d..aa72d9982 100644
--- a/src/frontend/views/data/Details/RelationsDetails.tsx
+++ b/src/frontend/views/data/Details/RelationsDetails.tsx
@@ -13,10 +13,6 @@ import { useRouteParam } from "frontend/lib/routing/useRouteParam";
import { useNavigationStack } from "frontend/lib/routing/useNavigationStack";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
import { NAVIGATION_LINKS } from "frontend/lib/routing/links";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
-import { Typo } from "frontend/design-system/primitives/Typo";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
-import { SoftButton } from "frontend/design-system/components/Button/SoftButton";
import {
useEntityCrudConfig,
useEntityId,
@@ -25,6 +21,8 @@ import {
import { isQueryIdle } from "frontend/lib/data/useApi/utils";
import { useLingui } from "@lingui/react";
import { msg } from "@lingui/macro";
+import { SoftButton } from "@/components/app/button/soft";
+import { SectionBox } from "@/components/app/section-box";
import { ENTITY_DETAILS_VIEW_KEY } from "./constants";
import { EntityDetailsView } from "./DetailsView";
import { DetailsLayout } from "./_Layout";
@@ -114,12 +112,11 @@ export function EntityRelationDetails() {
}
backLink={backLink}
>
-
-
+
+
The {_(childEntityCrudConfig.TEXT_LANG.SINGULAR)} for{" "}
{entityDataReference.data} does not exist
-
-
+
-
+
-
+
{children}
diff --git a/src/frontend/views/data/Details/index.tsx b/src/frontend/views/data/Details/index.tsx
index 38f715cbf..a2cf51498 100644
--- a/src/frontend/views/data/Details/index.tsx
+++ b/src/frontend/views/data/Details/index.tsx
@@ -1,7 +1,6 @@
import { META_USER_PERMISSIONS } from "shared/constants/user";
import { useNavigationStack } from "frontend/lib/routing/useNavigationStack";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
import {
useEntityCrudConfig,
useEntityId,
@@ -9,6 +8,7 @@ import {
} from "frontend/hooks/entity/entity.config";
import { NAVIGATION_LINKS } from "frontend/lib/routing/links";
import { useEntityDataDetails } from "frontend/hooks/data/data.store";
+import { SectionBox } from "@/components/app/section-box";
import { ENTITY_DETAILS_VIEW_KEY } from "./constants";
import { EntityDetailsView } from "./DetailsView";
import { DetailsLayout, DETAILS_LAYOUT_KEY } from "./_Layout";
diff --git a/src/frontend/views/data/Details/portal/main.ts b/src/frontend/views/data/Details/portal/main.ts
index a3488aff7..c34169a01 100644
--- a/src/frontend/views/data/Details/portal/main.ts
+++ b/src/frontend/views/data/Details/portal/main.ts
@@ -1,6 +1,8 @@
-import { IGroupActionButton } from "frontend/design-system/components/Button/types";
-import { IDropDownMenuItem } from "frontend/design-system/components/DropdownMenu";
import { noop } from "shared/lib/noop";
+import {
+ IGroupActionButton,
+ IMenuActionItem,
+} from "@/components/app/button/types";
export const useDetailsViewMenuItems = ({
entity,
@@ -8,7 +10,7 @@ export const useDetailsViewMenuItems = ({
}: {
entity: string;
entityId: string;
-}): IDropDownMenuItem[] => {
+}): IMenuActionItem[] => {
noop(entity, entityId);
return [];
};
diff --git a/src/frontend/views/data/OptionTag.tsx b/src/frontend/views/data/OptionTag.tsx
index 16373b698..0011fd7b4 100644
--- a/src/frontend/views/data/OptionTag.tsx
+++ b/src/frontend/views/data/OptionTag.tsx
@@ -1,27 +1,20 @@
-import styled from "styled-components";
-import { Typo } from "frontend/design-system/primitives/Typo";
import { IColorableSelection } from "shared/types/ui";
import { useLingui } from "@lingui/react";
+import { cn } from "@/lib/utils";
+import { spectrumVariants } from "@/components/ui/spectrum";
-const DEFAULT_TAG_COLOR = "#000000";
-
-const Root = styled.div<{ color: string }>`
- display: inline-block;
- padding: 2px 8px;
- border-radius: 4px;
- border: 1px solid ${(props) => props.color || DEFAULT_TAG_COLOR};
- background: ${(props) => props.color || DEFAULT_TAG_COLOR}1A;
-`;
-
-const TextColor = styled(Typo.SM)<{ $customColor: string }>`
- color: ${(props) => props.$customColor};
-`;
-
-export function OptionTag({ color, label }: IColorableSelection) {
+export function OptionTag({ spectrum, label }: IColorableSelection) {
const { _ } = useLingui();
return (
-
- {_(label)}
-
+
);
}
diff --git a/src/frontend/views/data/ReferenceComponent.tsx b/src/frontend/views/data/ReferenceComponent.tsx
index e38909a31..dbce9db9e 100644
--- a/src/frontend/views/data/ReferenceComponent.tsx
+++ b/src/frontend/views/data/ReferenceComponent.tsx
@@ -1,9 +1,9 @@
import { useEntityDataReference } from "frontend/hooks/data/data.store";
import { useRouter } from "next/router";
import { NAVIGATION_LINKS } from "frontend/lib/routing/links";
-import { BaseSkeleton } from "frontend/design-system/components/Skeleton/Base";
-import { TextButton } from "frontend/design-system/components/Button/TextButton";
import { useDetailsOffCanvasStore } from "./Table/hooks/useDetailsOffCanvas.store";
+import { Skeleton } from "@/components/ui/skeleton";
+import { Button } from "@/components/ui/button";
export type ReferenceDisplayFromTypes = "table" | "details" | "canvas";
@@ -20,7 +20,7 @@ export function ReferenceComponent({ entity, id, displayFrom }: IProps) {
const entityDataReference = useEntityDataReference(entity, id);
if (entityDataReference.isLoading) {
- return ;
+ return ;
}
if (entityDataReference.error) {
@@ -34,7 +34,8 @@ export function ReferenceComponent({ entity, id, displayFrom }: IProps) {
}
return (
- {
if (displayFrom === "table" || displayFrom === "details") {
openDetailsCanvas({ entity, id });
@@ -44,6 +45,6 @@ export function ReferenceComponent({ entity, id, displayFrom }: IProps) {
}}
>
{displayText}
-
+
);
}
diff --git a/src/frontend/views/data/Table/DataTable/index.tsx b/src/frontend/views/data/Table/DataTable/index.tsx
index d87d012bc..fd6956902 100644
--- a/src/frontend/views/data/Table/DataTable/index.tsx
+++ b/src/frontend/views/data/Table/DataTable/index.tsx
@@ -1,12 +1,12 @@
import { usePaginatedData } from "frontend/lib/data/useApi/usePaginatedData";
import { DEFAULT_PAGINATED_DATA } from "frontend/lib/data/constants/defaults";
import { pluralize } from "shared/lib/strings";
-import { ITableColumn } from "frontend/design-system/components/Table/types";
-import { Table } from "frontend/design-system/components/Table";
-import { IEmptyWrapperProps } from "frontend/design-system/components/EmptyWrapper/types";
import { msg, t } from "@lingui/macro";
import { useTableState } from "../hooks";
import { IDataTableProps } from "../types";
+import { IEmptyWrapperProps } from "@/components/app/empty-wrapper/types";
+import { Table } from "@/components/app/table";
+import { ITableColumn } from "@/components/app/table/types";
interface IProps extends IDataTableProps {
columns: ITableColumn[];
diff --git a/src/frontend/views/data/Table/_WholeEntityTable/DetailsCanvas.tsx b/src/frontend/views/data/Table/_WholeEntityTable/DetailsCanvas.tsx
index 40ec02c3f..bab264873 100644
--- a/src/frontend/views/data/Table/_WholeEntityTable/DetailsCanvas.tsx
+++ b/src/frontend/views/data/Table/_WholeEntityTable/DetailsCanvas.tsx
@@ -2,13 +2,12 @@ import { useEffect } from "react";
import { useRouter } from "next/router";
import { NAVIGATION_LINKS } from "frontend/lib/routing/links";
import { useEntityCrudConfig } from "frontend/hooks/entity/entity.config";
-import { OffCanvas } from "frontend/design-system/components/OffCanvas";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
-import { SoftButton } from "frontend/design-system/components/Button/SoftButton";
import { msg } from "@lingui/macro";
+import { SoftButton } from "@/components/app/button/soft";
import { useDetailsOffCanvasStore } from "../hooks";
import { EntityDetailsView } from "../../Details/DetailsView";
import { PortalDataComponent } from "../../portal";
+import { OffCanvas } from "@/components/app/off-canvas";
export function DetailsCanvas() {
const router = useRouter();
@@ -27,17 +26,17 @@ export function DetailsCanvas() {
title={entityCrudConfig.TEXT_LANG.DETAILS}
onClose={closeDetailsCanvas}
show={!!detailsCanvasEntity}
+ size="sm"
>
-
+
- >
+
);
}
diff --git a/src/frontend/views/data/Table/_WholeEntityTable/index.tsx b/src/frontend/views/data/Table/_WholeEntityTable/index.tsx
index b416f1916..5aeb2c532 100644
--- a/src/frontend/views/data/Table/_WholeEntityTable/index.tsx
+++ b/src/frontend/views/data/Table/_WholeEntityTable/index.tsx
@@ -1,17 +1,14 @@
import { useEntitiesFilterCount } from "frontend/hooks/data/data.store";
import { FieldQueryFilter } from "shared/types/data";
import { useEntityConfiguration } from "frontend/hooks/configuration/configuration.store";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { useChangeRouterParam } from "frontend/lib/routing/useChangeRouterParam";
import { useRouteParam } from "frontend/lib/routing/useRouteParam";
import { abbreviateNumber } from "frontend/lib/numbers";
-import { TableSkeleton } from "frontend/design-system/components/Skeleton/Table";
-import { Card } from "frontend/design-system/components/Card";
-import { Tabs } from "frontend/design-system/components/Tabs";
import { i18nNoop } from "translations/fake";
import { DetailsCanvas } from "./DetailsCanvas";
import { TableTopComponent, usePortalTableTabs } from "../portal";
import { EntityDataTable } from "./EntityDataTable";
+import { Tabs } from "@/components/app/tabs";
interface IProps {
entity: string;
@@ -56,43 +53,33 @@ export function WholeEntityTable({
return (
<>
-
- }
- >
- {tableTabs.length > 0 ? (
- {
- const currentViewSlice = tableViewsCount.data[id];
+ {tableTabs.length > 0 ? (
+ {
+ const currentViewSlice = tableViewsCount.data[id];
- const currentCount = currentViewSlice.isLoading
- ? "..."
- : abbreviateNumber(currentViewSlice?.data?.count || 0);
+ const currentCount = currentViewSlice.isLoading
+ ? "..."
+ : abbreviateNumber(currentViewSlice?.data?.count || 0);
- return {
- content: (
-
- ),
- id: title.trim(),
- label: i18nNoop(`${title}(${currentCount})`),
- };
- })}
- />
- ) : (
-
- )}
-
-
+ return {
+ content: (
+
+ ),
+ id: title.trim(),
+ label: i18nNoop(`${title}(${currentCount})`),
+ };
+ })}
+ />
+ ) : (
+
+ )}
>
);
diff --git a/src/frontend/views/data/Table/hooks/useCurrentTableState.store.ts b/src/frontend/views/data/Table/hooks/useCurrentTableState.store.ts
index 62b06a1f6..17782e183 100644
--- a/src/frontend/views/data/Table/hooks/useCurrentTableState.store.ts
+++ b/src/frontend/views/data/Table/hooks/useCurrentTableState.store.ts
@@ -1,6 +1,6 @@
-import { DEFAULT_TABLE_STATE } from "frontend/design-system/components/Table/constants";
import { createStore } from "frontend/lib/store";
import { IPaginatedDataState } from "shared/types/data";
+import { DEFAULT_TABLE_STATE } from "@/components/app/table";
type IStore = {
tableState: IPaginatedDataState;
diff --git a/src/frontend/views/data/Table/hooks/useEntityContextState.ts b/src/frontend/views/data/Table/hooks/useEntityContextState.ts
index 483df166f..039598cba 100644
--- a/src/frontend/views/data/Table/hooks/useEntityContextState.ts
+++ b/src/frontend/views/data/Table/hooks/useEntityContextState.ts
@@ -1,7 +1,7 @@
import { useContextState } from "frontend/hooks/state";
import { IPaginatedDataState } from "shared/types/data";
-import { DEFAULT_TABLE_STATE } from "frontend/design-system/components/Table/constants";
import { IDataTableProps } from "../types";
+import { DEFAULT_TABLE_STATE } from "@/components/app/table";
export const useEntityContextState = (
contextKey: string,
diff --git a/src/frontend/views/data/Table/hooks/useTableState.ts b/src/frontend/views/data/Table/hooks/useTableState.ts
index 5e91af8d5..6d55dc05d 100644
--- a/src/frontend/views/data/Table/hooks/useTableState.ts
+++ b/src/frontend/views/data/Table/hooks/useTableState.ts
@@ -1,10 +1,10 @@
import { useEffect, useState } from "react";
import { IPaginatedDataState } from "shared/types/data";
-import { DEFAULT_TABLE_STATE } from "frontend/design-system/components/Table/constants";
import { useSyncPaginatedDataState } from "../portal";
import { IDataTableProps } from "../types";
import { useCurrentTableStateStore } from "./useCurrentTableState.store";
import { useEntityContextState } from "./useEntityContextState";
+import { DEFAULT_TABLE_STATE } from "@/components/app/table";
export const useTableState = (
contextKey: string,
diff --git a/src/frontend/views/data/Table/portal/main.tsx b/src/frontend/views/data/Table/portal/main.tsx
index 830432988..f0547073d 100644
--- a/src/frontend/views/data/Table/portal/main.tsx
+++ b/src/frontend/views/data/Table/portal/main.tsx
@@ -1,10 +1,10 @@
-import { IDropDownMenuItem } from "frontend/design-system/components/DropdownMenu";
-import { ITableColumn } from "frontend/design-system/components/Table/types";
import { loadedDataState } from "frontend/lib/data/constants/loadedDataState";
import { DataStateKeys } from "frontend/lib/data/types";
import { ReactNode } from "react";
import { noop } from "shared/lib/noop";
import { ITableView } from "shared/types/data";
+import { IMenuActionItem } from "@/components/app/button/types";
+import { ITableColumn } from "@/components/app/table/types";
export const usePluginTableMenuItems = (
entity: string,
@@ -12,8 +12,8 @@ export const usePluginTableMenuItems = (
referenceField: string;
entityId: string;
}
-): IDropDownMenuItem[] => {
- const menuItems: IDropDownMenuItem[] = [];
+): IMenuActionItem[] => {
+ const menuItems: IMenuActionItem[] = [];
noop(entity, reference);
return menuItems;
};
diff --git a/src/frontend/views/data/Table/useTableColumns.tsx b/src/frontend/views/data/Table/useTableColumns.tsx
index f4a0f22b4..638ae4aa1 100644
--- a/src/frontend/views/data/Table/useTableColumns.tsx
+++ b/src/frontend/views/data/Table/useTableColumns.tsx
@@ -17,8 +17,6 @@ import {
} from "frontend/hooks/configuration/configuration.store";
import { DataStateKeys } from "frontend/lib/data/types";
import { ellipsis } from "shared/lib/strings";
-import { ITableColumn } from "frontend/design-system/components/Table/types";
-import { ActionButtons } from "frontend/design-system/components/Button/ActionButtons";
import { TableFilterType } from "shared/types/data";
import { useEvaluateScriptContext } from "frontend/hooks/scripts";
import { ReactNode } from "react";
@@ -29,6 +27,8 @@ import { PortalColumnRender, usePortalTableColumns } from "./portal";
import { evalutePresentationScript } from "../evaluatePresentationScript";
import { useEntityActionButtons } from "../hooks/useEntityActionButtons";
import { usePortalActionButtons } from "../Details/portal";
+import { ActionButtons } from "@/components/app/button/action";
+import { ITableColumn } from "@/components/app/table/types";
export const ACTIONS_ACCESSOR = "__actions__";
@@ -58,9 +58,7 @@ function TableActionButtons({
row: row.original,
});
- return (
-
- );
+ return ;
}
const buildFilterConfigFromType = (prop: {
diff --git a/src/frontend/views/data/Table/useTableMenuItems.ts b/src/frontend/views/data/Table/useTableMenuItems.ts
index 7f81075de..ad591cfca 100644
--- a/src/frontend/views/data/Table/useTableMenuItems.ts
+++ b/src/frontend/views/data/Table/useTableMenuItems.ts
@@ -1,9 +1,9 @@
import { useEntityCrudConfig } from "frontend/hooks/entity/entity.config";
import { NAVIGATION_LINKS } from "frontend/lib/routing/links";
import { useRouter } from "next/router";
-import { IDropDownMenuItem } from "frontend/design-system/components/DropdownMenu";
import { usePluginTableMenuItems } from "./portal";
import { useCanUserPerformCrudAction } from "../hooks/useCanUserPerformCrudAction";
+import { IMenuActionItem } from "@/components/app/button/types";
export const getEntityCreateLink = (
entity: string,
@@ -26,7 +26,7 @@ export const useTableMenuItems = (
referenceField: string;
entityId: string;
}
-): IDropDownMenuItem[] => {
+): IMenuActionItem[] => {
const router = useRouter();
const entityCrudConfig = useEntityCrudConfig(entity);
const canUserPerformCrudAction = useCanUserPerformCrudAction(entity);
diff --git a/src/frontend/views/data/Update/index.tsx b/src/frontend/views/data/Update/index.tsx
index 23dd6a6d5..1c9fb46f8 100644
--- a/src/frontend/views/data/Update/index.tsx
+++ b/src/frontend/views/data/Update/index.tsx
@@ -1,5 +1,3 @@
-import { ContentLayout } from "frontend/design-system/components/Section/SectionDivider";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
import { useNavigationStack } from "frontend/lib/routing/useNavigationStack";
import { META_USER_PERMISSIONS, UserPermissions } from "shared/constants/user";
@@ -14,6 +12,8 @@ import {
useEntityDataDetails,
useEntityDataUpdationMutation,
} from "frontend/hooks/data/data.store";
+import { ContentLayout } from "@/components/app/content-layout";
+import { SectionBox } from "@/components/app/section-box";
import { useEntityActionMenuItems } from "../../entity/constants";
import { BaseEntityForm } from "../_BaseEntityForm";
import { useDataUpdateActions } from "./portal";
diff --git a/src/frontend/views/data/_BaseEntityForm.tsx b/src/frontend/views/data/_BaseEntityForm.tsx
index 8ae10f36c..d86420a3e 100644
--- a/src/frontend/views/data/_BaseEntityForm.tsx
+++ b/src/frontend/views/data/_BaseEntityForm.tsx
@@ -1,8 +1,3 @@
-import {
- FormSkeleton,
- FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
-import { SchemaForm } from "frontend/components/SchemaForm";
import { useEntityConfiguration } from "frontend/hooks/configuration/configuration.store";
import { useEntityToOneReferenceFields } from "frontend/hooks/entity/entity.store";
import {
@@ -13,10 +8,15 @@ import {
useEntityCrudFields,
} from "frontend/hooks/entity/entity.config";
import { useMemo } from "react";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { DataStateKeys, DataStates } from "frontend/lib/data/types";
import { SystemIconsKeys } from "shared/constants/Icons";
import { MessageDescriptor } from "@lingui/core";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
+import { SchemaForm } from "@/components/app/form/schema";
+import {
+ FormSkeleton,
+ FormSkeletonSchema,
+} from "@/components/app/skeleton/form";
import { buildAppliedSchemaFormConfig } from "./buildAppliedSchemaFormConfig";
import { useEntityViewStateMachine } from "./hooks/useEntityViewStateMachine";
import { usePortalExtendEntityFormConfig } from "./portal";
diff --git a/src/frontend/views/data/hooks/useEntityActionButtons.ts b/src/frontend/views/data/hooks/useEntityActionButtons.ts
index 7fd84a331..67e1e0c51 100644
--- a/src/frontend/views/data/hooks/useEntityActionButtons.ts
+++ b/src/frontend/views/data/hooks/useEntityActionButtons.ts
@@ -1,10 +1,10 @@
import { useEntityDataDeletionMutation } from "frontend/hooks/data/data.store";
import { NAVIGATION_LINKS } from "frontend/lib/routing/links";
import { CrudViewsKeys } from "shared/configurations";
-import { IGroupActionButton } from "frontend/design-system/components/Button/types";
-import { DELETE_BUTTON_PROPS } from "frontend/design-system/components/Button/constants";
import { msg } from "@lingui/macro";
+import { DELETE_BUTTON_PROPS } from "@/components/app/button/constants";
import { useCanUserPerformCrudAction } from "./useCanUserPerformCrudAction";
+import { IGroupActionButton } from "@/components/app/button/types";
export const useEntityActionButtons = ({
entity,
diff --git a/src/frontend/views/data/portal/main.ts b/src/frontend/views/data/portal/main.ts
index 611356f9f..3d6d40d1c 100644
--- a/src/frontend/views/data/portal/main.ts
+++ b/src/frontend/views/data/portal/main.ts
@@ -1,6 +1,6 @@
-import { IRenderFormInputProps } from "frontend/components/SchemaForm/types";
import { IAppliedSchemaFormConfig } from "shared/form-schemas/types";
import { noop } from "shared/lib/noop";
+import { IRenderFormInputProps } from "@/components/app/form/schema/types";
export const usePortalExtendEntityFormConfig = (
entity: string,
diff --git a/src/frontend/views/data/viewSpecialDataTypes.tsx b/src/frontend/views/data/viewSpecialDataTypes.tsx
index a6763f892..1a44e6083 100644
--- a/src/frontend/views/data/viewSpecialDataTypes.tsx
+++ b/src/frontend/views/data/viewSpecialDataTypes.tsx
@@ -1,9 +1,9 @@
import { format } from "date-fns";
import { IColorableSelection } from "shared/types/ui";
-import { SoftButton } from "frontend/design-system/components/Button/SoftButton";
import { msg } from "@lingui/macro";
import { FormFieldTypes } from "shared/validations/types";
import { i18n } from "@lingui/core";
+import { SoftButton } from "@/components/app/button/soft";
import {
ReferenceComponent,
ReferenceDisplayFromTypes,
@@ -83,10 +83,10 @@ export const viewSpecialDataTypes = ({
(option) => option.value === value
);
if (availableOption) {
- if (availableOption.color) {
+ if (availableOption.spectrum) {
return (
diff --git a/src/frontend/views/entity/Actions/Base.tsx b/src/frontend/views/entity/Actions/Base.tsx
index 4a7b6662f..70f823f82 100644
--- a/src/frontend/views/entity/Actions/Base.tsx
+++ b/src/frontend/views/entity/Actions/Base.tsx
@@ -1,9 +1,3 @@
-import {
- FEPaginationTable,
- IFETableCell,
- IFETableColumn,
-} from "frontend/components/FEPaginationTable";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import {
useIntegrationsList,
useActiveIntegrations,
@@ -11,17 +5,19 @@ import {
import { useCallback, useState } from "react";
import { IFormAction } from "shared/types/actions";
import { useApi } from "frontend/lib/data/useApi";
-import { SoftButton } from "frontend/design-system/components/Button/SoftButton";
-import { Stack } from "frontend/design-system/primitives/Stack";
-import { TableSkeleton } from "frontend/design-system/components/Skeleton/Table";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
-import { OffCanvas } from "frontend/design-system/components/OffCanvas";
import { userFriendlyCase } from "shared/lib/strings/friendly-case";
-import { ActionButtons } from "frontend/design-system/components/Button/ActionButtons";
-import { DELETE_BUTTON_PROPS } from "frontend/design-system/components/Button/constants";
import { msg } from "@lingui/macro";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import { DELETE_BUTTON_PROPS } from "@/components/app/button/constants";
+import { TableSkeleton } from "@/components/app/skeleton/table";
+import { SoftButton } from "@/components/app/button/soft";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
+import {
+ FEPaginationTable,
+ IFETableCell,
+ IFETableColumn,
+} from "@/components/app/pagination-table";
import {
LIST_ENTITY_FORM_ACTIONS,
useCreateFormActionMutation,
@@ -29,6 +25,8 @@ import {
useUpdateFormActionMutation,
} from "./form-actions.store";
import { ActionForm } from "./Form";
+import { ActionButtons } from "@/components/app/button/action";
+import { OffCanvas } from "@/components/app/off-canvas";
const NEW_ACTION_ITEM = "__new_action_item__";
@@ -57,7 +55,7 @@ export function FormActions({ entity }: { entity: string }) {
const MemoizedAction = useCallback(
({ row }: IFETableCell) => (
}
>
-
+
-
-
+
diff --git a/src/frontend/views/entity/Actions/Form.tsx b/src/frontend/views/entity/Actions/Form.tsx
index 60a19f3a8..4a07f3ead 100644
--- a/src/frontend/views/entity/Actions/Form.tsx
+++ b/src/frontend/views/entity/Actions/Form.tsx
@@ -1,5 +1,4 @@
/* eslint-disable no-param-reassign */
-import { SchemaForm } from "frontend/components/SchemaForm";
import { useEffect, useState } from "react";
import { IAppliedSchemaFormConfig } from "shared/form-schemas/types";
import {
@@ -14,6 +13,7 @@ import { typescriptSafeObjectDotEntries } from "shared/lib/objects";
import { i18nNoop } from "translations/fake";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import { SchemaForm } from "@/components/app/form/schema";
import { useIntegrationImplementationsList } from "./form-actions.store";
interface IProps {
diff --git a/src/frontend/views/entity/Actions/index.tsx b/src/frontend/views/entity/Actions/index.tsx
index 17b27e578..76c0716e9 100644
--- a/src/frontend/views/entity/Actions/index.tsx
+++ b/src/frontend/views/entity/Actions/index.tsx
@@ -3,11 +3,11 @@ import { NAVIGATION_LINKS } from "frontend/lib/routing/links";
import { UserPermissions } from "shared/constants/user";
import { useEntitySlug } from "frontend/hooks/entity/entity.config";
import { FormIntegrationsDocumentation } from "frontend/docs/form-integrations";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
import { useDocumentationActionButton } from "frontend/docs/constants";
import { msg } from "@lingui/macro";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import { SectionBox } from "@/components/app/section-box";
import { BaseEntitySettingsLayout } from "../_Base";
import { ENTITY_CONFIGURATION_VIEW } from "../constants";
import { FormActions } from "./Base";
diff --git a/src/frontend/views/entity/Crud/EntityFieldsSelectionSettings.tsx b/src/frontend/views/entity/Crud/EntityFieldsSelectionSettings.tsx
index b7e31c3d0..b62ea8d69 100644
--- a/src/frontend/views/entity/Crud/EntityFieldsSelectionSettings.tsx
+++ b/src/frontend/views/entity/Crud/EntityFieldsSelectionSettings.tsx
@@ -1,10 +1,4 @@
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { useEffect } from "react";
-import { FormButton } from "frontend/design-system/components/Button/FormButton";
-import { ListSkeleton } from "frontend/design-system/components/Skeleton/List";
-import { ListManager } from "frontend/design-system/components/ListManager";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
-import { Stack } from "frontend/design-system/primitives/Stack";
import { useStringSelections } from "frontend/lib/selection";
import { useEntityFields } from "frontend/hooks/entity/entity.store";
import {
@@ -13,7 +7,7 @@ import {
} from "frontend/hooks/entity/entity.config";
import { CrudViewsKeys } from "shared/configurations";
import { useIsEntityFieldMutatable } from "frontend/views/data/hooks/useIsEntityFieldMutatable";
-import { IListMangerItemProps } from "frontend/design-system/components/ListManager/ListManagerItem";
+
import {
useEntityConfiguration,
useUpsertConfigurationMutation,
@@ -29,6 +23,11 @@ import {
import { DataCrudKeys } from "shared/types/data";
import { msg } from "@lingui/macro";
import { useLingui } from "@lingui/react";
+import { IListMangerItemProps } from "@/components/app/list-manager/list-manager-item";
+import { ListManager } from "@/components/app/list-manager";
+import { ListSkeleton } from "@/components/app/skeleton/list";
+import { FormButton } from "@/components/app/button/form";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
import { ENTITY_CRUD_LABELS } from "../constants";
import { makeEntityFieldsSelectionKey } from "./constants";
@@ -55,20 +54,20 @@ export function ToggleCrudState({
const { _ } = useLingui();
return (
-
+
{toggling && toggling.onToggle && (
msg`Enable ${_(ENTITY_CRUD_LABELS[crudKey])} Functionality`
}
- onClick={() => toggling.onToggle()}
+ onClick={toggling.onToggle}
/>
)}
-
+
);
}
@@ -131,7 +130,6 @@ export function EntityFieldsSelectionSettings({
loader={ }
>
-
`
- height: 24px;
- wifth: 24px;
- border-radius: 5px;
- width: 100%;
- margin-bottom: 0;
- cursor: pointer;
- padding-bottom: 0px;
- outline: none;
- border: 0;
- background: ${(props) => props.color};
-`;
+import { FormButton } from "@/components/app/button/form";
+import { DELETE_BUTTON_PROPS } from "@/components/app/button/constants";
+import { CardContent, Card } from "@/components/ui/card";
+import { SPECTRUM_COLORS } from "@/components/ui/spectrum";
+import { FormInput } from "@/components/app/form/input/text";
+import { SoftButton } from "@/components/app/button/soft";
+import { SpectrumColorInputField } from "@/components/app/form/input/spectrum";
+import { FormSwitch } from "@/components/app/form/input/switch";
// Reference is a special case basically only use color
@@ -50,7 +31,7 @@ interface IProps {
const replaceForIntialValues = (selections: IColorableSelection[]) => {
return selections.map((selection) => ({
...selection,
- label: { ...selection.label, message: selection.label.values[0] },
+ label: { ...selection.label, message: selection.label.values?.[0] },
}));
};
@@ -87,7 +68,7 @@ export function FieldSelectionCanvas({
}}
initialValues={{ selections: replaceForIntialValues(selections) }}
render={({ handleSubmit, values, pristine, form }) => (
-
+
{entityType !== "boolean" && (
({
...selection,
color: newUseColorValue
- ? OPTIONS_COLORS[index % OPTIONS_COLORS.length]
+ ? SPECTRUM_COLORS[index % SPECTRUM_COLORS.length]
: undefined,
}))
);
@@ -114,8 +95,8 @@ export function FieldSelectionCanvas({
<>
{fields.map((name, index) => (
-
-
+
+
@@ -147,37 +128,17 @@ export function FieldSelectionCanvas({
/>
)}
-
+
{useColors ? (
- {(formProps) => (
-
- {OPTIONS_COLORS.map((systemColor) => (
-
-
- formProps.input.onChange(systemColor)
- }
- >
-
-
-
- ))}
-
+ {({ input, meta }) => (
+
)}
) : (
@@ -185,8 +146,7 @@ export function FieldSelectionCanvas({
)}
{ManagableEntities.includes(entityType) && (
{
fields.remove(index);
@@ -197,15 +157,13 @@ export function FieldSelectionCanvas({
})}
/>
)}
-
-
+
+
-
))}
-
-
+
{ManagableEntities.includes(entityType) && (
-
+
>
)}
diff --git a/src/frontend/views/entity/Fields/FieldsType.form.tsx b/src/frontend/views/entity/Fields/FieldsType.form.tsx
index c380687c2..dce0fb15e 100644
--- a/src/frontend/views/entity/Fields/FieldsType.form.tsx
+++ b/src/frontend/views/entity/Fields/FieldsType.form.tsx
@@ -11,13 +11,13 @@ import {
maxLength,
} from "frontend/lib/validations";
import { FormSelect } from "frontend/design-system/components/Form/Select";
-import { FormButton } from "frontend/design-system/components/Button/FormButton";
-import { OffCanvas } from "frontend/design-system/components/OffCanvas";
import { IFormInputRightAction } from "shared/form-schemas/types";
import { msg } from "@lingui/macro";
import { typescriptSafeObjectDotEntries } from "shared/lib/objects";
+import { FormButton } from "@/components/app/button/form";
import { FieldSelectionCanvas } from "./FieldsSelection";
import { FieldValidationCanvas } from "./FieldsValidation";
+import { OffCanvas } from "@/components/app/off-canvas";
const FIELD_TYPES_CONFIG_MAP_AS_SELECTION = typescriptSafeObjectDotEntries(
FIELD_TYPES_CONFIG_MAP
@@ -44,8 +44,6 @@ interface IValues {
typesChanged: boolean;
}
-const CANVAS_WIDTH = 500;
-
const resetBoundedValidation = (
validations: IFieldValidationItem[],
newType: FormFieldTypes
@@ -127,7 +125,9 @@ export function FieldsTypeForm({
)} [${values.validations[name]
.map(({ validationType }) => validationType)
.join(",")}]`}
- defaultLabel={`Select ${getEntityFieldLabels(name)} Type`}
+ placeholder={msg`Select ${getEntityFieldLabels(
+ name
+ )} Type`}
selectData={FIELD_TYPES_CONFIG_MAP_AS_SELECTION}
rightActions={rightActions}
disabledOptions={listOfEntitiesThatCantBeChanged}
@@ -171,7 +171,7 @@ export function FieldsTypeForm({
title={msg`${getEntityFieldLabels(
showFieldValidations
)} Validations`}
- width={CANVAS_WIDTH}
+ size="md"
onClose={() => setShowFieldValidations("")}
show={!!showFieldValidations}
>
@@ -192,7 +192,7 @@ export function FieldsTypeForm({
setShowFieldSelection("")}
show={!!showFieldSelection}
>
diff --git a/src/frontend/views/entity/Fields/FieldsValidation.tsx b/src/frontend/views/entity/Fields/FieldsValidation.tsx
index 1270a4f9a..54c39c299 100644
--- a/src/frontend/views/entity/Fields/FieldsValidation.tsx
+++ b/src/frontend/views/entity/Fields/FieldsValidation.tsx
@@ -17,17 +17,15 @@ import {
maxLength,
required,
} from "frontend/lib/validations";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
-import { FormInput } from "frontend/design-system/components/Form/Input";
-import { FormNumberInput } from "frontend/design-system/components/Form/Number";
-import { FormNoValueSelect } from "frontend/design-system/components/Form/Select";
-import { FormButton } from "frontend/design-system/components/Button/FormButton";
-import { DELETE_BUTTON_PROPS } from "frontend/design-system/components/Button/constants";
-import { Fragment } from "react";
import { msg } from "@lingui/macro";
import { typescriptSafeObjectDotEntries } from "shared/lib/objects";
import { fakeMessageDescriptor } from "translations/fake";
+import { SectionBox } from "@/components/app/section-box";
+import { DELETE_BUTTON_PROPS } from "@/components/app/button/constants";
+import { Select } from "@/components/ui/select";
+import { FormButton } from "@/components/app/button/form";
+import { FormInput } from "@/components/app/form/input/text";
+import { FormNumberInput } from "@/components/app/form/input/number";
interface IProps {
field: string;
@@ -71,20 +69,20 @@ export function FieldValidationCanvas({
initialValues={{ validations }}
render={({ handleSubmit, values, pristine }) => (
-
-
- {({ fields }) => (
- <>
- {fields.map((name, index) => {
- const { validationType, fromSchema }: IFieldValidationItem =
- values.validations[index];
+
+
+ {({ fields }) => (
+ <>
+ {fields.map((name, index) => {
+ const { validationType, fromSchema }: IFieldValidationItem =
+ values.validations[index];
- const { input: validationInput, isBoundToType } =
- ENTITY_VALIDATION_CONFIG[validationType];
+ const { input: validationInput, isBoundToType } =
+ ENTITY_VALIDATION_CONFIG[validationType];
- return (
-
+ return (
-
-
- );
- })}
- validationType)}
- defaultLabel={msg`Add New Validation`}
- onChange={(validationType: ValidationTypes) => {
- const validationItem: IFieldValidationItem = {
- validationType,
- errorMessage:
- ENTITY_VALIDATION_CONFIG[validationType].message,
- constraint: {},
- };
- fields.push(validationItem);
- }}
- selectData={allowedValidations.map((validation) => ({
- label: ENTITY_VALIDATION_CONFIG[validation].label,
- value: validation,
- }))}
- />
- >
- )}
-
-
-
+ );
+ })}
+ {
+ const validationItem: IFieldValidationItem = {
+ validationType,
+ errorMessage:
+ ENTITY_VALIDATION_CONFIG[validationType].message,
+ constraint: {},
+ };
+ fields.push(validationItem);
+ }}
+ name="select-validation"
+ value=""
+ options={allowedValidations.map((validation) => ({
+ label: ENTITY_VALIDATION_CONFIG[validation].label,
+ value: validation,
+ }))}
+ placeholder={msg`Add New Validation`}
+ disabledOptions={(
+ values.validations as IFieldValidationItem[]
+ ).map(({ validationType }) => validationType)}
+ />
+ >
+ )}
+
+
+
)}
/>
diff --git a/src/frontend/views/entity/Fields/index.tsx b/src/frontend/views/entity/Fields/index.tsx
index 5fec5dfb7..3d9cc367f 100644
--- a/src/frontend/views/entity/Fields/index.tsx
+++ b/src/frontend/views/entity/Fields/index.tsx
@@ -11,20 +11,18 @@ import {
useEntityConfiguration,
useUpsertConfigurationMutation,
} from "frontend/hooks/configuration/configuration.store";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { FieldsSettingsDocumentation } from "frontend/docs/fields";
import { useRouteParam } from "frontend/lib/routing/useRouteParam";
import { useChangeRouterParam } from "frontend/lib/routing/useChangeRouterParam";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
-import {
- FormSkeleton,
- FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
-import { Tabs } from "frontend/design-system/components/Tabs";
import { useDocumentationActionButton } from "frontend/docs/constants";
import { msg } from "@lingui/macro";
import { useAppConfigurationDomainMessages } from "frontend/hooks/configuration/configuration.constant";
+import {
+ FormSkeleton,
+ FormSkeletonSchema,
+} from "@/components/app/skeleton/form";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
import {
ENTITY_CONFIGURATION_VIEW,
ENTITY_FIELD_SETTINGS_TAB_LABELS,
@@ -32,6 +30,8 @@ import {
import { FieldsTypeForm } from "./FieldsType.form";
import { FieldsLabelForm, loadingFieldsLabelForm } from "./FieldsLabel.form";
import { BaseEntitySettingsLayout } from "../_Base";
+import { Tabs } from "@/components/app/tabs";
+import { SectionBox } from "@/components/app/section-box";
const TITLE_MSG = msg`Field Settings`;
diff --git a/src/frontend/views/entity/Fields/isBlackOrWhite.ts b/src/frontend/views/entity/Fields/isBlackOrWhite.ts
deleted file mode 100644
index f028e1b2f..000000000
--- a/src/frontend/views/entity/Fields/isBlackOrWhite.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { noop } from "shared/lib/noop";
-
-const hexToRgb = (_hex: string): [string, string, string] => {
- const shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
- const hex = _hex.replace(shorthandRegex, (_, r, g, b) => {
- return r + r + g + g + b + b;
- });
-
- const rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
-
- if (!rgb) {
- return ["0", "0", "0"];
- }
-
- const [_, r, g, b] = rgb;
- noop(_);
- return [r, g, b];
-};
-
-export const isBlackOrWhite = (color: string) => {
- const blackOrWhiteAggregate = hexToRgb(color).reduce((hexAcc, currentHex) => {
- return hexAcc + parseInt(currentHex, 16);
- }, 0);
-
- return blackOrWhiteAggregate / 3 > 128 ? "#000" : "#fff";
-};
diff --git a/src/frontend/views/entity/Form/ScriptForm.tsx b/src/frontend/views/entity/Form/ScriptForm.tsx
index ce1274439..f03962f5b 100644
--- a/src/frontend/views/entity/Form/ScriptForm.tsx
+++ b/src/frontend/views/entity/Form/ScriptForm.tsx
@@ -1,9 +1,3 @@
-import {
- FormSkeleton,
- FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
-import { SchemaForm } from "frontend/components/SchemaForm";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { ToastService } from "frontend/lib/toast";
import { useAppConfigurationDomainMessages } from "frontend/hooks/configuration/configuration.constant";
import { AppConfigurationKeys } from "shared/configurations";
@@ -12,6 +6,12 @@ import { useEvaluateScriptContext } from "frontend/hooks/scripts";
import { ISchemaFormScriptProps } from "shared/form-schemas/types";
import { msg } from "@lingui/macro";
import { i18nNoop } from "translations/fake";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
+import { SchemaForm } from "@/components/app/form/schema";
+import {
+ FormSkeleton,
+ FormSkeletonSchema,
+} from "@/components/app/skeleton/form";
interface IProps {
value: string;
diff --git a/src/frontend/views/entity/Form/index.tsx b/src/frontend/views/entity/Form/index.tsx
index b0d4ecad9..14ddc1622 100644
--- a/src/frontend/views/entity/Form/index.tsx
+++ b/src/frontend/views/entity/Form/index.tsx
@@ -6,16 +6,14 @@ import {
useUpsertConfigurationMutation,
} from "frontend/hooks/configuration/configuration.store";
import { FormScriptDocumentation } from "frontend/docs/scripts/form-scripts";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
-import { Tabs } from "frontend/design-system/components/Tabs";
import { useEntitySlug } from "frontend/hooks/entity/entity.config";
-import { Typo } from "frontend/design-system/primitives/Typo";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
import { useDocumentationActionButton } from "frontend/docs/constants";
import { msg } from "@lingui/macro";
import { typescriptSafeObjectDotEntries } from "shared/lib/objects";
import { MessageDescriptor } from "@lingui/core";
import { ReactElement } from "react";
+import { SectionBox } from "@/components/app/section-box";
+import { Tabs } from "@/components/app/tabs";
import { BaseEntitySettingsLayout } from "../_Base";
import { ENTITY_CONFIGURATION_VIEW } from "../constants";
import { ScriptForm } from "./ScriptForm";
@@ -150,16 +148,7 @@ export function EntityFormExtensionSettings() {
([key, { Cmp, label }]) => ({
id: key,
label,
- content: (
- <>
-
- Click the 'Explain Form Scripts' at the top right
- corner for more info on how this works
-
-
- {Cmp}
- >
- ),
+ content: Cmp,
})
)}
/>
diff --git a/src/frontend/views/entity/Form/types.ts b/src/frontend/views/entity/Form/types.ts
index 25d3fad8c..d75bad3ea 100644
--- a/src/frontend/views/entity/Form/types.ts
+++ b/src/frontend/views/entity/Form/types.ts
@@ -1,4 +1,4 @@
-import { IFormExtension } from "frontend/components/SchemaForm/types";
+import { IFormExtension } from "@/components/app/form/schema/types";
export interface IEntityFormExtension extends IFormExtension {
initialValues: string;
diff --git a/src/frontend/views/entity/PersistentQuery/Form.tsx b/src/frontend/views/entity/PersistentQuery/Form.tsx
index 746273b29..97af277d5 100644
--- a/src/frontend/views/entity/PersistentQuery/Form.tsx
+++ b/src/frontend/views/entity/PersistentQuery/Form.tsx
@@ -6,22 +6,20 @@ import { ACTIONS_ACCESSOR } from "frontend/views/data/Table/useTableColumns";
import { useAppConfigurationDomainMessages } from "frontend/hooks/configuration/configuration.constant";
import { composeValidators, required } from "frontend/lib/validations";
import { IFormProps } from "frontend/lib/form/types";
-import { ITableColumn } from "frontend/design-system/components/Table/types";
-import { SoftButton } from "frontend/design-system/components/Button/SoftButton";
-import { Stack } from "frontend/design-system/primitives/Stack";
-import { FormInput } from "frontend/design-system/components/Form/Input";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
-import { FormButton } from "frontend/design-system/components/Button/FormButton";
-import { DELETE_BUTTON_PROPS } from "frontend/design-system/components/Button/constants";
import { FormSelect } from "frontend/design-system/components/Form/Select";
-import { FormSelectButton } from "frontend/design-system/components/Form/SelectButton";
-import { FormGrid } from "frontend/components/SchemaForm/form-grid";
-import { Card, CardBody } from "frontend/design-system/components/Card";
import { Fragment } from "react";
import { msg } from "@lingui/macro";
import { typescriptSafeObjectDotEntries } from "shared/lib/objects";
-import { FILTER_OPERATOR_CONFIG } from "frontend/design-system/components/Table/filters/constants";
import { MessageDescriptor } from "@lingui/core";
+import { DELETE_BUTTON_PROPS } from "@/components/app/button/constants";
+import { FormButton } from "@/components/app/button/form";
+import { FormInput } from "@/components/app/form/input/text";
+import { SoftButton } from "@/components/app/button/soft";
+import { Card, CardContent } from "@/components/ui/card";
+import { ITableColumn } from "@/components/app/table/types";
+import { FILTER_OPERATOR_CONFIG } from "@/components/app/table/filters/constants";
+import { FormGrid } from "@/components/app/form/schema/form-grid";
+import { FormSelectButton } from "@/components/app/form/input/select-button";
const OPERATOR_SELECTORS = [
{
@@ -52,7 +50,7 @@ function FilterRow({
const noValue = FILTER_OPERATOR_CONFIG[operatorValue]?.numberOfInput === 0;
return (
-
+
(
)}
-
-
+
+
{({ fields: queryFilters }) => (
@@ -169,7 +167,7 @@ export function EntityPersistentQueryForm({
>
{({ input, meta }) => (
)}
-
+
{
if (queryFilters.length === 1) {
@@ -202,7 +200,7 @@ export function EntityPersistentQueryForm({
shouldConfirmAlert: undefined,
})}
/>
-
+
)
)}
@@ -222,13 +220,11 @@ export function EntityPersistentQueryForm({
)}
-
+
-
))}
-
-
+
-
+
)}
-
}
>
-
- entityRelationsLabelsMap.data?.[relation] ||
- getEntitiesDictionPlurals(relation)
- }
- sort={{
- order: entityRelationsOrder.data,
- save: upsertEntityRelationsOrderMutation.mutateAsync,
- }}
- hiddenList={hiddenEntityRelations.data}
- onSubmit={upsertHideEntityRelationMutation.mutateAsync}
- />
+
+
+ entityRelationsLabelsMap.data?.[relation] ||
+ getEntitiesDictionPlurals(relation)
+ }
+ sort={{
+ order: entityRelationsOrder.data,
+ save: upsertEntityRelationsOrderMutation.mutateAsync,
+ }}
+ hiddenList={hiddenEntityRelations.data}
+ onSubmit={upsertHideEntityRelationMutation.mutateAsync}
+ />
+
),
id: "selection",
@@ -189,7 +190,6 @@ export function EntityRelationsSettings() {
loading={isLoading}
loader={loadingFieldsLabelForm}
>
-
-
+
-
+
{values.length > 0 && (
-
+
-
[
+const baseMenuItems = (entity: string): IMenuActionItem[] => [
{
+ id: "crud",
action: NAVIGATION_LINKS.ENTITY.CONFIG.CRUD(entity),
systemIcon: "Sliders",
- name: msg`CRUD`,
+ label: msg`CRUD`,
order: 10,
},
{
+ id: "diction",
action: NAVIGATION_LINKS.ENTITY.CONFIG.DICTION(entity),
- name: msg`Diction`,
+ label: msg`Diction`,
systemIcon: "Type",
order: 20,
},
{
+ id: "fields",
action: NAVIGATION_LINKS.ENTITY.CONFIG.FIELDS(entity),
- name: msg`Fields`,
+ label: msg`Fields`,
systemIcon: "File",
order: 30,
},
{
+ id: "relations",
action: NAVIGATION_LINKS.ENTITY.CONFIG.RELATIONS(entity),
- name: msg`Relations`,
+ label: msg`Relations`,
systemIcon: "LinkAlt",
order: 40,
},
{
+ id: "views",
action: NAVIGATION_LINKS.ENTITY.CONFIG.VIEWS(entity),
- name: msg`Table Views`,
+ label: msg`Table Views`,
systemIcon: "Filter",
order: 50,
},
{
+ id: "queries",
action: NAVIGATION_LINKS.ENTITY.CONFIG.PERSISTENT_QUERY(entity),
- name: msg`Persistent Query`,
+ label: msg`Persistent Query`,
systemIcon: "Shield",
order: 51,
},
{
+ id: "scripts",
action: NAVIGATION_LINKS.ENTITY.CONFIG.FORM(entity),
- name: msg`Form Scripts`,
+ label: msg`Form Scripts`,
systemIcon: "Code",
order: 60,
},
{
+ id: "presentation",
action: NAVIGATION_LINKS.ENTITY.CONFIG.PRESENTATION(entity),
- name: msg`Presentation Scripts`,
+ label: msg`Presentation Scripts`,
systemIcon: "CodeAlt",
order: 70,
},
{
+ id: "integrations",
action: NAVIGATION_LINKS.ENTITY.CONFIG.FORM_INTEGRATIONS(entity),
- name: LANG_DOMAINS.INTEGRATIONS.FORM_ACTIONS.plural,
+ label: LANG_DOMAINS.INTEGRATIONS.FORM_ACTIONS.plural,
systemIcon: "Zap",
order: 80,
},
@@ -75,7 +80,7 @@ const baseMenuItems = (entity: string): IMenuSectionItem[] => [
interface IProps {
children: ReactNode;
- actionItems?: IDropDownMenuItem[];
+ actionItems?: IMenuActionItem[];
}
export function BaseEntitySettingsLayout({ children, actionItems }: IProps) {
@@ -91,19 +96,16 @@ export function BaseEntitySettingsLayout({ children, actionItems }: IProps) {
return (
{canGoBack() && (
- <>
- {
- goBack();
- }}
- />
-
- >
+ {
+ goBack();
+ }}
+ />
)}
-
= {
export const useEntityActionMenuItems = (
slugEntity: string
-): IDropDownMenuItem[] => {
+): IMenuActionItem[] => {
const router = useRouter();
const entityCrudConfig = useEntityCrudConfig(slugEntity);
diff --git a/src/frontend/views/entity/portal/main.ts b/src/frontend/views/entity/portal/main.ts
index 8f9573d2b..72e19466a 100644
--- a/src/frontend/views/entity/portal/main.ts
+++ b/src/frontend/views/entity/portal/main.ts
@@ -1,9 +1,9 @@
-import { IMenuSectionItem } from "frontend/design-system/components/Section/MenuSection";
import { noop } from "shared/lib/noop";
+import { IMenuActionItem } from "@/components/app/button/types";
export const useMutateBaseEntitySettingsMenu = (
entity: string,
- baseMenu: IMenuSectionItem[]
+ baseMenu: IMenuActionItem[]
) => {
noop(entity);
return baseMenu;
diff --git a/src/frontend/views/integrations/Password.tsx b/src/frontend/views/integrations/Password.tsx
index 8b061d604..8fd8c042b 100644
--- a/src/frontend/views/integrations/Password.tsx
+++ b/src/frontend/views/integrations/Password.tsx
@@ -1,16 +1,14 @@
-import { SchemaForm } from "frontend/components/SchemaForm";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
-import { Typo } from "frontend/design-system/primitives/Typo";
import { msg } from "@lingui/macro";
import { useLingui } from "@lingui/react";
+import { SchemaForm } from "@/components/app/form/schema";
import { usePasswordStore } from "./password.store";
export function PasswordMessage() {
return (
-
+
All the values provided from this form will encrypted using `aes-256-gcm`
before been saved.
-
+
);
}
@@ -20,12 +18,12 @@ export function PasswordToReveal({ isLoading }: { isLoading: boolean }) {
return (
<>
-
+
{_(
msg`For security reasons, Please input your account password to reveal credentials`
)}
-
-
+
+
-
- {
- const isActive = activeIntegrations.data.includes(menuItem.key);
- const props: IListMangerItemProps = {
- label: menuItem.title,
- systemIcon: isActive ? "Zap" : "ZapOff",
- active: menuItem.key === currentKey,
+
+ {
+ const isActive = activeIntegrations.data.includes(menuitem.key);
+ return {
+ id: menuitem.key,
+ action: NAVIGATION_LINKS.INTEGRATIONS.ACTIONS(menuitem.key),
+ label: fakeMessageDescriptor(menuitem.title),
subtle: !isActive,
- action: NAVIGATION_LINKS.INTEGRATIONS.ACTIONS(menuItem.key),
+ active: menuitem.key === currentKey,
+ systemIcon: isActive ? "Zap" : "ZapOff",
};
-
- return props;
- }}
+ })}
+ currentMenuItem={router.asPath.split("?")[0]}
/>
-
-
-
-
-
-
+
+
+
{children}
diff --git a/src/frontend/views/integrations/actions/View/Configure.tsx b/src/frontend/views/integrations/actions/View/Configure.tsx
index df9e37f33..901d22361 100644
--- a/src/frontend/views/integrations/actions/View/Configure.tsx
+++ b/src/frontend/views/integrations/actions/View/Configure.tsx
@@ -1,15 +1,12 @@
-import { SchemaForm } from "frontend/components/SchemaForm";
import { useEffect } from "react";
import { IIntegrationsList } from "shared/types/actions";
import { ToastService } from "frontend/lib/toast";
-import { Typo } from "frontend/design-system/primitives/Typo";
-import { Stack } from "frontend/design-system/primitives/Stack";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
import { typescriptSafeObjectDotKeys } from "shared/lib/objects";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
import { msg } from "@lingui/macro";
import { useLingui } from "@lingui/react";
+import { SchemaForm } from "@/components/app/form/schema";
import {
useActivationConfiguration,
useUpdateActivatedIntegrationMutation,
@@ -38,11 +35,11 @@ export function Configure({ activationId, integrationDetail }: IProps) {
.length === 0
) {
return (
-
-
+
+
{_(msg`This action does not have configuration`)}
-
-
+
+
);
}
@@ -50,9 +47,9 @@ export function Configure({ activationId, integrationDetail }: IProps) {
return ;
}
return (
- <>
+
);
}
diff --git a/src/frontend/views/integrations/actions/View/Deactivate.tsx b/src/frontend/views/integrations/actions/View/Deactivate.tsx
index b5242eeae..e514ef28b 100644
--- a/src/frontend/views/integrations/actions/View/Deactivate.tsx
+++ b/src/frontend/views/integrations/actions/View/Deactivate.tsx
@@ -1,9 +1,6 @@
import { ActionIntegrations, IIntegrationsList } from "shared/types/actions";
-import { SchemaForm } from "frontend/components/SchemaForm";
-import { Stack } from "frontend/design-system/primitives/Stack";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
-import { Typo } from "frontend/design-system/primitives/Typo";
import { msg } from "@lingui/macro";
+import { SchemaForm } from "@/components/app/form/schema";
import { useDeactivateIntegrationMutation } from "../actions.store";
interface IProps {
@@ -18,21 +15,18 @@ export function Deactivate({ integrationDetail, activationId }: IProps) {
if (integrationDetail.key === ActionIntegrations.HTTP) {
return (
-
-
- The HTTP action can not be deactivated
-
-
+
+
The HTTP action can not be deactivated
+
);
}
return (
<>
-
+
Deactivating an integration will irrevocabily delete its configurations
and remove all its form actions
-
-
+
404: Unknown Action;
+ return 404: Unknown Action
;
}
if (!activeAction) {
return (
- <>
+
);
}
diff --git a/src/frontend/views/integrations/actions/index.tsx b/src/frontend/views/integrations/actions/index.tsx
index c86cc7266..758ac34de 100644
--- a/src/frontend/views/integrations/actions/index.tsx
+++ b/src/frontend/views/integrations/actions/index.tsx
@@ -1,15 +1,15 @@
import { UserPermissions } from "shared/constants/user";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { useRouteParam } from "frontend/lib/routing/useRouteParam";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
-import {
- FormSkeleton,
- FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
import { msg } from "@lingui/macro";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
import { useDomainMessages } from "frontend/lib/crud-config";
+import { SectionBox } from "@/components/app/section-box";
+import {
+ FormSkeleton,
+ FormSkeletonSchema,
+} from "@/components/app/skeleton/form";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
import { BaseActionsLayout } from "../_Base";
import { useIntegrationsList, useActiveIntegrations } from "./actions.store";
import { ACTIONS_VIEW_KEY } from "../constants";
diff --git a/src/frontend/views/integrations/storage/Credentials.tsx b/src/frontend/views/integrations/storage/Credentials.tsx
index 422b634fe..41f7aabac 100644
--- a/src/frontend/views/integrations/storage/Credentials.tsx
+++ b/src/frontend/views/integrations/storage/Credentials.tsx
@@ -1,17 +1,17 @@
-import { SchemaForm } from "frontend/components/SchemaForm";
import { useEffect, useState } from "react";
import { ToastService } from "frontend/lib/toast";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
-import {
- FormSkeleton,
- FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
import { ISchemaFormConfig } from "shared/form-schemas/types";
import { IStorageIntegration } from "shared/types/actions";
import { msg } from "@lingui/macro";
import { i18nNoop } from "translations/fake";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import {
+ FormSkeleton,
+ FormSkeletonSchema,
+} from "@/components/app/skeleton/form";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
+import { SchemaForm } from "@/components/app/form/schema";
import {
useActivateStorageMutation,
useActiveStorageIntegration,
diff --git a/src/frontend/views/integrations/storage/General.tsx b/src/frontend/views/integrations/storage/General.tsx
index 58241ead5..10f65c6ab 100644
--- a/src/frontend/views/integrations/storage/General.tsx
+++ b/src/frontend/views/integrations/storage/General.tsx
@@ -1,16 +1,16 @@
-import { SchemaForm } from "frontend/components/SchemaForm";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import {
useAppConfiguration,
useUpsertConfigurationMutation,
} from "frontend/hooks/configuration/configuration.store";
-import {
- FormSkeleton,
- FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
import { useAppConfigurationDomainMessages } from "frontend/hooks/configuration/configuration.constant";
import { AppConfigurationValueType } from "shared/configurations/constants";
import { msg } from "@lingui/macro";
+import {
+ FormSkeleton,
+ FormSkeletonSchema,
+} from "@/components/app/skeleton/form";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
+import { SchemaForm } from "@/components/app/form/schema";
export function GeneralStorageSettings() {
const fileUploadSettings = useAppConfiguration("file_upload_settings");
diff --git a/src/frontend/views/integrations/storage/index.tsx b/src/frontend/views/integrations/storage/index.tsx
index 5ff01c288..4e43e4c77 100644
--- a/src/frontend/views/integrations/storage/index.tsx
+++ b/src/frontend/views/integrations/storage/index.tsx
@@ -1,10 +1,10 @@
import { UserPermissions } from "shared/constants/user";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
-import { Tabs } from "frontend/design-system/components/Tabs";
import { msg } from "@lingui/macro";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import { SectionBox } from "@/components/app/section-box";
+import { Tabs } from "@/components/app/tabs";
import { BaseActionsLayout } from "../_Base";
import { ACTIONS_VIEW_KEY } from "../constants";
diff --git a/src/frontend/views/roles/Create/index.tsx b/src/frontend/views/roles/Create/index.tsx
index b913ff2ad..d4c0dacc3 100644
--- a/src/frontend/views/roles/Create/index.tsx
+++ b/src/frontend/views/roles/Create/index.tsx
@@ -1,5 +1,3 @@
-import { ContentLayout } from "frontend/design-system/components/Section/SectionDivider";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
import { useNavigationStack } from "frontend/lib/routing/useNavigationStack";
import { UserPermissions } from "shared/constants/user";
@@ -8,9 +6,11 @@ import {
BASE_ROLE_FORM_SCHEMA,
IBaseRoleForm,
} from "shared/form-schemas/roles/base";
-import { SchemaForm } from "frontend/components/SchemaForm";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
import { useDomainMessages } from "frontend/lib/crud-config";
+import { ContentLayout } from "@/components/app/content-layout";
+import { SchemaForm } from "@/components/app/form/schema";
+import { SectionBox } from "@/components/app/section-box";
import { useCreateRoleMutation } from "../roles.store";
export function RoleCreate() {
diff --git a/src/frontend/views/roles/List.tsx b/src/frontend/views/roles/List.tsx
index 973575a71..ba62e94bf 100644
--- a/src/frontend/views/roles/List.tsx
+++ b/src/frontend/views/roles/List.tsx
@@ -2,21 +2,21 @@ import { useCallback } from "react";
import { AppLayout } from "frontend/_layouts/app";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
import { NAVIGATION_LINKS } from "frontend/lib/routing/links";
-import {
- FEPaginationTable,
- IFETableCell,
- IFETableColumn,
-} from "frontend/components/FEPaginationTable";
import { SystemRoles } from "shared/types/user";
import { UserPermissions } from "shared/constants/user";
import { IRolesList } from "shared/types/roles";
-import { Card } from "frontend/design-system/components/Card";
-import { DELETE_BUTTON_PROPS } from "frontend/design-system/components/Button/constants";
-import { ActionButtons } from "frontend/design-system/components/Button/ActionButtons";
import { msg } from "@lingui/macro";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import { DELETE_BUTTON_PROPS } from "@/components/app/button/constants";
+import {
+ FEPaginationTable,
+ IFETableCell,
+ IFETableColumn,
+} from "@/components/app/pagination-table";
import { ROLES_ENDPOINT_CONFIG, useRoleDeletionMutation } from "./roles.store";
+import { Card } from "@/components/ui/card";
+import { ActionButtons } from "@/components/app/button/action";
export function ListRoles() {
const domainMessages = useDomainMessages(LANG_DOMAINS.ACCOUNT.ROLES);
@@ -36,7 +36,7 @@ export function ListRoles() {
}
return (
+
{overAchingPermission && (
- <>
-
- overAchingPermission.label}
- onClick={() => {
- if (isOverAchingPermissionSelected) {
- rolePermissionDeletionMutation.mutate([
- overAchingPermission.permission,
- ]);
- } else {
- rolePermissionCreationMutation.mutate([
- overAchingPermission.permission,
- ]);
- }
- }}
- />
-
-
-
- >
+
+ overAchingPermission.label}
+ onClick={() => {
+ if (isOverAchingPermissionSelected) {
+ rolePermissionDeletionMutation.mutate([
+ overAchingPermission.permission,
+ ]);
+ } else {
+ rolePermissionCreationMutation.mutate([
+ overAchingPermission.permission,
+ ]);
+ }
+ }}
+ />
+
)}
- >
+
);
}
diff --git a/src/frontend/views/roles/Permissions/index.tsx b/src/frontend/views/roles/Permissions/index.tsx
index d0c172632..1f5209516 100644
--- a/src/frontend/views/roles/Permissions/index.tsx
+++ b/src/frontend/views/roles/Permissions/index.tsx
@@ -1,17 +1,11 @@
import { useActiveEntities } from "frontend/hooks/entity/entity.store";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
import { useNavigationStack } from "frontend/lib/routing/useNavigationStack";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import {
UserPermissions,
USER_PERMISSIONS_CONFIG,
} from "shared/constants/user";
import { RolesDocumentation } from "frontend/docs/roles";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
-import { ContentLayout } from "frontend/design-system/components/Section/SectionDivider";
-import { ListSkeleton } from "frontend/design-system/components/Skeleton/List";
-import { Tabs } from "frontend/design-system/components/Tabs";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
import { AppLayout } from "frontend/_layouts/app";
import { useRouteParam } from "frontend/lib/routing/useRouteParam";
import { useChangeRouterParam } from "frontend/lib/routing/useChangeRouterParam";
@@ -21,6 +15,11 @@ import { MessageDescriptor } from "@lingui/core";
import { typescriptSafeObjectDotEntries } from "shared/lib/objects";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import { ContentLayout } from "@/components/app/content-layout";
+import { ListSkeleton } from "@/components/app/skeleton/list";
+import { SectionBox } from "@/components/app/section-box";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
+import { Tabs } from "@/components/app/tabs";
import { useRolePermissions } from "../permissions.store";
import { MutatePermission } from "./MutatePermission";
import {
@@ -103,7 +102,6 @@ export function RolePermissions() {
/>
-
diff --git a/src/frontend/views/settings/Data/index.tsx b/src/frontend/views/settings/Data/index.tsx
index 09492ed1c..6433cbdb4 100644
--- a/src/frontend/views/settings/Data/index.tsx
+++ b/src/frontend/views/settings/Data/index.tsx
@@ -1,23 +1,22 @@
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
-import {
- FormSkeleton,
- FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
import { UserPermissions } from "shared/constants/user";
import {
useAppConfiguration,
useUpsertConfigurationMutation,
} from "frontend/hooks/configuration/configuration.store";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { format as dateFnsFormat } from "date-fns";
import { useAppConfigurationDomainMessages } from "frontend/hooks/configuration/configuration.constant";
import { ToastService } from "frontend/lib/toast";
-import { SchemaForm } from "frontend/components/SchemaForm";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
import { AppConfigurationValueType } from "shared/configurations/constants";
import { msg } from "@lingui/macro";
import { i18nNoop } from "translations/fake";
+import { SectionBox } from "@/components/app/section-box";
+import { SchemaForm } from "@/components/app/form/schema";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
+import {
+ FormSkeleton,
+ FormSkeletonSchema,
+} from "@/components/app/skeleton/form";
import { BaseSettingsLayout } from "../_Base";
import { SETTINGS_VIEW_KEY } from "../constants";
@@ -140,9 +139,10 @@ export function GeneralDataSettings() {
return (
-
-
-
+
+
+
+
);
}
diff --git a/src/frontend/views/settings/Entities/Selection.tsx b/src/frontend/views/settings/Entities/Selection.tsx
index 2e203f8fd..df5e78ac4 100644
--- a/src/frontend/views/settings/Entities/Selection.tsx
+++ b/src/frontend/views/settings/Entities/Selection.tsx
@@ -1,9 +1,9 @@
import { useEffect } from "react";
-import { ListManager } from "frontend/design-system/components/ListManager";
import { loadedDataState } from "frontend/lib/data/constants/loadedDataState";
-import { IListMangerItemProps } from "frontend/design-system/components/ListManager/ListManagerItem";
import { msg } from "@lingui/macro";
import { useStringSelections } from "../../../lib/selection";
+import { ListManager } from "@/components/app/list-manager";
+import { IListMangerItemProps } from "@/components/app/list-manager/list-manager-item";
interface IProps {
selectionKey: string;
diff --git a/src/frontend/views/settings/Entities/index.tsx b/src/frontend/views/settings/Entities/index.tsx
index 48c7d7f9f..04bef9505 100644
--- a/src/frontend/views/settings/Entities/index.tsx
+++ b/src/frontend/views/settings/Entities/index.tsx
@@ -1,12 +1,9 @@
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { UserPermissions } from "shared/constants/user";
import { ILabelValue } from "shared/types/options";
import { useAppConfigurationDomainMessages } from "frontend/hooks/configuration/configuration.constant";
import { EnabledEntitiesDocumentation } from "frontend/docs/enabled-entities";
import { useApi } from "frontend/lib/data/useApi";
-import { ListSkeleton } from "frontend/design-system/components/Skeleton/List";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
import {
useAppConfiguration,
useUpsertConfigurationMutation,
@@ -15,6 +12,9 @@ import { useEntityDictionPlurals } from "frontend/hooks/entity/entity.queries";
import { NAVIGATION_MENU_ENDPOINT } from "frontend/_layouts/app/NavigationSideBar/constants";
import { ACTIVE_ENTITIES_ENDPOINT } from "shared/constants/entities";
import { useDocumentationActionButton } from "frontend/docs/constants";
+import { SectionBox } from "@/components/app/section-box";
+import { ListSkeleton } from "@/components/app/skeleton/list";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
import { SETTINGS_VIEW_KEY } from "../constants";
import { BaseSettingsLayout } from "../_Base";
import { EntitiesSelection } from "./Selection";
diff --git a/src/frontend/views/settings/Menu/index.tsx b/src/frontend/views/settings/Menu/index.tsx
index cf960e8a9..40a1d1988 100644
--- a/src/frontend/views/settings/Menu/index.tsx
+++ b/src/frontend/views/settings/Menu/index.tsx
@@ -1,9 +1,6 @@
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { UserPermissions } from "shared/constants/user";
import { useAppConfigurationDomainMessages } from "frontend/hooks/configuration/configuration.constant";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
-import { ListSkeleton } from "frontend/design-system/components/Skeleton/List";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
import {
useAppConfiguration,
useUpsertConfigurationMutation,
@@ -14,6 +11,9 @@ import { NAVIGATION_MENU_ENDPOINT } from "frontend/_layouts/app/NavigationSideBa
import { AppLayout } from "frontend/_layouts/app";
import { ACTIVE_ENTITIES_ENDPOINT } from "shared/constants/entities";
import { msg } from "@lingui/macro";
+import { SectionBox } from "@/components/app/section-box";
+import { ListSkeleton } from "@/components/app/skeleton/list";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
import { SETTINGS_VIEW_KEY } from "../constants";
import { EntitiesSelection } from "../Entities/Selection";
diff --git a/src/frontend/views/settings/Site/index.tsx b/src/frontend/views/settings/Site/index.tsx
index 3c86a4c78..07bf44ff2 100644
--- a/src/frontend/views/settings/Site/index.tsx
+++ b/src/frontend/views/settings/Site/index.tsx
@@ -1,19 +1,19 @@
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
-import {
- FormSkeleton,
- FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
import { UserPermissions } from "shared/constants/user";
import {
useAppConfiguration,
useUpsertConfigurationMutation,
} from "frontend/hooks/configuration/configuration.store";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
-import { SchemaForm } from "frontend/components/SchemaForm";
import { AppConfigurationValueType } from "shared/configurations/constants";
import { msg } from "@lingui/macro";
import { useAppConfigurationDomainMessages } from "frontend/hooks/configuration/configuration.constant";
+import { SchemaForm } from "@/components/app/form/schema";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
+import {
+ FormSkeleton,
+ FormSkeletonSchema,
+} from "@/components/app/skeleton/form";
+import { SectionBox } from "@/components/app/section-box";
import { BaseSettingsLayout } from "../_Base";
import { SETTINGS_VIEW_KEY } from "../constants";
diff --git a/src/frontend/views/settings/System/index.tsx b/src/frontend/views/settings/System/index.tsx
index 5f49d8132..33b442e36 100644
--- a/src/frontend/views/settings/System/index.tsx
+++ b/src/frontend/views/settings/System/index.tsx
@@ -1,23 +1,23 @@
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
-import {
- FormSkeleton,
- FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
import { UserPermissions } from "shared/constants/user";
import {
useAppConfiguration,
useUpsertConfigurationMutation,
} from "frontend/hooks/configuration/configuration.store";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { useAppConfigurationDomainMessages } from "frontend/hooks/configuration/configuration.constant";
import { SystemSettingsDocumentation } from "frontend/docs/system-settings";
-import { SchemaForm } from "frontend/components/SchemaForm";
import { IBaseSystemSettings } from "shared/configurations/system";
import { useDocumentationActionButton } from "frontend/docs/constants";
import { msg } from "@lingui/macro";
+import { SectionBox } from "@/components/app/section-box";
+import {
+ FormSkeleton,
+ FormSkeletonSchema,
+} from "@/components/app/skeleton/form";
import { BaseSettingsLayout } from "../_Base";
import { SETTINGS_VIEW_KEY } from "../constants";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
+import { SchemaForm } from "@/components/app/form/schema";
export function SystemSettings() {
const systemSettings = useAppConfiguration("system_settings");
diff --git a/src/frontend/views/settings/Theme/index.tsx b/src/frontend/views/settings/Theme/index.tsx
index 3e9f574b1..82c2bcab5 100644
--- a/src/frontend/views/settings/Theme/index.tsx
+++ b/src/frontend/views/settings/Theme/index.tsx
@@ -1,25 +1,25 @@
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
-import {
- FormSkeleton,
- FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
import { UserPermissions } from "shared/constants/user";
import {
useAppConfiguration,
useUpsertConfigurationMutation,
} from "frontend/hooks/configuration/configuration.store";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import {
useUpsertUserPreferenceMutation,
useUserPreference,
} from "frontend/hooks/auth/preferences.store";
-import { SchemaForm } from "frontend/components/SchemaForm";
import { useAppConfigurationDomainMessages } from "frontend/hooks/configuration/configuration.constant";
import { ColorSchemes } from "shared/types/ui";
import { AppConfigurationValueType } from "shared/configurations/constants";
import { UPDATE_USER_PREFERENCES_FORM_SCHEMA } from "frontend/views/account/Preferences/constants";
import { msg } from "@lingui/macro";
+import { SchemaForm } from "@/components/app/form/schema";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
+import {
+ FormSkeleton,
+ FormSkeletonSchema,
+} from "@/components/app/skeleton/form";
+import { SectionBox } from "@/components/app/section-box";
import { BaseSettingsLayout } from "../_Base";
import { SETTINGS_VIEW_KEY } from "../constants";
diff --git a/src/frontend/views/settings/Variables/Base.tsx b/src/frontend/views/settings/Variables/Base.tsx
index 0e83184b5..eac89652a 100644
--- a/src/frontend/views/settings/Variables/Base.tsx
+++ b/src/frontend/views/settings/Variables/Base.tsx
@@ -1,11 +1,10 @@
import { useState } from "react";
import { IntegrationsConfigurationGroup } from "shared/types/integrations";
-import { Card } from "frontend/design-system/components/Card";
-import { Tabs } from "frontend/design-system/components/Tabs";
import { msg } from "@lingui/macro";
import { useDomainMessages } from "frontend/lib/crud-config";
import { ManageCredentialGroup } from "./ManageCredentialGroup";
import { INTEGRATIONS_GROUP_CRUD_CONFIG } from "./constants";
+import { Tabs } from "@/components/app/tabs";
export function BaseManageVariables() {
const [currentTab, setCurrentTab] = useState(
@@ -20,37 +19,34 @@ export function BaseManageVariables() {
);
return (
-
-
- setCurrentTab(newTab as IntegrationsConfigurationGroup)
- }
- contents={[
- {
- label: constantsDomainMessages.TEXT_LANG.TITLE,
- id: IntegrationsConfigurationGroup.Constants,
- content: (
-
- ),
- },
- {
- label: credentialsDomainMessages.TEXT_LANG.TITLE,
- id: IntegrationsConfigurationGroup.Credentials,
- content: (
-
- ),
- },
- ]}
- />
-
+
+ setCurrentTab(newTab as IntegrationsConfigurationGroup)
+ }
+ contents={[
+ {
+ label: constantsDomainMessages.TEXT_LANG.TITLE,
+ id: IntegrationsConfigurationGroup.Constants,
+ content: (
+
+ ),
+ },
+ {
+ label: credentialsDomainMessages.TEXT_LANG.TITLE,
+ id: IntegrationsConfigurationGroup.Credentials,
+ content: (
+
+ ),
+ },
+ ]}
+ />
);
}
diff --git a/src/frontend/views/settings/Variables/Form.tsx b/src/frontend/views/settings/Variables/Form.tsx
index dfd58bdc1..202c2d600 100644
--- a/src/frontend/views/settings/Variables/Form.tsx
+++ b/src/frontend/views/settings/Variables/Form.tsx
@@ -1,10 +1,10 @@
import { IFormProps } from "frontend/lib/form/types";
-import { SchemaForm } from "frontend/components/SchemaForm";
import { IAppliedSchemaFormConfig } from "shared/form-schemas/types";
import { IntegrationsConfigurationGroup } from "shared/types/integrations";
import { IKeyValue } from "shared/types/options";
import { msg } from "@lingui/macro";
import { useDomainMessages } from "frontend/lib/crud-config";
+import { SchemaForm } from "@/components/app/form/schema";
import { INTEGRATIONS_GROUP_CRUD_CONFIG } from "./constants";
export const CAPITAL_AND_UNDERSCORE_REGEX = `^[A-Z_]+$`;
diff --git a/src/frontend/views/settings/Variables/ManageCredentialGroup.tsx b/src/frontend/views/settings/Variables/ManageCredentialGroup.tsx
index 86a44e196..71e86bb5c 100644
--- a/src/frontend/views/settings/Variables/ManageCredentialGroup.tsx
+++ b/src/frontend/views/settings/Variables/ManageCredentialGroup.tsx
@@ -1,10 +1,5 @@
import { IntegrationsConfigurationGroup } from "shared/types/integrations";
import { useCallback, useEffect, useMemo, useState } from "react";
-import {
- FEPaginationTable,
- IFETableCell,
- IFETableColumn,
-} from "frontend/components/FEPaginationTable";
import {
IPageDetails,
useSetCurrentActionItems,
@@ -16,19 +11,20 @@ import { INTEGRATIONS_GROUP_CONFIG } from "shared/config-bag/integrations";
import { VariablesDocumentation } from "frontend/docs/variables";
import { ToastService } from "frontend/lib/toast";
import { useApi } from "frontend/lib/data/useApi";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
-import { Typo } from "frontend/design-system/primitives/Typo";
-import { OffCanvas } from "frontend/design-system/components/OffCanvas";
import {
PasswordMessage,
PasswordToReveal,
} from "frontend/views/integrations/Password";
import { IKeyValue } from "shared/types/options";
import { useDocumentationActionButton } from "frontend/docs/constants";
-import { ActionButtons } from "frontend/design-system/components/Button/ActionButtons";
-import { DELETE_BUTTON_PROPS } from "frontend/design-system/components/Button/constants";
import { msg } from "@lingui/macro";
import { useDomainMessages } from "frontend/lib/crud-config";
+import { DELETE_BUTTON_PROPS } from "@/components/app/button/constants";
+import {
+ FEPaginationTable,
+ IFETableCell,
+ IFETableColumn,
+} from "@/components/app/pagination-table";
import {
INTEGRATIONS_GROUP_ENDPOINT,
useIntegrationConfigurationDeletionMutation,
@@ -37,6 +33,9 @@ import {
} from "./configurations.store";
import { KeyValueForm } from "./Form";
import { INTEGRATIONS_GROUP_CRUD_CONFIG } from "./constants";
+import { Card } from "@/components/ui/card";
+import { OffCanvas } from "@/components/app/off-canvas";
+import { ActionButtons } from "@/components/app/button/action";
const NEW_CONFIG_ITEM = "__new_config_item__";
@@ -87,7 +86,7 @@ export function ManageCredentialGroup({
const MemoizedAction = useCallback(
({ row }: IFETableCell) => (
+
{group === IntegrationsConfigurationGroup.Credentials &&
userHasPermission(UserPermissions.CAN_MANAGE_APP_CREDENTIALS) &&
revealedCredentials.data === undefined && (
-
+
)}
{!canManageAction && tableData.data.length > 0 && (
-
-
- Your account does not have the permission to view secret values or
- manage them
-
-
+
+ Your account does not have the permission to view secret values or
+ manage them
+
)}
@@ -218,13 +215,13 @@ export function ManageCredentialGroup({
: domainMessages.TEXT_LANG.EDIT
}
onClose={closeConfigItem}
+ size="sm"
show={!!currentConfigItem}
>
{group === IntegrationsConfigurationGroup.Credentials && (
- <>
+
)}
- >
+
);
}
diff --git a/src/frontend/views/settings/Versions/index.tsx b/src/frontend/views/settings/Versions/index.tsx
index b8c5c607f..f4a97e72e 100644
--- a/src/frontend/views/settings/Versions/index.tsx
+++ b/src/frontend/views/settings/Versions/index.tsx
@@ -1,17 +1,15 @@
import { UserPermissions } from "shared/constants/user";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { Fragment } from "react";
import { useApi } from "frontend/lib/data/useApi";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
-import { BaseSkeleton } from "frontend/design-system/components/Skeleton/Base";
-import { Typo } from "frontend/design-system/primitives/Typo";
-import { Spacer } from "frontend/design-system/primitives/Spacer";
import { msg } from "@lingui/macro";
import { typescriptSafeObjectDotEntries } from "shared/lib/objects";
import { useDomainMessages } from "frontend/lib/crud-config";
+import { SectionBox } from "@/components/app/section-box";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
import { SETTINGS_VIEW_KEY } from "../constants";
import { BaseSettingsLayout } from "../_Base";
+import { Skeleton } from "@/components/ui/skeleton";
export function VersionInfo() {
const domainMessages = useDomainMessages({
@@ -40,8 +38,8 @@ export function VersionInfo() {
<>
{Array.from({ length: 4 }, (_, k) => k).map((key) => (
-
-
+
+
))}
>
@@ -49,11 +47,10 @@ export function VersionInfo() {
>
{typescriptSafeObjectDotEntries(systemVersions.data).map(
([label, value]) => (
-
- {label}
- {value}
-
-
+
)
)}
diff --git a/src/frontend/views/settings/_Base.tsx b/src/frontend/views/settings/_Base.tsx
index 691fc4911..da690afc8 100644
--- a/src/frontend/views/settings/_Base.tsx
+++ b/src/frontend/views/settings/_Base.tsx
@@ -1,59 +1,65 @@
import { useRouter } from "next/router";
import { ReactNode } from "react";
-import {
- IMenuSectionItem,
- MenuSection,
-} from "frontend/design-system/components/Section/MenuSection";
-import { ContentLayout } from "frontend/design-system/components/Section/SectionDivider";
+
import { AppLayout } from "frontend/_layouts/app";
import { NAVIGATION_LINKS } from "frontend/lib/routing/links";
import { msg } from "@lingui/macro";
+import { ContentLayout } from "@/components/app/content-layout";
import { useMutateBaseSettingsMenu } from "./portal";
+import { MenuSection } from "@/components/app/menu-section";
+import { IMenuActionItem } from "@/components/app/button/types";
interface IProps {
children: ReactNode;
}
-const baseMenuItems: IMenuSectionItem[] = [
+const baseMenuItems: IMenuActionItem[] = [
{
+ id: "settings",
action: NAVIGATION_LINKS.SETTINGS.ENTITIES,
- name: msg`Enabled Entities`,
+ label: msg`Enabled Entities`,
systemIcon: "Columns",
order: 10,
},
{
+ id: "theme",
action: NAVIGATION_LINKS.SETTINGS.THEME,
- name: msg`Theme`,
+ label: msg`Theme`,
systemIcon: "Eye",
order: 20,
},
{
+ id: "site",
action: NAVIGATION_LINKS.SETTINGS.SITE,
- name: msg`Site`,
+ label: msg`Site`,
systemIcon: "Globe",
order: 30,
},
{
+ id: "data",
action: NAVIGATION_LINKS.SETTINGS.DATA,
- name: msg`General Data Settings`,
+ label: msg`General Data Settings`,
systemIcon: "Calendar",
order: 40,
},
{
+ id: "variables",
action: NAVIGATION_LINKS.SETTINGS.VARIABLES,
- name: msg`Variables`,
+ label: msg`Variables`,
systemIcon: "Book",
order: 50,
},
{
+ id: "system",
action: NAVIGATION_LINKS.SETTINGS.SYSTEM,
- name: msg`System`,
+ label: msg`System`,
systemIcon: "Server",
order: 60,
},
{
+ id: "versions",
action: NAVIGATION_LINKS.SETTINGS.VERSIONS,
- name: msg`System Info`,
+ label: msg`System Info`,
systemIcon: "Terminal",
order: 70,
},
diff --git a/src/frontend/views/settings/portal/main.ts b/src/frontend/views/settings/portal/main.ts
index 5330a5cc2..7c045ceba 100644
--- a/src/frontend/views/settings/portal/main.ts
+++ b/src/frontend/views/settings/portal/main.ts
@@ -1,5 +1,5 @@
-import { IMenuSectionItem } from "frontend/design-system/components/Section/MenuSection";
+import { IMenuActionItem } from "@/components/app/button/types";
-export const useMutateBaseSettingsMenu = (menu: IMenuSectionItem[]) => {
+export const useMutateBaseSettingsMenu = (menu: IMenuActionItem[]) => {
return menu;
};
diff --git a/src/frontend/views/setup/Credentials/Form.tsx b/src/frontend/views/setup/Credentials/Form.tsx
index 5b3adc851..9d8052b41 100644
--- a/src/frontend/views/setup/Credentials/Form.tsx
+++ b/src/frontend/views/setup/Credentials/Form.tsx
@@ -6,14 +6,14 @@ import {
import { upperCaseFirstLetter } from "shared/lib/strings";
import { required } from "frontend/lib/validations";
import { IFormProps } from "frontend/lib/form/types";
-import { FormInput } from "frontend/design-system/components/Form/Input";
-import { FormNumberInput } from "frontend/design-system/components/Form/Number";
-import { FormCheckBox } from "frontend/design-system/components/Form/CheckBox";
-import { FormButton } from "frontend/design-system/components/Button/FormButton";
import { FormSelect } from "frontend/design-system/components/Form/Select";
import { useToggle } from "frontend/hooks/state/useToggleState";
import { msg } from "@lingui/macro";
import { typescriptSafeObjectDotKeys } from "shared/lib/objects";
+import { FormButton } from "@/components/app/button/form";
+import { FormInput } from "@/components/app/form/input/text";
+import { FormSwitch } from "@/components/app/form/input/switch";
+import { FormNumberInput } from "@/components/app/form/input/number";
export function CredentialsSetupForm({
onSubmit,
@@ -145,11 +145,13 @@ export function CredentialsSetupForm({
{dataSourceConfig.fields.includes("ssl") && (
- {({ input, meta }) => (
- (
+
)}
diff --git a/src/frontend/views/setup/Credentials/index.tsx b/src/frontend/views/setup/Credentials/index.tsx
index 07fe80b51..fbbf5ae7b 100644
--- a/src/frontend/views/setup/Credentials/index.tsx
+++ b/src/frontend/views/setup/Credentials/index.tsx
@@ -1,13 +1,13 @@
-import {
- FormSkeleton,
- FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
import { useSetupCheck } from "frontend/hooks/setup/setup.store";
import { AuthLayout } from "frontend/_layouts/guest";
import { NAVIGATION_LINKS } from "frontend/lib/routing/links";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
import { CustomNextPage } from "frontend/_layouts/types";
import { msg } from "@lingui/macro";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
+import {
+ FormSkeleton,
+ FormSkeletonSchema,
+} from "@/components/app/skeleton/form";
import { CredentialsSetupForm } from "./Form";
import { useSetupCredentialsMutation } from "../setup.store";
diff --git a/src/frontend/views/setup/User/index.tsx b/src/frontend/views/setup/User/index.tsx
index e96e5f92c..998c75eb2 100644
--- a/src/frontend/views/setup/User/index.tsx
+++ b/src/frontend/views/setup/User/index.tsx
@@ -1,18 +1,18 @@
import { AuthLayout } from "frontend/_layouts/guest";
import { useSetupCheck } from "frontend/hooks/setup/setup.store";
import { NAVIGATION_LINKS } from "frontend/lib/routing/links";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
-import {
- FormSkeleton,
- FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
-import { SchemaForm } from "frontend/components/SchemaForm";
import {
ISetupUserForm,
SETUP_USER_FORM_SCHEMA,
} from "shared/form-schemas/setup/user";
import { msg } from "@lingui/macro";
import { CustomNextPage } from "frontend/_layouts/types";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
+import {
+ FormSkeleton,
+ FormSkeletonSchema,
+} from "@/components/app/skeleton/form";
+import { SchemaForm } from "@/components/app/form/schema";
import { useSetupUserMutation } from "../setup.store";
// eslint-disable-next-line react/function-component-definition
diff --git a/src/frontend/views/users/Create/index.tsx b/src/frontend/views/users/Create/index.tsx
index bb8894af7..c5157ef64 100644
--- a/src/frontend/views/users/Create/index.tsx
+++ b/src/frontend/views/users/Create/index.tsx
@@ -1,15 +1,15 @@
import { useNavigationStack } from "frontend/lib/routing/useNavigationStack";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
import { UserPermissions } from "shared/constants/user";
-import { ContentLayout } from "frontend/design-system/components/Section/SectionDivider";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
import { AppLayout } from "frontend/_layouts/app";
-import { SchemaForm } from "frontend/components/SchemaForm";
import { ICreateUserForm } from "shared/form-schemas/users";
import { IAppliedSchemaFormConfig } from "shared/form-schemas/types";
import { msg } from "@lingui/macro";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import { ContentLayout } from "@/components/app/content-layout";
+import { SchemaForm } from "@/components/app/form/schema";
+import { SectionBox } from "@/components/app/section-box";
import { useCreateUserMutation } from "../users.store";
export const CREATE_USER_FORM_SCHEMA: IAppliedSchemaFormConfig =
diff --git a/src/frontend/views/users/DatabaseLink/index.tsx b/src/frontend/views/users/DatabaseLink/index.tsx
index d7c9fba5c..ce505f2f7 100644
--- a/src/frontend/views/users/DatabaseLink/index.tsx
+++ b/src/frontend/views/users/DatabaseLink/index.tsx
@@ -1,10 +1,7 @@
import { useNavigationStack } from "frontend/lib/routing/useNavigationStack";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
import { UserPermissions } from "shared/constants/user";
-import { ContentLayout } from "frontend/design-system/components/Section/SectionDivider";
-import { SectionBox } from "frontend/design-system/components/Section/SectionBox";
import { AppLayout } from "frontend/_layouts/app";
-import { SchemaForm } from "frontend/components/SchemaForm";
import { useDocumentationActionButton } from "frontend/docs/constants";
import { IAppliedSchemaFormConfig } from "shared/form-schemas/types";
import { ACTIVE_ENTITIES_ENDPOINT } from "shared/constants/entities";
@@ -12,17 +9,20 @@ import {
useAppConfiguration,
useUpsertConfigurationMutation,
} from "frontend/hooks/configuration/configuration.store";
-import { ViewStateMachine } from "frontend/components/ViewStateMachine";
-import {
- FormSkeleton,
- FormSkeletonSchema,
-} from "frontend/design-system/components/Skeleton/Form";
import { UsersLinkToDatabaseDocumentation } from "frontend/docs/users-link-to-database";
import { useEntityFieldLists } from "frontend/hooks/entity/entity.store";
import { useEffect, useState } from "react";
import { msg } from "@lingui/macro";
import { i18nNoop } from "translations/fake";
import { useDomainMessages } from "frontend/lib/crud-config";
+import { ContentLayout } from "@/components/app/content-layout";
+import {
+ FormSkeleton,
+ FormSkeletonSchema,
+} from "@/components/app/skeleton/form";
+import { ViewStateMachine } from "@/components/app/view-state-machine";
+import { SchemaForm } from "@/components/app/form/schema";
+import { SectionBox } from "@/components/app/section-box";
type IUsersLinkToDatabaseForm = {
table: string;
diff --git a/src/frontend/views/users/List.tsx b/src/frontend/views/users/List.tsx
index 218c854b7..dfabde427 100644
--- a/src/frontend/views/users/List.tsx
+++ b/src/frontend/views/users/List.tsx
@@ -1,27 +1,27 @@
import { AppLayout } from "frontend/_layouts/app";
import { roleLabel, UserPermissions } from "shared/constants/user";
-import {
- FEPaginationTable,
- IFETableColumn,
- IFETableCell,
-} from "frontend/components/FEPaginationTable";
import { IRolesList } from "shared/types/roles";
import { IAccountProfile } from "shared/types/user";
import { useApi } from "frontend/lib/data/useApi";
import { useSetPageDetails } from "frontend/lib/routing/usePageDetails";
import { NAVIGATION_LINKS } from "frontend/lib/routing/links";
-import { Card } from "frontend/design-system/components/Card";
-import { ActionButtons } from "frontend/design-system/components/Button/ActionButtons";
-import { DELETE_BUTTON_PROPS } from "frontend/design-system/components/Button/constants";
import { useUserHasPermission } from "frontend/hooks/auth/user.store";
-import { IDropDownMenuItem } from "frontend/design-system/components/DropdownMenu";
import { useCallback } from "react";
import { msg } from "@lingui/macro";
import { transformLabelValueToSelectData } from "translations/fake";
import { useDomainMessages } from "frontend/lib/crud-config";
import { LANG_DOMAINS } from "frontend/lib/crud-config/lang-domains";
+import { DELETE_BUTTON_PROPS } from "@/components/app/button/constants";
+import {
+ FEPaginationTable,
+ IFETableColumn,
+ IFETableCell,
+} from "@/components/app/pagination-table";
import { ROLES_ENDPOINT_CONFIG } from "../roles/roles.store";
import { USERS_ENDPOINT_CONFIG, useUserDeletionMutation } from "./users.store";
+import { Card } from "@/components/ui/card";
+import { IMenuActionItem } from "@/components/app/button/types";
+import { ActionButtons } from "@/components/app/button/action";
export function ListUsers() {
const domainMessages = useDomainMessages(LANG_DOMAINS.ACCOUNT.USERS);
@@ -45,7 +45,7 @@ export function ListUsers() {
const { username } = row.original;
return (
-
-
+
+
+ }
+ >
+
+ buttonText={domainMessages.FORM_LANG.UPDATE}
+ onSubmit={updateUserMutation.mutateAsync}
+ initialValues={userDetails.data}
+ systemIcon="Save"
+ fields={UPDATE_USER_FORM_SCHEMA}
/>
- }
- >
-
- buttonText={domainMessages.FORM_LANG.UPDATE}
- onSubmit={updateUserMutation.mutateAsync}
- initialValues={userDetails.data}
- systemIcon="Save"
- fields={UPDATE_USER_FORM_SCHEMA}
- />
-
-
-
- {userHasPermission(UserPermissions.CAN_RESET_PASSWORD) &&
- authenticatedUserBag.data?.username !== username && (
-
-
- buttonText={(submitting) =>
- submitting ? msg`Resetting Password` : msg`Reset Password`
- }
- systemIcon="Unlock"
- fields={RESET_PASSWORD_FORM_SCHEMA}
- onSubmit={resetPasswordMutation.mutateAsync}
- resetForm
- />
-
- )}
+
+
+
+ {userHasPermission(UserPermissions.CAN_RESET_PASSWORD) &&
+ authenticatedUserBag.data?.username !== username && (
+
+
+ buttonText={(submitting) =>
+ submitting ? msg`Resetting Password` : msg`Reset Password`
+ }
+ systemIcon="Unlock"
+ fields={RESET_PASSWORD_FORM_SCHEMA}
+ onSubmit={resetPasswordMutation.mutateAsync}
+ resetForm
+ />
+
+ )}
+
);
diff --git a/src/lib/utils.ts b/src/lib/utils.ts
new file mode 100644
index 000000000..365058ceb
--- /dev/null
+++ b/src/lib/utils.ts
@@ -0,0 +1,6 @@
+import { type ClassValue, clsx } from "clsx";
+import { twMerge } from "tailwind-merge";
+
+export function cn(...inputs: ClassValue[]) {
+ return twMerge(clsx(inputs));
+}
diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx
index 5bc350981..33b4ca257 100644
--- a/src/pages/_app.tsx
+++ b/src/pages/_app.tsx
@@ -1,10 +1,11 @@
/* eslint-disable react/prop-types */
-import { ApplicationRoot } from "frontend/components/ApplicationRoot";
+import "@/styles/globals.css";
import "../static/fonts/font-face.css";
import { ReactElement } from "react";
import { AppProps } from "next/app";
import { getAppLayout } from "frontend/_layouts/app/getLayout";
import { CustomNextPage } from "frontend/_layouts/types";
+import { ApplicationRoot } from "@/components/app/roots";
function MyApp({
Component,
diff --git a/src/shared/constants/Icons.tsx b/src/shared/constants/Icons.tsx
index 2d4b648ec..1a63b0e9c 100644
--- a/src/shared/constants/Icons.tsx
+++ b/src/shared/constants/Icons.tsx
@@ -94,7 +94,9 @@ export const SystemIcons = {
export type SystemIconsKeys = keyof typeof SystemIcons;
-export const SystemIconsList = typescriptSafeObjectDotKeys(SystemIcons);
+export const SystemIconsList = typescriptSafeObjectDotKeys(SystemIcons).sort(
+ (a, b) => a.localeCompare(b)
+);
export const systemIconToSVG = (icon: string, strokeWidth = 2) => {
let iconPath = SystemIcons[icon];
diff --git a/src/shared/constants/colors.ts b/src/shared/constants/colors.ts
deleted file mode 100644
index 8ce8019f0..000000000
--- a/src/shared/constants/colors.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { MessageDescriptor } from "@lingui/core";
-import { msg } from "@lingui/macro";
-
-export const ROYGBIV = {
- red: "#FF165D",
- orange: "#FF851B",
- green: "#2ECC40",
- blue: "#0074D9",
- indigo: "#4B0082",
- violet: "#B10DC9",
- brown: "#964B00",
-};
-
-export const ROYGBIV_CONFIG: Record<
- keyof typeof ROYGBIV,
- {
- label: MessageDescriptor;
- }
-> = {
- red: { label: msg`Red` },
- orange: { label: msg`Orange` },
- green: { label: msg`Green` },
- blue: { label: msg`Blue` },
- indigo: { label: msg`Indigo` },
- violet: { label: msg`Violet` },
- brown: { label: msg`Brown` },
-};
diff --git a/src/shared/logic/entities/__tests__/getEntitySelectionConfig.spec.ts b/src/shared/logic/entities/__tests__/getEntitySelectionConfig.spec.ts
index dc83a4810..ce7454ea9 100644
--- a/src/shared/logic/entities/__tests__/getEntitySelectionConfig.spec.ts
+++ b/src/shared/logic/entities/__tests__/getEntitySelectionConfig.spec.ts
@@ -8,19 +8,19 @@ describe("getEntitySelectionConfig", () => {
.toMatchInlineSnapshot(`
[
{
- "color": "#2ECC40",
"label": {
"id": "l75CjT",
"message": "Yes",
},
+ "spectrum": "green",
"value": true,
},
{
- "color": "#FF165D",
"label": {
"id": "1UzENP",
"message": "No",
},
+ "spectrum": "red",
"value": false,
},
]
@@ -35,12 +35,12 @@ describe("getEntitySelectionConfig", () => {
{
label: fakeMessageDescriptor("Some Yes"),
value: "true",
- color: "#foo",
+ spectrum: "blue",
},
{
label: fakeMessageDescriptor("Some No"),
value: "false",
- color: "#fff",
+ spectrum: "red",
},
],
@@ -49,19 +49,19 @@ describe("getEntitySelectionConfig", () => {
).toMatchInlineSnapshot(`
[
{
- "color": "#foo",
"label": {
"id": "Some Yes",
"message": "Some Yes",
},
+ "spectrum": "blue",
"value": "true",
},
{
- "color": "#fff",
"label": {
"id": "Some No",
"message": "Some No",
},
+ "spectrum": "red",
"value": "false",
},
]
@@ -84,7 +84,7 @@ describe("getEntitySelectionConfig", () => {
{
label: fakeMessageDescriptor("Option 1"),
value: "true",
- color: "#foo",
+ spectrum: "blue",
},
],
@@ -93,11 +93,11 @@ describe("getEntitySelectionConfig", () => {
).toMatchInlineSnapshot(`
[
{
- "color": "#foo",
"label": {
"id": "Option 1",
"message": "Option 1",
},
+ "spectrum": "blue",
"value": "true",
},
]
@@ -116,7 +116,6 @@ describe("getEntitySelectionConfig", () => {
).toMatchInlineSnapshot(`
[
{
- "color": "#2ECC40",
"label": {
"id": "J/hVSQ",
"message": "{0}",
@@ -124,10 +123,10 @@ describe("getEntitySelectionConfig", () => {
"0": "Pending",
},
},
+ "spectrum": "green",
"value": "pending",
},
{
- "color": "#FF165D",
"label": {
"id": "J/hVSQ",
"message": "{0}",
@@ -135,10 +134,10 @@ describe("getEntitySelectionConfig", () => {
"0": "Approved",
},
},
+ "spectrum": "red",
"value": "approved",
},
{
- "color": "#0074D9",
"label": {
"id": "J/hVSQ",
"message": "{0}",
@@ -146,6 +145,7 @@ describe("getEntitySelectionConfig", () => {
"0": "Rejected",
},
},
+ "spectrum": "blue",
"value": "rejected",
},
]
@@ -160,12 +160,12 @@ describe("getEntitySelectionConfig", () => {
{
label: fakeMessageDescriptor("Custom Status 1"),
value: "custom-status-1",
- color: "#foo",
+ spectrum: "blue",
},
{
label: fakeMessageDescriptor("Custom Status 2"),
value: "custom-status-2",
- color: "#ffo",
+ spectrum: "green",
},
],
@@ -174,19 +174,19 @@ describe("getEntitySelectionConfig", () => {
).toMatchInlineSnapshot(`
[
{
- "color": "#foo",
"label": {
"id": "Custom Status 1",
"message": "Custom Status 1",
},
+ "spectrum": "blue",
"value": "custom-status-1",
},
{
- "color": "#ffo",
"label": {
"id": "Custom Status 2",
"message": "Custom Status 2",
},
+ "spectrum": "green",
"value": "custom-status-2",
},
]
@@ -201,13 +201,13 @@ describe("getEntitySelectionConfig", () => {
{
label: fakeMessageDescriptor("Custom Status 1"),
value: "custom-status-1",
- color: "#foo",
+ spectrum: "blue",
},
{
label: fakeMessageDescriptor("Custom Status 2"),
value: "custom-status-2",
- color: "#ffo",
+ spectrum: "green",
},
],
@@ -216,23 +216,22 @@ describe("getEntitySelectionConfig", () => {
).toMatchInlineSnapshot(`
[
{
- "color": "#foo",
"label": {
"id": "Custom Status 1",
"message": "Custom Status 1",
},
+ "spectrum": "blue",
"value": "custom-status-1",
},
{
- "color": "#ffo",
"label": {
"id": "Custom Status 2",
"message": "Custom Status 2",
},
+ "spectrum": "green",
"value": "custom-status-2",
},
{
- "color": "#2ECC40",
"label": {
"id": "J/hVSQ",
"message": "{0}",
@@ -240,10 +239,10 @@ describe("getEntitySelectionConfig", () => {
"0": "Pending",
},
},
+ "spectrum": "green",
"value": "pending",
},
{
- "color": "#FF165D",
"label": {
"id": "J/hVSQ",
"message": "{0}",
@@ -251,10 +250,10 @@ describe("getEntitySelectionConfig", () => {
"0": "Approved",
},
},
+ "spectrum": "red",
"value": "approved",
},
{
- "color": "#0074D9",
"label": {
"id": "J/hVSQ",
"message": "{0}",
@@ -262,6 +261,7 @@ describe("getEntitySelectionConfig", () => {
"0": "Rejected",
},
},
+ "spectrum": "blue",
"value": "rejected",
},
]
@@ -276,13 +276,13 @@ describe("getEntitySelectionConfig", () => {
{
label: fakeMessageDescriptor("Custom Status 1"),
value: "custom-status-1",
- color: "#foo",
+ spectrum: "blue",
},
{
label: fakeMessageDescriptor("Custom Status 2"),
value: "approved",
- color: "#ffo",
+ spectrum: "green",
},
],
@@ -291,23 +291,22 @@ describe("getEntitySelectionConfig", () => {
).toMatchInlineSnapshot(`
[
{
- "color": "#foo",
"label": {
"id": "Custom Status 1",
"message": "Custom Status 1",
},
+ "spectrum": "blue",
"value": "custom-status-1",
},
{
- "color": "#ffo",
"label": {
"id": "Custom Status 2",
"message": "Custom Status 2",
},
+ "spectrum": "green",
"value": "approved",
},
{
- "color": "#2ECC40",
"label": {
"id": "J/hVSQ",
"message": "{0}",
@@ -315,10 +314,10 @@ describe("getEntitySelectionConfig", () => {
"0": "Pending",
},
},
+ "spectrum": "green",
"value": "pending",
},
{
- "color": "#0074D9",
"label": {
"id": "J/hVSQ",
"message": "{0}",
@@ -326,13 +325,14 @@ describe("getEntitySelectionConfig", () => {
"0": "Rejected",
},
},
+ "spectrum": "blue",
"value": "rejected",
},
]
`);
});
- it("should not use colors for generated options when preselected dont have colors", () => {
+ it("should not use spectrums for generated options when preselected dont have spectrums", () => {
expect(
getEntitySelectionConfig(
"selection-enum",
@@ -367,7 +367,6 @@ describe("getEntitySelectionConfig", () => {
"value": "custom-status-2",
},
{
- "color": undefined,
"label": {
"id": "J/hVSQ",
"message": "{0}",
@@ -375,10 +374,10 @@ describe("getEntitySelectionConfig", () => {
"0": "Pending",
},
},
+ "spectrum": undefined,
"value": "pending",
},
{
- "color": undefined,
"label": {
"id": "J/hVSQ",
"message": "{0}",
@@ -386,10 +385,10 @@ describe("getEntitySelectionConfig", () => {
"0": "Approved",
},
},
+ "spectrum": undefined,
"value": "approved",
},
{
- "color": undefined,
"label": {
"id": "J/hVSQ",
"message": "{0}",
@@ -397,6 +396,7 @@ describe("getEntitySelectionConfig", () => {
"0": "Rejected",
},
},
+ "spectrum": undefined,
"value": "rejected",
},
]
diff --git a/src/shared/logic/entities/__tests__/getEntitySelections.spec.ts b/src/shared/logic/entities/__tests__/getEntitySelections.spec.ts
index e575fb5e7..d90fb5eb6 100644
--- a/src/shared/logic/entities/__tests__/getEntitySelections.spec.ts
+++ b/src/shared/logic/entities/__tests__/getEntitySelections.spec.ts
@@ -70,13 +70,13 @@ describe("getEntitySelections", () => {
customSelect: [
{
- color: "#111",
+ spectrum: "green",
label: fakeMessageDescriptor("Custom Select Option 1"),
value: "custom-select-option-1",
},
{
- color: "#222",
+ spectrum: "red",
label: fakeMessageDescriptor("Custom Select Option 2"),
value: "custom-select-option-2",
},
@@ -94,19 +94,19 @@ describe("getEntitySelections", () => {
{
"customSelect": [
{
- "color": "#111",
"label": {
"id": "Custom Select Option 1",
"message": "Custom Select Option 1",
},
+ "spectrum": "green",
"value": "custom-select-option-1",
},
{
- "color": "#222",
"label": {
"id": "Custom Select Option 2",
"message": "Custom Select Option 2",
},
+ "spectrum": "red",
"value": "custom-select-option-2",
},
],
@@ -142,7 +142,6 @@ describe("getEntitySelections", () => {
"value": "in-progress",
},
{
- "color": undefined,
"label": {
"id": "J/hVSQ",
"message": "{0}",
@@ -150,6 +149,7 @@ describe("getEntitySelections", () => {
"0": "Rejected",
},
},
+ "spectrum": undefined,
"value": "rejected",
},
],
@@ -196,25 +196,24 @@ describe("getEntitySelections", () => {
"customSelect": [],
"isVerified": [
{
- "color": "#2ECC40",
"label": {
"id": "l75CjT",
"message": "Yes",
},
+ "spectrum": "green",
"value": true,
},
{
- "color": "#FF165D",
"label": {
"id": "1UzENP",
"message": "No",
},
+ "spectrum": "red",
"value": false,
},
],
"status": [
{
- "color": "#2ECC40",
"label": {
"id": "J/hVSQ",
"message": "{0}",
@@ -222,10 +221,10 @@ describe("getEntitySelections", () => {
"0": "Approved",
},
},
+ "spectrum": "green",
"value": "approved",
},
{
- "color": "#FF165D",
"label": {
"id": "J/hVSQ",
"message": "{0}",
@@ -233,10 +232,10 @@ describe("getEntitySelections", () => {
"0": "In Progress",
},
},
+ "spectrum": "red",
"value": "in-progress",
},
{
- "color": "#0074D9",
"label": {
"id": "J/hVSQ",
"message": "{0}",
@@ -244,6 +243,7 @@ describe("getEntitySelections", () => {
"0": "Rejected",
},
},
+ "spectrum": "blue",
"value": "rejected",
},
],
diff --git a/src/shared/logic/entities/getEntitySelectionConfig.ts b/src/shared/logic/entities/getEntitySelectionConfig.ts
index 8e95e3d55..aecbef7f1 100644
--- a/src/shared/logic/entities/getEntitySelectionConfig.ts
+++ b/src/shared/logic/entities/getEntitySelectionConfig.ts
@@ -3,7 +3,8 @@ import { EntityTypesForSelection, IColorableSelection } from "shared/types/ui";
import { uniqBy } from "shared/lib/array/uniq-by";
import { msg } from "@lingui/macro";
import { i18nNoop } from "translations/fake";
-import { isUseColorsFlagOn, OPTIONS_COLORS } from "./selection.utils";
+import { isUseColorsFlagOn } from "./selection.utils";
+import { SPECTRUM_COLORS } from "@/components/ui/spectrum";
export const getEntitySelectionConfig = (
entityType: EntityTypesForSelection,
@@ -17,12 +18,12 @@ export const getEntitySelectionConfig = (
{
value: true,
label: msg`Yes`,
- color: OPTIONS_COLORS[0],
+ spectrum: "green",
},
{
value: false,
label: msg`No`,
- color: OPTIONS_COLORS[1],
+ spectrum: "red",
},
]
);
@@ -41,8 +42,8 @@ export const getEntitySelectionConfig = (
...enumList.map((enumValue, index) => ({
value: enumValue,
label: i18nNoop(userFriendlyCase(enumValue)),
- color: shouldUseColor
- ? OPTIONS_COLORS[index % OPTIONS_COLORS.length]
+ spectrum: shouldUseColor
+ ? SPECTRUM_COLORS[index % SPECTRUM_COLORS.length]
: undefined,
})),
],
diff --git a/src/shared/logic/entities/selection.utils.ts b/src/shared/logic/entities/selection.utils.ts
index e2186b91f..9024ece98 100644
--- a/src/shared/logic/entities/selection.utils.ts
+++ b/src/shared/logic/entities/selection.utils.ts
@@ -1,19 +1,8 @@
-import { ROYGBIV } from "shared/constants/colors";
import { IColorableSelection } from "shared/types/ui";
export const isUseColorsFlagOn = (selections: IColorableSelection[]) => {
if (selections.length === 0) {
return true;
}
- return !!selections[0].color;
+ return !!selections[0].spectrum;
};
-
-export const OPTIONS_COLORS = [
- ROYGBIV.green,
- ROYGBIV.red,
- ROYGBIV.blue,
- ROYGBIV.violet,
- ROYGBIV.orange,
- ROYGBIV.indigo,
- ROYGBIV.brown,
-];
diff --git a/src/shared/types/dashboard/index.ts b/src/shared/types/dashboard/index.ts
index 053837c1d..a2a086e97 100644
--- a/src/shared/types/dashboard/index.ts
+++ b/src/shared/types/dashboard/index.ts
@@ -1,3 +1,4 @@
+import { SpectrumColorTypes } from "@/components/ui/spectrum";
import { IPortalWidgetConfig } from "../portal/widgets";
import { ISharedWidgetConfig } from "./base";
@@ -8,7 +9,7 @@ export interface ITableWidgetConfig extends ISharedWidgetConfig {
export interface ISummaryWidgetConfig extends ISharedWidgetConfig {
_type: "summary-card";
icon: string;
- color: string;
+ color: SpectrumColorTypes;
}
export type IWidgetConfig =
diff --git a/src/shared/types/ui.d.ts b/src/shared/types/ui.d.ts
index 9294d6f20..b6a0345b3 100644
--- a/src/shared/types/ui.d.ts
+++ b/src/shared/types/ui.d.ts
@@ -1,7 +1,8 @@
import { MessageDescriptor } from "@lingui/core";
+import { SpectrumColorTypes } from "@/components/ui/spectrum";
export interface IColorableSelection {
- color?: string;
+ spectrum?: SpectrumColorTypes;
label: MessageDescriptor;
value: string | boolean;
}
diff --git a/src/styles/globals.css b/src/styles/globals.css
new file mode 100644
index 000000000..b37382c65
--- /dev/null
+++ b/src/styles/globals.css
@@ -0,0 +1,69 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+@layer base {
+ :root {
+ /* --soft: 215, 15%, 15%;
+ --muted: 212, 9%, 58%;
+ --main: 210, 17%, 82%;
+ --border: 212, 12%, 21%;
+ --base: 215, 21%, 11%;
+ --foundation: 216, 28%, 7%;
+ --primary: 249, 52%, 46%;
+ --primary-text: 0, 0%, 100%;
+ --shade-text: 0, 0%, 100%; */
+
+ --soft: 213, 47%, 96%;
+ --muted: 227, 22%, 71%;
+ --main: 229, 8%, 41%;
+ --border: 215, 51%, 93%;
+ --base: 0, 0%, 100%;
+ --foundation: 210, 33%, 96%;
+ --primary: 249, 52%, 46%;
+ --primary-text: 0, 0%, 100%;
+ --shade-text: 249, 52%, 46%;
+
+ /* --secondary: 240 4.8% 95.9%;
+ --secondary-foreground: 240 5.9% 10%; */
+
+ /* --accent: %;
+ --accent-foreground: 240 5.9% 10%; */
+
+ /* --destructive: 0 84.2% 60.2%;
+ --destructive-foreground: 0 0% 98%; */
+
+ /* --input: 240 5.9% 90%; */
+ /* --ring: 240 10% 3.9%; */
+
+ /* --background: 0 0% 100%;
+ --foreground: 240 10% 3.9%; */
+
+ --radius: 0.5rem;
+ }
+}
+
+@layer base {
+ * {
+ @apply border-border;
+ }
+ .gaussian-blur {
+ filter: url(#gaussian-blur);
+ filter: blur(2px);
+ }
+ body {
+ @apply text-main;
+ }
+
+ html {
+ font-family: "Inter", sans-serif;
+ }
+}
+
+@layer components {
+ .input-base {
+ @apply flex w-full rounded-md border border-border px-3 py-1 text-sm shadow-sm transition-colors placeholder:text-muted font-normal;
+ @apply focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary;
+ @apply disabled:cursor-not-allowed disabled:bg-soft disabled:opacity-70;
+ }
+}
diff --git a/tailwind.config.js b/tailwind.config.js
new file mode 100644
index 000000000..332377d63
--- /dev/null
+++ b/tailwind.config.js
@@ -0,0 +1,95 @@
+const { fontFamily } = require("tailwindcss/defaultTheme");
+// const {
+// default: flattenColorPalette,
+// } = require("tailwindcss/lib/util/flattenColorPalette");
+
+/** @type {import('tailwindcss').Config} */
+module.exports = {
+ content: ["./src/components/**/*.{ts,tsx}", "./src/frontend/**/*.{ts,tsx}"],
+ darkMode: ["class"],
+ theme: {
+ container: {
+ center: true,
+ padding: "2rem",
+ screens: {
+ "2xl": "1400px",
+ },
+ },
+ extend: {
+ colors: {
+ // input: "hsl(var(--input))",
+ // ring: "hsl(var(--ring))",
+ // background: "hsl(var(--background))",
+ // foreground: "hsl(var(--foreground))",
+ soft: "hsl(var(--soft))",
+ muted: "hsl(var(--muted))",
+ main: "hsl(var(--main))",
+ border: "hsl(var(--border))",
+ base: "hsl(var(--base))",
+ foundation: "hsl(var(--foundation))",
+ "primary-text": "hsl(var(--primary-text))",
+ hover: "hsla(var(--border), 0.3)",
+ primary: {
+ DEFAULT: "hsl(var(--primary))",
+ "shade-light": "hsla(var(--primary), 0.1)",
+ "shade-thick": "hsla(var(--primary), 0.85)",
+ "shade-thick-xl": "hsla(var(--primary), 0.9)",
+ "shade-thick-xxl": "hsla(var(--primary), 0.95)",
+ },
+ "shade-text": "hsl(var(--shade-text))",
+
+ // secondary: {
+ // DEFAULT: "hsl(var(--secondary))",
+ // foreground: "hsl(var(--secondary-foreground))",
+ // },
+ // destructive: {
+ // DEFAULT: "hsl(var(--destructive))",
+ // foreground: "hsl(var(--destructive-foreground))",
+ // },
+ // accent: {
+ // DEFAULT: "hsl(var(--accent))",
+ // foreground: "hsl(var(--accent-foreground))",
+ // },
+ },
+ borderRadius: {
+ lg: `var(--radius)`,
+ md: `calc(var(--radius) - 2px)`,
+ sm: "calc(var(--radius) - 4px)",
+ },
+ fontFamily: {
+ sans: ["var(--font-sans)", ...fontFamily.sans],
+ heading: ["var(--font-heading)", ...fontFamily.sans],
+ },
+ keyframes: {
+ "accordion-down": {
+ from: { height: 0 },
+ to: { height: "var(--radix-accordion-content-height)" },
+ },
+ "accordion-up": {
+ from: { height: "var(--radix-accordion-content-height)" },
+ to: { height: 0 },
+ },
+ },
+ animation: {
+ "accordion-down": "accordion-down 0.2s ease-out",
+ "accordion-up": "accordion-up 0.2s ease-out",
+ },
+ },
+ },
+ plugins: [
+ require("tailwindcss-animate"),
+ // require("@tailwindcss/typography"),
+ // addVariablesForColors,
+ ],
+};
+
+// function addVariablesForColors({ addBase, theme }) {
+// const allColors = flattenColorPalette(theme("colors"));
+// const newVars = Object.fromEntries(
+// Object.entries(allColors).map(([key, val]) => [`--${key}`, val])
+// );
+
+// addBase({
+// ":root": newVars,
+// });
+// }
diff --git a/tsconfig.json b/tsconfig.json
index ece03be37..fcb03ddef 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -19,7 +19,10 @@
"noImplicitReturns": true,
"baseUrl": "./src",
"strict": false,
- "isolatedModules": true
+ "isolatedModules": true,
+ "paths": {
+ "@/*": ["./*"]
+ }
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
"ts-node": {