@solidxai/core-ui 0.1.12-beta.5 → 0.1.12-beta.7
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/AuthLayout.d.ts.map +1 -1
- package/dist/components/auth/AuthLayout.js +5 -2
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +6 -2
- 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/common/AuthBanner.d.ts +3 -0
- package/dist/components/common/AuthBanner.d.ts.map +1 -0
- package/dist/components/common/AuthBanner.js +15 -0
- package/dist/components/common/AuthBanner.js.map +1 -0
- package/dist/components/common/AuthBanner.tsx +41 -0
- package/dist/components/common/SingleSelectAutoCompleteField.d.ts +2 -0
- package/dist/components/common/SingleSelectAutoCompleteField.d.ts.map +1 -0
- package/dist/components/common/SingleSelectAutoCompleteField.js +92 -0
- package/dist/components/common/SingleSelectAutoCompleteField.js.map +1 -0
- package/dist/components/common/SingleSelectAutoCompleteField.tsx +73 -0
- package/dist/components/common/SolidExportStepper.d.ts +12 -0
- package/dist/components/common/SolidExportStepper.d.ts.map +1 -0
- package/dist/components/common/SolidExportStepper.js +30 -0
- package/dist/components/common/SolidExportStepper.js.map +1 -0
- package/dist/components/common/SolidExportStepper.tsx +135 -0
- package/dist/components/core/card/CardGrid.d.ts +1 -1
- package/dist/components/core/card/CardGrid.d.ts.map +1 -1
- package/dist/components/core/card/CardGrid.js +2 -2
- package/dist/components/core/card/CardGrid.js.map +1 -1
- package/dist/components/core/card/CardGrid.tsx +4 -0
- package/dist/components/core/card/CardItem.d.ts +2 -0
- package/dist/components/core/card/CardItem.d.ts.map +1 -1
- package/dist/components/core/card/CardItem.js +7 -2
- package/dist/components/core/card/CardItem.js.map +1 -1
- package/dist/components/core/card/CardItem.tsx +30 -8
- package/dist/components/core/card/SolidCardView.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardView.js +87 -21
- package/dist/components/core/card/SolidCardView.js.map +1 -1
- package/dist/components/core/card/SolidCardView.tsx +96 -40
- package/dist/components/core/card/SolidCardViewConfigure.d.ts +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.d.ts.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.js +9 -7
- package/dist/components/core/card/SolidCardViewConfigure.js.map +1 -1
- package/dist/components/core/card/SolidCardViewConfigure.tsx +14 -1
- 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/SolidGenericImport/SolidImportWrapper.d.ts +2 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.d.ts.map +1 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js +16 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.js.map +1 -0
- package/dist/components/core/common/SolidGenericImport/SolidImportWrapper.tsx +29 -0
- package/dist/components/core/common/SolidGlobalSearchElement.js +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +1 -1
- package/dist/components/core/dashboard/DashboardFilter.d.ts +13 -0
- package/dist/components/core/dashboard/DashboardFilter.d.ts.map +1 -0
- package/dist/components/core/dashboard/DashboardFilter.js +299 -0
- package/dist/components/core/dashboard/DashboardFilter.js.map +1 -0
- package/dist/components/core/dashboard/DashboardFilter.tsx +348 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts +3 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.d.ts.map +1 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.js +21 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.js.map +1 -0
- package/dist/components/core/dashboard/PrimeDataTableWrapper.tsx +40 -0
- package/dist/components/core/dashboard/SolidDashboard.d.ts +28 -0
- package/dist/components/core/dashboard/SolidDashboard.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboard.js +183 -0
- package/dist/components/core/dashboard/SolidDashboard.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboard.module.css +83 -0
- package/dist/components/core/dashboard/SolidDashboard.tsx +263 -0
- package/dist/components/core/dashboard/SolidDashboardBody.d.ts +24 -0
- package/dist/components/core/dashboard/SolidDashboardBody.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardBody.js +162 -0
- package/dist/components/core/dashboard/SolidDashboardBody.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardBody.tsx +168 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts +2 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.js +11 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardFilterRequired.tsx +28 -0
- package/dist/components/core/dashboard/SolidDashboardHeader.d.ts +3 -0
- package/dist/components/core/dashboard/SolidDashboardHeader.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardHeader.js +6 -0
- package/dist/components/core/dashboard/SolidDashboardHeader.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardHeader.tsx +10 -0
- package/dist/components/core/dashboard/SolidDashboardLoading.d.ts +2 -0
- package/dist/components/core/dashboard/SolidDashboardLoading.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardLoading.js +10 -0
- package/dist/components/core/dashboard/SolidDashboardLoading.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardLoading.tsx +61 -0
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts +3 -0
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.js +12 -0
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardNotAvailable.tsx +32 -0
- package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts +2 -0
- package/dist/components/core/dashboard/SolidDashboardRenderError.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardRenderError.js +11 -0
- package/dist/components/core/dashboard/SolidDashboardRenderError.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardRenderError.tsx +28 -0
- package/dist/components/core/dashboard/SolidDashboardVariable.d.ts +19 -0
- package/dist/components/core/dashboard/SolidDashboardVariable.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardVariable.js +171 -0
- package/dist/components/core/dashboard/SolidDashboardVariable.js.map +1 -0
- package/dist/components/core/dashboard/SolidDashboardVariable.tsx +259 -0
- package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts +9 -0
- package/dist/components/core/dashboard/SolidQuestionRenderer.d.ts.map +1 -0
- package/dist/components/core/dashboard/SolidQuestionRenderer.js +42 -0
- package/dist/components/core/dashboard/SolidQuestionRenderer.js.map +1 -0
- package/dist/components/core/dashboard/SolidQuestionRenderer.tsx +99 -0
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts +9 -0
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.d.ts.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js +35 -0
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.js.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/ChartJsRenderer.tsx +48 -0
- package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts +7 -0
- package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.d.ts.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js +22 -0
- package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.js.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/PrimeReactDatatableRenderer.tsx +51 -0
- package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts +2 -0
- package/dist/components/core/dashboard/chart-renderers/init-chartjs.d.ts.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/init-chartjs.js +4 -0
- package/dist/components/core/dashboard/chart-renderers/init-chartjs.js.map +1 -0
- package/dist/components/core/dashboard/chart-renderers/init-chartjs.ts +25 -0
- package/dist/components/core/dashboard/dashboard-utils.d.ts +2 -0
- package/dist/components/core/dashboard/dashboard-utils.d.ts.map +1 -0
- package/dist/components/core/dashboard/dashboard-utils.js +38 -0
- package/dist/components/core/dashboard/dashboard-utils.js.map +1 -0
- package/dist/components/core/dashboard/dashboard-utils.ts +39 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts +10 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js +16 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardFormViewChangeHandler.ts +19 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts +8 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js +64 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionFieldChangeHandler.ts +30 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts +8 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js +62 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.js.map +1 -0
- package/dist/components/core/extension/solid-core/dashboard/dashboardQuestionOnFormLoadHandler.ts +29 -0
- package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts +4 -0
- package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.d.ts.map +1 -0
- package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js +23 -0
- package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.js.map +1 -0
- package/dist/components/core/extension/solid-core/dashboardQuestion/ChartFormPreviewWidget.tsx +36 -0
- package/dist/components/core/form/SolidFormView.js +1 -1
- package/dist/components/core/form/SolidFormView.js.map +1 -1
- package/dist/components/core/form/SolidFormView.tsx +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +11 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +26 -19
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +13 -5
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +16 -9
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts +3 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.d.ts.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js +92 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.js.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidChatterMessageCoModelEntityIdFormViewWidget.tsx +68 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts +3 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.d.ts.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js +111 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.js.map +1 -0
- package/dist/components/core/form/fields/widgets/SolidLovTypeChangeFormEditWidget.tsx +122 -0
- package/dist/components/core/kanban/KanbanBoard.d.ts +1 -1
- package/dist/components/core/kanban/KanbanBoard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.js +2 -2
- package/dist/components/core/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/core/kanban/KanbanBoard.tsx +3 -1
- package/dist/components/core/kanban/KanbanCard.d.ts +2 -0
- package/dist/components/core/kanban/KanbanCard.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanCard.js +10 -5
- package/dist/components/core/kanban/KanbanCard.js.map +1 -1
- package/dist/components/core/kanban/KanbanCard.tsx +28 -12
- package/dist/components/core/kanban/KanbanColumn.d.ts +3 -1
- package/dist/components/core/kanban/KanbanColumn.d.ts.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.js +2 -2
- package/dist/components/core/kanban/KanbanColumn.js.map +1 -1
- package/dist/components/core/kanban/KanbanColumn.tsx +4 -2
- package/dist/components/core/kanban/SolidKanbanView.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.js +154 -25
- package/dist/components/core/kanban/SolidKanbanView.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanView.tsx +129 -16
- package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.d.ts.map +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js +13 -10
- package/dist/components/core/kanban/SolidKanbanViewConfigure.js.map +1 -1
- package/dist/components/core/kanban/SolidKanbanViewConfigure.tsx +18 -3
- package/dist/components/core/kanban/SolidKanbanViewFields.d.ts +12 -0
- package/dist/components/core/kanban/SolidKanbanViewFields.d.ts.map +1 -0
- package/dist/components/core/kanban/SolidKanbanViewFields.js +145 -0
- package/dist/components/core/kanban/SolidKanbanViewFields.js.map +1 -0
- package/dist/components/core/kanban/SolidKanbanViewFields.tsx +164 -0
- package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts +2 -0
- package/dist/components/core/kanban/SolidManyToOneFilterElement.d.ts.map +1 -0
- package/dist/components/core/kanban/SolidManyToOneFilterElement.js +87 -0
- package/dist/components/core/kanban/SolidManyToOneFilterElement.js.map +1 -0
- package/dist/components/core/kanban/SolidManyToOneFilterElement.tsx +59 -0
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts +2 -0
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.d.ts.map +1 -0
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js +73 -0
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.js.map +1 -0
- package/dist/components/core/kanban/SolidSelectionDynamicFilterElement.tsx +50 -0
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts +2 -0
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.d.ts.map +1 -0
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js +20 -0
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.js.map +1 -0
- package/dist/components/core/kanban/SolidSelectionStaticFilterElement.tsx +32 -0
- package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts +12 -0
- package/dist/components/core/kanban/SolidVarInputsFilterElement.d.ts.map +1 -0
- package/dist/components/core/kanban/SolidVarInputsFilterElement.js +81 -0
- package/dist/components/core/kanban/SolidVarInputsFilterElement.js.map +1 -0
- package/dist/components/core/kanban/SolidVarInputsFilterElement.tsx +184 -0
- package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidBigintKanbanField.tsx +9 -0
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidBooleanKanbanField.tsx +16 -0
- package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js +21 -0
- package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidComputedKanbanField.tsx +23 -0
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDateKanbanField.tsx +14 -0
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDatetimeKanbanField.tsx +13 -0
- package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidDecimalKanbanField.tsx +9 -0
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidExternalIdKanbanField.tsx +12 -0
- package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidFloatKanbanField.tsx +9 -0
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidIdKanbanField.tsx +14 -0
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js +16 -0
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidIntKanbanField.tsx +20 -0
- package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidLongTextKanbanField.tsx +9 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js +56 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaMultipleKanbanField.tsx +140 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js +42 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidMediaSingleKanbanField.tsx +164 -0
- package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js +11 -0
- package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidRelationKanbanField.tsx +13 -0
- package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidRichTextKanbanField.tsx +9 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionDynamicKanbanField.tsx +14 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidSelectionStaticKanbanField.tsx +14 -0
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js +37 -0
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidShortTextKanbanField.tsx +121 -0
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidTimeKanbanField.tsx +12 -0
- package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js +8 -0
- package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/SolidUuidKanbanField.tsx +13 -0
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts +4 -0
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.d.ts.map +1 -0
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js +7 -0
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.js.map +1 -0
- package/dist/components/core/kanban/kanban-fields/relations/SolidRelationManyToOneKanbanField.tsx +16 -0
- package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
- package/dist/components/core/list/SolidDataTable.js +1 -1
- package/dist/components/core/list/SolidDataTable.js.map +1 -1
- package/dist/components/core/list/SolidDataTable.tsx +1 -0
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +6 -1
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +6 -1
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts +2 -0
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.d.ts.map +1 -0
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js +39 -0
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.js.map +1 -0
- package/dist/components/core/list/SolidListViewRowButtonContextMenu.tsx +40 -0
- package/dist/components/core/list/SolidVarInputsFilterElement.d.ts +12 -0
- package/dist/components/core/list/SolidVarInputsFilterElement.d.ts.map +1 -0
- package/dist/components/core/list/SolidVarInputsFilterElement.js +81 -0
- package/dist/components/core/list/SolidVarInputsFilterElement.js.map +1 -0
- package/dist/components/core/list/SolidVarInputsFilterElement.tsx +184 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts +3 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js +87 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.js.map +1 -0
- package/dist/components/core/list/widgets/SolidChatterMessageCoModelEntityIdListViewWidget.tsx +70 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts +3 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js +33 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.js.map +1 -0
- package/dist/components/core/list/widgets/SolidMqMessageStageListViewWidget.tsx +50 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts +3 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.d.ts.map +1 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js +158 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.js.map +1 -0
- package/dist/components/core/list/widgets/SolidSummarizeListHeaderActionMqMessages.tsx +185 -0
- package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -1
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +119 -102
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.tsx +82 -39
- package/dist/components/core/model/FieldSelector.d.ts +5 -1
- package/dist/components/core/model/FieldSelector.d.ts.map +1 -1
- package/dist/components/core/model/FieldSelector.js +25 -6
- package/dist/components/core/model/FieldSelector.js.map +1 -1
- package/dist/components/core/model/FieldSelector.tsx +50 -5
- package/dist/components/core/tree/SolidTreeTable.d.ts +2 -1
- package/dist/components/core/tree/SolidTreeTable.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeTable.js +2 -2
- package/dist/components/core/tree/SolidTreeTable.js.map +1 -1
- package/dist/components/core/tree/SolidTreeTable.tsx +3 -1
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +38 -15
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +48 -23
- package/dist/components/core/users/CreateUser.d.ts.map +1 -1
- package/dist/components/core/users/CreateUser.js +45 -32
- package/dist/components/core/users/CreateUser.js.map +1 -1
- package/dist/components/core/users/CreateUser.tsx +15 -4
- package/dist/components/layout/DashboardHeader.d.ts +3 -0
- package/dist/components/layout/DashboardHeader.d.ts.map +1 -0
- package/dist/components/layout/DashboardHeader.js +20 -0
- package/dist/components/layout/DashboardHeader.js.map +1 -0
- package/dist/components/layout/DashboardHeader.tsx +94 -0
- package/dist/components/shad-cn-ui/SolidSelect.d.ts +2 -1
- package/dist/components/shad-cn-ui/SolidSelect.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidSelect.js +12 -4
- package/dist/components/shad-cn-ui/SolidSelect.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidSelect.tsx +13 -1
- package/dist/helpers/# no such endpoints exist, need to calle +3 -0
- package/dist/helpers/ToastContainer.d.ts +4 -0
- package/dist/helpers/ToastContainer.d.ts.map +1 -0
- package/dist/helpers/ToastContainer.js +49 -0
- package/dist/helpers/ToastContainer.js.map +1 -0
- package/dist/helpers/ToastContainer.tsx +94 -0
- package/dist/helpers/showToast.d.ts +5 -0
- package/dist/helpers/showToast.d.ts.map +1 -0
- package/dist/helpers/showToast.js +17 -0
- package/dist/helpers/showToast.js.map +1 -0
- package/dist/helpers/showToast.ts +13 -0
- package/dist/helpers/studioSandbox.d.ts +31 -0
- package/dist/helpers/studioSandbox.d.ts.map +1 -0
- package/dist/helpers/studioSandbox.js +104 -0
- package/dist/helpers/studioSandbox.js.map +1 -0
- package/dist/helpers/studioSandbox.ts +117 -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/api/dashboardApi.d.ts +23 -0
- package/dist/redux/api/dashboardApi.d.ts.map +1 -0
- package/dist/redux/api/dashboardApi.js +35 -0
- package/dist/redux/api/dashboardApi.js.map +1 -0
- package/dist/redux/api/dashboardApi.ts +56 -0
- package/dist/redux/api/dashboardLayoutApi.d.ts +24 -0
- package/dist/redux/api/dashboardLayoutApi.d.ts.map +1 -0
- package/dist/redux/api/dashboardLayoutApi.js +34 -0
- package/dist/redux/api/dashboardLayoutApi.js.map +1 -0
- package/dist/redux/api/dashboardLayoutApi.ts +55 -0
- package/dist/redux/api/dashboardQuestionApi.d.ts +5 -0
- package/dist/redux/api/dashboardQuestionApi.d.ts.map +1 -0
- package/dist/redux/api/dashboardQuestionApi.js +18 -0
- package/dist/redux/api/dashboardQuestionApi.js.map +1 -0
- package/dist/redux/api/dashboardQuestionApi.ts +17 -0
- package/dist/redux/api/datasourceIntrospectionApi.d.ts +1 -0
- package/dist/redux/api/datasourceIntrospectionApi.d.ts.map +1 -1
- package/dist/redux/api/datasourceIntrospectionApi.js.map +1 -1
- package/dist/redux/api/datasourceIntrospectionApi.ts +1 -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/store/defaultStoreConfig.d.ts +5 -5
- package/dist/resources/images/Footerbg.png +0 -0
- package/dist/resources/images/LoginBanner.png +0 -0
- package/dist/resources/images/dashboard/Ellipse 1.svg +10 -0
- package/dist/resources/images/dashboard/Rectangle 17.svg +10 -0
- package/dist/resources/images/dashboard/Rectangle 25.svg +11 -0
- package/dist/resources/images/dashboard/image 5.svg +9 -0
- package/dist/resources/images/loginhero.png +0 -0
- package/dist/resources/images/logo.png +0 -0
- package/dist/resources/images/radix-logo-white.png +0 -0
- package/dist/resources/images/radix-logo.png +0 -0
- package/dist/resources/images/signupBanner.png +0 -0
- package/dist/resources/shadcn-base.css +16 -70
- package/dist/resources/solid-custom.css +55 -0
- package/dist/resources/solid-responsive.css +4 -4
- package/dist/resources/solid-tailwind-generated.css +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +12 -0
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +160 -59
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +293 -41
- package/package.json +1 -1
- package/dist/helpers/modulePackageResumeState.d.ts +0 -6
- package/dist/helpers/modulePackageResumeState.d.ts.map +0 -1
- package/dist/helpers/modulePackageResumeState.js +0 -46
- package/dist/helpers/modulePackageResumeState.js.map +0 -1
- package/dist/helpers/modulePackageResumeState.ts +0 -57
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { SolidButton, SolidPopover, SolidPopoverContent, SolidPopoverTrigger } from "../shad-cn-ui";
|
|
4
|
+
import { SolidIcon, parseSolidIconMeta } from "../shad-cn-ui/SolidIcon";
|
|
5
|
+
|
|
6
|
+
const DashboardHeader = () => {
|
|
7
|
+
|
|
8
|
+
const [menuOpen, setMenuOpen] = useState(false);
|
|
9
|
+
const items = [
|
|
10
|
+
{
|
|
11
|
+
label: 'Refresh',
|
|
12
|
+
icon: 'pi pi-refresh'
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
label: 'Export',
|
|
16
|
+
icon: 'pi pi-upload'
|
|
17
|
+
}
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<div className="flex justify-content-between align-items-center px-5 surface-0 border-bottom-1 surface-border relative lg:static" style={{ height: "60px" }}>
|
|
22
|
+
<div className="flex align-items-center">
|
|
23
|
+
<SolidButton label="New" size="sm" type="submit" className="small-button" />
|
|
24
|
+
<SolidPopover open={menuOpen} onOpenChange={setMenuOpen}>
|
|
25
|
+
<SolidPopoverTrigger asChild>
|
|
26
|
+
<SolidButton
|
|
27
|
+
type="button"
|
|
28
|
+
icon="pi pi-cog"
|
|
29
|
+
variant="ghost"
|
|
30
|
+
size="sm"
|
|
31
|
+
className="ml-2"
|
|
32
|
+
/>
|
|
33
|
+
</SolidPopoverTrigger>
|
|
34
|
+
<SolidPopoverContent side="bottom" align="start" className="solid-form-actions-popover">
|
|
35
|
+
<div className="solid-row-actions-menu">
|
|
36
|
+
{items.map((item) => (
|
|
37
|
+
<button key={item.label} type="button" className="solid-row-action-button" onClick={() => setMenuOpen(false)}>
|
|
38
|
+
{(() => { const m = parseSolidIconMeta(item.icon); return m ? <SolidIcon name={m.name} spin={m.spin} className="solid-row-action-button-icon" /> : <i className={`${item.icon} solid-row-action-button-icon`} />; })()}
|
|
39
|
+
<span className="solid-row-action-button-label">{item.label}</span>
|
|
40
|
+
</button>
|
|
41
|
+
))}
|
|
42
|
+
</div>
|
|
43
|
+
</SolidPopoverContent>
|
|
44
|
+
</SolidPopover>
|
|
45
|
+
</div>
|
|
46
|
+
<div className="flex align-items-center">
|
|
47
|
+
<div className="bgCircle">
|
|
48
|
+
<div style={{ position: "relative" }}>
|
|
49
|
+
<SolidIcon name="si-bell" />
|
|
50
|
+
<span className="topbar-badge">
|
|
51
|
+
</span>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
<div className="bgCircle ml-3">
|
|
55
|
+
<div style={{ position: "relative" }}>
|
|
56
|
+
<SolidIcon name="si-envelope" />
|
|
57
|
+
<span className="topbar-badge">
|
|
58
|
+
</span>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
<div className="topbar-profile">
|
|
62
|
+
<button className="topbar-profile-button p-link" type="button">
|
|
63
|
+
<img alt="avatar" src="/images/dashboard/Ellipse 1.svg" />
|
|
64
|
+
<span className="profile-details">
|
|
65
|
+
<span className="profile-name">Gene Russell</span>
|
|
66
|
+
<span className="profile-email">ben95@example.com</span>
|
|
67
|
+
</span>
|
|
68
|
+
<SolidIcon name="si-angle-down" />
|
|
69
|
+
</button>
|
|
70
|
+
<ul className="list-none p-3 m-0 border-round shadow-2 absolute surface-overlay origin-top w-full sm:w-12rem mt-2 right-0 top-auto hidden">
|
|
71
|
+
<li>
|
|
72
|
+
<a className="p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer">
|
|
73
|
+
<SolidIcon name="si-user" className="mr-3" />
|
|
74
|
+
<span>Profile</span>
|
|
75
|
+
</a>
|
|
76
|
+
<a className="p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer">
|
|
77
|
+
<SolidIcon name="si-inbox" className="mr-3" />
|
|
78
|
+
<span>Inbox</span></a>
|
|
79
|
+
<a className="p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer">
|
|
80
|
+
<SolidIcon name="si-cog" className="mr-3" />
|
|
81
|
+
<span>Settings</span>
|
|
82
|
+
</a>
|
|
83
|
+
<a className="p-ripple flex p-2 border-round align-items-center hover:surface-hover transition-colors transition-duration-150 cursor-pointer">
|
|
84
|
+
<SolidIcon name="si-power-off" className="mr-3" />
|
|
85
|
+
<span>Sign Out</span>
|
|
86
|
+
</a>
|
|
87
|
+
</li>
|
|
88
|
+
</ul>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
export default DashboardHeader;
|
|
@@ -12,7 +12,8 @@ type SolidSelectProps = {
|
|
|
12
12
|
}) => void;
|
|
13
13
|
id?: string;
|
|
14
14
|
native?: boolean;
|
|
15
|
+
menuPlacement?: "auto" | "top" | "bottom";
|
|
15
16
|
};
|
|
16
|
-
export declare function SolidSelect({ value, options, optionLabel, optionValue, placeholder, className, disabled, onChange, id, native, }: SolidSelectProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare function SolidSelect({ value, options, optionLabel, optionValue, placeholder, className, disabled, onChange, id, native, menuPlacement, }: SolidSelectProps): import("react/jsx-runtime").JSX.Element;
|
|
17
18
|
export {};
|
|
18
19
|
//# sourceMappingURL=SolidSelect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidSelect.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidSelect.tsx"],"names":[],"mappings":"AAGA,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE7C,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SolidSelect.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidSelect.tsx"],"names":[],"mappings":"AAGA,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE7C,KAAK,gBAAgB,GAAG;IACtB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IAC3C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;CAC3C,CAAC;AAMF,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,OAAY,EACZ,WAAqB,EACrB,WAAqB,EACrB,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,EAAE,EACF,MAAa,EACb,aAAsB,GACvB,EAAE,gBAAgB,2CA2IlB"}
|
|
@@ -9,9 +9,9 @@ function cx() {
|
|
|
9
9
|
return parts.filter(Boolean).join(" ");
|
|
10
10
|
}
|
|
11
11
|
export function SolidSelect(_a) {
|
|
12
|
-
var value = _a.value, _b = _a.options, options = _b === void 0 ? [] : _b, _c = _a.optionLabel, optionLabel = _c === void 0 ? "label" : _c, _d = _a.optionValue, optionValue = _d === void 0 ? "value" : _d, placeholder = _a.placeholder, className = _a.className, disabled = _a.disabled, onChange = _a.onChange, id = _a.id, _e = _a.native, native = _e === void 0 ? true : _e;
|
|
13
|
-
var
|
|
14
|
-
var
|
|
12
|
+
var value = _a.value, _b = _a.options, options = _b === void 0 ? [] : _b, _c = _a.optionLabel, optionLabel = _c === void 0 ? "label" : _c, _d = _a.optionValue, optionValue = _d === void 0 ? "value" : _d, placeholder = _a.placeholder, className = _a.className, disabled = _a.disabled, onChange = _a.onChange, id = _a.id, _e = _a.native, native = _e === void 0 ? true : _e, _f = _a.menuPlacement, menuPlacement = _f === void 0 ? "auto" : _f;
|
|
13
|
+
var _g = React.useState(false), open = _g[0], setOpen = _g[1];
|
|
14
|
+
var _h = React.useState(false), openUpward = _h[0], setOpenUpward = _h[1];
|
|
15
15
|
var rootRef = React.useRef(null);
|
|
16
16
|
var menuRef = React.useRef(null);
|
|
17
17
|
var normalized = options.map(function (option, index) {
|
|
@@ -51,6 +51,14 @@ export function SolidSelect(_a) {
|
|
|
51
51
|
React.useLayoutEffect(function () {
|
|
52
52
|
if (!open || native || !rootRef.current || !menuRef.current)
|
|
53
53
|
return;
|
|
54
|
+
if (menuPlacement === "top") {
|
|
55
|
+
setOpenUpward(true);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (menuPlacement === "bottom") {
|
|
59
|
+
setOpenUpward(false);
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
54
62
|
var rootRect = rootRef.current.getBoundingClientRect();
|
|
55
63
|
var menuHeight = menuRef.current.offsetHeight;
|
|
56
64
|
var viewportHeight = window.innerHeight;
|
|
@@ -58,7 +66,7 @@ export function SolidSelect(_a) {
|
|
|
58
66
|
var spaceAbove = rootRect.top;
|
|
59
67
|
var needsOpenUpward = spaceBelow < menuHeight + 8 && spaceAbove > spaceBelow;
|
|
60
68
|
setOpenUpward(needsOpenUpward);
|
|
61
|
-
}, [open, native, options.length]);
|
|
69
|
+
}, [open, native, options.length, menuPlacement]);
|
|
62
70
|
if (!native) {
|
|
63
71
|
return (_jsxs("div", { ref: rootRef, className: cx("solid-select-wrap", "solid-select-wrap-custom", className), children: [_jsxs("button", { id: id, type: "button", className: "solid-select solid-select-trigger", disabled: disabled, "aria-haspopup": "listbox", "aria-expanded": open, onClick: function () {
|
|
64
72
|
if (disabled)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidSelect.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidSelect.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAiB3C,SAAS,EAAE;IAAC,eAA2C;SAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;QAA3C,0BAA2C;;IACrD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAWT;QAVjB,KAAK,WAAA,EACL,eAAY,EAAZ,OAAO,mBAAG,EAAE,KAAA,EACZ,mBAAqB,EAArB,WAAW,mBAAG,OAAO,KAAA,EACrB,mBAAqB,EAArB,WAAW,mBAAG,OAAO,KAAA,EACrB,WAAW,iBAAA,EACX,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,QAAQ,cAAA,EACR,EAAE,QAAA,EACF,cAAa,EAAb,MAAM,mBAAG,IAAI,KAAA;IAEP,IAAA,KAAkB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAtC,IAAI,QAAA,EAAE,OAAO,QAAyB,CAAC;IACxC,IAAA,KAA8B,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAlD,UAAU,QAAA,EAAE,aAAa,QAAyB,CAAC;IAC1D,IAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAwB,IAAI,CAAC,CAAC;IAC1D,IAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAwB,IAAI,CAAC,CAAC;IAC1D,IAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,KAAK;;QAAK,OAAA,CAAC;YACjD,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC;YAClB,KAAK,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,WAAW,CAAC,mCAAI,EAAE;YAClC,KAAK,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,WAAW,CAAC;SAC7B,CAAC,CAAA;KAAA,CAAC,CAAC;IAEJ,IAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,KAAK,KAAK,KAAK,EAApB,CAAoB,CAAC,CAAC;IAC3E,IAAM,WAAW,GAAG,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,IAAM,cAAc,GAAG,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7E,KAAK,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,IAAM,iBAAiB,GAAG,UAAC,KAA8B;;YACvD,IAAI,CAAC,CAAA,MAAA,OAAO,CAAC,OAAO,0CAAE,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,CAAA,EAAE;gBACpD,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;QACH,CAAC,CAAC;QAEF,IAAM,YAAY,GAAG,UAAC,KAAoB;YACxC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,OAAO,CAAC,KAAK,CAAC,CAAC;aAChB;QACH,CAAC,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAC1D,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QAC3D,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAEnD,OAAO;YACL,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;YAC7D,QAAQ,CAAC,mBAAmB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;YAC9D,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACxD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,KAAK,CAAC,eAAe,CAAC;QACpB,IAAI,CAAC,IAAI,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO;QAEpE,IAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACzD,IAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC;QAChD,IAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC;QAC1C,IAAM,UAAU,GAAG,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;QACpD,IAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC;QAChC,IAAM,eAAe,GAAG,UAAU,GAAG,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,UAAU,CAAC;QAE/E,aAAa,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnC,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,CACL,eAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,SAAS,CAAC,aAC1F,kBACE,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,mCAAmC,EAC7C,QAAQ,EAAE,QAAQ,mBACJ,SAAS,mBACR,IAAI,EACnB,OAAO,EAAE;wBACP,IAAI,QAAQ;4BAAE,OAAO;wBACrB,OAAO,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,CAAC;oBAC3B,CAAC,aAED,eAAM,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,CAAC,cAAc,IAAI,0BAA0B,CAAC,YAC7F,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,KAAK,KAAI,WAAW,IAAI,QAAQ,GAC5C,EACP,eAAM,SAAS,EAAC,mBAAmB,iBAAa,MAAM,YACpD,KAAC,WAAW,IAAC,IAAI,EAAE,EAAE,GAAI,GACpB,IACA,EACR,IAAI,CAAC,CAAC,CAAC,CACN,cACE,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,UAAU,IAAI,uBAAuB,CAAC,EACzE,IAAI,EAAC,SAAS,YAEb,UAAU,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,CACxB,iBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,aAAa,CAAC,mBAC/D,IAAI,CAAC,KAAK,KAAK,KAAK,EACnC,OAAO,EAAE;4BACP,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;4BAClC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACjB,CAAC,YAEA,IAAI,CAAC,KAAK,IAVN,IAAI,CAAC,GAAG,CAWN,CACV,EAdyB,CAczB,CAAC,GACE,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;KACH;IAED,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,aAChD,kBACE,EAAE,EAAE,EAAE,EACN,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,UAAC,KAAK;oBACd,IAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,EAA/B,CAA+B,CAAC,CAAC;oBACxE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,KAAK,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE,CAAC,CAAC;gBACrC,CAAC,aAED,iBAAQ,KAAK,EAAC,EAAE,EAAC,QAAQ,kBACtB,WAAW,IAAI,QAAQ,GACjB,EACR,UAAU,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,CACxB,iBAAuB,KAAK,EAAE,IAAI,CAAC,GAAG,YACnC,IAAI,CAAC,KAAK,IADA,IAAI,CAAC,GAAG,CAEZ,CACV,EAJyB,CAIzB,CAAC,IACK,EACT,eAAM,SAAS,EAAC,mBAAmB,iBAAa,MAAM,YACpD,KAAC,WAAW,IAAC,IAAI,EAAE,EAAE,GAAI,GACpB,IACH,CACP,CAAC;AACJ,CAAC","sourcesContent":["import React from \"react\";\nimport { ChevronDown } from \"lucide-react\";\n\ntype SolidSelectOption = Record<string, any>;\n\ntype SolidSelectProps = {\n value?: any;\n options?: SolidSelectOption[];\n optionLabel?: string;\n optionValue?: string;\n placeholder?: string;\n className?: string;\n disabled?: boolean;\n onChange?: (event: { value: any }) => void;\n id?: string;\n native?: boolean;\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidSelect({\n value,\n options = [],\n optionLabel = \"label\",\n optionValue = \"value\",\n placeholder,\n className,\n disabled,\n onChange,\n id,\n native = true,\n}: SolidSelectProps) {\n const [open, setOpen] = React.useState(false);\n const [openUpward, setOpenUpward] = React.useState(false);\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const menuRef = React.useRef<HTMLDivElement | null>(null);\n const normalized = options.map((option, index) => ({\n key: String(index),\n label: option?.[optionLabel] ?? \"\",\n value: option?.[optionValue],\n }));\n\n const selectedIndex = normalized.findIndex((item) => item.value === value);\n const selectedKey = selectedIndex >= 0 ? normalized[selectedIndex].key : \"\";\n const selectedOption = selectedIndex >= 0 ? normalized[selectedIndex] : null;\n\n React.useEffect(() => {\n if (!open) return;\n\n const handlePointerDown = (event: MouseEvent | TouchEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) {\n setOpen(false);\n }\n };\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handlePointerDown);\n document.addEventListener(\"touchstart\", handlePointerDown);\n document.addEventListener(\"keydown\", handleEscape);\n\n return () => {\n document.removeEventListener(\"mousedown\", handlePointerDown);\n document.removeEventListener(\"touchstart\", handlePointerDown);\n document.removeEventListener(\"keydown\", handleEscape);\n };\n }, [open]);\n\n React.useLayoutEffect(() => {\n if (!open || native || !rootRef.current || !menuRef.current) return;\n\n const rootRect = rootRef.current.getBoundingClientRect();\n const menuHeight = menuRef.current.offsetHeight;\n const viewportHeight = window.innerHeight;\n const spaceBelow = viewportHeight - rootRect.bottom;\n const spaceAbove = rootRect.top;\n const needsOpenUpward = spaceBelow < menuHeight + 8 && spaceAbove > spaceBelow;\n\n setOpenUpward(needsOpenUpward);\n }, [open, native, options.length]);\n\n if (!native) {\n return (\n <div ref={rootRef} className={cx(\"solid-select-wrap\", \"solid-select-wrap-custom\", className)}>\n <button\n id={id}\n type=\"button\"\n className=\"solid-select solid-select-trigger\"\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n onClick={() => {\n if (disabled) return;\n setOpen((prev) => !prev);\n }}\n >\n <span className={cx(\"solid-select-trigger-label\", !selectedOption && \"solid-select-placeholder\")}>\n {selectedOption?.label || placeholder || \"Select\"}\n </span>\n <span className=\"solid-select-icon\" aria-hidden=\"true\">\n <ChevronDown size={14} />\n </span>\n </button>\n {open ? (\n <div\n ref={menuRef}\n className={cx(\"solid-select-menu\", openUpward && \"solid-select-menu-top\")}\n role=\"listbox\"\n >\n {normalized.map((item) => (\n <button\n key={item.key}\n type=\"button\"\n role=\"option\"\n className={cx(\"solid-select-menu-item\", item.value === value && \"is-selected\")}\n aria-selected={item.value === value}\n onClick={() => {\n onChange?.({ value: item.value });\n setOpen(false);\n }}\n >\n {item.label}\n </button>\n ))}\n </div>\n ) : null}\n </div>\n );\n }\n\n return (\n <div className={cx(\"solid-select-wrap\", className)}>\n <select\n id={id}\n className=\"solid-select\"\n value={selectedKey}\n disabled={disabled}\n onChange={(event) => {\n const next = normalized.find((item) => item.key === event.target.value);\n onChange?.({ value: next?.value });\n }}\n >\n <option value=\"\" disabled>\n {placeholder || \"Select\"}\n </option>\n {normalized.map((item) => (\n <option key={item.key} value={item.key}>\n {item.label}\n </option>\n ))}\n </select>\n <span className=\"solid-select-icon\" aria-hidden=\"true\">\n <ChevronDown size={14} />\n </span>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"SolidSelect.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidSelect.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { ChevronDown } from \"lucide-react\";\n\ntype SolidSelectOption = Record<string, any>;\n\ntype SolidSelectProps = {\n value?: any;\n options?: SolidSelectOption[];\n optionLabel?: string;\n optionValue?: string;\n placeholder?: string;\n className?: string;\n disabled?: boolean;\n onChange?: (event: { value: any }) => void;\n id?: string;\n native?: boolean;\n menuPlacement?: \"auto\" | \"top\" | \"bottom\";\n};\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidSelect({\n value,\n options = [],\n optionLabel = \"label\",\n optionValue = \"value\",\n placeholder,\n className,\n disabled,\n onChange,\n id,\n native = true,\n menuPlacement = \"auto\",\n}: SolidSelectProps) {\n const [open, setOpen] = React.useState(false);\n const [openUpward, setOpenUpward] = React.useState(false);\n const rootRef = React.useRef<HTMLDivElement | null>(null);\n const menuRef = React.useRef<HTMLDivElement | null>(null);\n const normalized = options.map((option, index) => ({\n key: String(index),\n label: option?.[optionLabel] ?? \"\",\n value: option?.[optionValue],\n }));\n\n const selectedIndex = normalized.findIndex((item) => item.value === value);\n const selectedKey = selectedIndex >= 0 ? normalized[selectedIndex].key : \"\";\n const selectedOption = selectedIndex >= 0 ? normalized[selectedIndex] : null;\n\n React.useEffect(() => {\n if (!open) return;\n\n const handlePointerDown = (event: MouseEvent | TouchEvent) => {\n if (!rootRef.current?.contains(event.target as Node)) {\n setOpen(false);\n }\n };\n\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"mousedown\", handlePointerDown);\n document.addEventListener(\"touchstart\", handlePointerDown);\n document.addEventListener(\"keydown\", handleEscape);\n\n return () => {\n document.removeEventListener(\"mousedown\", handlePointerDown);\n document.removeEventListener(\"touchstart\", handlePointerDown);\n document.removeEventListener(\"keydown\", handleEscape);\n };\n }, [open]);\n\n React.useLayoutEffect(() => {\n if (!open || native || !rootRef.current || !menuRef.current) return;\n\n if (menuPlacement === \"top\") {\n setOpenUpward(true);\n return;\n }\n\n if (menuPlacement === \"bottom\") {\n setOpenUpward(false);\n return;\n }\n\n const rootRect = rootRef.current.getBoundingClientRect();\n const menuHeight = menuRef.current.offsetHeight;\n const viewportHeight = window.innerHeight;\n const spaceBelow = viewportHeight - rootRect.bottom;\n const spaceAbove = rootRect.top;\n const needsOpenUpward = spaceBelow < menuHeight + 8 && spaceAbove > spaceBelow;\n\n setOpenUpward(needsOpenUpward);\n }, [open, native, options.length, menuPlacement]);\n\n if (!native) {\n return (\n <div ref={rootRef} className={cx(\"solid-select-wrap\", \"solid-select-wrap-custom\", className)}>\n <button\n id={id}\n type=\"button\"\n className=\"solid-select solid-select-trigger\"\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n onClick={() => {\n if (disabled) return;\n setOpen((prev) => !prev);\n }}\n >\n <span className={cx(\"solid-select-trigger-label\", !selectedOption && \"solid-select-placeholder\")}>\n {selectedOption?.label || placeholder || \"Select\"}\n </span>\n <span className=\"solid-select-icon\" aria-hidden=\"true\">\n <ChevronDown size={14} />\n </span>\n </button>\n {open ? (\n <div\n ref={menuRef}\n className={cx(\"solid-select-menu\", openUpward && \"solid-select-menu-top\")}\n role=\"listbox\"\n >\n {normalized.map((item) => (\n <button\n key={item.key}\n type=\"button\"\n role=\"option\"\n className={cx(\"solid-select-menu-item\", item.value === value && \"is-selected\")}\n aria-selected={item.value === value}\n onClick={() => {\n onChange?.({ value: item.value });\n setOpen(false);\n }}\n >\n {item.label}\n </button>\n ))}\n </div>\n ) : null}\n </div>\n );\n }\n\n return (\n <div className={cx(\"solid-select-wrap\", className)}>\n <select\n id={id}\n className=\"solid-select\"\n value={selectedKey}\n disabled={disabled}\n onChange={(event) => {\n const next = normalized.find((item) => item.key === event.target.value);\n onChange?.({ value: next?.value });\n }}\n >\n <option value=\"\" disabled>\n {placeholder || \"Select\"}\n </option>\n {normalized.map((item) => (\n <option key={item.key} value={item.key}>\n {item.label}\n </option>\n ))}\n </select>\n <span className=\"solid-select-icon\" aria-hidden=\"true\">\n <ChevronDown size={14} />\n </span>\n </div>\n );\n}\n"]}
|
|
@@ -14,6 +14,7 @@ type SolidSelectProps = {
|
|
|
14
14
|
onChange?: (event: { value: any }) => void;
|
|
15
15
|
id?: string;
|
|
16
16
|
native?: boolean;
|
|
17
|
+
menuPlacement?: "auto" | "top" | "bottom";
|
|
17
18
|
};
|
|
18
19
|
|
|
19
20
|
function cx(...parts: Array<string | false | undefined>) {
|
|
@@ -31,6 +32,7 @@ export function SolidSelect({
|
|
|
31
32
|
onChange,
|
|
32
33
|
id,
|
|
33
34
|
native = true,
|
|
35
|
+
menuPlacement = "auto",
|
|
34
36
|
}: SolidSelectProps) {
|
|
35
37
|
const [open, setOpen] = React.useState(false);
|
|
36
38
|
const [openUpward, setOpenUpward] = React.useState(false);
|
|
@@ -75,6 +77,16 @@ export function SolidSelect({
|
|
|
75
77
|
React.useLayoutEffect(() => {
|
|
76
78
|
if (!open || native || !rootRef.current || !menuRef.current) return;
|
|
77
79
|
|
|
80
|
+
if (menuPlacement === "top") {
|
|
81
|
+
setOpenUpward(true);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (menuPlacement === "bottom") {
|
|
86
|
+
setOpenUpward(false);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
78
90
|
const rootRect = rootRef.current.getBoundingClientRect();
|
|
79
91
|
const menuHeight = menuRef.current.offsetHeight;
|
|
80
92
|
const viewportHeight = window.innerHeight;
|
|
@@ -83,7 +95,7 @@ export function SolidSelect({
|
|
|
83
95
|
const needsOpenUpward = spaceBelow < menuHeight + 8 && spaceAbove > spaceBelow;
|
|
84
96
|
|
|
85
97
|
setOpenUpward(needsOpenUpward);
|
|
86
|
-
}, [open, native, options.length]);
|
|
98
|
+
}, [open, native, options.length, menuPlacement]);
|
|
87
99
|
|
|
88
100
|
if (!native) {
|
|
89
101
|
return (
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToastContainer.d.ts","sourceRoot":"","sources":["../../src/helpers/ToastContainer.tsx"],"names":[],"mappings":"AAgBA,eAAO,MAAM,cAAc,+CAI1B,CAAC;AAUF,eAAO,MAAM,WAAW,eAAgB,GAAG,SAqC1C,CAAC;AAEF,eAAO,MAAM,aAAa,mBAAoB,GAAG,SAwBhD,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { ERROR_MESSAGES } from '../constants/error-messages';
|
|
3
|
+
import { Toast } from 'primereact/toast';
|
|
4
|
+
import { useRef } from 'react';
|
|
5
|
+
var toastRef = null;
|
|
6
|
+
export var ToastContainer = function () {
|
|
7
|
+
toastRef = useRef(null);
|
|
8
|
+
return _jsx(Toast, { ref: toastRef });
|
|
9
|
+
};
|
|
10
|
+
function isFetchBaseQueryErrorWithErrorResponse(error) {
|
|
11
|
+
return error && typeof error === 'object' && 'data' in error && 'message' in error.data;
|
|
12
|
+
}
|
|
13
|
+
var extractErrorMessages = function (errorObj) {
|
|
14
|
+
return Object.values(errorObj);
|
|
15
|
+
};
|
|
16
|
+
export var handleError = function (errorToast) {
|
|
17
|
+
var _a;
|
|
18
|
+
var errorMessage = errorToast ? errorToast : [ERROR_MESSAGES.ERROR_OCCURED];
|
|
19
|
+
if (typeof errorMessage == 'object') {
|
|
20
|
+
if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {
|
|
21
|
+
errorMessage = errorToast.data.message;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
// if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {
|
|
25
|
+
// errorMessage = errorToast.data.message;
|
|
26
|
+
// } else {
|
|
27
|
+
// errorMessage = ['Something went wrong'];
|
|
28
|
+
// }
|
|
29
|
+
(_a = toastRef === null || toastRef === void 0 ? void 0 : toastRef.current) === null || _a === void 0 ? void 0 : _a.show({
|
|
30
|
+
severity: 'error',
|
|
31
|
+
summary: ERROR_MESSAGES.ERROR,
|
|
32
|
+
detail: errorMessage,
|
|
33
|
+
life: 3000,
|
|
34
|
+
//@ts-ignore
|
|
35
|
+
content: function (props) { return (_jsx("div", { className: "flex flex-column align-items-left", style: { flex: "1" }, children: Array.isArray(errorMessage) ? (errorMessage.map(function (message, index) { return (_jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: message.trim() }) }, index)); })) : (_jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: errorMessage === null || errorMessage === void 0 ? void 0 : errorMessage.trim() }) })) })); },
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
export var handleSuccess = function (successMessage) {
|
|
39
|
+
var _a;
|
|
40
|
+
(_a = toastRef === null || toastRef === void 0 ? void 0 : toastRef.current) === null || _a === void 0 ? void 0 : _a.show({
|
|
41
|
+
severity: 'error',
|
|
42
|
+
summary: ERROR_MESSAGES.IS_SUCCESS,
|
|
43
|
+
detail: successMessage,
|
|
44
|
+
life: 3000,
|
|
45
|
+
//@ts-ignore
|
|
46
|
+
content: function (props) { return (_jsx("div", { className: "flex flex-column align-items-left", style: { flex: "1" }, children: Array.isArray(successMessage) ? (successMessage.map(function (message, index) { return (_jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: message.trim() }) }, index)); })) : (_jsx("div", { className: "flex align-items-center gap-2", children: _jsx("span", { className: "font-bold text-900", children: successMessage === null || successMessage === void 0 ? void 0 : successMessage.trim() }) })) })); },
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=ToastContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToastContainer.js","sourceRoot":"","sources":["../../src/helpers/ToastContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { ERROR_MESSAGES } from '../constants/error-messages';\nimport { FetchBaseQueryError } from '@reduxjs/toolkit/dist/query';\nimport { Toast } from 'primereact/toast';\nimport React, { useRef } from 'react';\n\n\ninterface ErrorResponseData {\n message: string;\n statusCode: number;\n error: string;\n}\n\n\nlet toastRef: React.MutableRefObject<Toast | null> | null = null;\n\nexport const ToastContainer = () => {\n toastRef = useRef(null);\n\n return <Toast ref={toastRef} />;\n};\n\nfunction isFetchBaseQueryErrorWithErrorResponse(error: any): error is FetchBaseQueryError & { data: ErrorResponseData } {\n return error && typeof error === 'object' && 'data' in error && 'message' in error.data;\n}\nconst extractErrorMessages = (errorObj: Record<string, string>): string[] => {\n return Object.values(errorObj);\n};\n\n\nexport const handleError = (errorToast: any) => {\n let errorMessage: any = errorToast ? errorToast : [ERROR_MESSAGES.ERROR_OCCURED];\n\n\n if (typeof errorMessage == 'object') {\n if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n errorMessage = errorToast.data.message;\n }\n }\n // if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {\n // errorMessage = errorToast.data.message;\n // } else {\n // errorMessage = ['Something went wrong'];\n // }\n\n toastRef?.current?.show({\n severity: 'error',\n summary: ERROR_MESSAGES.ERROR,\n detail: errorMessage,\n life: 3000,\n //@ts-ignore\n content: (props) => (\n <div className=\"flex flex-column align-items-left\" style={{ flex: \"1\" }}>\n {Array.isArray(errorMessage) ? (\n errorMessage.map((message, index) => (\n <div className=\"flex align-items-center gap-2\" key={index}>\n <span className=\"font-bold text-900\">{message.trim()}</span>\n </div>\n ))\n ) : (\n <div className=\"flex align-items-center gap-2\">\n <span className=\"font-bold text-900\">{errorMessage?.trim()}</span>\n </div>\n )}\n </div>\n ),\n });\n};\n\nexport const handleSuccess = (successMessage: any) => {\n\n toastRef?.current?.show({\n severity: 'error',\n summary: ERROR_MESSAGES.IS_SUCCESS,\n detail: successMessage,\n life: 3000,\n //@ts-ignore\n content: (props) => (\n <div className=\"flex flex-column align-items-left\" style={{ flex: \"1\" }}>\n {Array.isArray(successMessage) ? (\n successMessage.map((message, index) => (\n <div className=\"flex align-items-center gap-2\" key={index}>\n <span className=\"font-bold text-900\">{message.trim()}</span>\n </div>\n ))\n ) : (\n <div className=\"flex align-items-center gap-2\">\n <span className=\"font-bold text-900\">{successMessage?.trim()}</span>\n </div>\n )}\n </div>\n ),\n });\n};\n"]}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
|
|
2
|
+
import { ERROR_MESSAGES } from '../constants/error-messages';
|
|
3
|
+
import { FetchBaseQueryError } from '@reduxjs/toolkit/dist/query';
|
|
4
|
+
import { Toast } from 'primereact/toast';
|
|
5
|
+
import React, { useRef } from 'react';
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
interface ErrorResponseData {
|
|
9
|
+
message: string;
|
|
10
|
+
statusCode: number;
|
|
11
|
+
error: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
let toastRef: React.MutableRefObject<Toast | null> | null = null;
|
|
16
|
+
|
|
17
|
+
export const ToastContainer = () => {
|
|
18
|
+
toastRef = useRef(null);
|
|
19
|
+
|
|
20
|
+
return <Toast ref={toastRef} />;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
function isFetchBaseQueryErrorWithErrorResponse(error: any): error is FetchBaseQueryError & { data: ErrorResponseData } {
|
|
24
|
+
return error && typeof error === 'object' && 'data' in error && 'message' in error.data;
|
|
25
|
+
}
|
|
26
|
+
const extractErrorMessages = (errorObj: Record<string, string>): string[] => {
|
|
27
|
+
return Object.values(errorObj);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
export const handleError = (errorToast: any) => {
|
|
32
|
+
let errorMessage: any = errorToast ? errorToast : [ERROR_MESSAGES.ERROR_OCCURED];
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
if (typeof errorMessage == 'object') {
|
|
36
|
+
if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {
|
|
37
|
+
errorMessage = errorToast.data.message;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// if (isFetchBaseQueryErrorWithErrorResponse(errorToast)) {
|
|
41
|
+
// errorMessage = errorToast.data.message;
|
|
42
|
+
// } else {
|
|
43
|
+
// errorMessage = ['Something went wrong'];
|
|
44
|
+
// }
|
|
45
|
+
|
|
46
|
+
toastRef?.current?.show({
|
|
47
|
+
severity: 'error',
|
|
48
|
+
summary: ERROR_MESSAGES.ERROR,
|
|
49
|
+
detail: errorMessage,
|
|
50
|
+
life: 3000,
|
|
51
|
+
//@ts-ignore
|
|
52
|
+
content: (props) => (
|
|
53
|
+
<div className="flex flex-column align-items-left" style={{ flex: "1" }}>
|
|
54
|
+
{Array.isArray(errorMessage) ? (
|
|
55
|
+
errorMessage.map((message, index) => (
|
|
56
|
+
<div className="flex align-items-center gap-2" key={index}>
|
|
57
|
+
<span className="font-bold text-900">{message.trim()}</span>
|
|
58
|
+
</div>
|
|
59
|
+
))
|
|
60
|
+
) : (
|
|
61
|
+
<div className="flex align-items-center gap-2">
|
|
62
|
+
<span className="font-bold text-900">{errorMessage?.trim()}</span>
|
|
63
|
+
</div>
|
|
64
|
+
)}
|
|
65
|
+
</div>
|
|
66
|
+
),
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export const handleSuccess = (successMessage: any) => {
|
|
71
|
+
|
|
72
|
+
toastRef?.current?.show({
|
|
73
|
+
severity: 'error',
|
|
74
|
+
summary: ERROR_MESSAGES.IS_SUCCESS,
|
|
75
|
+
detail: successMessage,
|
|
76
|
+
life: 3000,
|
|
77
|
+
//@ts-ignore
|
|
78
|
+
content: (props) => (
|
|
79
|
+
<div className="flex flex-column align-items-left" style={{ flex: "1" }}>
|
|
80
|
+
{Array.isArray(successMessage) ? (
|
|
81
|
+
successMessage.map((message, index) => (
|
|
82
|
+
<div className="flex align-items-center gap-2" key={index}>
|
|
83
|
+
<span className="font-bold text-900">{message.trim()}</span>
|
|
84
|
+
</div>
|
|
85
|
+
))
|
|
86
|
+
) : (
|
|
87
|
+
<div className="flex align-items-center gap-2">
|
|
88
|
+
<span className="font-bold text-900">{successMessage?.trim()}</span>
|
|
89
|
+
</div>
|
|
90
|
+
)}
|
|
91
|
+
</div>
|
|
92
|
+
),
|
|
93
|
+
});
|
|
94
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Toast } from "primereact/toast";
|
|
2
|
+
import { RefObject } from "react";
|
|
3
|
+
declare const showToast: (toast: RefObject<Toast>, severity: "success" | "error" | "info", summary: string, detail: string) => void;
|
|
4
|
+
export default showToast;
|
|
5
|
+
//# sourceMappingURL=showToast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"showToast.d.ts","sourceRoot":"","sources":["../../src/helpers/showToast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,QAAA,MAAM,SAAS,UAAW,UAAU,KAAK,CAAC,YAAY,SAAS,GAAG,OAAO,GAAG,MAAM,WAAW,MAAM,UAAU,MAAM,SAQlH,CAAC;AACF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var showToast = function (toast, severity, summary, detail) {
|
|
13
|
+
var _a;
|
|
14
|
+
(_a = toast.current) === null || _a === void 0 ? void 0 : _a.show(__assign({ severity: severity, summary: summary, detail: detail }, (severity === "error" ? { sticky: true } : { life: 3000 })));
|
|
15
|
+
};
|
|
16
|
+
export default showToast;
|
|
17
|
+
//# sourceMappingURL=showToast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"showToast.js","sourceRoot":"","sources":["../../src/helpers/showToast.ts"],"names":[],"mappings":";;;;;;;;;;;AAGA,IAAM,SAAS,GAAG,UAAC,KAAuB,EAAE,QAAsC,EAAE,OAAe,EAAE,MAAc;;IAC/G,MAAA,KAAK,CAAC,OAAO,0CAAE,IAAI,YACf,QAAQ,UAAA,EACR,OAAO,SAAA,EACP,MAAM,QAAA,IAEH,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAC/D,CAAC;AACP,CAAC,CAAC;AACF,eAAe,SAAS,CAAC","sourcesContent":["import { Toast } from \"primereact/toast\";\nimport { RefObject } from \"react\";\n\nconst showToast = (toast: RefObject<Toast>, severity: \"success\" | \"error\" | \"info\", summary: string, detail: string) => {\n toast.current?.show({\n severity,\n summary,\n detail,\n // stays until user closes\n ...(severity === \"error\" ? { sticky: true } : { life: 3000 }),\n });\n};\nexport default showToast;"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Toast } from "primereact/toast";
|
|
2
|
+
import { RefObject } from "react";
|
|
3
|
+
|
|
4
|
+
const showToast = (toast: RefObject<Toast>, severity: "success" | "error" | "info", summary: string, detail: string) => {
|
|
5
|
+
toast.current?.show({
|
|
6
|
+
severity,
|
|
7
|
+
summary,
|
|
8
|
+
detail,
|
|
9
|
+
// stays until user closes
|
|
10
|
+
...(severity === "error" ? { sticky: true } : { life: 3000 }),
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
export default showToast;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Studio Sandbox Mode API
|
|
3
|
+
*
|
|
4
|
+
* This module isolates the application layout from the Solid Studio UI.
|
|
5
|
+
* It dynamically creates a container to wrap the application root, converting
|
|
6
|
+
* it into a relative containing block. This prevents \`position: fixed\` elements
|
|
7
|
+
* within the application from inadvertently overlapping with the global Studio UI.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Wraps the app root into the sandbox container.
|
|
11
|
+
*/
|
|
12
|
+
export declare function enableStudioMode(): void;
|
|
13
|
+
/**
|
|
14
|
+
* Restores the application to its original state.
|
|
15
|
+
*/
|
|
16
|
+
export declare function disableStudioMode(): void;
|
|
17
|
+
/**
|
|
18
|
+
* Returns the active scroll element based on sandbox state.
|
|
19
|
+
* When Studio Mode is enabled, the scroll element becomes the container.
|
|
20
|
+
* Otherwise, it uses the default Window object.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getScrollElement(): HTMLElement | Window;
|
|
23
|
+
/**
|
|
24
|
+
* Returns the current vertical scroll position.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getScrollY(): number;
|
|
27
|
+
/**
|
|
28
|
+
* Returns the effective viewport height.
|
|
29
|
+
*/
|
|
30
|
+
export declare function getViewportHeight(): number;
|
|
31
|
+
//# sourceMappingURL=studioSandbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studioSandbox.d.ts","sourceRoot":"","sources":["../../src/helpers/studioSandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH;;GAEG;AACH,wBAAgB,gBAAgB,SAgC/B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,SAoBhC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,GAAG,MAAM,CAOvD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAOnC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAO1C"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Studio Sandbox Mode API
|
|
3
|
+
*
|
|
4
|
+
* This module isolates the application layout from the Solid Studio UI.
|
|
5
|
+
* It dynamically creates a container to wrap the application root, converting
|
|
6
|
+
* it into a relative containing block. This prevents \`position: fixed\` elements
|
|
7
|
+
* within the application from inadvertently overlapping with the global Studio UI.
|
|
8
|
+
*/
|
|
9
|
+
var originalRootParent = null;
|
|
10
|
+
var originalRootNextSibling = null;
|
|
11
|
+
var isSandboxActive = false;
|
|
12
|
+
function getAppRoot() {
|
|
13
|
+
// Determine the root depending on the framework (Vite uses #root, Next uses #__next)
|
|
14
|
+
return document.getElementById("root") || document.getElementById("__next") || document.body.firstElementChild;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Wraps the app root into the sandbox container.
|
|
18
|
+
*/
|
|
19
|
+
export function enableStudioMode() {
|
|
20
|
+
if (typeof window === "undefined" || isSandboxActive)
|
|
21
|
+
return;
|
|
22
|
+
var appRoot = getAppRoot();
|
|
23
|
+
if (!appRoot || appRoot.id === "solid-studio-root" || appRoot.id === "solid-studio-app-container") {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
var parent = appRoot.parentNode;
|
|
27
|
+
if (!parent)
|
|
28
|
+
return;
|
|
29
|
+
isSandboxActive = true;
|
|
30
|
+
originalRootParent = parent;
|
|
31
|
+
originalRootNextSibling = appRoot.nextSibling;
|
|
32
|
+
// Create the outer wrapper
|
|
33
|
+
var studioRoot = document.createElement("div");
|
|
34
|
+
studioRoot.id = "solid-studio-root";
|
|
35
|
+
// Create the isolation container
|
|
36
|
+
var appContainer = document.createElement("div");
|
|
37
|
+
appContainer.id = "solid-studio-app-container";
|
|
38
|
+
// Re-parent the app node
|
|
39
|
+
appContainer.appendChild(appRoot);
|
|
40
|
+
studioRoot.appendChild(appContainer);
|
|
41
|
+
// Insert the wrapper into the DOM where the root used to be
|
|
42
|
+
parent.insertBefore(studioRoot, originalRootNextSibling);
|
|
43
|
+
// Set a class on the body to indicate Studio Mode
|
|
44
|
+
document.body.classList.add("solid-studio-active");
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Restores the application to its original state.
|
|
48
|
+
*/
|
|
49
|
+
export function disableStudioMode() {
|
|
50
|
+
if (typeof window === "undefined" || !isSandboxActive)
|
|
51
|
+
return;
|
|
52
|
+
var studioRoot = document.getElementById("solid-studio-root");
|
|
53
|
+
var appContainer = document.getElementById("solid-studio-app-container");
|
|
54
|
+
// Find our wrapped app root
|
|
55
|
+
var appRoot = appContainer === null || appContainer === void 0 ? void 0 : appContainer.firstElementChild;
|
|
56
|
+
if (studioRoot && appRoot && originalRootParent) {
|
|
57
|
+
originalRootParent.insertBefore(appRoot, originalRootNextSibling);
|
|
58
|
+
studioRoot.remove();
|
|
59
|
+
}
|
|
60
|
+
isSandboxActive = false;
|
|
61
|
+
originalRootParent = null;
|
|
62
|
+
originalRootNextSibling = null;
|
|
63
|
+
// Remove body class
|
|
64
|
+
document.body.classList.remove("solid-studio-active");
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Returns the active scroll element based on sandbox state.
|
|
68
|
+
* When Studio Mode is enabled, the scroll element becomes the container.
|
|
69
|
+
* Otherwise, it uses the default Window object.
|
|
70
|
+
*/
|
|
71
|
+
export function getScrollElement() {
|
|
72
|
+
if (typeof window === "undefined")
|
|
73
|
+
return window;
|
|
74
|
+
if (isSandboxActive) {
|
|
75
|
+
var container = document.getElementById("solid-studio-app-container");
|
|
76
|
+
return container || window;
|
|
77
|
+
}
|
|
78
|
+
return window;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Returns the current vertical scroll position.
|
|
82
|
+
*/
|
|
83
|
+
export function getScrollY() {
|
|
84
|
+
if (typeof window === "undefined")
|
|
85
|
+
return 0;
|
|
86
|
+
if (isSandboxActive) {
|
|
87
|
+
var container = document.getElementById("solid-studio-app-container");
|
|
88
|
+
return container ? container.scrollTop : 0;
|
|
89
|
+
}
|
|
90
|
+
return window.scrollY;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Returns the effective viewport height.
|
|
94
|
+
*/
|
|
95
|
+
export function getViewportHeight() {
|
|
96
|
+
if (typeof window === "undefined")
|
|
97
|
+
return 0;
|
|
98
|
+
if (isSandboxActive) {
|
|
99
|
+
var container = document.getElementById("solid-studio-app-container");
|
|
100
|
+
return container ? container.clientHeight : window.innerHeight;
|
|
101
|
+
}
|
|
102
|
+
return window.innerHeight;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=studioSandbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studioSandbox.js","sourceRoot":"","sources":["../../src/helpers/studioSandbox.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Studio Sandbox Mode API\n * \n * This module isolates the application layout from the Solid Studio UI. \n * It dynamically creates a container to wrap the application root, converting\n * it into a relative containing block. This prevents \\`position: fixed\\` elements \n * within the application from inadvertently overlapping with the global Studio UI.\n */\n\nlet originalRootParent: ParentNode | null = null;\nlet originalRootNextSibling: Node | null = null;\nlet isSandboxActive = false;\n\nfunction getAppRoot() {\n // Determine the root depending on the framework (Vite uses #root, Next uses #__next)\n return document.getElementById(\"root\") || document.getElementById(\"__next\") || document.body.firstElementChild;\n}\n\n/**\n * Wraps the app root into the sandbox container.\n */\nexport function enableStudioMode() {\n if (typeof window === \"undefined\" || isSandboxActive) return;\n\n const appRoot = getAppRoot();\n if (!appRoot || appRoot.id === \"solid-studio-root\" || appRoot.id === \"solid-studio-app-container\") {\n return;\n }\n\n const parent = appRoot.parentNode;\n if (!parent) return;\n\n isSandboxActive = true;\n originalRootParent = parent;\n originalRootNextSibling = appRoot.nextSibling;\n\n // Create the outer wrapper\n const studioRoot = document.createElement(\"div\");\n studioRoot.id = \"solid-studio-root\";\n\n // Create the isolation container\n const appContainer = document.createElement(\"div\");\n appContainer.id = \"solid-studio-app-container\";\n\n // Re-parent the app node\n appContainer.appendChild(appRoot);\n studioRoot.appendChild(appContainer);\n\n // Insert the wrapper into the DOM where the root used to be\n parent.insertBefore(studioRoot, originalRootNextSibling);\n\n // Set a class on the body to indicate Studio Mode\n document.body.classList.add(\"solid-studio-active\");\n}\n\n/**\n * Restores the application to its original state.\n */\nexport function disableStudioMode() {\n if (typeof window === \"undefined\" || !isSandboxActive) return;\n\n const studioRoot = document.getElementById(\"solid-studio-root\");\n const appContainer = document.getElementById(\"solid-studio-app-container\");\n\n // Find our wrapped app root\n const appRoot = appContainer?.firstElementChild;\n\n if (studioRoot && appRoot && originalRootParent) {\n originalRootParent.insertBefore(appRoot, originalRootNextSibling);\n studioRoot.remove();\n }\n\n isSandboxActive = false;\n originalRootParent = null;\n originalRootNextSibling = null;\n\n // Remove body class\n document.body.classList.remove(\"solid-studio-active\");\n}\n\n/**\n * Returns the active scroll element based on sandbox state.\n * When Studio Mode is enabled, the scroll element becomes the container.\n * Otherwise, it uses the default Window object.\n */\nexport function getScrollElement(): HTMLElement | Window {\n if (typeof window === \"undefined\") return window;\n if (isSandboxActive) {\n const container = document.getElementById(\"solid-studio-app-container\");\n return container || window;\n }\n return window;\n}\n\n/**\n * Returns the current vertical scroll position.\n */\nexport function getScrollY(): number {\n if (typeof window === \"undefined\") return 0;\n if (isSandboxActive) {\n const container = document.getElementById(\"solid-studio-app-container\");\n return container ? container.scrollTop : 0;\n }\n return window.scrollY;\n}\n\n/**\n * Returns the effective viewport height.\n */\nexport function getViewportHeight(): number {\n if (typeof window === \"undefined\") return 0;\n if (isSandboxActive) {\n const container = document.getElementById(\"solid-studio-app-container\");\n return container ? container.clientHeight : window.innerHeight;\n }\n return window.innerHeight;\n}\n"]}
|