@genispace/geniapp 0.4.0 → 0.5.0
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/README.md +2 -2
- package/dist/{MultiPageRenderer-D7rlHY8l.js → MultiPageRenderer-B4G9Oswj.js} +67 -69
- package/dist/MultiPageRenderer-B4G9Oswj.js.map +1 -0
- package/dist/components/adapters/host.js +1 -1
- package/dist/components/adapters/host.js.map +1 -1
- package/dist/components/{internal/workbench/app → app}/context/SubscriptionContext.d.ts +2 -2
- package/dist/components/{internal/workbench/app → app}/services/auth.d.ts +1 -1
- package/dist/components/{internal/workbench/contexts → contexts}/WorkbenchGlobalSpaceContext.d.ts +1 -1
- package/dist/components/{internal/workbench/components/dialogs → dialogs}/TreeFormDialog.d.ts +2 -2
- package/dist/components/{internal/workbench/hooks → hooks}/useWorkbenchHeaderNavApps.d.ts +1 -1
- package/dist/components/index.d.ts +14 -14
- package/dist/components/{internal/workbench/components/inputs → inputs}/ObjectArrayInput.d.ts +1 -1
- package/dist/components/layout/index.d.ts +6 -6
- package/dist/components/layout.js +2 -2
- package/dist/components/{internal/workbench/lib → lib}/api/apiClient.d.ts +1 -1
- package/dist/components/{internal/workbench/locales → locales}/routeNamespaces.d.ts +1 -1
- package/dist/components/{internal/workbench/mobile → mobile}/components/adaptive/MobileCardView.d.ts +1 -1
- package/dist/components/{internal/workbench/mobile → mobile}/components/adaptive/MobileChartView.d.ts +1 -1
- package/dist/components/{internal/workbench/mobile → mobile}/components/adaptive/MobileEChartsView.d.ts +1 -1
- package/dist/components/{internal/workbench/mobile → mobile}/components/adaptive/MobileFormView.d.ts +1 -1
- package/dist/components/{internal/workbench/mobile → mobile}/components/adaptive/MobileTableView.d.ts +1 -1
- package/dist/components/{internal/workbench/mobile → mobile}/components/adaptive/MobileTabsView.d.ts +1 -1
- package/dist/components/mobile/index.d.ts +4 -4
- package/dist/components/{internal/workbench/mobile → mobile}/utils/mobileWorkbenchSpaceSync.d.ts +1 -1
- package/dist/components/mobile.js +13 -13
- package/dist/components/{internal/workbench/mocks → mocks}/templateRegistry.d.ts +6 -6
- package/dist/components/mocks/types.d.ts +1 -0
- package/dist/components/{internal/workbench/components/renderers → renderers/analytics-table}/AnalyticsTableRenderer.d.ts +1 -1
- package/dist/components/renderers/analytics-table/index.d.ts +1 -0
- package/dist/components/renderers/analytics-table.js +5 -0
- package/dist/components/renderers/analytics-table.js.map +1 -0
- package/dist/components/renderers/card/index.d.ts +1 -0
- package/dist/components/renderers/card.js +5 -0
- package/dist/components/renderers/card.js.map +1 -0
- package/dist/components/renderers/chart/index.d.ts +1 -3
- package/dist/components/renderers/chart.js +2 -4
- package/dist/components/renderers/collapse-panel/index.d.ts +1 -0
- package/dist/components/renderers/collapse-panel.js +5 -0
- package/dist/components/renderers/collapse-panel.js.map +1 -0
- package/dist/components/renderers/container/index.d.ts +1 -6
- package/dist/components/renderers/container.js +2 -7
- package/dist/components/renderers/custom-content/index.d.ts +1 -1
- package/dist/components/renderers/custom-content.js +1 -1
- package/dist/components/{internal/workbench/components/renderers → renderers}/data/useBoundRows.d.ts +2 -2
- package/dist/components/renderers/data-grid-card/index.d.ts +1 -0
- package/dist/components/renderers/data-grid-card.js +5 -0
- package/dist/components/renderers/data-grid-card.js.map +1 -0
- package/dist/components/renderers/echarts/index.d.ts +1 -1
- package/dist/components/{internal/workbench/components/renderers → renderers}/echarts/shared/colors.d.ts +2 -2
- package/dist/components/renderers/echarts.js +2 -2
- package/dist/components/renderers/editable-table/index.d.ts +4 -0
- package/dist/components/renderers/editable-table.js +6 -0
- package/dist/components/renderers/editable-table.js.map +1 -0
- package/dist/components/renderers/filter-panel/index.d.ts +1 -1
- package/dist/components/renderers/filter-panel.js +1 -1
- package/dist/components/renderers/form/index.d.ts +2 -1
- package/dist/components/renderers/form.js +3 -2
- package/dist/components/renderers/hero-card/index.d.ts +1 -0
- package/dist/components/renderers/hero-card.js +5 -0
- package/dist/components/renderers/hero-card.js.map +1 -0
- package/dist/components/renderers/identity/index.d.ts +2 -2
- package/dist/components/renderers/identity.js +1 -1
- package/dist/components/renderers/index.d.ts +1 -1
- package/dist/components/{internal/workbench/components/renderers → renderers}/list/ListActionButton.d.ts +2 -2
- package/dist/components/{internal/workbench/components/renderers → renderers}/list/ListDataTable.d.ts +1 -1
- package/dist/components/{internal/workbench/components/renderers → renderers}/list/ListTaskExecuteDialog.d.ts +2 -2
- package/dist/components/renderers/list/index.d.ts +1 -1
- package/dist/components/{internal/workbench/components/renderers → renderers}/list/listActionUtils.d.ts +3 -3
- package/dist/components/{internal/workbench/components/renderers → renderers}/list/listCellRender.d.ts +1 -1
- package/dist/components/{internal/workbench/components/renderers → renderers}/list/listConfig.d.ts +2 -2
- package/dist/components/{internal/workbench/components/renderers → renderers}/list/listCsvExport.d.ts +1 -1
- package/dist/components/{internal/workbench/components/renderers → renderers}/list/listFormatUtils.d.ts +1 -1
- package/dist/components/{internal/workbench/components/renderers → renderers}/list/listItemTemplates.d.ts +2 -2
- package/dist/components/{internal/workbench/components/renderers → renderers}/list/useListActions.d.ts +3 -3
- package/dist/components/{internal/workbench/components/renderers → renderers}/list/useListDataSource.d.ts +4 -4
- package/dist/components/{internal/workbench/components/renderers → renderers}/list/useListSelectionEmit.d.ts +1 -1
- package/dist/components/renderers/list.js +2 -2
- package/dist/components/renderers/map-chart/index.d.ts +1 -0
- package/dist/components/renderers/map-chart.js +5 -0
- package/dist/components/renderers/map-chart.js.map +1 -0
- package/dist/components/renderers/metric-carousel/index.d.ts +1 -0
- package/dist/components/renderers/metric-carousel.js +5 -0
- package/dist/components/renderers/metric-carousel.js.map +1 -0
- package/dist/components/renderers/navigation/index.d.ts +1 -0
- package/dist/components/renderers/navigation.js +5 -0
- package/dist/components/renderers/navigation.js.map +1 -0
- package/dist/components/renderers/product-detail/index.d.ts +1 -0
- package/dist/components/{internal/workbench/components/renderers/product → renderers/product-detail}/productCellRender.d.ts +1 -1
- package/dist/components/renderers/product-detail.js +5 -0
- package/dist/components/renderers/product-detail.js.map +1 -0
- package/dist/components/renderers/product-report/index.d.ts +1 -0
- package/dist/components/renderers/product-report.js +5 -0
- package/dist/components/renderers/product-report.js.map +1 -0
- package/dist/components/renderers/publish/index.d.ts +2 -2
- package/dist/components/renderers/publish.js +1 -1
- package/dist/components/renderers/radar-chart/index.d.ts +1 -0
- package/dist/components/renderers/radar-chart.js +5 -0
- package/dist/components/renderers/radar-chart.js.map +1 -0
- package/dist/components/renderers/registry.d.ts +38 -0
- package/dist/components/renderers/ring-stat/index.d.ts +1 -0
- package/dist/components/renderers/ring-stat.js +5 -0
- package/dist/components/renderers/ring-stat.js.map +1 -0
- package/dist/components/renderers/{runtime-nH-w5aCf.js → runtime-DX1LfmqO.js} +7677 -7669
- package/dist/components/renderers/runtime-DX1LfmqO.js.map +1 -0
- package/dist/components/renderers/service-desk/index.d.ts +1 -1
- package/dist/components/renderers/service-desk.js +1 -1
- package/dist/components/renderers/statistics/index.d.ts +1 -3
- package/dist/components/renderers/statistics.js +2 -4
- package/dist/components/renderers/table/index.d.ts +1 -4
- package/dist/components/renderers/table.js +2 -5
- package/dist/components/renderers/tabs/index.d.ts +1 -2
- package/dist/components/renderers/tabs.js +2 -3
- package/dist/components/renderers/task-input/index.d.ts +1 -1
- package/dist/components/renderers/task-input.js +1 -1
- package/dist/components/renderers/tile-grid/index.d.ts +1 -0
- package/dist/components/renderers/tile-grid.js +5 -0
- package/dist/components/renderers/tile-grid.js.map +1 -0
- package/dist/components/renderers/tree/index.d.ts +1 -1
- package/dist/components/renderers/tree.js +1 -1
- package/dist/components/{internal/workbench/components/renderers → renderers}/types.d.ts +5 -5
- package/dist/components/{internal/workbench/components/renderers → renderers/typography}/TypographyRenderer.d.ts +1 -1
- package/dist/components/renderers/typography/index.d.ts +1 -0
- package/dist/components/renderers/typography.js +8 -0
- package/dist/components/renderers/typography.js.map +1 -0
- package/dist/components/{internal/workbench/components/renderers/WorkflowComponent → renderers/workflow}/SimpleSchemaForm.d.ts +1 -1
- package/dist/components/renderers/workflow/index.d.ts +1 -1
- package/dist/components/{internal/workbench/components/renderers/WorkflowComponent/index.d.ts → renderers/workflow/runtime-index.d.ts} +1 -1
- package/dist/components/{internal/workbench/components/renderers/WorkflowComponent → renderers/workflow}/types.d.ts +1 -1
- package/dist/components/renderers/workflow.js +1 -1
- package/dist/components/renderers.js +23 -23
- package/dist/components/runtime/GeniAppWorkbench.d.ts +1 -1
- package/dist/components/{internal/workbench/components → runtime}/componentTypes.d.ts +1 -1
- package/dist/components/runtime/runtime-mode.d.ts +40 -0
- package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/auth/RequireAuth.d.ts +1 -1
- package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/space/SpaceContext.d.ts +1 -1
- package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/forms/CountryCodeSelect.d.ts +1 -1
- package/dist/components/{internal/shared-ui → shared/platform-ui}/index.d.ts +1 -1
- package/dist/components/{internal/workbench/components/skeleton → skeleton}/HeroCardSkeleton.d.ts +1 -1
- package/dist/components/{internal/workbench/components/skeleton → skeleton}/WorkbenchSkeletonTokens.d.ts +1 -1
- package/dist/components/{internal/workbench/components/skeleton → skeleton}/index.d.ts +1 -1
- package/dist/components/standalone.js +4808 -4819
- package/dist/components/styles.css +2 -2
- package/dist/components/types/editor.d.ts +4 -0
- package/dist/components/{internal/workbench/types → types}/productReport.d.ts +1 -1
- package/dist/components/{internal/workbench/components/ui → ui}/ActionFormDialog.d.ts +2 -2
- package/dist/components/{internal/workbench/components/ui → ui}/FormFieldRenderer.d.ts +1 -1
- package/dist/components/{internal/workbench/components/ui → ui}/RecordDetailDialog.d.ts +1 -1
- package/dist/components/{internal/workbench/components/ui → ui}/pagination.d.ts +1 -1
- package/dist/components/{internal/workbench/components/ui → ui}/sidebar.d.ts +3 -3
- package/dist/components/{internal/workbench/components/ui → ui}/tag-input.d.ts +1 -1
- package/dist/components/{internal/workbench/utils → utils}/actionFormValidation.d.ts +1 -1
- package/dist/components/{internal/workbench/utils → utils}/treeFormUtils.d.ts +1 -1
- package/dist/components/{internal/workbench/utils → utils}/workflowTransformsUtils.d.ts +1 -1
- package/dist/components.js +83 -83
- package/dist/components.js.map +1 -1
- package/dist/i18n-DojjvBZv.js.map +1 -1
- package/package.json +61 -1
- package/dist/Grid24EditableCanvas-C5xiiXdZ.js +0 -7
- package/dist/Grid24EditableCanvas-C5xiiXdZ.js.map +0 -1
- package/dist/MobileFlowCanvas-DctpXMPy.js +0 -7
- package/dist/MobileFlowCanvas-DctpXMPy.js.map +0 -1
- package/dist/MultiPageRenderer-D7rlHY8l.js.map +0 -1
- package/dist/components/internal/workbench/components/edit-mode/ComponentEditOverlay.d.ts +0 -3
- package/dist/components/internal/workbench/components/edit-mode/ContainerDropZoneOverlay.d.ts +0 -1
- package/dist/components/internal/workbench/components/edit-mode/EditModeProvider.d.ts +0 -26
- package/dist/components/internal/workbench/components/edit-mode/WorkbenchEditMode.d.ts +0 -3
- package/dist/components/internal/workbench/components/edit-mode/canvas/Grid24EditableCanvas.d.ts +0 -1
- package/dist/components/internal/workbench/components/edit-mode/canvas/MobileFlowCanvas.d.ts +0 -1
- package/dist/components/internal/workbench/components/edit-mode/index.d.ts +0 -4
- package/dist/components/internal/workbench/components/edit-mode/studio/StudioPreviewContext.d.ts +0 -4
- package/dist/components/internal/workbench/components/editor/common/types.d.ts +0 -4
- package/dist/components/internal/workbench/components/renderers/index.d.ts +0 -38
- package/dist/components/internal/workbench/mocks/types.d.ts +0 -1
- package/dist/components/renderers/runtime-nH-w5aCf.js.map +0 -1
- /package/dist/components/{internal/workbench/app → app}/context/DeploymentContext.d.ts +0 -0
- /package/dist/components/{internal/workbench/app → app}/context/PermissionContext.d.ts +0 -0
- /package/dist/components/{internal/workbench/app → app}/context/UserContext.d.ts +0 -0
- /package/dist/components/{internal/workbench/app → app}/services/apiKey.d.ts +0 -0
- /package/dist/components/{internal/workbench/app → app}/services/configMap.d.ts +0 -0
- /package/dist/components/{internal/workbench/app → app}/services/task.d.ts +0 -0
- /package/dist/components/{internal/workbench/app → app}/services/workbenchApi.d.ts +0 -0
- /package/dist/components/{internal/workbench/app → app}/types/agent.d.ts +0 -0
- /package/dist/components/{internal/workbench/app → app}/types/api.d.ts +0 -0
- /package/dist/components/{internal/workbench/app → app}/types/knowledge.d.ts +0 -0
- /package/dist/components/{internal/workbench/app → app}/types/model.d.ts +0 -0
- /package/dist/components/{internal/workbench/app → app}/types/task.d.ts +0 -0
- /package/dist/components/{internal/workbench/app → app}/types/taskExecution.d.ts +0 -0
- /package/dist/components/{internal/workbench/assets → assets}/maps/bundledMapGeo.d.ts +0 -0
- /package/dist/components/{internal/workbench/config → config}/communicationIcons.d.ts +0 -0
- /package/dist/components/{internal/workbench/config → config}/componentTriggers.d.ts +0 -0
- /package/dist/components/{internal/workbench/constants → constants}/tableActionButtonStyle.d.ts +0 -0
- /package/dist/components/{internal/workbench/contexts → contexts}/PageFullscreenContext.d.ts +0 -0
- /package/dist/components/{internal/workbench/contexts → contexts}/ParameterContext.d.ts +0 -0
- /package/dist/components/{internal/workbench/contexts → contexts}/TabActivityContext.d.ts +0 -0
- /package/dist/components/{internal/workbench/contexts → contexts}/ViewportContext.d.ts +0 -0
- /package/dist/components/{internal/workbench/contexts → contexts}/WorkbenchConfigLocaleContext.d.ts +0 -0
- /package/dist/components/{internal/workbench/contexts → contexts}/WorkbenchThemeContext.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/dialogs → dialogs}/TaskParamsDialog.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/index.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/useComponentCommunication.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/useConditionMapper.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/useCurrentUser.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/useDatabaseDataSource.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/useDatasourceVersionBindings.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/useEnhancedDataSource.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/useMobileViewport.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/usePageAutoRefresh.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/useParameterHandler.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/useReleaseNotesPrompt.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/useSpaceSwitchHandler.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/useTaskInputDataSourceCache.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/useVisibleWhenContext.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/useWaitForParameters.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/useWorkbenchAppAccess.d.ts +0 -0
- /package/dist/components/{internal/workbench/hooks → hooks}/useWorkbenchPreview.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/inputs → inputs}/ArrayInput.d.ts +0 -0
- /package/dist/components/{internal/workbench/components → layout}/Grid24Renderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components → layout}/grid24CellContext.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/api/baseApiClient.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/api/hostAdapterBridge.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/api.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/auth/permissionManager.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/config/deployment.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/config.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/hooks/use-mobile.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/hooks/useOperator.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/services/agentService.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/services/applicationService.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/theme/themeUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/theme/useWorkbenchTheme.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/types/api.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/utils/avatar.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → lib}/utils/cn.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/utils/color.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/utils/debounce.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/utils/formatting.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/utils/icon.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → lib}/utils.d.ts +0 -0
- /package/dist/components/{internal/workbench/locales → locales}/i18n.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/components/BottomTabNavigation.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/components/ComponentAdapter.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/components/MobileFloatingBackButton.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/components/adaptive/MobileDateRangeFilterField.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/components/adaptive/MobileListView.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/components/adaptive/MobileStatCard.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/components/adaptive/index.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/components/adaptive/mobileFilterFieldStyles.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/hooks/useMobileNavigationCanGoBack.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/hooks/useMobileTabTransitionDirection.d.ts +0 -0
- /package/dist/components/{internal/workbench/components → mobile}/mobileFlowLayoutContext.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile/index.d.ts → mobile/runtime-index.d.ts} +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/utils/fetchUserCurrentSpaceId.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/utils/getMobileViewportState.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/utils/mobileBottomNav.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/utils/mobileBottomNavInset.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/utils/mobileComponentProps.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/utils/mobileFormDisplayUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/utils/mobileNavigationStore.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/utils/mobileToolbarNav.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/utils/mobileUA.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/utils/wecomDetector.d.ts +0 -0
- /package/dist/components/{internal/workbench/mobile → mobile}/utils/workbenchSpaceSyncGate.d.ts +0 -0
- /package/dist/components/{internal/workbench/mocks → mocks}/index.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/base}/BaseRenderers.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/base}/LoadingRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/card}/CardRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers}/cells/swCells.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/chart}/ChartRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/collapse-panel}/CollapsePanelRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/container}/ContainerRenderers.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/custom-content}/CustomContentRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/data-grid-card}/DataGridCard.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/echarts}/EChartsChartRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers}/echarts/shared/index.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/editable-table}/EditableTable.types.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/editable-table}/EditableTableController.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/editable-table}/EditableTableRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/editable-table}/cell-editors/ColorEditor.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/editable-table}/cell-editors/DateEditor.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/editable-table}/cell-editors/FileEditor.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/editable-table}/cell-editors/NumberEditor.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/editable-table}/cell-editors/SelectEditor.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/editable-table}/cell-editors/SwitchEditor.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/editable-table}/cell-editors/TextEditor.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/editable-table}/cell-editors/index.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/editable-table}/editableTableApiErrors.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/editable-table}/editableTableDictionary.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/editable-table}/editableTableFormatters.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/editable-table}/editableTableWriteDatasourceId.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/filter-panel}/FilterPanelRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/filter-panel}/filterOptionCache.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/filter-panel}/filterSelectionMemory.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/form}/FileUploadDropzone.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/form}/FormRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/form}/formSizing.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/hero-card}/HeroCardRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/hero-card}/heroCardRows.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/hero-card}/heroCardUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/identity}/AppIdentityListRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/identity}/IdentityAttributeAssignRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers}/list/ListProgressBar.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/list}/ListRenderers.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers}/list/listViewToggleUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/map-chart}/MapChartRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/metric-carousel}/MetricCarouselRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/navigation}/NavTileRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/navigation}/navTileUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/product-detail}/ProductDetailRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/product-report}/ProductReportRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/publish}/PublishHistoryRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/publish}/PublishPreviewEntryRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/publish}/publishHistoryHelpers.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/publish}/publishPreviewEntryHelpers.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/radar-chart}/RadarChartRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/ring-stat}/RingStatRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/service-desk}/ServiceDeskReporterRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers}/shared/TableEmptyStateWithChromeInsets.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers}/shared/ViewToggleButton.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers}/shared/useEscapedStickyPanel.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers}/shared/useMobileChromeInsets.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers}/shared/useStickyHeaderClone.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/statistics}/StatisticGroup.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/table}/TableRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/table}/tableFilterPanelGridClass.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/tabs}/TabsRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/tabs}/tabVariantStyles.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/tabs}/tabsItemMapping.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/task-input}/ExecutionHistoryModal.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/task-input}/TaskExecutionOutputs.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/task-input}/TaskInputField.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/task-input}/TaskInputRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/tile-grid}/TileGridRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers → renderers/tree}/SimpleTreeRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers/WorkflowComponent → renderers/workflow}/WorkflowComponent.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers/WorkflowComponent → renderers/workflow}/renderers/ProposalRendererFactory.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers/WorkflowComponent → renderers/workflow}/steps/ProposalStep.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers/WorkflowComponent → renderers/workflow}/steps/ResultStep.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/renderers/WorkflowComponent → renderers/workflow}/steps/UploadStep.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/PageComponentRenderer.d.ts → runtime/ComponentRenderer.d.ts} +0 -0
- /package/dist/components/{internal/workbench/components → runtime}/Loading.d.ts +0 -0
- /package/dist/components/{internal/workbench/components → runtime}/MultiPageRenderer.d.ts +0 -0
- /package/dist/components/{internal/workbench/components → runtime}/PageComingSoonOverlay.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/PageLayoutRenderer.d.ts → runtime/PageRenderer.d.ts} +0 -0
- /package/dist/components/{internal/workbench/components → runtime}/TabManager.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/shared → shared}/TitleManager.d.ts +0 -0
- /package/dist/components/{internal/shared-api → shared/platform-api}/auth/platformRefreshResponse.d.ts +0 -0
- /package/dist/components/{internal/shared-api → shared/platform-api}/auth/setupAuthInterceptors.d.ts +0 -0
- /package/dist/components/{internal/shared-api → shared/platform-api}/auth/tokenStorage.d.ts +0 -0
- /package/dist/components/{internal/shared-api → shared/platform-api}/index.d.ts +0 -0
- /package/dist/components/{internal/shared-types → shared/platform-types}/index.d.ts +0 -0
- /package/dist/components/{internal/shared-types → shared/platform-types}/types/json-schema.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ai/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ai/message.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ai/suggestion.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/agent/AgentIdentity.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/agent/agentIdentityUtils.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/agent/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/app/AppCheckboxInput.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/app/AppConfirmDialog.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/app/AppDashboardSkeleton.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/app/AppDatePicker.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/app/AppModal.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/app/AppPageStates.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/app/AppSelectInput.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/app/AppTemporalInput.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/app/Page.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/app/QueryErrorAlert.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/app/Sidebar.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/app/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/auth/AuthControlButtons.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/auth/ForgotPassword.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/auth/LogoutNotificationPage.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/auth/Privacy.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/auth/Terms.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/auth/VerifyEmail.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/auth/application/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/auth/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/avatar/AvatarPickerModal.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/avatar/generateAvatarUrl.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/avatar/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/chat/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/data/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/feedback/FeedbackMenu.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/feedback/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/home/Background.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/home/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/knowledge/EvidenceCitation.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/knowledge/HighlightedSnippet.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/knowledge/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/notification/NotificationBell.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/notification/NotificationList.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/notification/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/operator/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/rbac/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/rich-text/RichTextField.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/space/SpaceSwitcher.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/space/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/subscription/SubscriptionContext.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/subscription/SubscriptionGuard.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/subscription/constants.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/subscription/createSubscriptionService.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/subscription/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/subscription/types.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/subscription/useSubscription.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/subscription/utils.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/task/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/team/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/user/UserAvatar.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/user/UserDisplay.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/user/UserSelect.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/user/useUserDirectory.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/features/user/userDirectoryTypes.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/icons/alipay-pay-mark.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/icons/bank-transfer-mark.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/icons/stripe-payment-mark.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/icons/wechat-pay-mark.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/patterns/entity-patterns.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/patterns/form-section.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/patterns/record-list-frame.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/patterns/status-stepper.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/data-display/ApiErrorState.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/data-display/FilePreviewDialog.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/data-display/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/feedback/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/feedback/toaster.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/feedback/use-toast.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/forms/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/layout/AppHeader.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/layout/AppWatermark.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/layout/PublicFooter.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/layout/PublicHeader.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/layout/PublicLayout.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/layout/ThemeToggle.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/layout/WatermarkOverlay.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/layout/brandAssets.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/layout/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/ChartAreaSkeleton.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/ChartEmptyState.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/ComponentSkeletonShell.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/ConfigEditorSkeleton.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/DetailTabsSkeleton.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/EmptyStateBadge.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/FormCardSkeleton.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/FormFieldSkeleton.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/FormPageSkeleton.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/GridCardsSkeleton.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/ListSkeleton.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/PageHeaderSkeleton.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/SplitPaneSkeleton.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/StatsRowSkeleton.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/TableEmptyState.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/TablePageSkeleton.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/TabsBarSkeleton.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/skeletonMetrics.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/primitives/page-skeleton/useVisibleCenter.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/accordion.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/ai-draft-banner.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/alert-dialog.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/alert.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/avatar.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/badge.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/breadcrumb.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/button.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/calendar.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/card.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/chart.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/checkbox.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/collapsible.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/column-config.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/date-picker.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/date-range-filter.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/date-range-picker.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/dialog-input.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/dialog-safe-select.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/dialog.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/dropdown-menu.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/feature-guide.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/form.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/help-tip.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/hint-notice.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/input.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/label.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/modal-container.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/modal-templates.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/multi-select.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/pagination.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/popover.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/progress.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/radio-button-group.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/radio-group.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/scroll-area.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/select.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/separator.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/sheet.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/sidebar-rail.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/skeleton.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/slider.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/switch.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/table.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/tabs.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/textarea.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/toast.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/toggle-group.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/toggle.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/tooltip.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/typography.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/underline-tabs.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/components/ui/view-mode-toggle.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/context/AppHostContext.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/contexts/UserSettingsContext.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/builtInApps.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/pinnedBuiltInNavApps.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/shellNavLucideIcon.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/useAppSettings.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/useAuthTokenSync.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/useBuiltInApps.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/useChatEntryTarget.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/useIsMobile.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/useLanguage.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/useLockBodyScroll.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/usePageState/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/usePageState/types.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/useTheme.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/useUserSettings.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/useWorkflowCanvas.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/hooks/userPreferencesPinnedNav.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/kit/ai/conversation.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/kit/ai/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/kit/ai/loader.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/kit/ai/message.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/kit/ai/prompt-input.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/kit/ai/suggestion.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/kit/ai/tool.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/kit.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/platform/index.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/platform/types.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/styles/design-tokens.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/styles/z-index-layers.d.ts +0 -0
- /package/dist/components/{internal/shared-ui → shared/platform-ui}/utils/unknownError.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/cookieSettings.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/data/countryCodes.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/index.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/appPath.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/chunkLoadRecovery.d.ts +0 -0
- /package/dist/components/{internal/workbench/lib → shared/platform-utils}/utils/cn.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/crossApp.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/debounce.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/formatUserLabel.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/formatting.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/logoutNotification.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/operatorLocale.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/routeLocalePrefetch.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/shellIframeUrl.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/spaceSettings.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/sso.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/throttle.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/timezones.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/toDateInputValue.d.ts +0 -0
- /package/dist/components/{internal/shared-utils → shared/platform-utils}/utils/watermark.d.ts +0 -0
- /package/dist/components/{internal/workbench-templates → shared/templates}/index.d.ts +0 -0
- /package/dist/components/{internal/workbench-templates → shared/templates}/slugify.d.ts +0 -0
- /package/dist/components/{internal/workbench-templates → shared/templates}/templateRegistry.d.ts +0 -0
- /package/dist/components/{internal/workbench-templates → shared/templates}/types.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/skeleton → skeleton}/ComponentSkeleton.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/skeleton → skeleton}/TileGridSkeleton.d.ts +0 -0
- /package/dist/components/{internal/workbench/styles → styles}/grid24.css +0 -0
- /package/dist/components/{internal/workbench/styles → styles}/layoutSystem.css +0 -0
- /package/dist/components/{internal/workbench/themes → themes}/classic.d.ts +0 -0
- /package/dist/components/{internal/workbench/themes → themes}/index.d.ts +0 -0
- /package/dist/components/{internal/workbench/themes → themes}/inkOnyx.d.ts +0 -0
- /package/dist/components/{internal/workbench/themes → themes}/types.d.ts +0 -0
- /package/dist/components/{internal/workbench/types → types}/application.d.ts +0 -0
- /package/dist/components/{internal/workbench/types → types}/communication.d.ts +0 -0
- /package/dist/components/{internal/workbench/types → types}/components.d.ts +0 -0
- /package/dist/components/{internal/workbench/types → types}/conditionMapperTypes.d.ts +0 -0
- /package/dist/components/{internal/workbench/types → types}/databaseDataSource.d.ts +0 -0
- /package/dist/components/{internal/workbench/types → types}/datasource.d.ts +0 -0
- /package/dist/components/{internal/workbench/types → types}/editors.d.ts +0 -0
- /package/dist/components/{internal/workbench/types → types}/index.d.ts +0 -0
- /package/dist/components/{internal/workbench/types → types}/parameters.d.ts +0 -0
- /package/dist/components/{internal/workbench/types → types}/renderers.d.ts +0 -0
- /package/dist/components/{internal/workbench/types.d.ts → types.d.ts} +0 -0
- /package/dist/components/{internal/workbench/components/ui → ui}/ConfirmDialog.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/ui → ui}/IconSelector.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/ui → ui}/StructuredValueField.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/ui → ui}/date-picker.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/ui → ui}/date-range-picker.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/ui → ui}/dialog-safe-select.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/ui → ui}/dialog-tag-input.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/ui → ui}/dialog.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/ui → ui}/dropdown-menu.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/ui → ui}/select.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/ui → ui}/sidebar-rail.d.ts +0 -0
- /package/dist/components/{internal/workbench/components/ui → ui}/table.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/autoIdUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/chartGradientStops.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/chinaProvinceMap.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/colors.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/componentUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/conditionMapperUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/cssParser.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/currencySymbol.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/dataConfigUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/databaseDatasourceColumnValue.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/databaseDatasourceParams.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/datasetOperationUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/datasourceVersion.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/debugUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/errorFilter.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/errorHandler.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/expressionUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/extensionErrorHandler.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/filterPanelDateRangeUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/filterPanelMobileDateRangeUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/formActionVisibility.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/grid24LayoutSystem.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/iconUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/layoutContainerNesting.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/layoutSystem.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/navigationUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/navigationVisibleWhenEditor.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/parameterUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/redirectToAppHome.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/resolveComponentMockFields.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/resolveDatabaseDataSourceConfig.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/safeMessaging.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/statisticColors.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/statisticIcons.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/styleUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/systemParameters.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/tabIsolation.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/tableActionButtonRender.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/taskUtils.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/visibleWhen.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/visibleWhenFormat.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/workbenchConfigLocale.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/workbenchDisplayLocale.d.ts +0 -0
- /package/dist/components/{internal/workbench/utils → utils}/workbenchPathUtils.d.ts +0 -0
package/README.md
CHANGED
|
@@ -17,14 +17,14 @@ frontend/ geniapp/ applications/
|
|
|
17
17
|
- `frontend/packages/shared-*` belongs only to the platform frontend and is never a GeniApp dependency.
|
|
18
18
|
- `@genispace/geniapp` is the public UI/runtime/build contract used by built-in, custom and Workbench-exported GeniApps.
|
|
19
19
|
- [`@genispace/sdk`](https://www.npmjs.com/package/@genispace/sdk) is the public platform API SDK. This package does not duplicate its HTTP/SSE clients.
|
|
20
|
-
- `@genispace/geniapp@0.
|
|
20
|
+
- `@genispace/geniapp@0.5.0` requires exactly `@genispace/sdk@3.1.0`. The SDK version is part of the GeniApp runtime contract and is checked before packing or publishing.
|
|
21
21
|
|
|
22
22
|
## Install
|
|
23
23
|
|
|
24
24
|
Install both public packages from npm. GeniApp releases pin their supported SDK version exactly, so applications should use the matching SDK version shown below.
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
pnpm add @genispace/geniapp@0.
|
|
27
|
+
pnpm add @genispace/geniapp@0.5.0 @genispace/sdk@3.1.0 react react-dom react-router-dom i18next react-i18next
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
## Public entries
|
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
import { jsxs as d, jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
3
|
-
import { useNavigate as
|
|
2
|
+
import { useState as $, useEffect as R, useCallback as M, useMemo as T, useRef as j, useSyncExternalStore as q, useLayoutEffect as K, memo as X } from "react";
|
|
3
|
+
import { useNavigate as U } from "react-router-dom";
|
|
4
4
|
import { useTranslation as B } from "react-i18next";
|
|
5
|
-
import { ChevronLeft as
|
|
6
|
-
import {
|
|
7
|
-
function
|
|
8
|
-
const [e, a] = $(
|
|
9
|
-
return R(() =>
|
|
10
|
-
a(
|
|
5
|
+
import { ChevronLeft as Q, Rocket as J, Eye as Z } from "lucide-react";
|
|
6
|
+
import { a5 as O, a6 as ee, a0 as z, W as F, E as A, a7 as te, a8 as re, a9 as ne, d as ae, aa as D, L as oe, w as le, ab as ie, ac as se, ad as ce, ae as de, af as ue, i as me, ag as pe, ah as v, ai as he, aj as ge, ak as fe, al as be, am as xe, an as we } from "./components/renderers/runtime-DX1LfmqO.js";
|
|
7
|
+
function ve() {
|
|
8
|
+
const [e, a] = $(O());
|
|
9
|
+
return R(() => ee(() => {
|
|
10
|
+
a(O());
|
|
11
11
|
}), []), e;
|
|
12
12
|
}
|
|
13
|
-
z.lazy(() => import("./Grid24EditableCanvas-C5xiiXdZ.js"));
|
|
14
|
-
z.lazy(() => import("./MobileFlowCanvas-DctpXMPy.js"));
|
|
15
13
|
function C(e) {
|
|
16
14
|
return !!e && e.type === "grid-24";
|
|
17
15
|
}
|
|
18
|
-
const
|
|
16
|
+
const ye = {}, _e = ({
|
|
19
17
|
components: e,
|
|
20
18
|
appConfig: a,
|
|
21
19
|
layoutConfig: n,
|
|
@@ -23,9 +21,9 @@ const _e = {}, ke = ({
|
|
|
23
21
|
pageId: r,
|
|
24
22
|
tabId: u
|
|
25
23
|
}) => {
|
|
26
|
-
const c =
|
|
27
|
-
const l =
|
|
28
|
-
l && s(
|
|
24
|
+
const c = z(), i = F(), h = A(), { previewOnly: f } = ie(), { t: o } = B("workbench"), s = U(), k = ve(), y = i && k && !!a?.subPageBackButton, E = M(() => {
|
|
25
|
+
const l = te();
|
|
26
|
+
l && s(re(l), { replace: !0 });
|
|
29
27
|
}, [s]), _ = y ? /* @__PURE__ */ d(
|
|
30
28
|
"button",
|
|
31
29
|
{
|
|
@@ -34,13 +32,13 @@ const _e = {}, ke = ({
|
|
|
34
32
|
"aria-label": o("mobile.back", "Back"),
|
|
35
33
|
className: "flex w-fit items-center gap-1 text-sm text-indigo-600",
|
|
36
34
|
children: [
|
|
37
|
-
/* @__PURE__ */ t(
|
|
35
|
+
/* @__PURE__ */ t(Q, { className: "h-4 w-4" }),
|
|
38
36
|
o("mobile.back", "Back")
|
|
39
37
|
]
|
|
40
38
|
},
|
|
41
39
|
"__subpage_back__"
|
|
42
40
|
) : null, L = y && e[0]?.type === "FilterPanel" && !!e[0]?.props?.sticky, N = M((l, p, g = "") => /* @__PURE__ */ t(
|
|
43
|
-
|
|
41
|
+
ne,
|
|
44
42
|
{
|
|
45
43
|
component: l,
|
|
46
44
|
appConfig: a,
|
|
@@ -50,7 +48,7 @@ const _e = {}, ke = ({
|
|
|
50
48
|
nestingLevel: 0
|
|
51
49
|
},
|
|
52
50
|
`${g}${l.id || l.type}-${p}`
|
|
53
|
-
), [a, m, r, u]),
|
|
51
|
+
), [a, m, r, u]), G = (l) => ({
|
|
54
52
|
top: "top",
|
|
55
53
|
bottom: "bottom",
|
|
56
54
|
"bottom-left": "bottom-left",
|
|
@@ -69,7 +67,7 @@ const _e = {}, ke = ({
|
|
|
69
67
|
"middle-center": "middle-center",
|
|
70
68
|
"middle-right": "middle-right",
|
|
71
69
|
middle: "middle"
|
|
72
|
-
})[l] || l, S =
|
|
70
|
+
})[l] || l, S = T(() => {
|
|
73
71
|
if (!n || C(n) || !n.componentPositions)
|
|
74
72
|
return null;
|
|
75
73
|
const l = n, p = {
|
|
@@ -95,24 +93,24 @@ const _e = {}, ke = ({
|
|
|
95
93
|
return e.forEach((b) => {
|
|
96
94
|
const x = l.componentPositions?.[b.id];
|
|
97
95
|
if (x?.area) {
|
|
98
|
-
const w =
|
|
96
|
+
const w = G(x.area);
|
|
99
97
|
p[w] ? p[w].push({ component: b, order: x.order || 0 }) : g.push({ component: b, order: 0 });
|
|
100
98
|
} else
|
|
101
99
|
g.push({ component: b, order: 0 });
|
|
102
100
|
}), Object.keys(p).forEach((b) => {
|
|
103
101
|
p[b].sort((x, w) => x.order - w.order);
|
|
104
102
|
}), p.top.push(...g), p;
|
|
105
|
-
}, [e, n]),
|
|
103
|
+
}, [e, n]), H = M((l, p = "") => /* @__PURE__ */ t(
|
|
106
104
|
"div",
|
|
107
105
|
{
|
|
108
106
|
className: "w-full h-full flex flex-col",
|
|
109
107
|
style: { gap: c ? "0.75rem" : "1rem" },
|
|
110
108
|
children: l.map((g, b) => {
|
|
111
|
-
const x = g.component || g,
|
|
109
|
+
const x = g.component || g, I = n.componentPositions?.[x.id]?.span || x.props?.span || 1, Y = I > 1 ? { gridColumn: `span ${I}` } : {};
|
|
112
110
|
return /* @__PURE__ */ t(
|
|
113
111
|
"div",
|
|
114
112
|
{
|
|
115
|
-
style:
|
|
113
|
+
style: Y,
|
|
116
114
|
className: "w-full flex-shrink-0",
|
|
117
115
|
children: N(x, b, p)
|
|
118
116
|
},
|
|
@@ -124,8 +122,8 @@ const _e = {}, ke = ({
|
|
|
124
122
|
if (!e || e.length === 0)
|
|
125
123
|
return /* @__PURE__ */ t("div", { className: "flex min-h-[240px] items-center justify-center py-16", children: /* @__PURE__ */ t("p", { className: "text-sm text-muted-foreground", children: o("page_empty_hint", "This page has no content yet.") }) });
|
|
126
124
|
if (C(n) || !n || n.componentPositions, n && C(n))
|
|
127
|
-
return /* @__PURE__ */ t("div", { className:
|
|
128
|
-
|
|
125
|
+
return /* @__PURE__ */ t("div", { className: D("h-full w-full min-h-0", h && "flex flex-1 flex-col"), children: /* @__PURE__ */ t(
|
|
126
|
+
ae,
|
|
129
127
|
{
|
|
130
128
|
config: n,
|
|
131
129
|
components: e,
|
|
@@ -140,24 +138,24 @@ const _e = {}, ke = ({
|
|
|
140
138
|
) });
|
|
141
139
|
if (n && S) {
|
|
142
140
|
let l = "all-vertical";
|
|
143
|
-
n.preset && Object.keys(
|
|
141
|
+
n.preset && Object.keys(oe).includes(n.preset) ? l = n.preset : l = {
|
|
144
142
|
"all-vertical": "all-vertical",
|
|
145
143
|
"top1-bottom2": "top1-bottom2",
|
|
146
144
|
"top1-bottom2-equal": "top1-bottom2-equal",
|
|
147
145
|
"left1-right2": "left1-right2",
|
|
148
146
|
"top1-bottom3": "top1-bottom3"
|
|
149
147
|
}[n.preset] || "all-vertical";
|
|
150
|
-
const p =
|
|
148
|
+
const p = le(l);
|
|
151
149
|
if (c) {
|
|
152
150
|
const g = p.flatMap(
|
|
153
151
|
(b) => S?.[b] || []
|
|
154
152
|
);
|
|
155
153
|
return /* @__PURE__ */ t("div", { className: "mobile-flow-layout flex w-full flex-col gap-3", children: g.map((b, x) => {
|
|
156
|
-
const w = b.component || b,
|
|
154
|
+
const w = b.component || b, I = w?.type === "FilterPanel" && !!w?.props?.sticky;
|
|
157
155
|
return /* @__PURE__ */ t(
|
|
158
156
|
"div",
|
|
159
157
|
{
|
|
160
|
-
className:
|
|
158
|
+
className: I ? "contents" : "w-full",
|
|
161
159
|
children: N(w, x, "mobile-")
|
|
162
160
|
},
|
|
163
161
|
`mobile-${w.id || w.type}-${x}`
|
|
@@ -170,7 +168,7 @@ const _e = {}, ke = ({
|
|
|
170
168
|
"div",
|
|
171
169
|
{
|
|
172
170
|
className: `layout-area-${g} min-h-0 min-w-0`,
|
|
173
|
-
children:
|
|
171
|
+
children: H(b, `${g}-`)
|
|
174
172
|
},
|
|
175
173
|
g
|
|
176
174
|
);
|
|
@@ -197,9 +195,9 @@ const _e = {}, ke = ({
|
|
|
197
195
|
}
|
|
198
196
|
P.push(N(p, l, "fallback-"));
|
|
199
197
|
}
|
|
200
|
-
const
|
|
201
|
-
return /* @__PURE__ */ t("div", { className: c ? "mobile-flow-layout space-y-3 w-full" : "space-y-4 w-full", children:
|
|
202
|
-
},
|
|
198
|
+
const W = y ? L ? [P[0], _, ...P.slice(1)] : [_, ...P] : P;
|
|
199
|
+
return /* @__PURE__ */ t("div", { className: c ? "mobile-flow-layout space-y-3 w-full" : "space-y-4 w-full", children: W });
|
|
200
|
+
}, ke = (e) => {
|
|
203
201
|
const a = [], n = (m) => {
|
|
204
202
|
for (const r of m) {
|
|
205
203
|
if (r.type === "Container" && r.children) {
|
|
@@ -219,12 +217,12 @@ const _e = {}, ke = ({
|
|
|
219
217
|
}
|
|
220
218
|
};
|
|
221
219
|
return n(e), a;
|
|
222
|
-
},
|
|
220
|
+
}, Ne = ({
|
|
223
221
|
pageConfig: e,
|
|
224
222
|
pageId: a,
|
|
225
223
|
isActive: n
|
|
226
224
|
}) => {
|
|
227
|
-
const m = j(null), r = j([]), u = M(() => e?.components ?
|
|
225
|
+
const m = j(null), r = j([]), u = M(() => e?.components ? ke(e.components) : [], [e?.components]), c = M(() => {
|
|
228
226
|
const i = Date.now(), h = r.current;
|
|
229
227
|
if (typeof window < "u") {
|
|
230
228
|
const f = new CustomEvent("page-auto-refresh-trigger", {
|
|
@@ -259,28 +257,28 @@ const _e = {}, ke = ({
|
|
|
259
257
|
r.current = i;
|
|
260
258
|
}
|
|
261
259
|
}, [e?.components, e?.autoRefresh?.enabled, u]);
|
|
262
|
-
},
|
|
263
|
-
function
|
|
264
|
-
return
|
|
260
|
+
}, Pe = "1rem";
|
|
261
|
+
function Ee() {
|
|
262
|
+
return q(
|
|
263
|
+
se,
|
|
265
264
|
ce,
|
|
266
|
-
de,
|
|
267
265
|
() => 0
|
|
268
266
|
);
|
|
269
267
|
}
|
|
270
|
-
function
|
|
268
|
+
function Me(e) {
|
|
271
269
|
for (let a = e?.parentElement ?? null; a; a = a.parentElement) {
|
|
272
270
|
const { overflowY: n } = getComputedStyle(a);
|
|
273
271
|
if (n === "auto" || n === "scroll") return a;
|
|
274
272
|
}
|
|
275
273
|
return null;
|
|
276
274
|
}
|
|
277
|
-
function
|
|
278
|
-
const { t: e } = B("workbench"), { isEditMode: a } =
|
|
275
|
+
function Re() {
|
|
276
|
+
const { t: e } = B("workbench"), { isEditMode: a } = ue(), [n, m] = $(!1), r = j(null), [u, c] = $(null);
|
|
279
277
|
return R(() => {
|
|
280
278
|
m(!1);
|
|
281
|
-
}, [a]),
|
|
279
|
+
}, [a]), K(() => {
|
|
282
280
|
if (n) return;
|
|
283
|
-
const i =
|
|
281
|
+
const i = Me(r.current), h = () => {
|
|
284
282
|
const f = i ? i.getBoundingClientRect() : { top: 0, bottom: window.innerHeight }, o = document.querySelector(".workbench-bottom-tab-nav"), s = o ? o.getBoundingClientRect().top : Number.POSITIVE_INFINITY;
|
|
285
283
|
c(Math.max(0, Math.round(Math.min(f.bottom, s) - f.top)));
|
|
286
284
|
};
|
|
@@ -299,20 +297,20 @@ function Te() {
|
|
|
299
297
|
className: "sticky top-0 flex max-h-full flex-col items-center justify-center gap-4 px-6",
|
|
300
298
|
style: { height: u != null ? `${u}px` : "100dvh" },
|
|
301
299
|
children: [
|
|
302
|
-
/* @__PURE__ */ t("span", { className: "flex size-14 items-center justify-center rounded-full bg-indigo-50 text-indigo-500 dark:bg-indigo-950/40 dark:text-indigo-300", children: /* @__PURE__ */ t(
|
|
300
|
+
/* @__PURE__ */ t("span", { className: "flex size-14 items-center justify-center rounded-full bg-indigo-50 text-indigo-500 dark:bg-indigo-950/40 dark:text-indigo-300", children: /* @__PURE__ */ t(J, { className: "h-6 w-6", strokeWidth: 1.6, "aria-hidden": "true" }) }),
|
|
303
301
|
/* @__PURE__ */ d("div", { className: "flex select-none flex-col items-center gap-1 text-center", children: [
|
|
304
302
|
/* @__PURE__ */ t("span", { className: "text-lg font-semibold tracking-tight text-slate-800 dark:text-neutral-100", children: e("coming_soon.title", "Coming Soon") }),
|
|
305
303
|
/* @__PURE__ */ t("span", { className: "text-sm leading-snug text-slate-500 dark:text-neutral-400", children: e("coming_soon.description", "This page is under construction — stay tuned.") })
|
|
306
304
|
] }),
|
|
307
305
|
/* @__PURE__ */ d(
|
|
308
|
-
|
|
306
|
+
de,
|
|
309
307
|
{
|
|
310
308
|
variant: "outline",
|
|
311
309
|
size: "sm",
|
|
312
310
|
onClick: () => m(!0),
|
|
313
311
|
className: "mt-1 h-8 gap-1.5 rounded-full bg-white/80 px-3.5 text-xs font-medium text-slate-600 shadow-sm hover:bg-white dark:bg-neutral-800/80 dark:text-neutral-300 dark:hover:bg-neutral-800",
|
|
314
312
|
children: [
|
|
315
|
-
/* @__PURE__ */ t(
|
|
313
|
+
/* @__PURE__ */ t(Z, { className: "h-3.5 w-3.5", "aria-hidden": "true" }),
|
|
316
314
|
e("coming_soon.preview", "Preview page")
|
|
317
315
|
]
|
|
318
316
|
}
|
|
@@ -322,17 +320,17 @@ function Te() {
|
|
|
322
320
|
) })
|
|
323
321
|
);
|
|
324
322
|
}
|
|
325
|
-
const Ie = () => null,
|
|
326
|
-
const { t: u } = B(["workbench", "common"]), c = e.pageConfig, i =
|
|
323
|
+
const Ie = () => null, V = X(({ tab: e, appConfig: a, availableParameters: n, isEmpty: m, isTabActive: r = !0 }) => {
|
|
324
|
+
const { t: u } = B(["workbench", "common"]), c = e.pageConfig, i = ge(e.pageId, c) ?? c, h = z(), f = F(), o = A(), s = fe(
|
|
327
325
|
`page-${e.pageId}`,
|
|
328
326
|
i.customStyles,
|
|
329
327
|
""
|
|
330
328
|
);
|
|
331
|
-
return /* @__PURE__ */ d(
|
|
329
|
+
return /* @__PURE__ */ d(be, { value: r, children: [
|
|
332
330
|
/* @__PURE__ */ t(
|
|
333
331
|
"div",
|
|
334
332
|
{
|
|
335
|
-
className:
|
|
333
|
+
className: D(
|
|
336
334
|
"h-full w-full min-h-0 bg-neutral-50 dark:bg-neutral-900",
|
|
337
335
|
s.className,
|
|
338
336
|
o ? "flex flex-col overflow-hidden" : h ? "overflow-y-auto overflow-x-hidden overscroll-none mobile-no-scrollbar" : "overflow-auto custom-scrollbar pt-4"
|
|
@@ -341,13 +339,13 @@ const Ie = () => null, G = U(({ tab: e, appConfig: a, availableParameters: n, is
|
|
|
341
339
|
children: /* @__PURE__ */ d(
|
|
342
340
|
"div",
|
|
343
341
|
{
|
|
344
|
-
className:
|
|
342
|
+
className: D(
|
|
345
343
|
o ? "flex min-h-0 flex-1 flex-col p-3 sm:p-4 md:p-5" : h ? "px-2 pt-2" : "px-4 pb-4"
|
|
346
344
|
),
|
|
347
|
-
style: !o && f ? { paddingBottom:
|
|
345
|
+
style: !o && f ? { paddingBottom: Pe } : void 0,
|
|
348
346
|
children: [
|
|
349
347
|
/* @__PURE__ */ d(
|
|
350
|
-
|
|
348
|
+
xe,
|
|
351
349
|
{
|
|
352
350
|
tabId: e.id,
|
|
353
351
|
pageId: e.pageId,
|
|
@@ -355,7 +353,7 @@ const Ie = () => null, G = U(({ tab: e, appConfig: a, availableParameters: n, is
|
|
|
355
353
|
children: [
|
|
356
354
|
/* @__PURE__ */ t(Ie, {}),
|
|
357
355
|
/* @__PURE__ */ t(
|
|
358
|
-
|
|
356
|
+
we,
|
|
359
357
|
{
|
|
360
358
|
pageConfig: i,
|
|
361
359
|
pageId: e.pageId,
|
|
@@ -371,7 +369,7 @@ const Ie = () => null, G = U(({ tab: e, appConfig: a, availableParameters: n, is
|
|
|
371
369
|
/* @__PURE__ */ t("span", { children: u("multi_page_renderer.drag_component_hint", "Drag components here") })
|
|
372
370
|
] })
|
|
373
371
|
] }) }) : /* @__PURE__ */ t(
|
|
374
|
-
|
|
372
|
+
_e,
|
|
375
373
|
{
|
|
376
374
|
components: i.components || [],
|
|
377
375
|
appConfig: a,
|
|
@@ -410,28 +408,28 @@ const Ie = () => null, G = U(({ tab: e, appConfig: a, availableParameters: n, is
|
|
|
410
408
|
)
|
|
411
409
|
}
|
|
412
410
|
),
|
|
413
|
-
i?.comingSoon?.enabled && /* @__PURE__ */ t(
|
|
411
|
+
i?.comingSoon?.enabled && /* @__PURE__ */ t(Re, {})
|
|
414
412
|
] });
|
|
415
413
|
});
|
|
416
|
-
|
|
417
|
-
const
|
|
414
|
+
V.displayName = "TabContent";
|
|
415
|
+
const je = ({
|
|
418
416
|
tabs: e,
|
|
419
417
|
activeTabId: a,
|
|
420
418
|
appConfig: n,
|
|
421
419
|
availableParameters: m = []
|
|
422
420
|
}) => {
|
|
423
|
-
const { t: r } = B(["workbench", "common"]), u =
|
|
421
|
+
const { t: r } = B(["workbench", "common"]), u = F(), c = Ee(), i = T(() => {
|
|
424
422
|
if (e.length === 0) return null;
|
|
425
423
|
if (a && e.some((s) => s.id === a)) return a;
|
|
426
424
|
const o = e.find((s) => s.isActive);
|
|
427
425
|
return o ? o.id : e.length === 1 ? e[0].id : e[0]?.id ?? null;
|
|
428
|
-
}, [e, a]), h =
|
|
426
|
+
}, [e, a]), h = T(() => e.map((o) => {
|
|
429
427
|
const s = o.id === i, k = !!o.hasError, y = !!o.isLoading, E = k && !y, _ = !!o.pageConfig && !y && !k;
|
|
430
428
|
return { tab: o, isActive: s, hasError: k, isLoading: y, showError: E, showContent: _ };
|
|
431
|
-
}), [e, i]), f =
|
|
432
|
-
return
|
|
429
|
+
}), [e, i]), f = T(() => h.find((s) => s.isActive && s.showContent)?.tab ?? null, [h]);
|
|
430
|
+
return Ne({
|
|
433
431
|
pageConfig: f?.pageConfig ?? {
|
|
434
|
-
layout:
|
|
432
|
+
layout: me([]),
|
|
435
433
|
components: []
|
|
436
434
|
},
|
|
437
435
|
pageId: f?.pageId ?? "",
|
|
@@ -439,7 +437,7 @@ const Oe = ({
|
|
|
439
437
|
}), R(() => {
|
|
440
438
|
if (!u || c === 0)
|
|
441
439
|
return;
|
|
442
|
-
const o = window.setTimeout(
|
|
440
|
+
const o = window.setTimeout(pe, 280);
|
|
443
441
|
return () => window.clearTimeout(o);
|
|
444
442
|
}, [u, i, c]), !i || e.length === 0 ? /* @__PURE__ */ t("div", { className: "flex items-center justify-center h-full w-full p-8 bg-gradient-to-br from-slate-50 to-blue-50 dark:from-neutral-900 dark:to-neutral-800", children: /* @__PURE__ */ d("div", { className: "max-w-4xl mx-auto text-center", children: [
|
|
445
443
|
/* @__PURE__ */ d("div", { className: "mb-8", children: [
|
|
@@ -498,7 +496,7 @@ const Oe = ({
|
|
|
498
496
|
},
|
|
499
497
|
"aria-hidden": !s,
|
|
500
498
|
children: [
|
|
501
|
-
y ? /* @__PURE__ */ t("div", { className: "h-full overflow-hidden p-4", children: /* @__PURE__ */ t(
|
|
499
|
+
y ? /* @__PURE__ */ t("div", { className: "h-full overflow-hidden p-4", children: /* @__PURE__ */ t(he, { preset: "dashboard" }) }) : null,
|
|
502
500
|
E ? /* @__PURE__ */ t("div", { className: "flex items-center justify-center h-full pt-4", children: /* @__PURE__ */ d("div", { className: "text-center max-w-md mx-auto p-6", children: [
|
|
503
501
|
v("alert-circle", "w-16 h-16 text-status-error mx-auto mb-4"),
|
|
504
502
|
/* @__PURE__ */ t("h3", { className: "text-lg font-semibold text-neutral-900 dark:text-neutral-100 mb-2", children: r("multi_page_renderer.page_load_failed", "Page Load Failed") }),
|
|
@@ -515,7 +513,7 @@ const Oe = ({
|
|
|
515
513
|
)
|
|
516
514
|
] }) }) : null,
|
|
517
515
|
_ && /* @__PURE__ */ t(
|
|
518
|
-
|
|
516
|
+
V,
|
|
519
517
|
{
|
|
520
518
|
tab: o,
|
|
521
519
|
appConfig: n,
|
|
@@ -531,7 +529,7 @@ const Oe = ({
|
|
|
531
529
|
}) });
|
|
532
530
|
};
|
|
533
531
|
export {
|
|
534
|
-
|
|
535
|
-
|
|
532
|
+
je as M,
|
|
533
|
+
_e as P
|
|
536
534
|
};
|
|
537
|
-
//# sourceMappingURL=MultiPageRenderer-
|
|
535
|
+
//# sourceMappingURL=MultiPageRenderer-B4G9Oswj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiPageRenderer-B4G9Oswj.js","sources":["../src/components/mobile/hooks/useMobileNavigationCanGoBack.ts","../src/components/runtime/PageRenderer.tsx","../src/components/hooks/usePageAutoRefresh.ts","../src/components/mobile/utils/mobileBottomNavInset.ts","../src/components/mobile/hooks/useMobileTabTransitionDirection.ts","../src/components/runtime/PageComingSoonOverlay.tsx","../src/components/runtime/MultiPageRenderer.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport {\n getMobileNavigationCanGoBack,\n subscribeMobileNavigation,\n} from '@/mobile/utils/mobileNavigationStore';\n\nexport function useMobileNavigationCanGoBack(): boolean {\n const [canGoBack, setCanGoBack] = useState(getMobileNavigationCanGoBack());\n\n useEffect(() => {\n return subscribeMobileNavigation(() => {\n setCanGoBack(getMobileNavigationCanGoBack());\n });\n }, []);\n\n return canGoBack;\n}\n","import React, { useMemo, useCallback } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { ChevronLeft } from 'lucide-react';\nimport { useMobileNavigationCanGoBack } from '@/mobile/hooks/useMobileNavigationCanGoBack';\nimport { popMobileNavigationEntry, formatMobileNavEntry } from '@/mobile/utils/mobileNavigationStore';\nimport PageComponentRenderer from './ComponentRenderer';\nimport { useEditMode } from './runtime-mode';\nimport {\n Grid24EditableCanvas,\n MobileFlowCanvas,\n useGridCanvasGate,\n useStudioPreview,\n} from './runtime-mode';\nimport Grid24Renderer from '../layout/Grid24Renderer';\nimport type { Grid24LayoutConfig } from '@/types/components';\nimport { \n LayoutPreset, \n GridArea, \n getVisibleAreas,\n LAYOUT_PRESETS\n} from '@/utils/layoutSystem';\nimport { ParameterRecord } from '../types/parameters';\nimport { usePageFullscreen } from '../contexts/PageFullscreenContext';\nimport { cn } from '@genispace/shared-utils';\nimport '../styles/layoutSystem.css';\nimport { isMobileWorkbenchViewport } from '@/mobile/components/ComponentAdapter';\nimport { useMobileFlowLayout } from '../mobile/mobileFlowLayoutContext';\n\ninterface PageLayoutConfig {\n type: 'default' | 'grid' | 'custom';\n preset?: LayoutPreset | 'top1-bottom2' | 'left1-right2' | 'top1-bottom3' | 'all-vertical' | 'dashboard-layout';\n areas?: {\n top?: string[];\n bottom?: string[];\n left?: string[];\n right?: string[];\n };\n gridTemplate?: {\n rows: string;\n columns: string;\n areas: string;\n };\n componentPositions?: Record<string, {\n area: GridArea | 'top' | 'bottom' | 'left' | 'right';\n order: number;\n span?: number; \n }>;\n}\n\ntype PageLayoutInput = PageLayoutConfig | Grid24LayoutConfig;\n\nfunction isGrid24LayoutInput(lc: PageLayoutInput | undefined): lc is Grid24LayoutConfig {\n return !!lc && (lc as Grid24LayoutConfig).type === 'grid-24';\n}\n\n/** Synthetic config for pages ADOPTED by the editable canvas (no stored grid-24\n layout yet): mergeGrid24WithChildIds stacks the components full-width and the\n first layout commit persists the conversion. Module-level for stable identity. */\nconst ADOPTION_GRID24_CONFIG: Grid24LayoutConfig = {\n type: 'grid-24',\n columns: 24,\n gap: 16,\n rowGap: 16,\n rowHeight: 50,\n components: [],\n};\n\ninterface PageLayoutRendererProps {\n components: any[];\n appConfig: any;\n layoutConfig?: PageLayoutInput;\n pageParams?: ParameterRecord;\n pageId?: string;\n tabId?: string;\n}\n\nconst PageLayoutRenderer: React.FC<PageLayoutRendererProps> = ({\n components,\n appConfig,\n layoutConfig,\n pageParams,\n pageId,\n tabId\n}) => {\n // Narrow flow (real mobile OR phone frame) drives every layout branch below\n // — legacy preset pages stack in the frame exactly as on a device. The raw\n // viewport stays for real-device-only concerns (canvas gate, mobile back).\n const isMobileViewport = useMobileFlowLayout();\n const isRealMobileViewport = isMobileWorkbenchViewport();\n const isPageFullscreen = usePageFullscreen();\n const { isEditMode, permissions } = useEditMode();\n const { previewOnly } = useStudioPreview();\n // Free-canvas editing applies to the page-root grid only; fullscreen and\n // mobile rendering keep the plain view renderer. The gate is computed ONCE in\n // WorkbenchEditMode (shared with the page drop-zone suppression) — the local\n // computation is only the fallback outside that provider.\n const gridCanvasGate = useGridCanvasGate();\n const useEditableCanvas =\n gridCanvasGate ??\n (isEditMode && permissions.canEdit && !previewOnly && !isRealMobileViewport && !isPageFullscreen);\n\n // Sub-page back button (mobile, opt-in via appConfig.subPageBackButton). Shown on pages\n // reached via navigation/row-click (mobile nav stack can go back). Positioned below a\n // sticky FilterPanel when the first component is one, else at the very top of the page.\n const { t } = useTranslation('workbench');\n const navigate = useNavigate();\n const canGoBack = useMobileNavigationCanGoBack();\n const backEnabled = isRealMobileViewport && canGoBack && Boolean((appConfig as any)?.subPageBackButton);\n const handleSubPageBack = useCallback(() => {\n const prev = popMobileNavigationEntry();\n if (prev) navigate(formatMobileNavEntry(prev), { replace: true });\n }, [navigate]);\n const subPageBack = backEnabled ? (\n <button\n key=\"__subpage_back__\"\n type=\"button\"\n onClick={handleSubPageBack}\n aria-label={t('mobile.back', 'Back')}\n className=\"flex w-fit items-center gap-1 text-sm text-indigo-600\"\n >\n <ChevronLeft className=\"h-4 w-4\" />\n {t('mobile.back', 'Back')}\n </button>\n ) : null;\n const stickyFilterFirst =\n backEnabled && components[0]?.type === 'FilterPanel' && Boolean(components[0]?.props?.sticky);\n\n const renderComponent = useCallback((component: any, index: number, keyPrefix: string = '') => (\n <PageComponentRenderer \n key={`${keyPrefix}${component.id || component.type}-${index}`}\n component={component}\n appConfig={appConfig}\n pageParams={pageParams}\n pageId={pageId}\n tabId={tabId}\n nestingLevel={0}\n />\n ), [appConfig, pageParams, pageId, tabId]);\n\n const mapLegacyArea = (area: string): GridArea => {\n const mapping: Record<string, GridArea> = {\n 'top': 'top',\n 'bottom': 'bottom',\n 'bottom-left': 'bottom-left',\n 'bottom-center': 'bottom-center',\n 'bottom-right': 'bottom-right',\n 'bottom-second': 'bottom-second',\n 'left': 'left',\n 'left-top': 'left-top',\n 'left-center': 'left-center',\n 'left-bottom': 'left-bottom',\n 'right': 'right',\n 'right-top': 'right-top',\n 'right-bottom': 'right-bottom',\n 'header': 'header',\n 'middle-left': 'middle-left',\n 'middle-center': 'middle-center',\n 'middle-right': 'middle-right',\n 'middle': 'middle'\n };\n return (mapping[area] as GridArea) || (area as GridArea);\n };\n\n const componentMapping = useMemo(() => {\n\n if (!layoutConfig || isGrid24LayoutInput(layoutConfig)) {\n return null;\n }\n\n if (!layoutConfig.componentPositions) {\n return null;\n }\n\n const legacyLayout = layoutConfig;\n const mapping: Record<GridArea, any[]> = {\n 'top': [],\n 'bottom': [],\n 'bottom-left': [],\n 'bottom-center': [],\n 'bottom-right': [],\n 'bottom-second': [],\n 'left': [],\n 'left-top': [],\n 'left-center': [],\n 'left-bottom': [],\n 'right': [],\n 'right-top': [],\n 'right-bottom': [],\n 'header': [],\n 'middle-left': [],\n 'middle-center': [],\n 'middle-right': [],\n 'middle': []\n };\n\n const withoutLayout: any[] = [];\n\n components.forEach(component => {\n const position = legacyLayout.componentPositions?.[component.id];\n if (position?.area) {\n\n const mappedArea = mapLegacyArea(position.area);\n if (mapping[mappedArea]) {\n mapping[mappedArea].push({ component, order: position.order || 0 });\n } else {\n withoutLayout.push({ component, order: 0 });\n }\n } else {\n withoutLayout.push({ component, order: 0 });\n }\n });\n\n Object.keys(mapping).forEach((area: string) => {\n mapping[area as GridArea].sort((a, b) => a.order - b.order);\n });\n\n mapping['top'].push(...withoutLayout);\n\n return mapping;\n }, [components, layoutConfig]);\n\n const renderComponentList = useCallback((componentList: any[], keyPrefix: string = '') => (\n <div\n className=\"w-full h-full flex flex-col\"\n style={{ gap: isMobileViewport ? '0.75rem' : '1rem' }}\n >\n {componentList.map((item, index) => {\n const component = item.component || item;\n\n const position = (layoutConfig as PageLayoutConfig).componentPositions?.[component.id];\n const span = position?.span || component.props?.span || 1;\n const gridColumnStyle = span > 1 ? { gridColumn: `span ${span}` } : {};\n\n return (\n <div \n key={`${keyPrefix}${component.id || component.type}-${index}`} \n style={gridColumnStyle}\n className=\"w-full flex-shrink-0\"\n >\n {renderComponent(component, index, keyPrefix)}\n </div>\n );\n })}\n </div>\n ), [renderComponent, layoutConfig, isMobileViewport]);\n\n // Empty page (no components yet, e.g. freshly created draft): render a quiet\n // hint instead of a blank surface. Placed after all hooks (rules of hooks);\n // edit mode overlays its own drop zones above this.\n // In editable-canvas mode an empty page must still mount the canvas — it is\n // the drop target for palette drags (and shows its own affordance).\n if ((!components || components.length === 0) && !useEditableCanvas) {\n return (\n <div className=\"flex min-h-[240px] items-center justify-center py-16\">\n <p className=\"text-sm text-muted-foreground\">\n {t('page_empty_hint', 'This page has no content yet.')}\n </p>\n </div>\n );\n }\n\n // Editable canvas: grid-24 pages natively; pages WITHOUT legacy area\n // positioning (missing layout / no componentPositions) are ADOPTED — the\n // canvas synthesizes stacked placements (mergeGrid24WithChildIds) and the\n // first layout commit persists the grid-24 conversion. Pages with real\n // legacy componentPositions keep the old edit UX.\n const editableGridConfig: Grid24LayoutConfig | null = isGrid24LayoutInput(layoutConfig)\n ? layoutConfig\n : !layoutConfig || !(layoutConfig as PageLayoutConfig).componentPositions\n ? ADOPTION_GRID24_CONFIG\n : null;\n\n if (useEditableCanvas && pageId && editableGridConfig) {\n return (\n <div className=\"h-full w-full min-h-0\">\n <React.Suspense fallback={<div className=\"min-h-[240px] w-full animate-pulse rounded-lg bg-muted/30\" />}>\n <Grid24EditableCanvas\n config={editableGridConfig}\n components={components}\n appConfig={appConfig}\n pageParams={pageParams}\n pageId={pageId}\n tabId={tabId}\n />\n </React.Suspense>\n </div>\n );\n }\n\n // Studio phone preset in edit mode: selection/configuration parity with PC,\n // but \"layout\" in the single-column flow means STACK ORDER — the flow canvas\n // edits layout.mobileOrder (mobile-only; the desktop grid is untouched).\n if (\n isEditMode &&\n permissions.canEdit &&\n previewOnly &&\n !isMobileViewport &&\n !isPageFullscreen &&\n pageId &&\n editableGridConfig\n ) {\n return (\n <div className=\"h-full w-full min-h-0\">\n <React.Suspense fallback={<div className=\"min-h-[240px] w-full animate-pulse rounded-lg bg-muted/30\" />}>\n <MobileFlowCanvas\n config={editableGridConfig}\n components={components}\n appConfig={appConfig}\n pageParams={pageParams}\n pageId={pageId}\n tabId={tabId}\n />\n </React.Suspense>\n </div>\n );\n }\n\n if (layoutConfig && isGrid24LayoutInput(layoutConfig)) {\n return (\n <div className={cn('h-full w-full min-h-0', isPageFullscreen && 'flex flex-1 flex-col')}>\n <Grid24Renderer\n config={layoutConfig as Grid24LayoutConfig}\n components={components}\n nestingLevel={0}\n appConfig={appConfig}\n pageParams={pageParams}\n pageId={pageId}\n tabId={tabId}\n // Studio phone-frame preview (previewOnly = mobile preset): stack\n // vertically like real mobile instead of squeezing the 24-col grid.\n forceMobileFlow={previewOnly}\n // Sub-page back button (real mobile only, backEnabled-gated): the fluid\n // fallback path injects it inline; grid-24 pages hand it to the mobile\n // flow so it lands below a pinned FilterPanel just the same.\n mobileFlowInsert={subPageBack}\n />\n </div>\n );\n }\n\n if (layoutConfig && componentMapping) {\n\n let preset: LayoutPreset = 'all-vertical';\n\n if (layoutConfig.preset && Object.keys(LAYOUT_PRESETS).includes(layoutConfig.preset)) {\n preset = layoutConfig.preset as LayoutPreset;\n } else {\n\n const legacyMapping: Record<string, LayoutPreset> = {\n 'all-vertical': 'all-vertical',\n 'top1-bottom2': 'top1-bottom2',\n 'top1-bottom2-equal': 'top1-bottom2-equal',\n 'left1-right2': 'left1-right2',\n 'top1-bottom3': 'top1-bottom3'\n };\n preset = legacyMapping[layoutConfig.preset as string] || 'all-vertical';\n }\n\n const visibleAreas = getVisibleAreas(preset);\n\n if (isMobileViewport) {\n const allComponents = visibleAreas.flatMap(\n (area) => componentMapping?.[area] || []\n );\n\n return (\n <div className=\"mobile-flow-layout flex w-full flex-col gap-3\">\n {allComponents.map((item, index) => {\n const component = item.component || item;\n // Same native-sticky anchoring as the grid-24 mobile flow: a pinned FilterPanel's\n // wrapper must not generate a box (display:contents), or its containing block is a\n // wrapper as tall as itself and sticky has nowhere to travel.\n const isStickyPanel =\n component?.type === 'FilterPanel' && Boolean(component?.props?.sticky);\n return (\n <div\n key={`mobile-${component.id || component.type}-${index}`}\n className={isStickyPanel ? 'contents' : 'w-full'}\n >\n {renderComponent(component, index, 'mobile-')}\n </div>\n );\n })}\n </div>\n );\n }\n\n return (\n <div className={`layout-grid layout-${preset} h-full w-full`}>\n {visibleAreas.map((area) => {\n const componentsInArea = componentMapping?.[area] || [];\n\n if (componentsInArea.length === 0) {\n return null;\n }\n\n return (\n <div\n key={area}\n className={`layout-area-${area} min-h-0 min-w-0`}\n >\n {renderComponentList(componentsInArea, `${area}-`)}\n </div>\n );\n })}\n </div>\n );\n }\n\n // A Title immediately followed by a Paragraph is a page-header block — keep the\n // description hugging the title instead of a full layout gap (console PageLayout parity).\n const fallbackItems: React.ReactNode[] = [];\n for (let i = 0; i < components.length; i++) {\n const component = components[i];\n const next = components[i + 1];\n if (component?.type === 'Title' && next?.type === 'Paragraph') {\n fallbackItems.push(\n <div\n key={`fallback-header-${component.id || component.type}-${i}`}\n className=\"space-y-1\"\n >\n {renderComponent(component, i, 'fallback-')}\n {renderComponent(next, i + 1, 'fallback-')}\n </div>\n );\n i++;\n continue;\n }\n fallbackItems.push(renderComponent(component, i, 'fallback-'));\n }\n const ordered = !backEnabled\n ? fallbackItems\n : stickyFilterFirst\n ? [fallbackItems[0], subPageBack, ...fallbackItems.slice(1)]\n : [subPageBack, ...fallbackItems];\n return (\n <div className={isMobileViewport ? 'mobile-flow-layout space-y-3 w-full' : 'space-y-4 w-full'}>\n {ordered}\n </div>\n );\n};\n\nexport default PageLayoutRenderer;\n","import { useEffect, useRef, useCallback } from 'react';\nimport type { PageConfig, Component } from '../types/components';\n\ninterface PageAutoRefreshOptions {\n pageConfig: PageConfig;\n pageId: string;\n isActive: boolean;\n}\n\nconst collectRefreshableComponents = (components: Component[]): string[] => {\n const refreshableIds: string[] = [];\n\n const traverse = (comps: Component[]) => {\n for (const comp of comps) {\n\n if (comp.type === 'Container' && comp.children) {\n traverse(comp.children);\n continue;\n }\n\n if (comp.type === 'Tabs' && comp.props?.items) {\n for (const tab of comp.props.items) {\n if (tab.children) {\n traverse(tab.children);\n }\n // items[].components structure (SW workbench etc.): tab content hangs directly on the components array\n if (tab.components) {\n traverse(tab.components);\n }\n }\n continue;\n }\n\n if (comp.type === 'Card' && comp.props?.content) {\n traverse([comp.props.content]);\n continue;\n }\n\n const followRefresh = comp.props?.followPageRefresh === true;\n if (followRefresh) {\n refreshableIds.push(comp.id);\n }\n }\n };\n\n traverse(components);\n return refreshableIds;\n};\n\nexport const usePageAutoRefresh = ({\n pageConfig,\n pageId,\n isActive\n}: PageAutoRefreshOptions) => {\n const intervalRef = useRef<NodeJS.Timeout | null>(null);\n const refreshableComponentsRef = useRef<string[]>([]);\n\n const collectComponents = useCallback(() => {\n if (!pageConfig?.components) {\n return [];\n }\n return collectRefreshableComponents(pageConfig.components);\n }, [pageConfig?.components]);\n\n const triggerRefresh = useCallback(() => {\n const timestamp = Date.now();\n const refreshableComponents = refreshableComponentsRef.current;\n\n if (typeof window !== 'undefined') {\n const refreshEvent = new CustomEvent('page-auto-refresh-trigger', {\n detail: {\n timestamp,\n pageId,\n componentIds: refreshableComponents, \n source: 'page-auto-refresh' \n }\n });\n window.dispatchEvent(refreshEvent);\n }\n }, [pageId]);\n\n useEffect(() => {\n\n const autoRefresh = pageConfig?.autoRefresh;\n if (!isActive || !autoRefresh?.enabled) {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n return;\n }\n\n const refreshableComponents = collectComponents();\n refreshableComponentsRef.current = refreshableComponents;\n\n if (refreshableComponents.length === 0) {\n return;\n }\n\n const interval = autoRefresh.interval * 1000; \n intervalRef.current = setInterval(() => {\n triggerRefresh();\n }, interval);\n\n triggerRefresh();\n\n return () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n };\n }, [pageConfig?.autoRefresh?.enabled, pageConfig?.autoRefresh?.interval, isActive, collectComponents, triggerRefresh]);\n\n useEffect(() => {\n if (intervalRef.current && pageConfig?.autoRefresh?.enabled) {\n const refreshableComponents = collectComponents();\n refreshableComponentsRef.current = refreshableComponents;\n }\n }, [pageConfig?.components, pageConfig?.autoRefresh?.enabled, collectComponents]);\n};\n\nexport default usePageAutoRefresh;\n","/** Bottom padding under page content. The tab bar is an in-flow footer (not fixed) since the\n * 2026-07-15 WeCom jitter fix, so content no longer needs to clear a floating bar — this is\n * just a small breathing space above the nav. */\nexport const MOBILE_BOTTOM_NAV_CLEARANCE = '1rem';\n","import { useSyncExternalStore } from 'react';\nimport {\n getMobileTabTransitionDirection,\n subscribeMobileTabTransition,\n} from '@/mobile/utils/mobileNavigationStore';\n\nexport function useMobileTabTransitionDirection(): -1 | 0 | 1 {\n return useSyncExternalStore(\n subscribeMobileTabTransition,\n getMobileTabTransitionDirection,\n () => 0\n );\n}\n","import { useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport { Eye, Rocket } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { Button } from '@genispace/shared-ui';\nimport { useEditMode } from '@/runtime/runtime-mode';\n\n/** Nearest ancestor that actually scrolls vertically — its client box is the visible pane. */\nfunction findScrollParent(node: HTMLElement | null): HTMLElement | null {\n for (let p = node?.parentElement ?? null; p; p = p.parentElement) {\n const { overflowY } = getComputedStyle(p);\n if (overflowY === 'auto' || overflowY === 'scroll') return p;\n }\n return null;\n}\n\n/**\n * Frosted-glass overlay shown above the page content when the page's\n * `comingSoon.enabled` config is on. Dismissal is per-mount only: reopening\n * or refreshing the page shows the overlay again. Hidden in edit mode so the\n * page stays editable.\n *\n * Visual language follows the system empty-state pattern (EmptyStateBadge):\n * soft icon badge + medium title + muted one-liner + small pill action —\n * not a billboard headline.\n */\nexport function PageComingSoonOverlay() {\n const { t } = useTranslation('workbench');\n const { isEditMode } = useEditMode();\n const [dismissed, setDismissed] = useState(false);\n const rootRef = useRef<HTMLDivElement>(null);\n // Height of the VISIBLE pane (the scroll container's client box — below the top chrome, above\n // the mobile bottom nav). Used as the centering box: 100dvh would also count chrome the pane\n // doesn't own, biasing the content downward.\n const [paneHeight, setPaneHeight] = useState<number | null>(null);\n\n // Re-arm on edit-mode toggle so an editor leaving edit mode sees the overlay immediately.\n useEffect(() => {\n setDismissed(false);\n }, [isEditMode]);\n\n useLayoutEffect(() => {\n if (isEditMode || dismissed) return;\n const scrollParent = findScrollParent(rootRef.current);\n const update = () => {\n const paneRect = scrollParent\n ? scrollParent.getBoundingClientRect()\n : { top: 0, bottom: window.innerHeight };\n // The mobile bottom tab bar is fixed and OVERLAYS the scroll container's bottom edge —\n // clip the pane at the nav's top so \"centered\" means centered in what the user can see.\n const nav = document.querySelector('.workbench-bottom-tab-nav');\n const navTop = nav ? nav.getBoundingClientRect().top : Number.POSITIVE_INFINITY;\n setPaneHeight(Math.max(0, Math.round(Math.min(paneRect.bottom, navTop) - paneRect.top)));\n };\n update();\n if (scrollParent && typeof ResizeObserver !== 'undefined') {\n const ro = new ResizeObserver(update);\n ro.observe(scrollParent);\n window.addEventListener('resize', update);\n return () => {\n ro.disconnect();\n window.removeEventListener('resize', update);\n };\n }\n window.addEventListener('resize', update);\n return () => window.removeEventListener('resize', update);\n }, [isEditMode, dismissed]);\n\n if (isEditMode || dismissed) {\n return null;\n }\n\n return (\n // z-40 clears the sticky FilterPanel (z-30) which shares the tab wrapper's stacking context.\n <div ref={rootRef} className=\"absolute inset-0 z-40 bg-white/70 backdrop-blur-md dark:bg-neutral-900/70\">\n {/* Center within the VISIBLE pane, not the full scrollable content height: on layouts where\n the overlay's positioning parent grows with the page (mobile full-page scroll), plain\n flex-centering lands below the first screen. Sticky pins this box to the top of the\n scroll area and it is sized to the scroll container's client height (capped by\n max-h-full for short embedded panes) so its center is the on-screen pane center. */}\n <div\n className=\"sticky top-0 flex max-h-full flex-col items-center justify-center gap-4 px-6\"\n style={{ height: paneHeight != null ? `${paneHeight}px` : '100dvh' }}\n >\n <span className=\"flex size-14 items-center justify-center rounded-full bg-indigo-50 text-indigo-500 dark:bg-indigo-950/40 dark:text-indigo-300\">\n <Rocket className=\"h-6 w-6\" strokeWidth={1.6} aria-hidden=\"true\" />\n </span>\n <div className=\"flex select-none flex-col items-center gap-1 text-center\">\n <span className=\"text-lg font-semibold tracking-tight text-slate-800 dark:text-neutral-100\">\n {t('coming_soon.title', 'Coming Soon')}\n </span>\n <span className=\"text-sm leading-snug text-slate-500 dark:text-neutral-400\">\n {t('coming_soon.description', 'This page is under construction — stay tuned.')}\n </span>\n </div>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setDismissed(true)}\n className=\"mt-1 h-8 gap-1.5 rounded-full bg-white/80 px-3.5 text-xs font-medium text-slate-600 shadow-sm hover:bg-white dark:bg-neutral-800/80 dark:text-neutral-300 dark:hover:bg-neutral-800\"\n >\n <Eye className=\"h-3.5 w-3.5\" aria-hidden=\"true\" />\n {t('coming_soon.preview', 'Preview page')}\n </Button>\n </div>\n </div>\n );\n}\n","import React, { useEffect, useMemo, memo } from 'react';\nimport { TabItem } from './TabManager';\nimport PageLayoutRenderer from './PageRenderer';\nimport { WorkbenchEditMode } from './runtime-mode';\nimport { PageLoadingSkeleton } from '@genispace/shared-ui';\nimport { renderLucideIcon } from '@/utils/iconUtils';\nimport { ParameterProvider } from '../contexts/ParameterContext';\nimport { useTranslation } from 'react-i18next';\nimport { usePageAutoRefresh } from '../hooks/usePageAutoRefresh';\nimport type { PageConfig as PageConfigType } from '../types/components';\nimport { createDefaultGrid24Layout } from '@/utils/grid24LayoutSystem';\nimport { isMobileWorkbenchViewport } from '@/mobile/components/ComponentAdapter';\nimport { useMobileFlowLayout } from '@/mobile/mobileFlowLayoutContext';\nimport { useLocalizedPageConfig } from '@/contexts/WorkbenchConfigLocaleContext';\nimport { MOBILE_BOTTOM_NAV_CLEARANCE } from '@/mobile/utils/mobileBottomNavInset';\nimport { useMobileTabTransitionDirection } from '@/mobile/hooks/useMobileTabTransitionDirection';\nimport { resetMobileTabTransitionDirection } from '@/mobile/utils/mobileNavigationStore';\nimport { cn } from '@genispace/shared-utils';\nimport { usePageFullscreen } from '../contexts/PageFullscreenContext';\nimport { TabActivityProvider } from '../contexts/TabActivityContext';\nimport { PageComingSoonOverlay } from './PageComingSoonOverlay';\nimport { applyCustomStyles } from '@/utils/styleUtils';\n\nconst ParameterDebugPanel: React.FC = () => {\n\n return null;\n\n // const { currentTabParams } = useParameterContext();\n // const { isEditMode } = useEditMode();\n // const [isCollapsed, setIsCollapsed] = React.useState(false);\n\n // const filterPanelParams = React.useMemo(() => {\n // return Object.entries(currentTabParams).filter(([key]) => \n // key.includes('filterPanel') || key.includes('FilterPanel')\n // );\n // }, [currentTabParams]);\n\n // if (!isEditMode) {\n // return null;\n // }\n\n // if (Object.keys(currentTabParams).length === 0) {\n // return null;\n // }\n\n // return (\n // <div className=\"fixed bottom-20 left-4 z-50 max-w-md bg-white dark:bg-neutral-800 border border-neutral-200 dark:border-neutral-700 rounded-lg shadow-lg\">\n // <div \n // className=\"flex items-center justify-between px-3 py-2 bg-neutral-100 dark:bg-neutral-800 rounded-t-lg cursor-pointer\"\n // onClick={() => setIsCollapsed(!isCollapsed)}\n // >\n // <span className=\"text-sm font-medium text-neutral-700 dark:text-neutral-300\">\n\n // </span>\n // <span className=\"text-xs text-neutral-500\">\n // {isCollapsed ? '▶' : '▼'}\n // </span>\n // </div>\n // {!isCollapsed && (\n // <div className=\"p-3 max-h-64 overflow-auto text-xs\">\n // {filterPanelParams.length > 0 ? (\n // <div className=\"mb-2\">\n // <div className=\"text-xs font-semibold text-blue-600 dark:text-blue-400 mb-1\">\n\n // </div>\n // {filterPanelParams.map(([key, value]) => (\n // <div key={key} className=\"flex justify-between gap-2 py-1 border-b border-neutral-100 dark:border-neutral-700\">\n // <span className=\"text-neutral-600 dark:text-neutral-400 truncate\" title={key}>\n // {key}:\n // </span>\n // <span className=\"text-neutral-900 dark:text-neutral-100 font-mono\">\n // {JSON.stringify(value)}\n // </span>\n // </div>\n // ))}\n // </div>\n // ) : (\n\n // )}\n\n // <div className=\"text-xs font-semibold text-green-600 dark:text-green-400 mb-1 mt-2\">\n\n // </div>\n // {Object.entries(currentTabParams).map(([key, value]) => (\n // <div key={key} className=\"flex justify-between gap-2 py-1 border-b border-neutral-100 dark:border-neutral-700\">\n // <span className=\"text-neutral-600 dark:text-neutral-400 truncate\" title={key}>\n // {key}:\n // </span>\n // <span className=\"text-neutral-900 dark:text-neutral-100 font-mono\">\n // {JSON.stringify(value)}\n // </span>\n // </div>\n // ))}\n // </div>\n // )}\n // </div>\n // );\n};\n\ninterface TabContentProps {\n tab: TabItem;\n appConfig: any;\n availableParameters: Array<{ label: string; value: string; type?: string }>;\n isEmpty: boolean;\n isTabActive?: boolean;\n}\n\nconst TabContent = memo<TabContentProps>(({ tab, appConfig, availableParameters, isEmpty, isTabActive = true }) => {\n const { t } = useTranslation(['workbench', 'common']);\n const rawPageConfig = tab.pageConfig as PageConfigType;\n const pageConfig = useLocalizedPageConfig(tab.pageId, rawPageConfig) ?? rawPageConfig;\n // Narrow flow (real mobile OR phone frame) drives the page gutter/scroll\n // styling; the bottom-nav CLEARANCE stays real-viewport-only — the studio\n // frame's nav preview is in-flow (flex), not a fixed overlay.\n const isMobileViewport = useMobileFlowLayout();\n const isRealMobileViewport = isMobileWorkbenchViewport();\n const isPageFullscreen = usePageFullscreen();\n const pageStyleProps = applyCustomStyles(\n `page-${tab.pageId}`,\n pageConfig.customStyles,\n ''\n );\n\n return (\n <TabActivityProvider value={isTabActive}>\n <div\n className={cn(\n 'h-full w-full min-h-0 bg-neutral-50 dark:bg-neutral-900',\n pageStyleProps.className,\n isPageFullscreen\n ? 'flex flex-col overflow-hidden'\n : isMobileViewport\n // Mobile: vertical scroll only (hide horizontal + disable overscroll bounce/chaining so the page feels fixed) + hide scrollbar.\n // Top padding lives on the inner wrapper (below) so a sticky first component (e.g. pinned\n // FilterPanel) anchors flush to the scrollport top instead of leaving an 8px gap that leaks.\n ? 'overflow-y-auto overflow-x-hidden overscroll-none mobile-no-scrollbar'\n : 'overflow-auto custom-scrollbar pt-4',\n )}\n style={pageStyleProps.style}\n >\n <div\n className={cn(\n isPageFullscreen\n // Keep an inset in fullscreen so cards don't sit flush against the\n // chrome frame (Workbench removes the normal page gutter when filling).\n ? 'flex min-h-0 flex-1 flex-col p-3 sm:p-4 md:p-5'\n : isMobileViewport\n ? 'px-2 pt-2'\n : 'px-4 pb-4',\n )}\n style={\n !isPageFullscreen && isRealMobileViewport\n ? { paddingBottom: MOBILE_BOTTOM_NAV_CLEARANCE }\n : undefined\n }\n >\n <ParameterProvider\n tabId={tab.id}\n pageId={tab.pageId}\n initialParams={tab.urlParams || {}}\n >\n <ParameterDebugPanel />\n\n {/* Same (localized) object PageLayoutRenderer reads — the edit-mode\n gate and the renderer must never see diverging configs. */}\n <WorkbenchEditMode\n pageConfig={pageConfig}\n pageId={tab.pageId}\n tabId={tab.id}\n isTabActive={isTabActive}\n availableParameters={availableParameters}\n >\n {isEmpty ? (\n <div className=\"flex items-center justify-center min-h-[60vh]\">\n <div className=\"text-center max-w-md mx-auto\">\n <div className=\"inline-flex items-center justify-center p-4 bg-primary/10 rounded-full mb-4\">\n {renderLucideIcon('layout-grid', 'w-12 h-12 text-primary')}\n </div>\n <h3 className=\"text-xl font-semibold text-neutral-900 dark:text-neutral-100 mb-2\">\n {t('multi_page_renderer.start_building', 'Start Building Your Page')}\n </h3>\n <p className=\"text-neutral-500 dark:text-neutral-400 mb-6\">\n {t('multi_page_renderer.start_building_description', 'Drag components from the component library on the right to here to start building your page')}\n </p>\n <div className=\"flex items-center justify-center gap-2 text-sm text-neutral-400 dark:text-neutral-500\">\n {renderLucideIcon('arrow-right', 'w-4 h-4')}\n <span>{t('multi_page_renderer.drag_component_hint', 'Drag components here')}</span>\n </div>\n </div>\n </div>\n ) : (\n <PageLayoutRenderer\n key={`layout-${tab.id}`}\n components={pageConfig.components || []}\n appConfig={appConfig}\n layoutConfig={pageConfig.layout as any}\n pageParams={tab.urlParams}\n pageId={tab.pageId}\n tabId={tab.id}\n />\n )}\n </WorkbenchEditMode>\n </ParameterProvider>\n\n {/* Publish-history footer link: muted, bottom of every page when the\n workbench-header switch is on and a target page is configured.\n Hidden on the target page itself. */}\n {appConfig?.showPublishHistory && appConfig?.publishHistoryPageKey && tab.pageId !== appConfig.publishHistoryPageKey && (\n <div className=\"mt-8 flex justify-center pb-2\">\n <button\n type=\"button\"\n className=\"text-xs text-neutral-400 transition-colors hover:text-neutral-500 dark:text-neutral-600 dark:hover:text-neutral-500\"\n onClick={() =>\n window.dispatchEvent(\n new CustomEvent('workbench-open-tab', {\n detail: {\n pageId: appConfig.publishHistoryPageKey,\n navigationTitle: t('publish_history_nav', 'Publish History'),\n icon: 'history',\n urlParams: {},\n },\n })\n )\n }\n >\n {t('view_publish_history', 'View publish history')}\n </button>\n </div>\n )}\n </div>\n </div>\n {/* Sibling of the scroll container so it doesn't scroll with content; positioned by the\n tab wrapper (absolute inset-0) in MultiPageRenderer below. Edit-mode gating lives inside\n the overlay — subscribing to useEditMode here would defeat TabContent's memo. */}\n {pageConfig?.comingSoon?.enabled && <PageComingSoonOverlay />}\n </TabActivityProvider>\n );\n});\n\nTabContent.displayName = 'TabContent';\n\ninterface MultiPageRendererProps {\n tabs: TabItem[];\n activeTabId: string | null;\n appConfig: any;\n availableParameters?: Array<{ label: string; value: string; type?: string }>;\n}\n\nexport const MultiPageRenderer: React.FC<MultiPageRendererProps> = ({\n tabs,\n activeTabId,\n appConfig,\n availableParameters = []\n}) => {\n const { t } = useTranslation(['workbench', 'common']);\n const isMobileViewport = isMobileWorkbenchViewport();\n const tabTransitionDirection = useMobileTabTransitionDirection();\n\n const resolvedActiveTabId = useMemo(() => {\n if (tabs.length === 0) return null;\n if (activeTabId && tabs.some((t) => t.id === activeTabId)) return activeTabId;\n const marked = tabs.find((t) => t.isActive);\n if (marked) return marked.id;\n if (tabs.length === 1) return tabs[0].id;\n return tabs[0]?.id ?? null;\n }, [tabs, activeTabId]);\n\n const renderedTabs = useMemo(() => {\n return tabs.map((tab) => {\n const isActive = tab.id === resolvedActiveTabId;\n const hasError = Boolean(tab.hasError);\n const isLoading = Boolean(tab.isLoading);\n const showError = hasError && !isLoading;\n const showContent = Boolean(tab.pageConfig) && !isLoading && !hasError;\n\n return { tab, isActive, hasError, isLoading, showError, showContent };\n });\n }, [tabs, resolvedActiveTabId]);\n\n const activeTabForAutoRefresh = useMemo(() => {\n const entry = renderedTabs.find((r) => r.isActive && r.showContent);\n return entry?.tab ?? null;\n }, [renderedTabs]);\n\n usePageAutoRefresh({\n pageConfig:\n (activeTabForAutoRefresh?.pageConfig as PageConfigType) ??\n ({\n title: '',\n layout: createDefaultGrid24Layout([]) as unknown as PageConfigType['layout'],\n components: [],\n } as PageConfigType),\n pageId: activeTabForAutoRefresh?.pageId ?? '',\n isActive: Boolean(activeTabForAutoRefresh),\n });\n\n useEffect(() => {\n if (!isMobileViewport || tabTransitionDirection === 0) {\n return;\n }\n\n const timer = window.setTimeout(resetMobileTabTransitionDirection, 280);\n return () => window.clearTimeout(timer);\n }, [isMobileViewport, resolvedActiveTabId, tabTransitionDirection]);\n\n if (!resolvedActiveTabId || tabs.length === 0) {\n return (\n <div className=\"flex items-center justify-center h-full w-full p-8 bg-gradient-to-br from-slate-50 to-blue-50 dark:from-neutral-900 dark:to-neutral-800\">\n <div className=\"max-w-4xl mx-auto text-center\">\n <div className=\"mb-8\">\n <div className=\"inline-flex items-center justify-center p-3 bg-primary/10 rounded-full mb-6\">\n {renderLucideIcon('layout-grid', 'w-8 h-8 text-primary')}\n </div>\n <h1 className=\"text-4xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-primary to-blue-600 mb-4\">\n {t('multi_page_renderer.welcome_title', 'Welcome to Workbench')}\n </h1>\n <p className=\"text-lg text-neutral-600 dark:text-neutral-300 max-w-2xl mx-auto leading-relaxed\">\n {t('multi_page_renderer.welcome_description', 'Quickly build enterprise applications through drag-and-drop visual interface, supporting rich component library, data binding, custom styles and real-time preview, making it easy to develop professional applications')}\n </p>\n </div>\n\n <div className=\"grid md:grid-cols-3 gap-6 mb-10\">\n <div className=\"bg-white dark:bg-neutral-800 rounded-lg p-6 shadow-sm border border-neutral-200 dark:border-neutral-700 hover:shadow-md transition-shadow\">\n <div className=\"p-3 rounded-lg bg-blue-500/10 w-fit mx-auto mb-4\">\n {renderLucideIcon('layout-panel-top', 'w-8 h-8 text-blue-500')}\n </div>\n <h3 className=\"text-lg font-semibold mb-2 text-neutral-900 dark:text-neutral-100\">{t('multi_page_renderer.feature_visual_drag', 'Visual Drag & Drop')}</h3>\n <p className=\"text-sm text-neutral-600 dark:text-neutral-400\">\n {t('multi_page_renderer.feature_visual_drag_description', '30+ component types including forms, tables, charts, containers, supporting custom styles and interactions')}\n </p>\n </div>\n\n <div className=\"bg-white dark:bg-neutral-800 rounded-lg p-6 shadow-sm border border-neutral-200 dark:border-neutral-700 hover:shadow-md transition-shadow\">\n <div className=\"p-3 rounded-lg bg-purple-500/10 w-fit mx-auto mb-4\">\n {renderLucideIcon('database', 'w-8 h-8 text-purple-500')}\n </div>\n <h3 className=\"text-lg font-semibold mb-2 text-neutral-900 dark:text-neutral-100\">{t('multi_page_renderer.feature_data_binding', 'Smart Data Binding')}</h3>\n <p className=\"text-sm text-neutral-600 dark:text-neutral-400\">\n {t('multi_page_renderer.feature_data_binding_description', 'Seamlessly connect enterprise data sources, supporting real-time data display and business logic configuration')}\n </p>\n </div>\n\n <div className=\"bg-white dark:bg-neutral-800 rounded-lg p-6 shadow-sm border border-neutral-200 dark:border-neutral-700 hover:shadow-md transition-shadow\">\n <div className=\"p-3 rounded-lg bg-emerald-500/10 w-fit mx-auto mb-4\">\n {renderLucideIcon('sparkles', 'w-8 h-8 text-emerald-500')}\n </div>\n <h3 className=\"text-lg font-semibold mb-2 text-neutral-900 dark:text-neutral-100\">{t('multi_page_renderer.feature_component_communication', 'Component Communication')}</h3>\n <p className=\"text-sm text-neutral-600 dark:text-neutral-400\">\n {t('multi_page_renderer.feature_component_communication_description', 'Support parameter passing and event triggering, building complex business processes and user interactions')}\n </p>\n </div>\n </div>\n\n <div className=\"bg-white dark:bg-neutral-800 rounded-lg p-8 shadow-sm border border-neutral-200 dark:border-neutral-700\">\n <div className=\"flex items-center justify-center gap-2 mb-4\">\n {renderLucideIcon('arrow-right', 'w-5 h-5 text-primary')}\n <h3 className=\"text-xl font-semibold text-neutral-900 dark:text-neutral-100\">\n {t('multi_page_renderer.start_creating_title', 'Start Creating Your First Page')}\n </h3>\n </div>\n <p className=\"text-neutral-600 dark:text-neutral-400 mb-6\">\n {t('multi_page_renderer.start_creating_description', 'Click the navigation menu to open a page, or create a new page configuration through edit mode')}\n </p>\n <div className=\"flex items-center justify-center gap-4\">\n <div className=\"flex items-center gap-2 px-4 py-2 bg-primary/10 rounded-lg\">\n {renderLucideIcon('mouse-pointer-click', 'w-4 h-4 text-primary')}\n <span className=\"text-sm font-medium text-primary\">{t('multi_page_renderer.select_page', 'Select Page')}</span>\n </div>\n <span className=\"text-neutral-400\">{t('multi_page_renderer.or', 'or')}</span>\n <div className=\"flex items-center gap-2 px-4 py-2 bg-primary/10 rounded-lg\">\n {renderLucideIcon('edit', 'w-4 h-4 text-primary')}\n <span className=\"text-sm font-medium text-primary\">{t('multi_page_renderer.enable_edit_mode', 'Enable Edit Mode')}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"h-full w-full overflow-hidden relative\">\n {renderedTabs.map(({ tab, isActive, hasError: _hasError, isLoading, showError, showContent }) => {\n const inactiveOffsetX =\n tabTransitionDirection === 0 ? 8 : tabTransitionDirection * 24;\n\n return (\n <div\n key={tab.id}\n className=\"absolute inset-0 h-full w-full\"\n style={{\n opacity: isActive ? 1 : 0,\n zIndex: isActive ? 10 : 0,\n pointerEvents: isActive ? 'auto' : 'none',\n transform: isActive\n ? 'translateX(0)'\n : `translateX(${inactiveOffsetX}px)`,\n transition: isMobileViewport\n ? 'opacity 0.24s ease, transform 0.24s ease'\n : 'opacity 0.2s ease-in-out, transform 0.2s ease-in-out',\n willChange: isActive ? 'opacity, transform' : 'auto',\n }}\n aria-hidden={!isActive}\n >\n {isLoading ? (\n <div className=\"h-full overflow-hidden p-4\">\n <PageLoadingSkeleton preset=\"dashboard\" />\n </div>\n ) : null}\n\n {showError ? (\n <div className=\"flex items-center justify-center h-full pt-4\">\n <div className=\"text-center max-w-md mx-auto p-6\">\n {renderLucideIcon('alert-circle', 'w-16 h-16 text-status-error mx-auto mb-4')}\n <h3 className=\"text-lg font-semibold text-neutral-900 dark:text-neutral-100 mb-2\">\n {t('multi_page_renderer.page_load_failed', 'Page Load Failed')}\n </h3>\n <p className=\"text-red-600 dark:text-red-400 mb-4\">\n {typeof tab.errorMessage === 'string' ? tab.errorMessage : t('multi_page_renderer.unknown_error', 'Unknown error')}\n </p>\n <button\n onClick={() => {\n\n window.location.reload();\n }}\n className=\"btn btn-primary\"\n >\n {t('multi_page_renderer.reload', 'Reload')}\n </button>\n </div>\n </div>\n ) : null}\n\n {showContent && (\n <TabContent\n tab={tab}\n appConfig={appConfig}\n availableParameters={availableParameters}\n isEmpty={!(tab.pageConfig as PageConfigType)?.components?.length}\n isTabActive={isActive}\n />\n )}\n </div>\n );\n })}\n </div>\n );\n};\n"],"names":["useMobileNavigationCanGoBack","canGoBack","setCanGoBack","useState","getMobileNavigationCanGoBack","useEffect","subscribeMobileNavigation","isGrid24LayoutInput","lc","ADOPTION_GRID24_CONFIG","PageLayoutRenderer","components","appConfig","layoutConfig","pageParams","pageId","tabId","isMobileViewport","useMobileFlowLayout","isRealMobileViewport","isMobileWorkbenchViewport","isPageFullscreen","usePageFullscreen","previewOnly","useStudioPreview","t","useTranslation","navigate","useNavigate","backEnabled","handleSubPageBack","useCallback","prev","popMobileNavigationEntry","formatMobileNavEntry","subPageBack","jsxs","jsx","ChevronLeft","stickyFilterFirst","renderComponent","component","index","keyPrefix","PageComponentRenderer","mapLegacyArea","area","componentMapping","useMemo","legacyLayout","mapping","withoutLayout","position","mappedArea","a","b","renderComponentList","componentList","item","span","gridColumnStyle","cn","Grid24Renderer","preset","LAYOUT_PRESETS","visibleAreas","getVisibleAreas","allComponents","isStickyPanel","componentsInArea","fallbackItems","i","next","ordered","collectRefreshableComponents","refreshableIds","traverse","comps","comp","tab","usePageAutoRefresh","pageConfig","isActive","intervalRef","useRef","refreshableComponentsRef","collectComponents","triggerRefresh","timestamp","refreshableComponents","refreshEvent","autoRefresh","interval","MOBILE_BOTTOM_NAV_CLEARANCE","useMobileTabTransitionDirection","useSyncExternalStore","subscribeMobileTabTransition","getMobileTabTransitionDirection","findScrollParent","node","p","overflowY","PageComingSoonOverlay","isEditMode","useEditMode","dismissed","setDismissed","rootRef","paneHeight","setPaneHeight","useLayoutEffect","scrollParent","update","paneRect","nav","navTop","ro","Rocket","Button","Eye","ParameterDebugPanel","TabContent","memo","availableParameters","isEmpty","isTabActive","rawPageConfig","useLocalizedPageConfig","pageStyleProps","applyCustomStyles","TabActivityProvider","ParameterProvider","WorkbenchEditMode","renderLucideIcon","MultiPageRenderer","tabs","activeTabId","tabTransitionDirection","resolvedActiveTabId","marked","renderedTabs","hasError","isLoading","showError","showContent","activeTabForAutoRefresh","r","createDefaultGrid24Layout","timer","resetMobileTabTransitionDirection","_hasError","inactiveOffsetX","PageLoadingSkeleton"],"mappings":";;;;;;AAMO,SAASA,KAAwC;AACtD,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAASC,GAA8B;AAEzE,SAAAC,EAAU,MACDC,GAA0B,MAAM;AACrC,IAAAJ,EAAaE,GAA8B;AAAA,EAC7C,CAAC,GACA,CAAA,CAAE,GAEEH;AACT;ACoCA,SAASM,EAAoBC,GAA2D;AACtF,SAAO,CAAC,CAACA,KAAOA,EAA0B,SAAS;AACrD;AAKA,MAAMC,KAA6C,CAOnD,GAWMC,KAAwD,CAAC;AAAA,EAC7D,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,QAAAC;AAAA,EACA,OAAAC;AACF,MAAM;AAIJ,QAAMC,IAAmBC,EAAA,GACnBC,IAAuBC,EAAA,GACvBC,IAAmBC,EAAA,GAEnB,EAAE,aAAAC,EAAA,IAAgBC,GAAA,GAalB,EAAE,GAAAC,EAAA,IAAMC,EAAe,WAAW,GAClCC,IAAWC,EAAA,GACX3B,IAAYD,GAAA,GACZ6B,IAAcV,KAAwBlB,KAAa,EAASW,GAAmB,mBAC/EkB,IAAoBC,EAAY,MAAM;AAC1C,UAAMC,IAAOC,GAAA;AACb,IAAID,OAAeE,GAAqBF,CAAI,GAAG,EAAE,SAAS,IAAM;AAAA,EAClE,GAAG,CAACL,CAAQ,CAAC,GACPQ,IAAcN,IAClB,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MAEC,MAAK;AAAA,MACL,SAASN;AAAA,MACT,cAAYL,EAAE,eAAe,MAAM;AAAA,MACnC,WAAU;AAAA,MAEV,UAAA;AAAA,QAAA,gBAAAY,EAACC,GAAA,EAAY,WAAU,UAAA,CAAU;AAAA,QAChCb,EAAE,eAAe,MAAM;AAAA,MAAA;AAAA,IAAA;AAAA,IAPpB;AAAA,EAAA,IASJ,MACEc,IACJV,KAAelB,EAAW,CAAC,GAAG,SAAS,iBAAiB,EAAQA,EAAW,CAAC,GAAG,OAAO,QAElF6B,IAAkBT,EAAY,CAACU,GAAgBC,GAAeC,IAAoB,OACtF,gBAAAN;AAAA,IAACO;AAAA,IAAA;AAAA,MAEC,WAAAH;AAAA,MACA,WAAA7B;AAAA,MACA,YAAAE;AAAA,MACA,QAAAC;AAAA,MACA,OAAAC;AAAA,MACA,cAAc;AAAA,IAAA;AAAA,IANT,GAAG2B,CAAS,GAAGF,EAAU,MAAMA,EAAU,IAAI,IAAIC,CAAK;AAAA,EAAA,GAQ5D,CAAC9B,GAAWE,GAAYC,GAAQC,CAAK,CAAC,GAEnC6B,IAAgB,CAACC,OACqB;AAAA,IACxC,KAAO;AAAA,IACP,QAAU;AAAA,IACV,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,MAAQ;AAAA,IACR,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,eAAe;AAAA,IACf,OAAS;AAAA,IACT,aAAa;AAAA,IACb,gBAAgB;AAAA,IAChB,QAAU;AAAA,IACV,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,gBAAgB;AAAA,IAChB,QAAU;AAAA,EAAA,GAEIA,CAAI,KAAmBA,GAGnCC,IAAmBC,EAAQ,MAAM;AAMrC,QAJI,CAACnC,KAAgBN,EAAoBM,CAAY,KAIjD,CAACA,EAAa;AAChB,aAAO;AAGT,UAAMoC,IAAepC,GACfqC,IAAmC;AAAA,MACvC,KAAO,CAAA;AAAA,MACP,QAAU,CAAA;AAAA,MACV,eAAe,CAAA;AAAA,MACf,iBAAiB,CAAA;AAAA,MACjB,gBAAgB,CAAA;AAAA,MAChB,iBAAiB,CAAA;AAAA,MACjB,MAAQ,CAAA;AAAA,MACR,YAAY,CAAA;AAAA,MACZ,eAAe,CAAA;AAAA,MACf,eAAe,CAAA;AAAA,MACf,OAAS,CAAA;AAAA,MACT,aAAa,CAAA;AAAA,MACb,gBAAgB,CAAA;AAAA,MAChB,QAAU,CAAA;AAAA,MACV,eAAe,CAAA;AAAA,MACf,iBAAiB,CAAA;AAAA,MACjB,gBAAgB,CAAA;AAAA,MAChB,QAAU,CAAA;AAAA,IAAC,GAGPC,IAAuB,CAAA;AAE7B,WAAAxC,EAAW,QAAQ,CAAA8B,MAAa;AAC9B,YAAMW,IAAWH,EAAa,qBAAqBR,EAAU,EAAE;AAC/D,UAAIW,GAAU,MAAM;AAElB,cAAMC,IAAaR,EAAcO,EAAS,IAAI;AAC9C,QAAIF,EAAQG,CAAU,IACpBH,EAAQG,CAAU,EAAE,KAAK,EAAE,WAAAZ,GAAW,OAAOW,EAAS,SAAS,GAAG,IAElED,EAAc,KAAK,EAAE,WAAAV,GAAW,OAAO,GAAG;AAAA,MAE9C;AACE,QAAAU,EAAc,KAAK,EAAE,WAAAV,GAAW,OAAO,GAAG;AAAA,IAE9C,CAAC,GAED,OAAO,KAAKS,CAAO,EAAE,QAAQ,CAACJ,MAAiB;AAC7C,MAAAI,EAAQJ,CAAgB,EAAE,KAAK,CAACQ,GAAGC,MAAMD,EAAE,QAAQC,EAAE,KAAK;AAAA,IAC5D,CAAC,GAEDL,EAAQ,IAAO,KAAK,GAAGC,CAAa,GAE7BD;AAAA,EACT,GAAG,CAACvC,GAAYE,CAAY,CAAC,GAEvB2C,IAAsBzB,EAAY,CAAC0B,GAAsBd,IAAoB,OACjF,gBAAAN;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAO,EAAE,KAAKpB,IAAmB,YAAY,OAAA;AAAA,MAE5C,UAAAwC,EAAc,IAAI,CAACC,GAAMhB,MAAU;AAClC,cAAMD,IAAYiB,EAAK,aAAaA,GAG9BC,IADY9C,EAAkC,qBAAqB4B,EAAU,EAAE,GAC9D,QAAQA,EAAU,OAAO,QAAQ,GAClDmB,IAAkBD,IAAO,IAAI,EAAE,YAAY,QAAQA,CAAI,GAAA,IAAO,CAAA;AAEpE,eACE,gBAAAtB;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,OAAOuB;AAAA,YACP,WAAU;AAAA,YAET,UAAApB,EAAgBC,GAAWC,GAAOC,CAAS;AAAA,UAAA;AAAA,UAJvC,GAAGA,CAAS,GAAGF,EAAU,MAAMA,EAAU,IAAI,IAAIC,CAAK;AAAA,QAAA;AAAA,MAOjE,CAAC;AAAA,IAAA;AAAA,EAAA,GAEF,CAACF,GAAiB3B,GAAcI,CAAgB,CAAC;AAOpD,MAAK,CAACN,KAAcA,EAAW,WAAW;AACxC,WACE,gBAAA0B,EAAC,OAAA,EAAI,WAAU,wDACb,UAAA,gBAAAA,EAAC,KAAA,EAAE,WAAU,iCACV,UAAAZ,EAAE,mBAAmB,+BAA+B,EAAA,CACvD,GACF;AA4DJ,MAnDsDlB,EAAoBM,CAAY,KAElF,CAACA,KAAkBA,EAAkC,oBAiDrDA,KAAgBN,EAAoBM,CAAY;AAClD,6BACG,OAAA,EAAI,WAAWgD,EAAG,yBAAyBxC,KAAoB,sBAAsB,GACpF,UAAA,gBAAAgB;AAAA,MAACyB;AAAA,MAAA;AAAA,QACC,QAAQjD;AAAA,QACR,YAAAF;AAAA,QACA,cAAc;AAAA,QACd,WAAAC;AAAA,QACA,YAAAE;AAAA,QACA,QAAAC;AAAA,QACA,OAAAC;AAAA,QAGA,iBAAiBO;AAAA,QAIjB,kBAAkBY;AAAA,MAAA;AAAA,IAAA,GAEtB;AAIJ,MAAItB,KAAgBkC,GAAkB;AAEpC,QAAIgB,IAAuB;AAE3B,IAAIlD,EAAa,UAAU,OAAO,KAAKmD,EAAc,EAAE,SAASnD,EAAa,MAAM,IACjFkD,IAASlD,EAAa,SAUtBkD,IAPoD;AAAA,MAClD,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,MAChB,sBAAsB;AAAA,MACtB,gBAAgB;AAAA,MAChB,gBAAgB;AAAA,IAAA,EAEKlD,EAAa,MAAgB,KAAK;AAG3D,UAAMoD,IAAeC,GAAgBH,CAAM;AAE3C,QAAI9C,GAAkB;AACpB,YAAMkD,IAAgBF,EAAa;AAAA,QACjC,CAACnB,MAASC,IAAmBD,CAAI,KAAK,CAAA;AAAA,MAAC;AAGzC,aACE,gBAAAT,EAAC,SAAI,WAAU,iDACZ,YAAc,IAAI,CAACqB,GAAMhB,MAAU;AAClC,cAAMD,IAAYiB,EAAK,aAAaA,GAI9BU,IACJ3B,GAAW,SAAS,iBAAiB,EAAQA,GAAW,OAAO;AACjE,eACE,gBAAAJ;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAW+B,IAAgB,aAAa;AAAA,YAEvC,UAAA5B,EAAgBC,GAAWC,GAAO,SAAS;AAAA,UAAA;AAAA,UAHvC,UAAUD,EAAU,MAAMA,EAAU,IAAI,IAAIC,CAAK;AAAA,QAAA;AAAA,MAM5D,CAAC,EAAA,CACH;AAAA,IAEJ;AAEE,WACA,gBAAAL,EAAC,SAAI,WAAW,sBAAsB0B,CAAM,kBACzC,UAAAE,EAAa,IAAI,CAACnB,MAAS;AAC1B,YAAMuB,IAAmBtB,IAAmBD,CAAI,KAAK,CAAA;AAErD,aAAIuB,EAAiB,WAAW,IACvB,OAIT,gBAAAhC;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAW,eAAeS,CAAI;AAAA,UAE7B,UAAAU,EAAoBa,GAAkB,GAAGvB,CAAI,GAAG;AAAA,QAAA;AAAA,QAH5CA;AAAA,MAAA;AAAA,IAMT,CAAC,EAAA,CACF;AAAA,EAEL;AAIA,QAAMwB,IAAmC,CAAA;AACzC,WAASC,IAAI,GAAGA,IAAI5D,EAAW,QAAQ4D,KAAK;AAC1C,UAAM9B,IAAY9B,EAAW4D,CAAC,GACxBC,IAAO7D,EAAW4D,IAAI,CAAC;AAC7B,QAAI9B,GAAW,SAAS,WAAW+B,GAAM,SAAS,aAAa;AAC7D,MAAAF,EAAc;AAAA,QACZ,gBAAAlC;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WAAU;AAAA,YAET,UAAA;AAAA,cAAAI,EAAgBC,GAAW8B,GAAG,WAAW;AAAA,cACzC/B,EAAgBgC,GAAMD,IAAI,GAAG,WAAW;AAAA,YAAA;AAAA,UAAA;AAAA,UAJpC,mBAAmB9B,EAAU,MAAMA,EAAU,IAAI,IAAI8B,CAAC;AAAA,QAAA;AAAA,MAK7D,GAEFA;AACA;AAAA,IACF;AACA,IAAAD,EAAc,KAAK9B,EAAgBC,GAAW8B,GAAG,WAAW,CAAC;AAAA,EAC/D;AACA,QAAME,IAAW5C,IAEbU,IACE,CAAC+B,EAAc,CAAC,GAAGnC,GAAa,GAAGmC,EAAc,MAAM,CAAC,CAAC,IACzD,CAACnC,GAAa,GAAGmC,CAAa,IAHhCA;AAIJ,2BACG,OAAA,EAAI,WAAWrD,IAAmB,wCAAwC,oBACxE,UAAAwD,GACH;AAEJ,GChbMC,KAA+B,CAAC/D,MAAsC;AAC1E,QAAMgE,IAA2B,CAAA,GAE3BC,IAAW,CAACC,MAAuB;AACvC,eAAWC,KAAQD,GAAO;AAExB,UAAIC,EAAK,SAAS,eAAeA,EAAK,UAAU;AAC9C,QAAAF,EAASE,EAAK,QAAQ;AACtB;AAAA,MACF;AAEA,UAAIA,EAAK,SAAS,UAAUA,EAAK,OAAO,OAAO;AAC7C,mBAAWC,KAAOD,EAAK,MAAM;AAC3B,UAAIC,EAAI,YACNH,EAASG,EAAI,QAAQ,GAGnBA,EAAI,cACNH,EAASG,EAAI,UAAU;AAG3B;AAAA,MACF;AAEA,UAAID,EAAK,SAAS,UAAUA,EAAK,OAAO,SAAS;AAC/C,QAAAF,EAAS,CAACE,EAAK,MAAM,OAAO,CAAC;AAC7B;AAAA,MACF;AAGA,MADsBA,EAAK,OAAO,sBAAsB,MAEtDH,EAAe,KAAKG,EAAK,EAAE;AAAA,IAE/B;AAAA,EACF;AAEA,SAAAF,EAASjE,CAAU,GACZgE;AACT,GAEaK,KAAqB,CAAC;AAAA,EACjC,YAAAC;AAAA,EACA,QAAAlE;AAAA,EACA,UAAAmE;AACF,MAA8B;AAC5B,QAAMC,IAAcC,EAA8B,IAAI,GAChDC,IAA2BD,EAAiB,EAAE,GAE9CE,IAAoBvD,EAAY,MAC/BkD,GAAY,aAGVP,GAA6BO,EAAW,UAAU,IAFhD,CAAA,GAGR,CAACA,GAAY,UAAU,CAAC,GAErBM,IAAiBxD,EAAY,MAAM;AACvC,UAAMyD,IAAY,KAAK,IAAA,GACjBC,IAAwBJ,EAAyB;AAEvD,QAAI,OAAO,SAAW,KAAa;AACjC,YAAMK,IAAe,IAAI,YAAY,6BAA6B;AAAA,QAChE,QAAQ;AAAA,UACN,WAAAF;AAAA,UACA,QAAAzE;AAAA,UACA,cAAc0E;AAAA,UACd,QAAQ;AAAA,QAAA;AAAA,MACV,CACD;AACD,aAAO,cAAcC,CAAY;AAAA,IACnC;AAAA,EACF,GAAG,CAAC3E,CAAM,CAAC;AAEX,EAAAV,EAAU,MAAM;AAEd,UAAMsF,IAAcV,GAAY;AAChC,QAAI,CAACC,KAAY,CAACS,GAAa,SAAS;AACtC,MAAIR,EAAY,YACd,cAAcA,EAAY,OAAO,GACjCA,EAAY,UAAU;AAExB;AAAA,IACF;AAEA,UAAMM,IAAwBH,EAAA;AAG9B,QAFAD,EAAyB,UAAUI,GAE/BA,EAAsB,WAAW;AACnC;AAGF,UAAMG,IAAWD,EAAY,WAAW;AACxC,WAAAR,EAAY,UAAU,YAAY,MAAM;AACtC,MAAAI,EAAA;AAAA,IACF,GAAGK,CAAQ,GAEXL,EAAA,GAEO,MAAM;AACX,MAAIJ,EAAY,YACd,cAAcA,EAAY,OAAO,GACjCA,EAAY,UAAU;AAAA,IAE1B;AAAA,EACF,GAAG,CAACF,GAAY,aAAa,SAASA,GAAY,aAAa,UAAUC,GAAUI,GAAmBC,CAAc,CAAC,GAErHlF,EAAU,MAAM;AACd,QAAI8E,EAAY,WAAWF,GAAY,aAAa,SAAS;AAC3D,YAAMQ,IAAwBH,EAAA;AAC9B,MAAAD,EAAyB,UAAUI;AAAA,IACrC;AAAA,EACF,GAAG,CAACR,GAAY,YAAYA,GAAY,aAAa,SAASK,CAAiB,CAAC;AAClF,GCrHaO,KAA8B;ACGpC,SAASC,KAA8C;AAC5D,SAAOC;AAAA,IACLC;AAAA,IACAC;AAAA,IACA,MAAM;AAAA,EAAA;AAEV;ACLA,SAASC,GAAiBC,GAA8C;AACtE,WAASC,IAAID,GAAM,iBAAiB,MAAMC,GAAGA,IAAIA,EAAE,eAAe;AAChE,UAAM,EAAE,WAAAC,EAAA,IAAc,iBAAiBD,CAAC;AACxC,QAAIC,MAAc,UAAUA,MAAc,SAAU,QAAOD;AAAA,EAC7D;AACA,SAAO;AACT;AAYO,SAASE,KAAwB;AACtC,QAAM,EAAE,GAAA7E,EAAA,IAAMC,EAAe,WAAW,GAClC,EAAE,YAAA6E,EAAA,IAAeC,GAAA,GACjB,CAACC,GAAWC,CAAY,IAAIvG,EAAS,EAAK,GAC1CwG,IAAUvB,EAAuB,IAAI,GAIrC,CAACwB,GAAYC,CAAa,IAAI1G,EAAwB,IAAI;AAkChE,SA/BAE,EAAU,MAAM;AACd,IAAAqG,EAAa,EAAK;AAAA,EACpB,GAAG,CAACH,CAAU,CAAC,GAEfO,EAAgB,MAAM;AACpB,QAAkBL,EAAW;AAC7B,UAAMM,IAAeb,GAAiBS,EAAQ,OAAO,GAC/CK,IAAS,MAAM;AACnB,YAAMC,IAAWF,IACbA,EAAa,sBAAA,IACb,EAAE,KAAK,GAAG,QAAQ,OAAO,YAAA,GAGvBG,IAAM,SAAS,cAAc,2BAA2B,GACxDC,IAASD,IAAMA,EAAI,sBAAA,EAAwB,MAAM,OAAO;AAC9D,MAAAL,EAAc,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,IAAII,EAAS,QAAQE,CAAM,IAAIF,EAAS,GAAG,CAAC,CAAC;AAAA,IACzF;AAEA,QADAD,EAAA,GACID,KAAgB,OAAO,iBAAmB,KAAa;AACzD,YAAMK,IAAK,IAAI,eAAeJ,CAAM;AACpC,aAAAI,EAAG,QAAQL,CAAY,GACvB,OAAO,iBAAiB,UAAUC,CAAM,GACjC,MAAM;AACX,QAAAI,EAAG,WAAA,GACH,OAAO,oBAAoB,UAAUJ,CAAM;AAAA,MAC7C;AAAA,IACF;AACA,kBAAO,iBAAiB,UAAUA,CAAM,GACjC,MAAM,OAAO,oBAAoB,UAAUA,CAAM;AAAA,EAC1D,GAAG,CAACT,GAAYE,CAAS,CAAC,GAERA,IACT;AAAA;AAAA,IAKP,gBAAApE,EAAC,OAAA,EAAI,KAAKsE,GAAS,WAAU,6EAM3B,UAAA,gBAAAvE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,QAAQwE,KAAc,OAAO,GAAGA,CAAU,OAAO,SAAA;AAAA,QAE1D,UAAA;AAAA,UAAA,gBAAAvE,EAAC,QAAA,EAAK,WAAU,iIACd,UAAA,gBAAAA,EAACgF,GAAA,EAAO,WAAU,WAAU,aAAa,KAAK,eAAY,OAAA,CAAO,GACnE;AAAA,UACA,gBAAAjF,EAAC,OAAA,EAAI,WAAU,4DACb,UAAA;AAAA,YAAA,gBAAAC,EAAC,UAAK,WAAU,6EACb,UAAAZ,EAAE,qBAAqB,aAAa,GACvC;AAAA,8BACC,QAAA,EAAK,WAAU,6DACb,UAAAA,EAAE,2BAA2B,+CAA+C,EAAA,CAC/E;AAAA,UAAA,GACF;AAAA,UACA,gBAAAW;AAAA,YAACkF;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,SAAS,MAAMZ,EAAa,EAAI;AAAA,cAChC,WAAU;AAAA,cAEV,UAAA;AAAA,gBAAA,gBAAArE,EAACkF,GAAA,EAAI,WAAU,eAAc,eAAY,QAAO;AAAA,gBAC/C9F,EAAE,uBAAuB,cAAc;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAC1C;AAAA,MAAA;AAAA,IAAA,EACF,CACF;AAAA;AAEJ;ACnFA,MAAM+F,KAAgC,MAE7B,MAkFHC,IAAaC,EAAsB,CAAC,EAAE,KAAA3C,GAAK,WAAAnE,GAAW,qBAAA+G,GAAqB,SAAAC,GAAS,aAAAC,IAAc,SAAW;AACjH,QAAM,EAAE,GAAApG,EAAA,IAAMC,EAAe,CAAC,aAAa,QAAQ,CAAC,GAC9CoG,IAAgB/C,EAAI,YACpBE,IAAa8C,GAAuBhD,EAAI,QAAQ+C,CAAa,KAAKA,GAIlE7G,IAAmBC,EAAA,GACnBC,IAAuBC,EAAA,GACvBC,IAAmBC,EAAA,GACnB0G,IAAiBC;AAAA,IACrB,QAAQlD,EAAI,MAAM;AAAA,IAClBE,EAAW;AAAA,IACX;AAAA,EAAA;AAGF,SACE,gBAAA7C,EAAC8F,IAAA,EAAoB,OAAOL,GAC5B,UAAA;AAAA,IAAA,gBAAAxF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWwB;AAAA,UACT;AAAA,UACAmE,EAAe;AAAA,UACf3G,IACI,kCACAJ,IAIE,0EACA;AAAA,QAAA;AAAA,QAER,OAAO+G,EAAe;AAAA,QAEtB,UAAA,gBAAA5F;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWyB;AAAA,cACTxC,IAGI,mDACAJ,IACE,cACA;AAAA,YAAA;AAAA,YAER,OACE,CAACI,KAAoBF,IACjB,EAAE,eAAe0E,OACjB;AAAA,YAGN,UAAA;AAAA,cAAA,gBAAAzD;AAAA,gBAAC+F;AAAA,gBAAA;AAAA,kBACC,OAAOpD,EAAI;AAAA,kBACX,QAAQA,EAAI;AAAA,kBACZ,eAAeA,EAAI,aAAa,CAAA;AAAA,kBAEhC,UAAA;AAAA,oBAAA,gBAAA1C,EAACmF,IAAA,EAAoB;AAAA,oBAIrB,gBAAAnF;AAAA,sBAAC+F;AAAA,sBAAA;AAAA,wBACC,YAAAnD;AAAA,wBACA,QAAQF,EAAI;AAAA,wBACZ,OAAOA,EAAI;AAAA,wBACX,aAAA8C;AAAA,wBACA,qBAAAF;AAAA,wBAEC,UAAAC,sBACE,OAAA,EAAI,WAAU,iDACb,UAAA,gBAAAxF,EAAC,OAAA,EAAI,WAAU,gCACb,UAAA;AAAA,0BAAA,gBAAAC,EAAC,SAAI,WAAU,+EACZ,UAAAgG,EAAiB,eAAe,wBAAwB,GAC3D;AAAA,4CACC,MAAA,EAAG,WAAU,qEACX,UAAA5G,EAAE,sCAAsC,0BAA0B,GACrE;AAAA,4CACC,KAAA,EAAE,WAAU,+CACV,UAAAA,EAAE,kDAAkD,6FAA6F,GACpJ;AAAA,0BACA,gBAAAW,EAAC,OAAA,EAAI,WAAU,yFACZ,UAAA;AAAA,4BAAAiG,EAAiB,eAAe,SAAS;AAAA,4BAC1C,gBAAAhG,EAAC,QAAA,EAAM,UAAAZ,EAAE,2CAA2C,sBAAsB,EAAA,CAAE;AAAA,0BAAA,EAAA,CAC9E;AAAA,wBAAA,EAAA,CACF,GACF,IAEA,gBAAAY;AAAA,0BAAC3B;AAAA,0BAAA;AAAA,4BAEC,YAAYuE,EAAW,cAAc,CAAA;AAAA,4BACrC,WAAArE;AAAA,4BACA,cAAcqE,EAAW;AAAA,4BACzB,YAAYF,EAAI;AAAA,4BAChB,QAAQA,EAAI;AAAA,4BACZ,OAAOA,EAAI;AAAA,0BAAA;AAAA,0BANN,UAAUA,EAAI,EAAE;AAAA,wBAAA;AAAA,sBAOvB;AAAA,oBAAA;AAAA,kBAEJ;AAAA,gBAAA;AAAA,cAAA;AAAA,cAMDnE,GAAW,sBAAsBA,GAAW,yBAAyBmE,EAAI,WAAWnE,EAAU,yBAC7F,gBAAAyB,EAAC,OAAA,EAAI,WAAU,iCACb,UAAA,gBAAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,WAAU;AAAA,kBACV,SAAS,MACP,OAAO;AAAA,oBACL,IAAI,YAAY,sBAAsB;AAAA,sBACpC,QAAQ;AAAA,wBACN,QAAQzB,EAAU;AAAA,wBAClB,iBAAiBa,EAAE,uBAAuB,iBAAiB;AAAA,wBAC3D,MAAM;AAAA,wBACN,WAAW,CAAA;AAAA,sBAAC;AAAA,oBACd,CACD;AAAA,kBAAA;AAAA,kBAIJ,UAAAA,EAAE,wBAAwB,sBAAsB;AAAA,gBAAA;AAAA,cAAA,EACnD,CACF;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,IAKDwD,GAAY,YAAY,WAAW,gBAAA5C,EAACiE,IAAA,CAAA,CAAsB;AAAA,EAAA,GAC3D;AAEJ,CAAC;AAEDmB,EAAW,cAAc;AASlB,MAAMa,KAAsD,CAAC;AAAA,EAClE,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAA5H;AAAA,EACA,qBAAA+G,IAAsB,CAAA;AACxB,MAAM;AACJ,QAAM,EAAE,GAAAlG,EAAA,IAAMC,EAAe,CAAC,aAAa,QAAQ,CAAC,GAC9CT,IAAmBG,EAAA,GACnBqH,IAAyB3C,GAAA,GAEzB4C,IAAsB1F,EAAQ,MAAM;AACxC,QAAIuF,EAAK,WAAW,EAAG,QAAO;AAC9B,QAAIC,KAAeD,EAAK,KAAK,CAAC9G,MAAMA,EAAE,OAAO+G,CAAW,EAAG,QAAOA;AAClE,UAAMG,IAASJ,EAAK,KAAK,CAAC9G,MAAMA,EAAE,QAAQ;AAC1C,WAAIkH,IAAeA,EAAO,KACtBJ,EAAK,WAAW,IAAUA,EAAK,CAAC,EAAE,KAC/BA,EAAK,CAAC,GAAG,MAAM;AAAA,EACxB,GAAG,CAACA,GAAMC,CAAW,CAAC,GAEhBI,IAAe5F,EAAQ,MACpBuF,EAAK,IAAI,CAACxD,MAAQ;AACvB,UAAMG,IAAWH,EAAI,OAAO2D,GACtBG,IAAW,EAAQ9D,EAAI,UACvB+D,IAAY,EAAQ/D,EAAI,WACxBgE,IAAYF,KAAY,CAACC,GACzBE,IAAc,EAAQjE,EAAI,cAAe,CAAC+D,KAAa,CAACD;AAE9D,WAAO,EAAE,KAAA9D,GAAK,UAAAG,GAAU,UAAA2D,GAAU,WAAAC,GAAW,WAAAC,GAAW,aAAAC,EAAA;AAAA,EAC1D,CAAC,GACA,CAACT,GAAMG,CAAmB,CAAC,GAExBO,IAA0BjG,EAAQ,MACxB4F,EAAa,KAAK,CAACM,MAAMA,EAAE,YAAYA,EAAE,WAAW,GACpD,OAAO,MACpB,CAACN,CAAY,CAAC;AAuBjB,SArBA5D,GAAmB;AAAA,IACjB,YACGiE,GAAyB,cACzB;AAAA,MAEC,QAAQE,GAA0B,EAAE;AAAA,MACpC,YAAY,CAAA;AAAA,IAAC;AAAA,IAEjB,QAAQF,GAAyB,UAAU;AAAA,IAC3C,UAAU,EAAQA;AAAA,EAAuB,CAC1C,GAED5I,EAAU,MAAM;AACd,QAAI,CAACY,KAAoBwH,MAA2B;AAClD;AAGF,UAAMW,IAAQ,OAAO,WAAWC,IAAmC,GAAG;AACtE,WAAO,MAAM,OAAO,aAAaD,CAAK;AAAA,EACxC,GAAG,CAACnI,GAAkByH,GAAqBD,CAAsB,CAAC,GAE9D,CAACC,KAAuBH,EAAK,WAAW,sBAEvC,OAAA,EAAI,WAAU,2IACb,UAAA,gBAAAnG,EAAC,OAAA,EAAI,WAAU,iCACb,UAAA;AAAA,IAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,QACb,UAAA;AAAA,MAAA,gBAAAC,EAAC,SAAI,WAAU,+EACZ,UAAAgG,EAAiB,eAAe,sBAAsB,GACzD;AAAA,wBACC,MAAA,EAAG,WAAU,mGACX,UAAA5G,EAAE,qCAAqC,sBAAsB,GAChE;AAAA,wBACC,KAAA,EAAE,WAAU,oFACV,UAAAA,EAAE,2CAA2C,yNAAyN,EAAA,CACzQ;AAAA,IAAA,GACF;AAAA,IAEA,gBAAAW,EAAC,OAAA,EAAI,WAAU,mCACb,UAAA;AAAA,MAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,6IACb,UAAA;AAAA,QAAA,gBAAAC,EAAC,SAAI,WAAU,oDACZ,UAAAgG,EAAiB,oBAAoB,uBAAuB,GAC/D;AAAA,0BACC,MAAA,EAAG,WAAU,qEAAqE,UAAA5G,EAAE,2CAA2C,oBAAoB,GAAE;AAAA,0BACrJ,KAAA,EAAE,WAAU,kDACV,UAAAA,EAAE,uDAAuD,4GAA4G,EAAA,CACxK;AAAA,MAAA,GACF;AAAA,MAEA,gBAAAW,EAAC,OAAA,EAAI,WAAU,6IACb,UAAA;AAAA,QAAA,gBAAAC,EAAC,SAAI,WAAU,sDACZ,UAAAgG,EAAiB,YAAY,yBAAyB,GACzD;AAAA,0BACC,MAAA,EAAG,WAAU,qEAAqE,UAAA5G,EAAE,4CAA4C,oBAAoB,GAAE;AAAA,0BACtJ,KAAA,EAAE,WAAU,kDACV,UAAAA,EAAE,wDAAwD,gHAAgH,EAAA,CAC7K;AAAA,MAAA,GACF;AAAA,MAEA,gBAAAW,EAAC,OAAA,EAAI,WAAU,6IACb,UAAA;AAAA,QAAA,gBAAAC,EAAC,SAAI,WAAU,uDACZ,UAAAgG,EAAiB,YAAY,0BAA0B,GAC1D;AAAA,0BACC,MAAA,EAAG,WAAU,qEAAqE,UAAA5G,EAAE,uDAAuD,yBAAyB,GAAE;AAAA,0BACtK,KAAA,EAAE,WAAU,kDACV,UAAAA,EAAE,mEAAmE,2GAA2G,EAAA,CACnL;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,GACF;AAAA,IAEA,gBAAAW,EAAC,OAAA,EAAI,WAAU,2GACb,UAAA;AAAA,MAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,+CACZ,UAAA;AAAA,QAAAiG,EAAiB,eAAe,sBAAsB;AAAA,0BACtD,MAAA,EAAG,WAAU,gEACX,UAAA5G,EAAE,4CAA4C,gCAAgC,EAAA,CACjF;AAAA,MAAA,GACF;AAAA,wBACC,KAAA,EAAE,WAAU,+CACV,UAAAA,EAAE,kDAAkD,gGAAgG,GACvJ;AAAA,MACA,gBAAAW,EAAC,OAAA,EAAI,WAAU,0CACb,UAAA;AAAA,QAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,8DACZ,UAAA;AAAA,UAAAiG,EAAiB,uBAAuB,sBAAsB;AAAA,4BAC9D,QAAA,EAAK,WAAU,oCAAoC,UAAA5G,EAAE,mCAAmC,aAAa,EAAA,CAAE;AAAA,QAAA,GAC1G;AAAA,0BACC,QAAA,EAAK,WAAU,oBAAoB,UAAAA,EAAE,0BAA0B,IAAI,GAAE;AAAA,QACtE,gBAAAW,EAAC,OAAA,EAAI,WAAU,8DACZ,UAAA;AAAA,UAAAiG,EAAiB,QAAQ,sBAAsB;AAAA,4BAC/C,QAAA,EAAK,WAAU,oCAAoC,UAAA5G,EAAE,wCAAwC,kBAAkB,EAAA,CAAE;AAAA,QAAA,EAAA,CACpH;AAAA,MAAA,EAAA,CACF;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,EAAA,CACF,EAAA,CACF,IAKF,gBAAAY,EAAC,OAAA,EAAI,WAAU,0CACZ,YAAa,IAAI,CAAC,EAAE,KAAA0C,GAAK,UAAAG,GAAU,UAAUoE,GAAW,WAAAR,GAAW,WAAAC,GAAW,aAAAC,QAAkB;AAC/F,UAAMO,IACJd,MAA2B,IAAI,IAAIA,IAAyB;AAE9D,WACE,gBAAArG;AAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAU;AAAA,QACV,OAAO;AAAA,UACL,SAAS8C,IAAW,IAAI;AAAA,UACxB,QAAQA,IAAW,KAAK;AAAA,UACxB,eAAeA,IAAW,SAAS;AAAA,UACnC,WAAWA,IACP,kBACA,cAAcqE,CAAe;AAAA,UACjC,YAAYtI,IACR,6CACA;AAAA,UACJ,YAAYiE,IAAW,uBAAuB;AAAA,QAAA;AAAA,QAEhD,eAAa,CAACA;AAAA,QAEb,UAAA;AAAA,UAAA4D,IACC,gBAAAzG,EAAC,SAAI,WAAU,8BACb,4BAACmH,IAAA,EAAoB,QAAO,YAAA,CAAY,EAAA,CAC1C,IACE;AAAA,UAEHT,sBACE,OAAA,EAAI,WAAU,gDACb,UAAA,gBAAA3G,EAAC,OAAA,EAAI,WAAU,oCACZ,UAAA;AAAA,YAAAiG,EAAiB,gBAAgB,0CAA0C;AAAA,8BAC3E,MAAA,EAAG,WAAU,qEACX,UAAA5G,EAAE,wCAAwC,kBAAkB,GAC/D;AAAA,YACA,gBAAAY,EAAC,KAAA,EAAE,WAAU,uCACV,UAAA,OAAO0C,EAAI,gBAAiB,WAAWA,EAAI,eAAetD,EAAE,qCAAqC,eAAe,GACnH;AAAA,YACA,gBAAAY;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,SAAS,MAAM;AAEb,yBAAO,SAAS,OAAA;AAAA,gBAClB;AAAA,gBACA,WAAU;AAAA,gBAET,UAAAZ,EAAE,8BAA8B,QAAQ;AAAA,cAAA;AAAA,YAAA;AAAA,UAC3C,EAAA,CACF,GACF,IACE;AAAA,UAEHuH,KACC,gBAAA3G;AAAA,YAACoF;AAAA,YAAA;AAAA,cACC,KAAA1C;AAAA,cACA,WAAAnE;AAAA,cACA,qBAAA+G;AAAA,cACA,SAAS,CAAE5C,EAAI,YAA+B,YAAY;AAAA,cAC1D,aAAaG;AAAA,YAAA;AAAA,UAAA;AAAA,QACf;AAAA,MAAA;AAAA,MApDGH,EAAI;AAAA,IAAA;AAAA,EAwDf,CAAC,EAAA,CACH;AAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.js","sources":["../../../src/components/adapters/host.ts"],"sourcesContent":["import type { GeniAppHostAdapters } from '../types/host-adapters';\nimport {\n configureWorkbenchHostAdapters,\n getWorkbenchHostAdapters,\n} from '../
|
|
1
|
+
{"version":3,"file":"host.js","sources":["../../../src/components/adapters/host.ts"],"sourcesContent":["import type { GeniAppHostAdapters } from '../types/host-adapters';\nimport {\n configureWorkbenchHostAdapters,\n getWorkbenchHostAdapters,\n} from '../lib/api/hostAdapterBridge';\n\nexport function configureGeniAppHostAdapters(adapters: GeniAppHostAdapters): () => void {\n return configureWorkbenchHostAdapters(adapters);\n}\n\nexport function getGeniAppHostAdapters(): GeniAppHostAdapters {\n return getWorkbenchHostAdapters();\n}\n"],"names":["configureGeniAppHostAdapters","adapters","configureWorkbenchHostAdapters","getGeniAppHostAdapters","getWorkbenchHostAdapters"],"mappings":";AAMO,SAASA,EAA6BC,GAA2C;AACtF,SAAOC,EAA+BD,CAAQ;AAChD;AAEO,SAASE,IAA8C;AAC5D,SAAOC,EAAA;AACT;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
|
|
3
|
-
declare const subscriptionService: import('
|
|
3
|
+
declare const subscriptionService: import('../../shared/platform-ui/index.ts').SubscriptionService;
|
|
4
4
|
interface SubscriptionProviderProps {
|
|
5
5
|
children: ReactNode;
|
|
6
6
|
}
|
|
7
7
|
export declare function SubscriptionProvider({ children }: SubscriptionProviderProps): import("react").JSX.Element;
|
|
8
|
-
export { useSubscription, useSubscriptionContext, SubscriptionGuard, ResourceLimitGuard, FeatureFlag, PlanRequired, } from '
|
|
8
|
+
export { useSubscription, useSubscriptionContext, SubscriptionGuard, ResourceLimitGuard, FeatureFlag, PlanRequired, } from '../../shared/platform-ui/index.ts';
|
|
9
9
|
export { subscriptionService };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { clearAuthToken, getAuthToken, getRefreshToken, setAuthToken } from '
|
|
1
|
+
export { clearAuthToken, getAuthToken, getRefreshToken, setAuthToken } from '../../shared/platform-api/index.ts';
|
package/dist/components/{internal/workbench/contexts → contexts}/WorkbenchGlobalSpaceContext.d.ts
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React, ReactNode } from 'react';
|
|
2
|
-
import { useSpace } from '
|
|
2
|
+
import { useSpace } from '../shared/platform-ui/index.ts';
|
|
3
3
|
|
|
4
4
|
type WorkbenchGlobalSpaceContextValue = ReturnType<typeof useSpace>;
|
|
5
5
|
export declare function WorkbenchGlobalSpaceProvider({ children }: {
|
package/dist/components/{internal/workbench/components/dialogs → dialogs}/TreeFormDialog.d.ts
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
import { InsertDatasetConfig, UpdateDatasetConfig } from '
|
|
3
|
-
import { ColumnConfig } from '../editor
|
|
2
|
+
import { InsertDatasetConfig, UpdateDatasetConfig } from '../types';
|
|
3
|
+
import { ColumnConfig } from '../types/editor';
|
|
4
4
|
|
|
5
5
|
interface TreeFormDialogProps {
|
|
6
6
|
isOpen: boolean;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* Enabled built-in nav apps + active id for AppHeader (pinned shortcuts, team apps menu).
|
|
3
3
|
*/
|
|
4
4
|
export declare function useWorkbenchHeaderNavApps(displayLanguage?: string): {
|
|
5
|
-
enabledBuiltInApps: import('
|
|
5
|
+
enabledBuiltInApps: import('../shared/platform-ui/index.ts').EnabledBuiltInAppItem[];
|
|
6
6
|
activeBuiltInAppId: string;
|
|
7
7
|
};
|