@solidxai/core-ui 0.1.5-beta.10 → 0.1.5-beta.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/auth/GoogleAuthChecking.d.ts.map +1 -1
- package/dist/components/auth/GoogleAuthChecking.js +10 -10
- package/dist/components/auth/GoogleAuthChecking.js.map +1 -1
- package/dist/components/auth/GoogleAuthChecking.tsx +8 -9
- package/dist/components/auth/SolidChangeForcePassword.d.ts.map +1 -1
- package/dist/components/auth/SolidChangeForcePassword.js +9 -10
- package/dist/components/auth/SolidChangeForcePassword.js.map +1 -1
- package/dist/components/auth/SolidChangeForcePassword.tsx +6 -9
- package/dist/components/auth/SolidForgotPassword.d.ts.map +1 -1
- package/dist/components/auth/SolidForgotPassword.js +8 -8
- package/dist/components/auth/SolidForgotPassword.js.map +1 -1
- package/dist/components/auth/SolidForgotPassword.tsx +6 -8
- package/dist/components/auth/SolidInitialLoginOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.js +57 -57
- package/dist/components/auth/SolidInitialLoginOtp.js.map +1 -1
- package/dist/components/auth/SolidInitialLoginOtp.tsx +10 -11
- package/dist/components/auth/SolidInitiateRegisterOtp.d.ts.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.js +57 -57
- package/dist/components/auth/SolidInitiateRegisterOtp.js.map +1 -1
- package/dist/components/auth/SolidInitiateRegisterOtp.tsx +10 -11
- package/dist/components/auth/SolidLogin.d.ts.map +1 -1
- package/dist/components/auth/SolidLogin.js +12 -12
- package/dist/components/auth/SolidLogin.js.map +1 -1
- package/dist/components/auth/SolidLogin.tsx +11 -16
- package/dist/components/auth/SolidOTPVerify.d.ts +3 -0
- package/dist/components/auth/SolidOTPVerify.d.ts.map +1 -0
- package/dist/components/auth/SolidOTPVerify.js +67 -0
- package/dist/components/auth/SolidOTPVerify.js.map +1 -0
- package/dist/components/auth/SolidOTPVerify.tsx +133 -0
- package/dist/components/auth/SolidRegister.d.ts.map +1 -1
- package/dist/components/auth/SolidRegister.js +19 -19
- package/dist/components/auth/SolidRegister.js.map +1 -1
- package/dist/components/auth/SolidRegister.tsx +18 -23
- package/dist/components/auth/SolidResetPassword.d.ts.map +1 -1
- package/dist/components/auth/SolidResetPassword.js +15 -15
- package/dist/components/auth/SolidResetPassword.js.map +1 -1
- package/dist/components/auth/SolidResetPassword.tsx +7 -8
- package/dist/components/common/AuthBanner.js.map +1 -1
- package/dist/components/common/GeneralSettings.d.ts.map +1 -1
- package/dist/components/common/GeneralSettings.js +87 -120
- package/dist/components/common/GeneralSettings.js.map +1 -1
- package/dist/components/common/GeneralSettings.tsx +12 -42
- package/dist/components/common/GlobalToast.d.ts +2 -0
- package/dist/components/common/GlobalToast.d.ts.map +1 -0
- package/dist/components/common/GlobalToast.js +25 -0
- package/dist/components/common/GlobalToast.js.map +1 -0
- package/dist/components/common/GlobalToast.tsx +25 -0
- package/dist/components/common/SolidExport.d.ts.map +1 -1
- package/dist/components/common/SolidExport.js +19 -31
- package/dist/components/common/SolidExport.js.map +1 -1
- package/dist/components/common/SolidExport.tsx +7 -19
- package/dist/components/common/SolidFormStepper.d.ts.map +1 -1
- package/dist/components/common/SolidFormStepper.js +41 -41
- package/dist/components/common/SolidFormStepper.js.map +1 -1
- package/dist/components/common/SolidFormStepper.tsx +5 -6
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts +2 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.d.ts.map +1 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.js +50 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.js.map +1 -0
- package/dist/components/core/common/LoadDynamicJsxComponent.tsx +70 -0
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +9 -9
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +8 -9
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +8 -8
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +7 -9
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.d.ts.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js +11 -11
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.js.map +1 -1
- package/dist/components/core/common/SolidAccountSettings/SolidPersonalInfo.tsx +10 -11
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js +9 -9
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportDropzone.tsx +8 -9
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.d.ts.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js +7 -7
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.js.map +1 -1
- package/dist/components/core/common/SolidGenericImport/SolidImportTransaction.tsx +6 -7
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +78 -21
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +65 -10
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js +6 -8
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/DeleteModelRowAction.tsx +5 -9
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js +9 -11
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/modelMetadata/list/GenerateModelCodeRowAction.tsx +5 -10
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js +5 -6
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/DeleteModuleRowAction.tsx +5 -8
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js +10 -12
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.js.map +1 -1
- package/dist/components/core/extension/solid-core/moduleMetadata/list/GenerateModuleCodeRowAction.tsx +6 -11
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.d.ts.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js +11 -6
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.js.map +1 -1
- package/dist/components/core/extension/solid-core/roleMetadata/RolePermissionsManyToManyFieldWidget.tsx +13 -1
- package/dist/components/core/form/SolidFormUserViewLayout.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormUserViewLayout.js +7 -8
- package/dist/components/core/form/SolidFormUserViewLayout.js.map +1 -1
- package/dist/components/core/form/SolidFormUserViewLayout.tsx +5 -7
- package/dist/components/core/form/SolidFormView.d.ts.map +1 -1
- package/dist/components/core/form/SolidFormView.js +12 -21
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +11 -33
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +22 -15
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +14 -2
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js +37 -26
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToManyField.tsx +38 -5
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +11 -11
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +9 -11
- package/dist/components/core/kanban/KanbanUserViewLayout.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanUserViewLayout.js +7 -8
- package/dist/components/core/kanban/KanbanUserViewLayout.js.map +1 -1
- package/dist/components/core/kanban/KanbanUserViewLayout.tsx +4 -6
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +5 -7
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +4 -9
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.d.ts.map +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js +13 -13
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.js.map +1 -1
- package/dist/components/core/list/SolidColumnSelector/SolidListColumnSelector.tsx +5 -6
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +20 -67
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +9 -76
- package/dist/components/core/model/CreateModel.d.ts.map +1 -1
- package/dist/components/core/model/CreateModel.js +15 -25
- package/dist/components/core/model/CreateModel.js.map +1 -1
- package/dist/components/core/model/CreateModel.tsx +12 -32
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +6 -17
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +5 -26
- package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
- package/dist/components/core/model/ModelMetaData.js +48 -55
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.tsx +4 -22
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +42 -44
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +13 -27
- package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
- package/dist/components/core/module/ModuleListViewData.js +11 -7
- package/dist/components/core/module/ModuleListViewData.js.map +1 -1
- package/dist/components/core/module/ModuleListViewData.tsx +10 -8
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +32 -69
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +8 -47
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +24 -37
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +8 -46
- package/dist/components/core/users/UserListView.d.ts.map +1 -1
- package/dist/components/core/users/UserListView.js +9 -16
- package/dist/components/core/users/UserListView.js.map +1 -1
- package/dist/components/core/users/UserListView.tsx +5 -21
- package/dist/components/layout/AdminLayout.d.ts.map +1 -1
- package/dist/components/layout/AdminLayout.js +4 -2
- package/dist/components/layout/AdminLayout.js.map +1 -1
- package/dist/components/layout/AdminLayout.tsx +4 -2
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +1 -2
- package/dist/components/layout/AppSidebar.js.map +1 -1
- package/dist/components/layout/AppSidebar.tsx +0 -2
- package/dist/components/layout/Layout.d.ts.map +1 -1
- package/dist/components/layout/Layout.js +2 -1
- package/dist/components/layout/Layout.js.map +1 -1
- package/dist/components/layout/Layout.tsx +2 -0
- package/dist/components/layout/navbar-one.d.ts.map +1 -1
- package/dist/components/layout/navbar-one.js +1 -2
- package/dist/components/layout/navbar-one.js.map +1 -1
- package/dist/components/layout/navbar-one.tsx +0 -2
- package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
- package/dist/components/layout/navbar-two-menu.js +50 -24
- package/dist/components/layout/navbar-two-menu.js.map +1 -1
- package/dist/components/layout/navbar-two-menu.tsx +48 -30
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/index.ts +4 -0
- package/dist/nextAuth/authProviders.d.ts +4 -0
- package/dist/nextAuth/authProviders.d.ts.map +1 -0
- package/dist/nextAuth/authProviders.js +198 -0
- package/dist/nextAuth/authProviders.js.map +1 -0
- package/dist/nextAuth/authProviders.tsx +232 -0
- package/dist/nextAuth/handleLogout.d.ts +2 -0
- package/dist/nextAuth/handleLogout.d.ts.map +1 -0
- package/dist/nextAuth/handleLogout.js +36 -0
- package/dist/nextAuth/handleLogout.js.map +1 -0
- package/dist/nextAuth/handleLogout.tsx +39 -0
- package/dist/nextAuth/refreshAccessToken.d.ts +2 -0
- package/dist/nextAuth/refreshAccessToken.d.ts.map +1 -0
- package/dist/nextAuth/refreshAccessToken.js +24 -0
- package/dist/nextAuth/refreshAccessToken.js.map +1 -0
- package/dist/nextAuth/refreshAccessToken.tsx +28 -0
- package/dist/redux/features/settingsSlice.d.ts +20 -0
- package/dist/redux/features/settingsSlice.d.ts.map +1 -0
- package/dist/redux/features/settingsSlice.js +39 -0
- package/dist/redux/features/settingsSlice.js.map +1 -0
- package/dist/redux/features/settingsSlice.ts +60 -0
- package/dist/redux/features/toastSlice.d.ts +15 -0
- package/dist/redux/features/toastSlice.d.ts.map +1 -0
- package/dist/redux/features/toastSlice.js +20 -0
- package/dist/redux/features/toastSlice.js.map +1 -0
- package/dist/redux/features/toastSlice.ts +35 -0
- package/dist/redux/store/defaultStoreConfig.d.ts +1 -0
- package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
- package/dist/redux/store/defaultStoreConfig.js +2 -1
- package/dist/redux/store/defaultStoreConfig.js.map +1 -1
- package/dist/redux/store/defaultStoreConfig.ts +2 -0
- package/package.json +1 -1
- package/dist/components/auth/AuthTabs.d.ts +0 -14
- package/dist/components/auth/AuthTabs.d.ts.map +0 -1
- package/dist/components/auth/AuthTabs.js +0 -19
- package/dist/components/auth/AuthTabs.js.map +0 -1
- package/dist/components/auth/AuthTabs.tsx +0 -38
- package/dist/components/common/SolidErrorStatePage.d.ts +0 -12
- package/dist/components/common/SolidErrorStatePage.d.ts.map +0 -1
- package/dist/components/common/SolidErrorStatePage.js +0 -16
- package/dist/components/common/SolidErrorStatePage.js.map +0 -1
- package/dist/components/common/SolidErrorStatePage.tsx +0 -55
- package/dist/components/core/list/PLAN.md +0 -92
- package/dist/components/core/list/SolidDataTable.d.ts +0 -58
- package/dist/components/core/list/SolidDataTable.d.ts.map +0 -1
- package/dist/components/core/list/SolidDataTable.js +0 -141
- package/dist/components/core/list/SolidDataTable.js.map +0 -1
- package/dist/components/core/list/SolidDataTable.tsx +0 -314
- package/dist/components/core/list/SolidDataTablePagination.d.ts +0 -15
- package/dist/components/core/list/SolidDataTablePagination.d.ts.map +0 -1
- package/dist/components/core/list/SolidDataTablePagination.js +0 -22
- package/dist/components/core/list/SolidDataTablePagination.js.map +0 -1
- package/dist/components/core/list/SolidDataTablePagination.tsx +0 -71
- package/dist/components/layout/AdminTopHeader.d.ts +0 -2
- package/dist/components/layout/AdminTopHeader.d.ts.map +0 -1
- package/dist/components/layout/AdminTopHeader.js +0 -68
- package/dist/components/layout/AdminTopHeader.js.map +0 -1
- package/dist/components/layout/AdminTopHeader.tsx +0 -135
- package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts +0 -24
- package/dist/components/shad-cn-ui/SolidAutocomplete.d.ts.map +0 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.js +0 -224
- package/dist/components/shad-cn-ui/SolidAutocomplete.js.map +0 -1
- package/dist/components/shad-cn-ui/SolidAutocomplete.tsx +0 -339
- package/dist/components/shad-cn-ui/SolidButton.d.ts +0 -14
- package/dist/components/shad-cn-ui/SolidButton.d.ts.map +0 -1
- package/dist/components/shad-cn-ui/SolidButton.js +0 -36
- package/dist/components/shad-cn-ui/SolidButton.js.map +0 -1
- package/dist/components/shad-cn-ui/SolidButton.tsx +0 -54
- package/dist/components/shad-cn-ui/SolidInput.d.ts +0 -5
- package/dist/components/shad-cn-ui/SolidInput.d.ts.map +0 -1
- package/dist/components/shad-cn-ui/SolidInput.js +0 -35
- package/dist/components/shad-cn-ui/SolidInput.js.map +0 -1
- package/dist/components/shad-cn-ui/SolidInput.tsx +0 -12
- package/dist/components/shad-cn-ui/SolidNumberInput.d.ts +0 -10
- package/dist/components/shad-cn-ui/SolidNumberInput.d.ts.map +0 -1
- package/dist/components/shad-cn-ui/SolidNumberInput.js +0 -33
- package/dist/components/shad-cn-ui/SolidNumberInput.js.map +0 -1
- package/dist/components/shad-cn-ui/SolidNumberInput.tsx +0 -24
- package/dist/components/shad-cn-ui/SolidSelect.d.ts +0 -16
- package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +0 -1
- package/dist/components/shad-cn-ui/SolidSelect.js +0 -26
- package/dist/components/shad-cn-ui/SolidSelect.js.map +0 -1
- package/dist/components/shad-cn-ui/SolidSelect.tsx +0 -65
- package/dist/components/shad-cn-ui/SolidTabs.d.ts +0 -18
- package/dist/components/shad-cn-ui/SolidTabs.d.ts.map +0 -1
- package/dist/components/shad-cn-ui/SolidTabs.js +0 -22
- package/dist/components/shad-cn-ui/SolidTabs.js.map +0 -1
- package/dist/components/shad-cn-ui/SolidTabs.tsx +0 -73
- package/dist/components/shad-cn-ui/index.d.ts +0 -7
- package/dist/components/shad-cn-ui/index.d.ts.map +0 -1
- package/dist/components/shad-cn-ui/index.js +0 -7
- package/dist/components/shad-cn-ui/index.js.map +0 -1
- package/dist/components/shad-cn-ui/index.ts +0 -6
- package/dist/components/solid-ui/SolidButton.d.ts +0 -14
- package/dist/components/solid-ui/SolidButton.d.ts.map +0 -1
- package/dist/components/solid-ui/SolidButton.js +0 -36
- package/dist/components/solid-ui/SolidButton.js.map +0 -1
- package/dist/components/solid-ui/SolidButton.tsx +0 -54
- package/dist/components/solid-ui/SolidTabs.d.ts +0 -18
- package/dist/components/solid-ui/SolidTabs.d.ts.map +0 -1
- package/dist/components/solid-ui/SolidTabs.js +0 -22
- package/dist/components/solid-ui/SolidTabs.js.map +0 -1
- package/dist/components/solid-ui/SolidTabs.tsx +0 -73
- package/dist/components/solid-ui/index.d.ts +0 -3
- package/dist/components/solid-ui/index.d.ts.map +0 -1
- package/dist/components/solid-ui/index.js +0 -3
- package/dist/components/solid-ui/index.js.map +0 -1
- package/dist/components/solid-ui/index.ts +0 -2
- package/dist/resources/images/errors/error-astronaut-404.png +0 -0
- package/dist/resources/shadcn-base.css +0 -3200
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { useContext, useMemo } from "react";
|
|
2
|
-
import { usePathname } from "../../hooks/usePathname";
|
|
3
|
-
import { useSearchParams } from "../../hooks/useSearchParams";
|
|
4
|
-
import { useRouter } from "../../hooks/useRouter";
|
|
5
|
-
import { useGetSolidActionByIdQuery } from "../../redux/api/solidActionApi";
|
|
6
|
-
import { LayoutContext } from "./context/layoutcontext";
|
|
7
|
-
|
|
8
|
-
const SIDEBAR_TOGGLE_EVENT = "solidx:sidebar-toggle";
|
|
9
|
-
|
|
10
|
-
const toLabel = (value: string) =>
|
|
11
|
-
decodeURIComponent(value)
|
|
12
|
-
.replace(/[-_]/g, " ")
|
|
13
|
-
.replace(/\b\w/g, (m) => m.toUpperCase());
|
|
14
|
-
|
|
15
|
-
export const AdminTopHeader = () => {
|
|
16
|
-
const pathname = usePathname();
|
|
17
|
-
const searchParams = useSearchParams();
|
|
18
|
-
const router = useRouter();
|
|
19
|
-
const { toggleThemeMode } = useContext(LayoutContext);
|
|
20
|
-
|
|
21
|
-
// We treat actionId as the source of truth for breadcrumb labels.
|
|
22
|
-
// If present, we resolve module/model/action via action-metadata API
|
|
23
|
-
// so breadcrumbs are consistent across list/form/tree/kanban pages.
|
|
24
|
-
const actionId = searchParams.get("actionId");
|
|
25
|
-
const { data: actionResponse } = useGetSolidActionByIdQuery(actionId as string, {
|
|
26
|
-
skip: !actionId,
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
const crumbs = useMemo(() => {
|
|
30
|
-
// API response shapes vary by adapter layer, so normalize defensively.
|
|
31
|
-
const actionData = actionResponse?.data?.data ?? actionResponse?.data ?? actionResponse;
|
|
32
|
-
const moduleFromApi = actionData?.module?.displayName || actionData?.module?.name;
|
|
33
|
-
const modelFromApi = actionData?.model?.displayName || actionData?.model?.name;
|
|
34
|
-
const actionFromApi = actionData?.displayName || actionData?.name;
|
|
35
|
-
const actionDataId = actionData?.id != null ? String(actionData.id) : null;
|
|
36
|
-
const hasMatchingActionData = Boolean(actionId) && actionDataId === actionId;
|
|
37
|
-
|
|
38
|
-
// Priority 1: exact business breadcrumb contract requested:
|
|
39
|
-
// <module> > <model> > <action>.
|
|
40
|
-
// We only trust API crumbs when they belong to the current URL's actionId.
|
|
41
|
-
// This avoids stale list breadcrumbs bleeding into form routes that do not
|
|
42
|
-
// carry actionId in their query string.
|
|
43
|
-
if (hasMatchingActionData && (moduleFromApi || modelFromApi || actionFromApi)) {
|
|
44
|
-
return [moduleFromApi, modelFromApi, actionFromApi].filter(Boolean);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
const segments = pathname.split("/").filter(Boolean);
|
|
48
|
-
// Priority 2: derive from route segments when API data is unavailable.
|
|
49
|
-
// This is intentionally ahead of query fallback so form pages don't
|
|
50
|
-
// inherit stale list query labels after list -> form navigation.
|
|
51
|
-
if (segments[0] === "admin" && segments[1] === "core") {
|
|
52
|
-
const moduleName = segments[2];
|
|
53
|
-
const modelName = segments[3];
|
|
54
|
-
const viewName = segments[4];
|
|
55
|
-
const next = [moduleName, modelName, viewName].filter(Boolean).map((item) => toLabel(item!));
|
|
56
|
-
return next.length ? next : ["Admin"];
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const menuItemName = searchParams.get("menuItemName");
|
|
60
|
-
const actionName = searchParams.get("actionName");
|
|
61
|
-
|
|
62
|
-
// Priority 3: legacy URL-query fallback for older links/pages.
|
|
63
|
-
if (menuItemName || actionName) {
|
|
64
|
-
return [menuItemName, actionName].filter(Boolean).map((item) => toLabel(item!));
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return ["Admin"];
|
|
68
|
-
}, [actionId, actionResponse, pathname, searchParams]);
|
|
69
|
-
|
|
70
|
-
const showBack = /\/admin\/core\/[^/]+\/[^/]+\/form\/[^/]+/.test(pathname);
|
|
71
|
-
|
|
72
|
-
const triggerSidebar = () => {
|
|
73
|
-
window.dispatchEvent(new CustomEvent(SIDEBAR_TOGGLE_EVENT));
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
return (
|
|
77
|
-
<header className="solid-admin-header">
|
|
78
|
-
<div className="solid-admin-header-inner">
|
|
79
|
-
<button
|
|
80
|
-
type="button"
|
|
81
|
-
className="solid-admin-sidebar-trigger"
|
|
82
|
-
onClick={triggerSidebar}
|
|
83
|
-
aria-label="Toggle sidebar"
|
|
84
|
-
>
|
|
85
|
-
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true">
|
|
86
|
-
<rect x="1.5" y="2" width="13" height="12" rx="2" stroke="currentColor" />
|
|
87
|
-
<path d="M5.5 2V14" stroke="currentColor" />
|
|
88
|
-
<rect x="8" y="5.25" width="4.5" height="5.5" rx="0.9" stroke="currentColor" />
|
|
89
|
-
</svg>
|
|
90
|
-
</button>
|
|
91
|
-
|
|
92
|
-
<div className="solid-admin-header-sep" />
|
|
93
|
-
|
|
94
|
-
<nav className="solid-admin-breadcrumbs" aria-label="Breadcrumb">
|
|
95
|
-
{crumbs.map((crumb, index) => (
|
|
96
|
-
<span key={`${crumb}-${index}`} className="solid-admin-crumb">
|
|
97
|
-
{index > 0 && <span className="solid-admin-crumb-sep">›</span>}
|
|
98
|
-
<span>{crumb}</span>
|
|
99
|
-
</span>
|
|
100
|
-
))}
|
|
101
|
-
</nav>
|
|
102
|
-
|
|
103
|
-
<div className="solid-admin-header-actions">
|
|
104
|
-
<button
|
|
105
|
-
type="button"
|
|
106
|
-
className="solid-admin-theme-toggle"
|
|
107
|
-
onClick={toggleThemeMode}
|
|
108
|
-
aria-label="Toggle theme"
|
|
109
|
-
title="Toggle theme"
|
|
110
|
-
>
|
|
111
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
|
112
|
-
<path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
|
|
113
|
-
<path d="M12 3l0 18" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
|
|
114
|
-
<path d="M12 9l4.65 -4.65" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
|
|
115
|
-
<path d="M12 14.3l7.37 -7.37" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
|
|
116
|
-
<path d="M12 19.6l8.85 -8.85" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
|
|
117
|
-
</svg>
|
|
118
|
-
<span className="solid-sr-only">Toggle theme</span>
|
|
119
|
-
</button>
|
|
120
|
-
|
|
121
|
-
{showBack && (
|
|
122
|
-
<button
|
|
123
|
-
type="button"
|
|
124
|
-
className="solid-admin-back-btn"
|
|
125
|
-
onClick={() => router.back()}
|
|
126
|
-
aria-label="Go back"
|
|
127
|
-
>
|
|
128
|
-
Back
|
|
129
|
-
</button>
|
|
130
|
-
)}
|
|
131
|
-
</div>
|
|
132
|
-
</div>
|
|
133
|
-
</header>
|
|
134
|
-
);
|
|
135
|
-
};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
type SolidAutocompleteProps = {
|
|
2
|
-
value?: any;
|
|
3
|
-
suggestions?: any[];
|
|
4
|
-
completeMethod?: (event: {
|
|
5
|
-
query: string;
|
|
6
|
-
}) => void | Promise<void>;
|
|
7
|
-
onChange?: (event: {
|
|
8
|
-
value: any;
|
|
9
|
-
}) => void;
|
|
10
|
-
onSelect?: (event: {
|
|
11
|
-
value: any;
|
|
12
|
-
}) => void;
|
|
13
|
-
field?: string;
|
|
14
|
-
placeholder?: string;
|
|
15
|
-
className?: string;
|
|
16
|
-
inputClassName?: string;
|
|
17
|
-
dropdown?: boolean;
|
|
18
|
-
forceSelection?: boolean;
|
|
19
|
-
multiple?: boolean;
|
|
20
|
-
maxVisibleChips?: number;
|
|
21
|
-
};
|
|
22
|
-
export declare function SolidAutocomplete({ value, suggestions, completeMethod, onChange, onSelect, field, placeholder, className, inputClassName, dropdown, forceSelection, multiple, maxVisibleChips, }: SolidAutocompleteProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
-
export {};
|
|
24
|
-
//# sourceMappingURL=SolidAutocomplete.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SolidAutocomplete.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidAutocomplete.tsx"],"names":[],"mappings":"AAEA,KAAK,sBAAsB,GAAG;IAC5B,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAiBF,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAAgB,EAChB,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,KAAe,EACf,WAAW,EACX,SAAS,EACT,cAAc,EACd,QAAQ,EACR,cAAc,EACd,QAAQ,EACR,eAAmB,GACpB,EAAE,sBAAsB,2CAmSxB"}
|
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
2
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
3
|
-
if (ar || !(i in from)) {
|
|
4
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
5
|
-
ar[i] = from[i];
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
9
|
-
};
|
|
10
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
-
import { useEffect, useMemo, useRef, useState } from "react";
|
|
12
|
-
function cx() {
|
|
13
|
-
var parts = [];
|
|
14
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
15
|
-
parts[_i] = arguments[_i];
|
|
16
|
-
}
|
|
17
|
-
return parts.filter(Boolean).join(" ");
|
|
18
|
-
}
|
|
19
|
-
function getDisplayValue(value, field) {
|
|
20
|
-
if (value == null)
|
|
21
|
-
return "";
|
|
22
|
-
if (typeof value === "string" || typeof value === "number")
|
|
23
|
-
return String(value);
|
|
24
|
-
if (typeof value === "object") {
|
|
25
|
-
var direct = value === null || value === void 0 ? void 0 : value[field];
|
|
26
|
-
if (direct != null)
|
|
27
|
-
return String(direct);
|
|
28
|
-
if ((value === null || value === void 0 ? void 0 : value.label) != null)
|
|
29
|
-
return String(value.label);
|
|
30
|
-
}
|
|
31
|
-
return "";
|
|
32
|
-
}
|
|
33
|
-
export function SolidAutocomplete(_a) {
|
|
34
|
-
var value = _a.value, _b = _a.suggestions, suggestions = _b === void 0 ? [] : _b, completeMethod = _a.completeMethod, onChange = _a.onChange, onSelect = _a.onSelect, _c = _a.field, field = _c === void 0 ? "label" : _c, placeholder = _a.placeholder, className = _a.className, inputClassName = _a.inputClassName, dropdown = _a.dropdown, forceSelection = _a.forceSelection, multiple = _a.multiple, _d = _a.maxVisibleChips, maxVisibleChips = _d === void 0 ? 2 : _d;
|
|
35
|
-
var rootRef = useRef(null);
|
|
36
|
-
var completeTimerRef = useRef(null);
|
|
37
|
-
var _e = useState(false), open = _e[0], setOpen = _e[1];
|
|
38
|
-
var _f = useState(false), manageOpen = _f[0], setManageOpen = _f[1];
|
|
39
|
-
var _g = useState(""), query = _g[0], setQuery = _g[1];
|
|
40
|
-
var _h = useState(-1), activeIndex = _h[0], setActiveIndex = _h[1];
|
|
41
|
-
var _j = useState(false), isFocused = _j[0], setIsFocused = _j[1];
|
|
42
|
-
useEffect(function () {
|
|
43
|
-
if (multiple)
|
|
44
|
-
return;
|
|
45
|
-
if (!value || typeof value === "string") {
|
|
46
|
-
setQuery(typeof value === "string" ? value : "");
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
setQuery("");
|
|
50
|
-
}, [value, field, multiple]);
|
|
51
|
-
useEffect(function () {
|
|
52
|
-
return function () {
|
|
53
|
-
if (completeTimerRef.current) {
|
|
54
|
-
window.clearTimeout(completeTimerRef.current);
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
}, []);
|
|
58
|
-
var runCompleteMethod = function (nextQuery, immediate) {
|
|
59
|
-
if (immediate === void 0) { immediate = false; }
|
|
60
|
-
if (!completeMethod)
|
|
61
|
-
return;
|
|
62
|
-
if (completeTimerRef.current) {
|
|
63
|
-
window.clearTimeout(completeTimerRef.current);
|
|
64
|
-
completeTimerRef.current = null;
|
|
65
|
-
}
|
|
66
|
-
if (immediate) {
|
|
67
|
-
void completeMethod({ query: nextQuery });
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
completeTimerRef.current = window.setTimeout(function () {
|
|
71
|
-
void completeMethod({ query: nextQuery });
|
|
72
|
-
}, 140);
|
|
73
|
-
};
|
|
74
|
-
useEffect(function () {
|
|
75
|
-
function handleOutsideClick(event) {
|
|
76
|
-
if (!rootRef.current)
|
|
77
|
-
return;
|
|
78
|
-
if (!rootRef.current.contains(event.target)) {
|
|
79
|
-
setOpen(false);
|
|
80
|
-
setManageOpen(false);
|
|
81
|
-
setIsFocused(false);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
document.addEventListener("mousedown", handleOutsideClick);
|
|
85
|
-
return function () { return document.removeEventListener("mousedown", handleOutsideClick); };
|
|
86
|
-
}, []);
|
|
87
|
-
var normalizedSuggestions = useMemo(function () {
|
|
88
|
-
return (suggestions || []).map(function (item) { return ({
|
|
89
|
-
raw: item,
|
|
90
|
-
label: getDisplayValue(item, field),
|
|
91
|
-
}); });
|
|
92
|
-
}, [suggestions, field]);
|
|
93
|
-
var selectedItems = useMemo(function () {
|
|
94
|
-
if (multiple) {
|
|
95
|
-
if (!Array.isArray(value))
|
|
96
|
-
return [];
|
|
97
|
-
return value.filter(function (item) { return item !== null && item !== undefined && item !== ""; });
|
|
98
|
-
}
|
|
99
|
-
if (!value || typeof value === "string")
|
|
100
|
-
return [];
|
|
101
|
-
return [value];
|
|
102
|
-
}, [multiple, value]);
|
|
103
|
-
var visibleSelectedItems = selectedItems.slice(0, maxVisibleChips);
|
|
104
|
-
var hiddenSelectedItems = selectedItems.slice(maxVisibleChips);
|
|
105
|
-
useEffect(function () {
|
|
106
|
-
if (multiple && hiddenSelectedItems.length === 0 && manageOpen) {
|
|
107
|
-
setManageOpen(false);
|
|
108
|
-
}
|
|
109
|
-
}, [multiple, hiddenSelectedItems.length, manageOpen]);
|
|
110
|
-
var toItemKey = function (item, index) {
|
|
111
|
-
if (item && typeof item === "object") {
|
|
112
|
-
if (item.value !== undefined && item.value !== null)
|
|
113
|
-
return String(item.value);
|
|
114
|
-
if (item.id !== undefined && item.id !== null)
|
|
115
|
-
return String(item.id);
|
|
116
|
-
}
|
|
117
|
-
var label = getDisplayValue(item, field);
|
|
118
|
-
return label ? "".concat(label, "-").concat(index) : String(index);
|
|
119
|
-
};
|
|
120
|
-
var toComparableKey = function (item) {
|
|
121
|
-
if (item && typeof item === "object") {
|
|
122
|
-
if (item.value !== undefined && item.value !== null)
|
|
123
|
-
return "value:".concat(String(item.value));
|
|
124
|
-
if (item.id !== undefined && item.id !== null)
|
|
125
|
-
return "id:".concat(String(item.id));
|
|
126
|
-
}
|
|
127
|
-
return "label:".concat(getDisplayValue(item, field));
|
|
128
|
-
};
|
|
129
|
-
var removeSelectedAt = function (index) {
|
|
130
|
-
if (multiple) {
|
|
131
|
-
var existing = Array.isArray(value) ? __spreadArray([], value, true) : [];
|
|
132
|
-
existing.splice(index, 1);
|
|
133
|
-
onChange === null || onChange === void 0 ? void 0 : onChange({ value: existing });
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
onChange === null || onChange === void 0 ? void 0 : onChange({ value: null });
|
|
137
|
-
};
|
|
138
|
-
var clearAllSelected = function () {
|
|
139
|
-
onChange === null || onChange === void 0 ? void 0 : onChange({ value: multiple ? [] : null });
|
|
140
|
-
setManageOpen(false);
|
|
141
|
-
};
|
|
142
|
-
var commitSelection = function (item) {
|
|
143
|
-
if (multiple) {
|
|
144
|
-
var existing = Array.isArray(value) ? __spreadArray([], value, true) : [];
|
|
145
|
-
var exists = existing.some(function (entry) { return toComparableKey(entry) === toComparableKey(item); });
|
|
146
|
-
if (!exists) {
|
|
147
|
-
onChange === null || onChange === void 0 ? void 0 : onChange({ value: __spreadArray(__spreadArray([], existing, true), [item], false) });
|
|
148
|
-
}
|
|
149
|
-
setQuery("");
|
|
150
|
-
setOpen(false);
|
|
151
|
-
setManageOpen(false);
|
|
152
|
-
setActiveIndex(-1);
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
setQuery("");
|
|
156
|
-
onChange === null || onChange === void 0 ? void 0 : onChange({ value: item });
|
|
157
|
-
onSelect === null || onSelect === void 0 ? void 0 : onSelect({ value: item });
|
|
158
|
-
setOpen(false);
|
|
159
|
-
setManageOpen(false);
|
|
160
|
-
setActiveIndex(-1);
|
|
161
|
-
};
|
|
162
|
-
return (_jsxs("div", { ref: rootRef, className: cx("solid-autocomplete", className), children: [_jsxs("div", { className: cx("solid-autocomplete-control solid-autocomplete-chip-control", isFocused && "is-focused"), children: [visibleSelectedItems.map(function (item, index) { return (_jsxs("span", { className: "solid-autocomplete-chip", children: [_jsx("span", { className: "solid-autocomplete-chip-label", children: getDisplayValue(item, field) }), _jsx("button", { type: "button", className: "solid-autocomplete-chip-remove", onMouseDown: function (event) { return event.preventDefault(); }, onClick: function () { return removeSelectedAt(index); }, "aria-label": "Remove selection", children: _jsx("i", { className: "pi pi-times" }) })] }, toItemKey(item, index))); }), multiple && hiddenSelectedItems.length > 0 && (_jsxs("button", { type: "button", className: "solid-autocomplete-chip-manage", onMouseDown: function (event) { return event.preventDefault(); }, onClick: function () {
|
|
163
|
-
setOpen(false);
|
|
164
|
-
setManageOpen(function (prev) { return !prev; });
|
|
165
|
-
}, children: ["+", hiddenSelectedItems.length, " more"] })), _jsx("input", { className: cx("solid-input solid-autocomplete-input solid-autocomplete-inline-input", inputClassName), value: query, placeholder: selectedItems.length > 0 ? "" : placeholder, onFocus: function () {
|
|
166
|
-
setIsFocused(true);
|
|
167
|
-
setOpen(true);
|
|
168
|
-
setManageOpen(false);
|
|
169
|
-
runCompleteMethod(query, true);
|
|
170
|
-
}, onChange: function (event) {
|
|
171
|
-
var next = event.target.value;
|
|
172
|
-
setQuery(next);
|
|
173
|
-
setOpen(true);
|
|
174
|
-
setManageOpen(false);
|
|
175
|
-
runCompleteMethod(next, false);
|
|
176
|
-
}, onClick: function () {
|
|
177
|
-
setOpen(true);
|
|
178
|
-
setManageOpen(false);
|
|
179
|
-
}, onBlur: function () {
|
|
180
|
-
setIsFocused(false);
|
|
181
|
-
if (!forceSelection)
|
|
182
|
-
return;
|
|
183
|
-
var matched = normalizedSuggestions.find(function (item) { return item.label.toLowerCase() === query.toLowerCase(); });
|
|
184
|
-
if (matched) {
|
|
185
|
-
onChange === null || onChange === void 0 ? void 0 : onChange({ value: matched.raw });
|
|
186
|
-
setQuery("");
|
|
187
|
-
}
|
|
188
|
-
}, onKeyDown: function (event) {
|
|
189
|
-
if (!open && (event.key === "ArrowDown" || event.key === "ArrowUp")) {
|
|
190
|
-
setOpen(true);
|
|
191
|
-
return;
|
|
192
|
-
}
|
|
193
|
-
if (!normalizedSuggestions.length)
|
|
194
|
-
return;
|
|
195
|
-
if (event.key === "ArrowDown") {
|
|
196
|
-
event.preventDefault();
|
|
197
|
-
setActiveIndex(function (prev) { return (prev + 1) % normalizedSuggestions.length; });
|
|
198
|
-
}
|
|
199
|
-
if (event.key === "ArrowUp") {
|
|
200
|
-
event.preventDefault();
|
|
201
|
-
setActiveIndex(function (prev) {
|
|
202
|
-
return prev <= 0 ? normalizedSuggestions.length - 1 : prev - 1;
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
if (event.key === "Enter" && activeIndex >= 0) {
|
|
206
|
-
event.preventDefault();
|
|
207
|
-
commitSelection(normalizedSuggestions[activeIndex].raw);
|
|
208
|
-
}
|
|
209
|
-
if (event.key === "Backspace" && !query && selectedItems.length > 0) {
|
|
210
|
-
event.preventDefault();
|
|
211
|
-
removeSelectedAt(selectedItems.length - 1);
|
|
212
|
-
}
|
|
213
|
-
} }), dropdown && (_jsx("button", { type: "button", className: "solid-autocomplete-trigger", onMouseDown: function (event) { return event.preventDefault(); }, onClick: function () {
|
|
214
|
-
var nextOpen = !open;
|
|
215
|
-
setOpen(nextOpen);
|
|
216
|
-
if (nextOpen) {
|
|
217
|
-
setManageOpen(false);
|
|
218
|
-
}
|
|
219
|
-
if (nextOpen) {
|
|
220
|
-
runCompleteMethod(query, true);
|
|
221
|
-
}
|
|
222
|
-
}, "aria-label": "Toggle suggestions", children: _jsx("i", { className: open ? "pi pi-chevron-up" : "pi pi-chevron-down" }) }))] }), multiple && manageOpen && selectedItems.length > 0 && (_jsxs("div", { className: "solid-autocomplete-manager-panel", children: [_jsxs("div", { className: "solid-autocomplete-manager-header", children: [_jsxs("div", { className: "solid-autocomplete-manager-title", children: ["Selected (", selectedItems.length, ")"] }), _jsx("button", { type: "button", className: "solid-autocomplete-manager-clear", onClick: clearAllSelected, children: "Clear all" })] }), _jsx("div", { className: "solid-autocomplete-manager-body", children: selectedItems.map(function (item, index) { return (_jsxs("span", { className: "solid-autocomplete-chip", children: [_jsx("span", { className: "solid-autocomplete-chip-label", children: getDisplayValue(item, field) }), _jsx("button", { type: "button", className: "solid-autocomplete-chip-remove", onClick: function () { return removeSelectedAt(index); }, "aria-label": "Remove selection", children: _jsx("i", { className: "pi pi-times" }) })] }, "managed-".concat(toItemKey(item, index)))); }) })] })), open && normalizedSuggestions.length > 0 && (_jsx("div", { className: "solid-autocomplete-panel", role: "listbox", children: normalizedSuggestions.map(function (item, index) { return (_jsx("button", { type: "button", className: cx("solid-autocomplete-option", activeIndex === index && "is-active"), onMouseEnter: function () { return setActiveIndex(index); }, onMouseDown: function (event) { return event.preventDefault(); }, onClick: function () { return commitSelection(item.raw); }, children: item.label }, "".concat(item.label, "-").concat(index))); }) }))] }));
|
|
223
|
-
}
|
|
224
|
-
//# sourceMappingURL=SolidAutocomplete.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SolidAutocomplete.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidAutocomplete.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useEffect, useMemo, useRef, useState } from \"react\";\n\ntype SolidAutocompleteProps = {\n value?: any;\n suggestions?: any[];\n completeMethod?: (event: { query: string }) => void | Promise<void>;\n onChange?: (event: { value: any }) => void;\n onSelect?: (event: { value: any }) => void;\n field?: string;\n placeholder?: string;\n className?: string;\n inputClassName?: string;\n dropdown?: boolean;\n forceSelection?: boolean;\n multiple?: boolean;\n maxVisibleChips?: number;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nfunction getDisplayValue(value: any, field: string) {\n if (value == null) return \"\";\n if (typeof value === \"string\" || typeof value === \"number\") return String(value);\n if (typeof value === \"object\") {\n const direct = value?.[field];\n if (direct != null) return String(direct);\n if (value?.label != null) return String(value.label);\n }\n return \"\";\n}\n\nexport function SolidAutocomplete({\n value,\n suggestions = [],\n completeMethod,\n onChange,\n onSelect,\n field = \"label\",\n placeholder,\n className,\n inputClassName,\n dropdown,\n forceSelection,\n multiple,\n maxVisibleChips = 2,\n}: SolidAutocompleteProps) {\n const rootRef = useRef<HTMLDivElement | null>(null);\n const completeTimerRef = useRef<number | null>(null);\n const [open, setOpen] = useState(false);\n const [manageOpen, setManageOpen] = useState(false);\n const [query, setQuery] = useState(\"\");\n const [activeIndex, setActiveIndex] = useState(-1);\n const [isFocused, setIsFocused] = useState(false);\n\n useEffect(() => {\n if (multiple) return;\n if (!value || typeof value === \"string\") {\n setQuery(typeof value === \"string\" ? value : \"\");\n return;\n }\n setQuery(\"\");\n }, [value, field, multiple]);\n\n useEffect(() => {\n return () => {\n if (completeTimerRef.current) {\n window.clearTimeout(completeTimerRef.current);\n }\n };\n }, []);\n\n const runCompleteMethod = (nextQuery: string, immediate = false) => {\n if (!completeMethod) return;\n if (completeTimerRef.current) {\n window.clearTimeout(completeTimerRef.current);\n completeTimerRef.current = null;\n }\n if (immediate) {\n void completeMethod({ query: nextQuery });\n return;\n }\n completeTimerRef.current = window.setTimeout(() => {\n void completeMethod({ query: nextQuery });\n }, 140);\n };\n\n useEffect(() => {\n function handleOutsideClick(event: MouseEvent) {\n if (!rootRef.current) return;\n if (!rootRef.current.contains(event.target as Node)) {\n setOpen(false);\n setManageOpen(false);\n setIsFocused(false);\n }\n }\n document.addEventListener(\"mousedown\", handleOutsideClick);\n return () => document.removeEventListener(\"mousedown\", handleOutsideClick);\n }, []);\n\n const normalizedSuggestions = useMemo(\n () =>\n (suggestions || []).map((item) => ({\n raw: item,\n label: getDisplayValue(item, field),\n })),\n [suggestions, field]\n );\n\n const selectedItems = useMemo(() => {\n if (multiple) {\n if (!Array.isArray(value)) return [];\n return value.filter((item) => item !== null && item !== undefined && item !== \"\");\n }\n if (!value || typeof value === \"string\") return [];\n return [value];\n }, [multiple, value]);\n\n const visibleSelectedItems = selectedItems.slice(0, maxVisibleChips);\n const hiddenSelectedItems = selectedItems.slice(maxVisibleChips);\n\n useEffect(() => {\n if (multiple && hiddenSelectedItems.length === 0 && manageOpen) {\n setManageOpen(false);\n }\n }, [multiple, hiddenSelectedItems.length, manageOpen]);\n\n const toItemKey = (item: any, index: number) => {\n if (item && typeof item === \"object\") {\n if (item.value !== undefined && item.value !== null) return String(item.value);\n if (item.id !== undefined && item.id !== null) return String(item.id);\n }\n const label = getDisplayValue(item, field);\n return label ? `${label}-${index}` : String(index);\n };\n\n const toComparableKey = (item: any) => {\n if (item && typeof item === \"object\") {\n if (item.value !== undefined && item.value !== null) return `value:${String(item.value)}`;\n if (item.id !== undefined && item.id !== null) return `id:${String(item.id)}`;\n }\n return `label:${getDisplayValue(item, field)}`;\n };\n\n const removeSelectedAt = (index: number) => {\n if (multiple) {\n const existing = Array.isArray(value) ? [...value] : [];\n existing.splice(index, 1);\n onChange?.({ value: existing });\n return;\n }\n onChange?.({ value: null });\n };\n\n const clearAllSelected = () => {\n onChange?.({ value: multiple ? [] : null });\n setManageOpen(false);\n };\n\n const commitSelection = (item: any) => {\n if (multiple) {\n const existing = Array.isArray(value) ? [...value] : [];\n const exists = existing.some((entry) => toComparableKey(entry) === toComparableKey(item));\n if (!exists) {\n onChange?.({ value: [...existing, item] });\n }\n setQuery(\"\");\n setOpen(false);\n setManageOpen(false);\n setActiveIndex(-1);\n return;\n }\n setQuery(\"\");\n onChange?.({ value: item });\n onSelect?.({ value: item });\n setOpen(false);\n setManageOpen(false);\n setActiveIndex(-1);\n };\n\n return (\n <div ref={rootRef} className={cx(\"solid-autocomplete\", className)}>\n <div className={cx(\"solid-autocomplete-control solid-autocomplete-chip-control\", isFocused && \"is-focused\")}>\n {visibleSelectedItems.map((item, index) => (\n <span key={toItemKey(item, index)} className=\"solid-autocomplete-chip\">\n <span className=\"solid-autocomplete-chip-label\">{getDisplayValue(item, field)}</span>\n <button\n type=\"button\"\n className=\"solid-autocomplete-chip-remove\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => removeSelectedAt(index)}\n aria-label=\"Remove selection\"\n >\n <i className=\"pi pi-times\" />\n </button>\n </span>\n ))}\n {multiple && hiddenSelectedItems.length > 0 && (\n <button\n type=\"button\"\n className=\"solid-autocomplete-chip-manage\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n setOpen(false);\n setManageOpen((prev) => !prev);\n }}\n >\n +{hiddenSelectedItems.length} more\n </button>\n )}\n <input\n className={cx(\"solid-input solid-autocomplete-input solid-autocomplete-inline-input\", inputClassName)}\n value={query}\n placeholder={selectedItems.length > 0 ? \"\" : placeholder}\n onFocus={() => {\n setIsFocused(true);\n setOpen(true);\n setManageOpen(false);\n runCompleteMethod(query, true);\n }}\n onChange={(event) => {\n const next = event.target.value;\n setQuery(next);\n setOpen(true);\n setManageOpen(false);\n runCompleteMethod(next, false);\n }}\n onClick={() => {\n setOpen(true);\n setManageOpen(false);\n }}\n onBlur={() => {\n setIsFocused(false);\n if (!forceSelection) return;\n const matched = normalizedSuggestions.find(\n (item) => item.label.toLowerCase() === query.toLowerCase()\n );\n if (matched) {\n onChange?.({ value: matched.raw });\n setQuery(\"\");\n }\n }}\n onKeyDown={(event) => {\n if (!open && (event.key === \"ArrowDown\" || event.key === \"ArrowUp\")) {\n setOpen(true);\n return;\n }\n if (!normalizedSuggestions.length) return;\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n setActiveIndex((prev) => (prev + 1) % normalizedSuggestions.length);\n }\n if (event.key === \"ArrowUp\") {\n event.preventDefault();\n setActiveIndex((prev) =>\n prev <= 0 ? normalizedSuggestions.length - 1 : prev - 1\n );\n }\n if (event.key === \"Enter\" && activeIndex >= 0) {\n event.preventDefault();\n commitSelection(normalizedSuggestions[activeIndex].raw);\n }\n if (event.key === \"Backspace\" && !query && selectedItems.length > 0) {\n event.preventDefault();\n removeSelectedAt(selectedItems.length - 1);\n }\n }}\n />\n {dropdown && (\n <button\n type=\"button\"\n className=\"solid-autocomplete-trigger\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n const nextOpen = !open;\n setOpen(nextOpen);\n if (nextOpen) {\n setManageOpen(false);\n }\n if (nextOpen) {\n runCompleteMethod(query, true);\n }\n }}\n aria-label=\"Toggle suggestions\"\n >\n <i className={open ? \"pi pi-chevron-up\" : \"pi pi-chevron-down\"} />\n </button>\n )}\n </div>\n\n {multiple && manageOpen && selectedItems.length > 0 && (\n <div className=\"solid-autocomplete-manager-panel\">\n <div className=\"solid-autocomplete-manager-header\">\n <div className=\"solid-autocomplete-manager-title\">Selected ({selectedItems.length})</div>\n <button type=\"button\" className=\"solid-autocomplete-manager-clear\" onClick={clearAllSelected}>\n Clear all\n </button>\n </div>\n <div className=\"solid-autocomplete-manager-body\">\n {selectedItems.map((item, index) => (\n <span key={`managed-${toItemKey(item, index)}`} className=\"solid-autocomplete-chip\">\n <span className=\"solid-autocomplete-chip-label\">{getDisplayValue(item, field)}</span>\n <button\n type=\"button\"\n className=\"solid-autocomplete-chip-remove\"\n onClick={() => removeSelectedAt(index)}\n aria-label=\"Remove selection\"\n >\n <i className=\"pi pi-times\" />\n </button>\n </span>\n ))}\n </div>\n </div>\n )}\n\n {open && normalizedSuggestions.length > 0 && (\n <div className=\"solid-autocomplete-panel\" role=\"listbox\">\n {normalizedSuggestions.map((item, index) => (\n <button\n key={`${item.label}-${index}`}\n type=\"button\"\n className={cx(\n \"solid-autocomplete-option\",\n activeIndex === index && \"is-active\"\n )}\n onMouseEnter={() => setActiveIndex(index)}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => commitSelection(item.raw)}\n >\n {item.label}\n </button>\n ))}\n </div>\n )}\n </div>\n );\n}\n"]}
|