@solidxai/core-ui 0.1.12-beta.7 → 0.1.12-beta.8
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 +19 -17
- package/dist/components/auth/AuthLayout.js.map +1 -1
- package/dist/components/auth/AuthLayout.tsx +59 -34
- package/dist/components/common/BackendReconnectIndicator.d.ts +6 -0
- package/dist/components/common/BackendReconnectIndicator.d.ts.map +1 -0
- package/dist/components/common/BackendReconnectIndicator.js +25 -0
- package/dist/components/common/BackendReconnectIndicator.js.map +1 -0
- package/dist/components/common/BackendReconnectIndicator.tsx +45 -0
- package/dist/components/common/SettingsComponent.d.ts.map +1 -1
- package/dist/components/common/SettingsComponent.js +7 -3
- package/dist/components/common/SettingsComponent.js.map +1 -1
- package/dist/components/common/SettingsComponent.module.css +144 -12
- package/dist/components/common/SettingsComponent.tsx +22 -3
- package/dist/components/common/SolidAdmin.d.ts.map +1 -1
- package/dist/components/common/SolidAdmin.js +7 -2
- package/dist/components/common/SolidAdmin.js.map +1 -1
- package/dist/components/common/SolidAdmin.tsx +7 -2
- package/dist/components/common/SolidBreadcrumb.d.ts.map +1 -1
- package/dist/components/common/SolidBreadcrumb.js +1 -6
- package/dist/components/common/SolidBreadcrumb.js.map +1 -1
- package/dist/components/common/SolidBreadcrumb.tsx +1 -8
- package/dist/components/common/SolidMaterialSymbol.d.ts +10 -0
- package/dist/components/common/SolidMaterialSymbol.d.ts.map +1 -0
- package/dist/components/common/SolidMaterialSymbol.js +69 -0
- package/dist/components/common/SolidMaterialSymbol.js.map +1 -0
- package/dist/components/common/SolidMaterialSymbol.tsx +96 -0
- package/dist/components/common/SolidToastProvider.d.ts.map +1 -1
- package/dist/components/common/SolidToastProvider.js +14 -1
- package/dist/components/common/SolidToastProvider.js.map +1 -1
- package/dist/components/common/SolidToastProvider.tsx +19 -1
- package/dist/components/core/common/SolidAccountSettings/SolidAccountSettings.module.css +3 -1
- package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.js +3 -2
- package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
- package/dist/components/core/common/SolidGlobalSearchElement.tsx +14 -18
- 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 +43 -16
- 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 +24 -2
- package/dist/components/core/form/SolidFormFooter.js +1 -1
- package/dist/components/core/form/SolidFormFooter.js.map +1 -1
- package/dist/components/core/form/SolidFormFooter.tsx +1 -1
- package/dist/components/core/form/SolidFormLayouts.js +1 -1
- package/dist/components/core/form/SolidFormLayouts.js.map +1 -1
- package/dist/components/core/form/SolidFormLayouts.tsx +2 -2
- package/dist/components/core/form/fields/SolidMediaMultipleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.js +120 -56
- package/dist/components/core/form/fields/SolidMediaMultipleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaMultipleField.tsx +63 -50
- package/dist/components/core/form/fields/SolidMediaSingleField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.js +115 -37
- package/dist/components/core/form/fields/SolidMediaSingleField.js.map +1 -1
- package/dist/components/core/form/fields/SolidMediaSingleField.tsx +36 -35
- package/dist/components/core/form/fields/SolidRichTextField.d.ts.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.js +67 -4
- package/dist/components/core/form/fields/SolidRichTextField.js.map +1 -1
- package/dist/components/core/form/fields/SolidRichTextField.tsx +89 -7
- package/dist/components/core/form/fields/mediaFieldUtils.d.ts +3 -0
- package/dist/components/core/form/fields/mediaFieldUtils.d.ts.map +1 -0
- package/dist/components/core/form/fields/mediaFieldUtils.js +30 -0
- package/dist/components/core/form/fields/mediaFieldUtils.js.map +1 -0
- package/dist/components/core/form/fields/mediaFieldUtils.ts +45 -0
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -1
- package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +3 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.d.ts.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js +22 -23
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.js.map +1 -1
- package/dist/components/core/form/fields/relations/SolidRelationManyToOneField.tsx +13 -7
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js +16 -11
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconEditWidget.tsx +32 -18
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.d.ts.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.js +3 -1
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.js.map +1 -1
- package/dist/components/core/form/fields/widgets/SolidIconViewWidget.tsx +11 -5
- package/dist/components/core/list/SolidDataTable.d.ts.map +1 -1
- package/dist/components/core/list/SolidDataTable.js +3 -2
- package/dist/components/core/list/SolidDataTable.js.map +1 -1
- package/dist/components/core/list/SolidDataTable.tsx +3 -2
- package/dist/components/core/list/SolidListView.d.ts.map +1 -1
- package/dist/components/core/list/SolidListView.js +11 -5
- package/dist/components/core/list/SolidListView.js.map +1 -1
- package/dist/components/core/list/SolidListView.tsx +15 -8
- package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.js +1 -0
- package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
- package/dist/components/core/list/SolidListViewColumn.tsx +1 -0
- package/dist/components/core/list/columns/SolidShortTextColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.js +7 -2
- package/dist/components/core/list/columns/SolidShortTextColumn.js.map +1 -1
- package/dist/components/core/list/columns/SolidShortTextColumn.tsx +7 -2
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js +4 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToManyColumn.tsx +5 -2
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js +2 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationManyToOneColumn.tsx +2 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.d.ts.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js +4 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.js.map +1 -1
- package/dist/components/core/list/columns/relations/SolidRelationOneToManyColumn.tsx +5 -2
- package/dist/components/core/locales/SolidLocale.d.ts.map +1 -1
- package/dist/components/core/locales/SolidLocale.js +1 -1
- package/dist/components/core/locales/SolidLocale.js.map +1 -1
- package/dist/components/core/locales/SolidLocale.tsx +1 -0
- package/dist/components/core/model/CreateModel.css +26 -0
- package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaData.js +21 -3
- package/dist/components/core/model/FieldMetaData.js.map +1 -1
- package/dist/components/core/model/FieldMetaData.tsx +45 -4
- package/dist/components/core/model/FieldMetaDataForm.css +82 -0
- package/dist/components/core/model/FieldMetaDataForm.d.ts +1 -0
- package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.js +246 -235
- package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
- package/dist/components/core/model/FieldMetaDataForm.tsx +46 -34
- package/dist/components/core/model/FieldSelector.js +1 -1
- package/dist/components/core/model/FieldSelector.js.map +1 -1
- package/dist/components/core/model/FieldSelector.tsx +1 -1
- package/dist/components/core/model/ModelMetaData.js +1 -1
- package/dist/components/core/model/ModelMetaData.js.map +1 -1
- package/dist/components/core/model/ModelMetaData.tsx +1 -1
- package/dist/components/core/module/CreateModule.css +55 -2
- package/dist/components/core/module/CreateModule.d.ts.map +1 -1
- package/dist/components/core/module/CreateModule.js +2 -2
- package/dist/components/core/module/CreateModule.js.map +1 -1
- package/dist/components/core/module/CreateModule.tsx +3 -2
- package/dist/components/core/module/ModuleMetadataExplorer.css +27 -0
- package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.js +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -1
- package/dist/components/core/module/ModuleMetadataExplorer.tsx +1 -0
- package/dist/components/core/tree/SolidTreeView.d.ts.map +1 -1
- package/dist/components/core/tree/SolidTreeView.js +6 -1
- package/dist/components/core/tree/SolidTreeView.js.map +1 -1
- package/dist/components/core/tree/SolidTreeView.tsx +7 -1
- package/dist/components/layout/AdminHeaderActions.d.ts.map +1 -1
- package/dist/components/layout/AdminHeaderActions.js +10 -9
- package/dist/components/layout/AdminHeaderActions.js.map +1 -1
- package/dist/components/layout/AdminHeaderActions.tsx +2 -0
- package/dist/components/layout/AppSidebar.d.ts.map +1 -1
- package/dist/components/layout/AppSidebar.js +2 -1
- package/dist/components/layout/AppSidebar.js.map +1 -1
- package/dist/components/layout/AppSidebar.tsx +12 -5
- package/dist/components/layout/SolidMenuItemIcon.d.ts +9 -0
- package/dist/components/layout/SolidMenuItemIcon.d.ts.map +1 -0
- package/dist/components/layout/SolidMenuItemIcon.js +20 -0
- package/dist/components/layout/SolidMenuItemIcon.js.map +1 -0
- package/dist/components/layout/SolidMenuItemIcon.tsx +45 -0
- package/dist/components/layout/navbar-two-menu.d.ts.map +1 -1
- package/dist/components/layout/navbar-two-menu.js +6 -7
- package/dist/components/layout/navbar-two-menu.js.map +1 -1
- package/dist/components/layout/navbar-two-menu.tsx +4 -12
- package/dist/components/shad-cn-ui/SolidCodeEditor.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.js +30 -2
- package/dist/components/shad-cn-ui/SolidCodeEditor.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidCodeEditor.tsx +38 -1
- package/dist/helpers/backendHealthMonitor.d.ts +39 -0
- package/dist/helpers/backendHealthMonitor.d.ts.map +1 -0
- package/dist/helpers/backendHealthMonitor.js +255 -0
- package/dist/helpers/backendHealthMonitor.js.map +1 -0
- package/dist/helpers/backendHealthMonitor.ts +177 -0
- package/dist/helpers/helpers.d.ts +1 -0
- package/dist/helpers/helpers.d.ts.map +1 -1
- package/dist/helpers/helpers.js +9 -0
- package/dist/helpers/helpers.js.map +1 -1
- package/dist/helpers/helpers.ts +11 -1
- package/dist/helpers/menuItemIcons.d.ts +34 -0
- package/dist/helpers/menuItemIcons.d.ts.map +1 -0
- package/dist/helpers/menuItemIcons.js +144 -0
- package/dist/helpers/menuItemIcons.js.map +1 -0
- package/dist/helpers/menuItemIcons.ts +191 -0
- package/dist/helpers/relationDisplay.d.ts +3 -0
- package/dist/helpers/relationDisplay.d.ts.map +1 -0
- package/dist/helpers/relationDisplay.js +92 -0
- package/dist/helpers/relationDisplay.js.map +1 -0
- package/dist/helpers/relationDisplay.ts +101 -0
- package/dist/helpers/settingsPayload.d.ts +1 -0
- package/dist/helpers/settingsPayload.d.ts.map +1 -1
- package/dist/helpers/settingsPayload.js.map +1 -1
- package/dist/helpers/settingsPayload.ts +1 -0
- package/dist/helpers/solidIcons.d.ts +2 -0
- package/dist/helpers/solidIcons.d.ts.map +1 -1
- package/dist/helpers/solidIcons.js +8 -0
- package/dist/helpers/solidIcons.js.map +1 -1
- package/dist/helpers/solidIcons.tsx +10 -1
- package/dist/helpers/waitForBackendAvailability.d.ts +1 -0
- package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -1
- package/dist/helpers/waitForBackendAvailability.js +35 -22
- package/dist/helpers/waitForBackendAvailability.js.map +1 -1
- package/dist/helpers/waitForBackendAvailability.ts +18 -12
- package/dist/http/solidHttp.d.ts.map +1 -1
- package/dist/http/solidHttp.js +10 -4
- package/dist/http/solidHttp.js.map +1 -1
- package/dist/http/solidHttp.ts +9 -4
- package/dist/redux/api/datasourceIntrospectionApi.d.ts +4 -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 +4 -0
- package/dist/redux/api/fetchBaseQuery.d.ts.map +1 -1
- package/dist/redux/api/fetchBaseQuery.js +9 -3
- package/dist/redux/api/fetchBaseQuery.js.map +1 -1
- package/dist/redux/api/fetchBaseQuery.tsx +9 -3
- package/dist/redux/store/StoreProvider.d.ts.map +1 -1
- package/dist/redux/store/StoreProvider.js +4 -3
- package/dist/redux/store/StoreProvider.js.map +1 -1
- package/dist/redux/store/StoreProvider.tsx +4 -3
- package/dist/resources/globals.css +341 -49
- package/dist/resources/solid-custom.css +410 -12
- package/dist/resources/solid-responsive.css +27 -16
- package/dist/resources/solid-tailwind-generated.css +1 -1
- package/dist/routes/AppEventListener.d.ts.map +1 -1
- package/dist/routes/AppEventListener.js +23 -0
- package/dist/routes/AppEventListener.js.map +1 -1
- package/dist/routes/AppEventListener.tsx +29 -0
- package/dist/routes/pages/admin/core/DashboardPage.module.css +12 -0
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.css +306 -3
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js +745 -393
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DatasourceIntrospectionPage.tsx +1074 -420
- package/dist/routes/pages/admin/core/DatasourcesPage.css +15 -0
- package/dist/routes/pages/admin/core/DatasourcesPage.d.ts.map +1 -1
- package/dist/routes/pages/admin/core/DatasourcesPage.js +7 -188
- package/dist/routes/pages/admin/core/DatasourcesPage.js.map +1 -1
- package/dist/routes/pages/admin/core/DatasourcesPage.tsx +3 -393
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width:576px){.container{max-width:576px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:992px){.container{max-width:992px}}@media (min-width:1200px){.container{max-width:1200px}}@media (min-width:1536px){.container{max-width:1536px}}.\!visible{visibility:visible!important}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.bottom-0{bottom:0}.left-0{left:0}.right-2{right:.5rem}.top-0{top:0}.top-2{top:.5rem}.m-0{margin:0}.m-20{margin:5rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.-mt-2{margin-top:-.5rem}.mb-0{margin-bottom:0}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.\!inline{display:inline!important}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-12{height:3rem}.h-2rem{height:2rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-2rem{max-height:2rem}.min-h-0{min-height:0}.min-h-\[240px\]{min-height:240px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-1\/4{width:25%}.w-11{width:2.75rem}.w-25rem{width:25rem}.w-2rem{width:2rem}.w-3\/4{width:75%}.w-35rem{width:35rem}.w-4rem{width:4rem}.w-9{width:2.25rem}.w-\[16\.666667\%\]{width:16.666667%}.w-\[41\.666667\%\]{width:41.666667%}.w-\[58\.333333\%\]{width:58.333333%}.w-\[66\.666667\%\]{width:66.666667%}.w-\[8\.333333\%\]{width:8.333333%}.w-\[83\.333333\%\]{width:83.333333%}.w-\[91\.666667\%\]{width:91.666667%}.w-full{width:100%}.min-w-0{min-width:0}.min-w-full{min-width:100%}.max-w-2rem{max-width:2rem}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-rotate-180{--tw-rotate:-180deg}.-rotate-180,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-disc{list-style-type:disc}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-y-2{row-gap:.5rem}.gap-y-4{row-gap:1rem}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-0{border-width:0}.border-\[var\(--surface-200\)\]{border-color:var(--surface-200)}.border-cyan-200{--tw-border-opacity:1;border-color:rgb(165 243 252/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.bg-\[var\(--primary-color-text\)\]{background-color:var(--primary-color-text)}.bg-\[var\(--surface-0\)\]{background-color:var(--surface-0)}.bg-\[var\(--surface-card\)\]{background-color:var(--surface-card)}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pe-2{padding-inline-end:.5rem}.pl-2{padding-left:.5rem}.pl-6{padding-left:1.5rem}.pr-1{padding-right:.25rem}.pr-12{padding-right:3rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tracking-wider{letter-spacing:.05em}.text-\[var\(--primary-color\)\]{color:var(--primary-color)}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.opacity-60{opacity:.6}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hover\:opacity-90:hover{opacity:.9}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-300:disabled{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:576px){.sm\:ml-auto{margin-left:auto}.sm\:mt-2{margin-top:.5rem}.sm\:w-1\/2{width:50%}.sm\:w-1\/4{width:25%}.sm\:w-\[75\%\]{width:75%}.sm\:w-\[83\.333333\%\]{width:83.333333%}.sm\:w-full{width:100%}.sm\:flex-row{flex-direction:row}.sm\:gap-5{gap:1.25rem}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}}@media (min-width:768px){.md\:mb-3{margin-bottom:.75rem}.md\:mt-0{margin-top:0}.md\:mt-2{margin-top:.5rem}.md\:mt-3{margin-top:.75rem}.md\:mt-6{margin-top:1.5rem}.md\:mt-8{margin-top:2rem}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-1{height:.25rem}.md\:h-2rem{height:2rem}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.333333%}.md\:w-1\/4{width:25%}.md\:w-20rem{width:20rem}.md\:w-25rem{width:25rem}.md\:w-4rem{width:4rem}.md\:w-\[41\.666667\%\]{width:41.666667%}.md\:w-\[58\.333333\%\]{width:58.333333%}.md\:w-\[66\.666667\%\]{width:66.666667%}.md\:flex-row{flex-direction:row}.md\:flex-nowrap{flex-wrap:nowrap}.md\:gap-1{gap:.25rem}.md\:gap-2{gap:.5rem}.md\:p-4{padding:1rem}.md\:p-8{padding:2rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:py-0{padding-top:0;padding-bottom:0}.md\:py-3{padding-top:.75rem;padding-bottom:.75rem}.md\:pb-0{padding-bottom:0}.md\:pl-0{padding-left:0}.md\:pl-2{padding-left:.5rem}.md\:pr-0{padding-right:0}.md\:pt-1{padding-top:.25rem}}@media (min-width:992px){.lg\:static{position:static}.lg\:mt-0{margin-top:0}.lg\:mt-4{margin-top:1rem}.lg\:mt-5{margin-top:1.25rem}.lg\:flex{display:flex}.lg\:inline-flex{display:inline-flex}.lg\:hidden{display:none}.lg\:w-1\/2{width:50%}.lg\:w-1\/4{width:25%}.lg\:w-\[41\.666667\%\]{width:41.666667%}.lg\:w-\[58\.333333\%\]{width:58.333333%}.lg\:w-\[83\.333333\%\]{width:83.333333%}.lg\:flex-row{flex-direction:row}.lg\:gap-y-0{row-gap:0}.lg\:p-6{padding:1.5rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:pb-0{padding-bottom:0}.lg\:pl-4{padding-left:1rem}.lg\:pr-0{padding-right:0}.lg\:pr-4{padding-right:1rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width:1200px){.xl\:w-1\/2{width:50%}.xl\:w-1\/3{width:33.333333%}.xl\:w-\[41\.666667\%\]{width:41.666667%}.xl\:w-\[66\.666667\%\]{width:66.666667%}.xl\:w-\[83\.333333\%\]{width:83.333333%}.xl\:flex-row{flex-direction:row}.xl\:items-center{align-items:center}}
|
|
1
|
+
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.container{width:100%}@media (min-width:576px){.container{max-width:576px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:992px){.container{max-width:992px}}@media (min-width:1200px){.container{max-width:1200px}}@media (min-width:1536px){.container{max-width:1536px}}.\!visible{visibility:visible!important}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.bottom-0{bottom:0}.left-0{left:0}.right-2{right:.5rem}.top-0{top:0}.top-2{top:.5rem}.m-0{margin:0}.m-20{margin:5rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.-mt-2{margin-top:-.5rem}.mb-0{margin-bottom:0}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.\!inline{display:inline!important}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-12{height:3rem}.h-2rem{height:2rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-2rem{max-height:2rem}.min-h-0{min-height:0}.min-h-\[240px\]{min-height:240px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-1\/4{width:25%}.w-11{width:2.75rem}.w-25rem{width:25rem}.w-2rem{width:2rem}.w-3\/4{width:75%}.w-35rem{width:35rem}.w-4rem{width:4rem}.w-9{width:2.25rem}.w-\[16\.666667\%\]{width:16.666667%}.w-\[41\.666667\%\]{width:41.666667%}.w-\[58\.333333\%\]{width:58.333333%}.w-\[66\.666667\%\]{width:66.666667%}.w-\[8\.333333\%\]{width:8.333333%}.w-\[83\.333333\%\]{width:83.333333%}.w-\[91\.666667\%\]{width:91.666667%}.w-full{width:100%}.min-w-0{min-width:0}.min-w-full{min-width:100%}.max-w-2rem{max-width:2rem}.max-w-none{max-width:none}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-rotate-180{--tw-rotate:-180deg}.-rotate-180,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-disc{list-style-type:disc}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-y-2{row-gap:.5rem}.gap-y-4{row-gap:1rem}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-0{border-width:0}.border-\[var\(--surface-200\)\]{border-color:var(--surface-200)}.border-cyan-200{--tw-border-opacity:1;border-color:rgb(165 243 252/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.bg-\[var\(--primary-color-text\)\]{background-color:var(--primary-color-text)}.bg-\[var\(--surface-0\)\]{background-color:var(--surface-0)}.bg-\[var\(--surface-card\)\]{background-color:var(--surface-card)}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pe-2{padding-inline-end:.5rem}.pl-2{padding-left:.5rem}.pl-6{padding-left:1.5rem}.pr-1{padding-right:.25rem}.pr-12{padding-right:3rem}.pr-4{padding-right:1rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tracking-wider{letter-spacing:.05em}.text-\[var\(--primary-color\)\]{color:var(--primary-color)}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-60{opacity:.6}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hover\:opacity-90:hover{opacity:.9}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-gray-300:disabled{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:576px){.sm\:ml-auto{margin-left:auto}.sm\:mt-2{margin-top:.5rem}.sm\:w-1\/2{width:50%}.sm\:w-1\/4{width:25%}.sm\:w-\[75\%\]{width:75%}.sm\:w-\[83\.333333\%\]{width:83.333333%}.sm\:w-full{width:100%}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}}@media (min-width:768px){.md\:mb-3{margin-bottom:.75rem}.md\:mt-0{margin-top:0}.md\:mt-2{margin-top:.5rem}.md\:mt-3{margin-top:.75rem}.md\:mt-6{margin-top:1.5rem}.md\:mt-8{margin-top:2rem}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-1{height:.25rem}.md\:h-2rem{height:2rem}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.333333%}.md\:w-1\/4{width:25%}.md\:w-20rem{width:20rem}.md\:w-25rem{width:25rem}.md\:w-4rem{width:4rem}.md\:w-\[41\.666667\%\]{width:41.666667%}.md\:w-\[58\.333333\%\]{width:58.333333%}.md\:w-\[66\.666667\%\]{width:66.666667%}.md\:flex-row{flex-direction:row}.md\:flex-nowrap{flex-wrap:nowrap}.md\:gap-1{gap:.25rem}.md\:gap-2{gap:.5rem}.md\:p-4{padding:1rem}.md\:p-8{padding:2rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:py-0{padding-top:0;padding-bottom:0}.md\:py-3{padding-top:.75rem;padding-bottom:.75rem}.md\:pb-0{padding-bottom:0}.md\:pl-0{padding-left:0}.md\:pl-2{padding-left:.5rem}.md\:pr-0{padding-right:0}.md\:pt-1{padding-top:.25rem}}@media (min-width:992px){.lg\:static{position:static}.lg\:mt-0{margin-top:0}.lg\:mt-4{margin-top:1rem}.lg\:mt-5{margin-top:1.25rem}.lg\:flex{display:flex}.lg\:inline-flex{display:inline-flex}.lg\:hidden{display:none}.lg\:w-1\/2{width:50%}.lg\:w-1\/4{width:25%}.lg\:w-\[41\.666667\%\]{width:41.666667%}.lg\:w-\[58\.333333\%\]{width:58.333333%}.lg\:w-\[83\.333333\%\]{width:83.333333%}.lg\:flex-row{flex-direction:row}.lg\:gap-y-0{row-gap:0}.lg\:p-6{padding:1.5rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:pb-0{padding-bottom:0}.lg\:pl-4{padding-left:1rem}.lg\:pr-0{padding-right:0}.lg\:pr-4{padding-right:1rem}.lg\:pt-6{padding-top:1.5rem}.lg\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width:1200px){.xl\:w-1\/2{width:50%}.xl\:w-1\/3{width:33.333333%}.xl\:w-\[41\.666667\%\]{width:41.666667%}.xl\:w-\[66\.666667\%\]{width:66.666667%}.xl\:w-\[83\.333333\%\]{width:83.333333%}.xl\:flex-row{flex-direction:row}.xl\:items-center{align-items:center}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppEventListener.d.ts","sourceRoot":"","sources":["../../src/routes/AppEventListener.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AppEventListener.d.ts","sourceRoot":"","sources":["../../src/routes/AppEventListener.tsx"],"names":[],"mappings":"AAkEA,wBAAgB,gBAAgB,4CAyD/B"}
|
|
@@ -6,6 +6,7 @@ import { SolidStudio, PreviewModePersist } from "../components/layout/SolidAiStu
|
|
|
6
6
|
import { useDispatch } from "react-redux";
|
|
7
7
|
import { showToast } from "../redux/features/toastSlice";
|
|
8
8
|
import { env } from "../adapters/env";
|
|
9
|
+
import { backendHealthMonitor } from "../helpers/backendHealthMonitor";
|
|
9
10
|
function isDevMode() {
|
|
10
11
|
var envName = (env("VITE_SOLIDX_ENV") || "").toLowerCase();
|
|
11
12
|
return envName === "dev" || envName === "development";
|
|
@@ -68,6 +69,28 @@ export function AppEventListener() {
|
|
|
68
69
|
});
|
|
69
70
|
return function () { return off(); };
|
|
70
71
|
}, [dispatch, pathname]);
|
|
72
|
+
useEffect(function () {
|
|
73
|
+
var previousStatus = backendHealthMonitor.getState().status;
|
|
74
|
+
return backendHealthMonitor.subscribe(function (state) {
|
|
75
|
+
var nextStatus = state.status;
|
|
76
|
+
var didBecomeOffline = previousStatus !== "offline" && nextStatus === "offline";
|
|
77
|
+
previousStatus = nextStatus;
|
|
78
|
+
if (!didBecomeOffline) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
dispatch(showToast({
|
|
82
|
+
severity: "error",
|
|
83
|
+
summary: "Server unreachable",
|
|
84
|
+
detail: isDevMode() ? buildDevErrorDetail({
|
|
85
|
+
status: state.statusCode,
|
|
86
|
+
message: state.message || "Unable to reach the server. Please try again later.",
|
|
87
|
+
error: state.error,
|
|
88
|
+
}) : "We have been trying to reconnect to the server for over ".concat(Math.max(1, Math.round(state.unavailableToastDelayMs / 1000)), " seconds."),
|
|
89
|
+
sticky: isDevMode(),
|
|
90
|
+
life: isDevMode() ? 10000 : 5000,
|
|
91
|
+
}));
|
|
92
|
+
});
|
|
93
|
+
}, [dispatch]);
|
|
71
94
|
return (_jsxs(_Fragment, { children: [_jsx(SolidStudio, {}), _jsx(PreviewModePersist, {})] }));
|
|
72
95
|
}
|
|
73
96
|
//# sourceMappingURL=AppEventListener.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppEventListener.js","sourceRoot":"","sources":["../../src/routes/AppEventListener.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"AppEventListener.js","sourceRoot":"","sources":["../../src/routes/AppEventListener.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect } from \"react\";\nimport { eventBus, AppEvents } from \"../helpers/eventBus\";\nimport { usePathname } from \"../hooks/usePathname\";\nimport { SolidStudio, PreviewModePersist } from \"../components/layout/SolidAiStudioLayout\";\nimport { useDispatch } from \"react-redux\";\nimport { showToast } from \"../redux/features/toastSlice\";\nimport { env } from \"../adapters/env\";\nimport { backendHealthMonitor, type BackendHealthState } from \"../helpers/backendHealthMonitor\";\n\ntype GlobalErrorPayload = {\n status?: number | string;\n message?: string;\n error?: unknown;\n};\n\nfunction isDevMode() {\n const envName = (env(\"VITE_SOLIDX_ENV\") || \"\").toLowerCase();\n return envName === \"dev\" || envName === \"development\";\n}\n\nfunction formatUnknownValue(value: unknown) {\n if (typeof value === \"string\") return value;\n if (value === null || value === undefined) return \"\";\n\n try {\n return JSON.stringify(value, null, 2);\n } catch {\n return String(value);\n }\n}\n\nfunction buildDevErrorDetail(payload?: GlobalErrorPayload) {\n if (!payload) return undefined;\n\n const error = payload.error as any;\n const lines: string[] = [];\n\n if (payload.status !== undefined) {\n lines.push(`Status: ${String(payload.status)}`);\n }\n\n if (payload.message) {\n lines.push(`Summary: ${payload.message}`);\n }\n\n if (error?.message) {\n lines.push(`Error: ${error.message}`);\n }\n\n if (error?.code) {\n lines.push(`Code: ${error.code}`);\n }\n\n const responseData = error?.response?.data ?? error?.data;\n const responseText = formatUnknownValue(responseData);\n if (responseText) {\n lines.push(`Response:\\n${responseText}`);\n }\n\n if (error?.stack) {\n lines.push(`Stack:\\n${error.stack}`);\n }\n\n return lines.length > 0 ? lines.join(\"\\n\\n\") : undefined;\n}\n\nexport function AppEventListener() {\n const pathname = usePathname();\n const dispatch = useDispatch();\n\n useEffect(() => {\n const off = eventBus.on<GlobalErrorPayload>(AppEvents.GlobalError, (payload) => {\n if (!pathname.startsWith(\"/admin\") && !pathname.startsWith(\"/auth\")) {\n return;\n }\n\n dispatch(\n showToast({\n severity: \"error\",\n summary: payload?.message || \"Something went wrong\",\n detail: isDevMode() ? buildDevErrorDetail(payload) : undefined,\n sticky: isDevMode(),\n life: isDevMode() ? 10000 : 4000,\n })\n );\n });\n return () => off();\n }, [dispatch, pathname]);\n\n useEffect(() => {\n let previousStatus: BackendHealthState[\"status\"] = backendHealthMonitor.getState().status;\n\n return backendHealthMonitor.subscribe((state) => {\n const nextStatus = state.status;\n const didBecomeOffline = previousStatus !== \"offline\" && nextStatus === \"offline\";\n previousStatus = nextStatus;\n\n if (!didBecomeOffline) {\n return;\n }\n\n dispatch(\n showToast({\n severity: \"error\",\n summary: \"Server unreachable\",\n detail: isDevMode() ? buildDevErrorDetail({\n status: state.statusCode,\n message: state.message || \"Unable to reach the server. Please try again later.\",\n error: state.error,\n }) : `We have been trying to reconnect to the server for over ${Math.max(1, Math.round(state.unavailableToastDelayMs / 1000))} seconds.`,\n sticky: isDevMode(),\n life: isDevMode() ? 10000 : 5000,\n })\n );\n });\n }, [dispatch]);\n\n return (\n <>\n <SolidStudio />\n <PreviewModePersist />\n </>\n );\n}\n"]}
|
|
@@ -5,6 +5,7 @@ import { SolidStudio, PreviewModePersist } from "../components/layout/SolidAiStu
|
|
|
5
5
|
import { useDispatch } from "react-redux";
|
|
6
6
|
import { showToast } from "../redux/features/toastSlice";
|
|
7
7
|
import { env } from "../adapters/env";
|
|
8
|
+
import { backendHealthMonitor, type BackendHealthState } from "../helpers/backendHealthMonitor";
|
|
8
9
|
|
|
9
10
|
type GlobalErrorPayload = {
|
|
10
11
|
status?: number | string;
|
|
@@ -86,6 +87,34 @@ export function AppEventListener() {
|
|
|
86
87
|
return () => off();
|
|
87
88
|
}, [dispatch, pathname]);
|
|
88
89
|
|
|
90
|
+
useEffect(() => {
|
|
91
|
+
let previousStatus: BackendHealthState["status"] = backendHealthMonitor.getState().status;
|
|
92
|
+
|
|
93
|
+
return backendHealthMonitor.subscribe((state) => {
|
|
94
|
+
const nextStatus = state.status;
|
|
95
|
+
const didBecomeOffline = previousStatus !== "offline" && nextStatus === "offline";
|
|
96
|
+
previousStatus = nextStatus;
|
|
97
|
+
|
|
98
|
+
if (!didBecomeOffline) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
dispatch(
|
|
103
|
+
showToast({
|
|
104
|
+
severity: "error",
|
|
105
|
+
summary: "Server unreachable",
|
|
106
|
+
detail: isDevMode() ? buildDevErrorDetail({
|
|
107
|
+
status: state.statusCode,
|
|
108
|
+
message: state.message || "Unable to reach the server. Please try again later.",
|
|
109
|
+
error: state.error,
|
|
110
|
+
}) : `We have been trying to reconnect to the server for over ${Math.max(1, Math.round(state.unavailableToastDelayMs / 1000))} seconds.`,
|
|
111
|
+
sticky: isDevMode(),
|
|
112
|
+
life: isDevMode() ? 10000 : 5000,
|
|
113
|
+
})
|
|
114
|
+
);
|
|
115
|
+
});
|
|
116
|
+
}, [dispatch]);
|
|
117
|
+
|
|
89
118
|
return (
|
|
90
119
|
<>
|
|
91
120
|
<SolidStudio />
|
|
@@ -196,6 +196,18 @@
|
|
|
196
196
|
font-size: 0.9rem;
|
|
197
197
|
}
|
|
198
198
|
|
|
199
|
+
:global(html.dark) .widgetCard,
|
|
200
|
+
:global([data-theme="dark"]) .widgetCard {
|
|
201
|
+
border-color: color-mix(in srgb, var(--border) 82%, transparent);
|
|
202
|
+
background: var(--card);
|
|
203
|
+
box-shadow: inset 0 1px 0 color-mix(in srgb, var(--foreground) 2%, transparent);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
:global(html.dark) .widgetTitle,
|
|
207
|
+
:global([data-theme="dark"]) .widgetTitle {
|
|
208
|
+
color: var(--foreground);
|
|
209
|
+
}
|
|
210
|
+
|
|
199
211
|
@media (max-width: 768px) {
|
|
200
212
|
.page {
|
|
201
213
|
padding: 12px;
|
|
@@ -144,6 +144,137 @@
|
|
|
144
144
|
overflow: hidden;
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
+
.sdix-workspace-body {
|
|
148
|
+
display: grid;
|
|
149
|
+
grid-template-columns: 17rem minmax(0, 1fr);
|
|
150
|
+
gap: 0.85rem;
|
|
151
|
+
flex: 1 1 auto;
|
|
152
|
+
min-height: 0;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.sdix-workspace-rail {
|
|
156
|
+
display: flex;
|
|
157
|
+
flex-direction: column;
|
|
158
|
+
min-height: 0;
|
|
159
|
+
border: 1px solid #e7ebf3;
|
|
160
|
+
border-radius: 1rem;
|
|
161
|
+
background: #fff;
|
|
162
|
+
overflow: hidden;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.sdix-workspace-rail__header {
|
|
166
|
+
display: flex;
|
|
167
|
+
align-items: center;
|
|
168
|
+
justify-content: space-between;
|
|
169
|
+
gap: 0.5rem;
|
|
170
|
+
padding: 0.85rem 0.95rem 0.75rem;
|
|
171
|
+
border-bottom: 1px solid #edf0f8;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.sdix-workspace-rail__header strong {
|
|
175
|
+
font-size: 0.92rem;
|
|
176
|
+
color: #20263a;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.sdix-workspace-rail__header span {
|
|
180
|
+
display: inline-flex;
|
|
181
|
+
align-items: center;
|
|
182
|
+
justify-content: center;
|
|
183
|
+
min-width: 1.5rem;
|
|
184
|
+
height: 1.5rem;
|
|
185
|
+
padding: 0 0.45rem;
|
|
186
|
+
border-radius: 999px;
|
|
187
|
+
background: #f3f5fb;
|
|
188
|
+
color: #5b647a;
|
|
189
|
+
font-size: 0.75rem;
|
|
190
|
+
font-weight: 600;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.sdix-workspace-rail__list {
|
|
194
|
+
display: flex;
|
|
195
|
+
flex-direction: column;
|
|
196
|
+
gap: 0.35rem;
|
|
197
|
+
padding: 0.6rem;
|
|
198
|
+
min-height: 0;
|
|
199
|
+
overflow: auto;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.sdix-workspace-rail__item {
|
|
203
|
+
display: flex;
|
|
204
|
+
flex-direction: column;
|
|
205
|
+
gap: 0.35rem;
|
|
206
|
+
width: 100%;
|
|
207
|
+
padding: 0.72rem 0.78rem;
|
|
208
|
+
border: 1px solid #ebedf5;
|
|
209
|
+
border-radius: 0.85rem;
|
|
210
|
+
background: #fff;
|
|
211
|
+
text-align: left;
|
|
212
|
+
transition: border-color 120ms ease, background 120ms ease, box-shadow 120ms ease;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.sdix-workspace-rail__item:hover {
|
|
216
|
+
border-color: #d5daf0;
|
|
217
|
+
background: #fafbff;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.sdix-workspace-rail__item.is-active {
|
|
221
|
+
border-color: #cfc4fb;
|
|
222
|
+
background: #f5f1ff;
|
|
223
|
+
box-shadow: 0 0 0 1px rgba(123, 76, 222, 0.06);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.sdix-workspace-rail__item-main {
|
|
227
|
+
display: flex;
|
|
228
|
+
flex-direction: column;
|
|
229
|
+
gap: 0.15rem;
|
|
230
|
+
min-width: 0;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.sdix-workspace-rail__item-main strong {
|
|
234
|
+
color: #20263a;
|
|
235
|
+
font-size: 0.88rem;
|
|
236
|
+
line-height: 1.25;
|
|
237
|
+
word-break: break-word;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.sdix-workspace-rail__item-main span {
|
|
241
|
+
color: #687287;
|
|
242
|
+
font-size: 0.76rem;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.sdix-workspace-rail__item-status {
|
|
246
|
+
display: flex;
|
|
247
|
+
align-items: center;
|
|
248
|
+
gap: 0.35rem;
|
|
249
|
+
min-height: 1rem;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.sdix-workspace-rail__status {
|
|
253
|
+
font-size: 0.73rem;
|
|
254
|
+
line-height: 1.2;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
.sdix-workspace-rail__status--ready,
|
|
258
|
+
.sdix-workspace-rail__status--success {
|
|
259
|
+
color: #22824d;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.sdix-workspace-rail__status--loading {
|
|
263
|
+
color: #5e6790;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.sdix-workspace-rail__status--error {
|
|
267
|
+
color: #bf2d38;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
.sdix-workspace-main {
|
|
271
|
+
display: flex;
|
|
272
|
+
flex-direction: column;
|
|
273
|
+
gap: 0.85rem;
|
|
274
|
+
min-width: 0;
|
|
275
|
+
min-height: 0;
|
|
276
|
+
}
|
|
277
|
+
|
|
147
278
|
.sdix-wizard-stepper {
|
|
148
279
|
display: grid;
|
|
149
280
|
grid-template-columns: repeat(5, minmax(0, 1fr));
|
|
@@ -371,6 +502,11 @@
|
|
|
371
502
|
color: #7a8398;
|
|
372
503
|
}
|
|
373
504
|
|
|
505
|
+
.sdix-status-badge.is-blocked {
|
|
506
|
+
background: #fff1f0;
|
|
507
|
+
color: #b9382f;
|
|
508
|
+
}
|
|
509
|
+
|
|
374
510
|
.sdix-provider-mark {
|
|
375
511
|
width: 2.35rem;
|
|
376
512
|
height: 2.35rem;
|
|
@@ -407,9 +543,12 @@
|
|
|
407
543
|
|
|
408
544
|
.sdix-blocker {
|
|
409
545
|
flex-direction: row;
|
|
410
|
-
align-items:
|
|
411
|
-
|
|
412
|
-
|
|
546
|
+
align-items: stretch;
|
|
547
|
+
gap: 1rem;
|
|
548
|
+
padding: 1.15rem 1.2rem;
|
|
549
|
+
background: linear-gradient(135deg, #fff8ef 0%, #fffdf8 100%);
|
|
550
|
+
border: 1px solid #f1d3a2;
|
|
551
|
+
box-shadow: 0 10px 30px rgba(182, 128, 37, 0.08);
|
|
413
552
|
color: #8c5c14;
|
|
414
553
|
}
|
|
415
554
|
|
|
@@ -420,6 +559,80 @@
|
|
|
420
559
|
margin: 0;
|
|
421
560
|
}
|
|
422
561
|
|
|
562
|
+
.sdix-blocker__icon {
|
|
563
|
+
width: 2.8rem;
|
|
564
|
+
height: 2.8rem;
|
|
565
|
+
flex: 0 0 2.8rem;
|
|
566
|
+
display: inline-flex;
|
|
567
|
+
align-items: center;
|
|
568
|
+
justify-content: center;
|
|
569
|
+
border-radius: 0.9rem;
|
|
570
|
+
background: rgba(176, 109, 11, 0.1);
|
|
571
|
+
color: #a15e0d;
|
|
572
|
+
}
|
|
573
|
+
|
|
574
|
+
.sdix-blocker__content {
|
|
575
|
+
display: flex;
|
|
576
|
+
flex-direction: column;
|
|
577
|
+
gap: 0.28rem;
|
|
578
|
+
min-width: 0;
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
.sdix-blocker__eyebrow {
|
|
582
|
+
font-size: 0.72rem;
|
|
583
|
+
font-weight: 800;
|
|
584
|
+
letter-spacing: 0.08em;
|
|
585
|
+
text-transform: uppercase;
|
|
586
|
+
color: #b06c0b;
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
.sdix-blocker__content h3 {
|
|
590
|
+
color: #2a3145;
|
|
591
|
+
font-size: 1.08rem;
|
|
592
|
+
line-height: 1.2;
|
|
593
|
+
font-weight: 700;
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
.sdix-blocker__content p {
|
|
597
|
+
color: #8c5c14;
|
|
598
|
+
font-size: 0.9rem;
|
|
599
|
+
line-height: 1.5;
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
.sdix-blocker__note {
|
|
603
|
+
margin-top: 0.25rem;
|
|
604
|
+
color: #6a7288;
|
|
605
|
+
font-size: 0.8rem;
|
|
606
|
+
line-height: 1.45;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
.sdix-blocker-panel {
|
|
610
|
+
display: flex;
|
|
611
|
+
align-items: center;
|
|
612
|
+
justify-content: center;
|
|
613
|
+
min-height: 12rem;
|
|
614
|
+
padding: 1.5rem;
|
|
615
|
+
border: 1px dashed #e5cfab;
|
|
616
|
+
border-radius: 1rem;
|
|
617
|
+
background:
|
|
618
|
+
radial-gradient(circle at top, rgba(244, 187, 95, 0.12), transparent 45%),
|
|
619
|
+
linear-gradient(180deg, #fffdfa 0%, #fffaf3 100%);
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
.sdix-blocker-panel__body {
|
|
623
|
+
display: inline-flex;
|
|
624
|
+
align-items: center;
|
|
625
|
+
gap: 0.7rem;
|
|
626
|
+
padding: 0.9rem 1rem;
|
|
627
|
+
border-radius: 999px;
|
|
628
|
+
background: rgba(255, 255, 255, 0.9);
|
|
629
|
+
border: 1px solid #eedfc3;
|
|
630
|
+
color: #7c6130;
|
|
631
|
+
font-size: 0.88rem;
|
|
632
|
+
font-weight: 600;
|
|
633
|
+
text-align: center;
|
|
634
|
+
}
|
|
635
|
+
|
|
423
636
|
.sdix-loading,
|
|
424
637
|
.sdix-empty-state,
|
|
425
638
|
.sdix-error {
|
|
@@ -794,6 +1007,13 @@
|
|
|
794
1007
|
gap: 0.4rem;
|
|
795
1008
|
}
|
|
796
1009
|
|
|
1010
|
+
.sdix-column-type-cell {
|
|
1011
|
+
display: flex;
|
|
1012
|
+
align-items: center;
|
|
1013
|
+
justify-content: flex-start;
|
|
1014
|
+
gap: 0.45rem;
|
|
1015
|
+
}
|
|
1016
|
+
|
|
797
1017
|
.sdix-column-include {
|
|
798
1018
|
display: flex;
|
|
799
1019
|
align-items: center;
|
|
@@ -829,6 +1049,30 @@
|
|
|
829
1049
|
padding-inline: 0.45rem !important;
|
|
830
1050
|
}
|
|
831
1051
|
|
|
1052
|
+
.sdix-field-config-dialog {
|
|
1053
|
+
max-width: 720px;
|
|
1054
|
+
margin: 0 auto;
|
|
1055
|
+
}
|
|
1056
|
+
|
|
1057
|
+
.sdix-field-config-dialog .solid-fluid {
|
|
1058
|
+
width: 100%;
|
|
1059
|
+
max-width: 720px;
|
|
1060
|
+
margin: 0 auto;
|
|
1061
|
+
}
|
|
1062
|
+
|
|
1063
|
+
.sdix-field-config-dialog [class~="md:w-1/2"] {
|
|
1064
|
+
width: 100%;
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1067
|
+
.sdix-field-config-dialog [class~="md:w-1/4"] {
|
|
1068
|
+
width: 100%;
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
.sdix-field-config-dialog .p-tabview-panels,
|
|
1072
|
+
.sdix-field-config-dialog .p-tabview-panel {
|
|
1073
|
+
padding-inline: 0;
|
|
1074
|
+
}
|
|
1075
|
+
|
|
832
1076
|
.sdix-column-placeholder {
|
|
833
1077
|
color: #8a93a8;
|
|
834
1078
|
font-size: 0.86rem;
|
|
@@ -951,6 +1195,36 @@
|
|
|
951
1195
|
flex: 1 1 auto;
|
|
952
1196
|
}
|
|
953
1197
|
|
|
1198
|
+
.sdix-workspace-summary {
|
|
1199
|
+
display: grid;
|
|
1200
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
1201
|
+
gap: 0.65rem;
|
|
1202
|
+
}
|
|
1203
|
+
|
|
1204
|
+
.sdix-workspace-summary__item {
|
|
1205
|
+
display: flex;
|
|
1206
|
+
flex-direction: column;
|
|
1207
|
+
gap: 0.16rem;
|
|
1208
|
+
padding: 0.72rem 0.8rem;
|
|
1209
|
+
border: 1px solid #e7ebf3;
|
|
1210
|
+
border-radius: 0.85rem;
|
|
1211
|
+
background: #fbfcff;
|
|
1212
|
+
min-width: 0;
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
.sdix-workspace-summary__item span {
|
|
1216
|
+
color: #6a7288;
|
|
1217
|
+
font-size: 0.75rem;
|
|
1218
|
+
line-height: 1.2;
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1221
|
+
.sdix-workspace-summary__item strong {
|
|
1222
|
+
color: #20263a;
|
|
1223
|
+
font-size: 0.93rem;
|
|
1224
|
+
line-height: 1.25;
|
|
1225
|
+
word-break: break-word;
|
|
1226
|
+
}
|
|
1227
|
+
|
|
954
1228
|
.sdix-stage-panel__actions {
|
|
955
1229
|
display: flex;
|
|
956
1230
|
justify-content: center;
|
|
@@ -1001,6 +1275,12 @@
|
|
|
1001
1275
|
font-size: 1rem;
|
|
1002
1276
|
}
|
|
1003
1277
|
|
|
1278
|
+
@media (max-width: 1200px) {
|
|
1279
|
+
.sdix-workspace-summary {
|
|
1280
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
1281
|
+
}
|
|
1282
|
+
}
|
|
1283
|
+
|
|
1004
1284
|
.sdix-stage-progress p {
|
|
1005
1285
|
margin: 0;
|
|
1006
1286
|
max-width: 40rem;
|
|
@@ -1013,6 +1293,18 @@
|
|
|
1013
1293
|
justify-content: center;
|
|
1014
1294
|
}
|
|
1015
1295
|
|
|
1296
|
+
.sdix-stage-progress--success {
|
|
1297
|
+
min-height: 0;
|
|
1298
|
+
padding: 1rem 1.15rem;
|
|
1299
|
+
border: 1px solid #cfe9d6;
|
|
1300
|
+
border-radius: 0.9rem;
|
|
1301
|
+
background: linear-gradient(180deg, #f6fdf7 0%, #f1faf4 100%);
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1304
|
+
.sdix-stage-progress--success svg {
|
|
1305
|
+
color: #2f9e5b;
|
|
1306
|
+
}
|
|
1307
|
+
|
|
1016
1308
|
.sdix-review-meta {
|
|
1017
1309
|
display: flex;
|
|
1018
1310
|
flex-direction: column;
|
|
@@ -1023,6 +1315,17 @@
|
|
|
1023
1315
|
background: #fbfcff;
|
|
1024
1316
|
}
|
|
1025
1317
|
|
|
1318
|
+
.sdix-review-code-header {
|
|
1319
|
+
display: flex;
|
|
1320
|
+
align-items: center;
|
|
1321
|
+
justify-content: space-between;
|
|
1322
|
+
gap: 0.75rem;
|
|
1323
|
+
}
|
|
1324
|
+
|
|
1325
|
+
.sdix-review-copy-button {
|
|
1326
|
+
flex-shrink: 0;
|
|
1327
|
+
}
|
|
1328
|
+
|
|
1026
1329
|
.sdix-review-meta--compact {
|
|
1027
1330
|
padding: 0.46rem 0.62rem;
|
|
1028
1331
|
gap: 0.08rem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatasourceIntrospectionPage.d.ts","sourceRoot":"","sources":["../../../../../src/routes/pages/admin/core/DatasourceIntrospectionPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DatasourceIntrospectionPage.d.ts","sourceRoot":"","sources":["../../../../../src/routes/pages/admin/core/DatasourceIntrospectionPage.tsx"],"names":[],"mappings":"AAyDA,OAAO,mCAAmC,CAAC;AAisB3C,wBAAgB,2BAA2B,4CA+9E1C"}
|