@genispace/geniapp 0.3.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.
Files changed (712) hide show
  1. package/README.md +36 -11
  2. package/dist/{CrossAppRecordPicker-CQVmirWD.js → CrossAppRecordPicker-BRpqAjd7.js} +189 -253
  3. package/dist/CrossAppRecordPicker-BRpqAjd7.js.map +1 -0
  4. package/dist/MultiPageRenderer-B4G9Oswj.js +535 -0
  5. package/dist/MultiPageRenderer-B4G9Oswj.js.map +1 -0
  6. package/dist/Sidebar-DdSOXqnC.js +260 -0
  7. package/dist/Sidebar-DdSOXqnC.js.map +1 -0
  8. package/dist/ai/adopt/AiSuggestionPanel.d.ts +1 -1
  9. package/dist/ai/components/AgentJobProgress.d.ts +1 -1
  10. package/dist/ai/components/BulkActionBar.d.ts +1 -1
  11. package/dist/ai/integrations/partner/createPartnerRecordPickerHook.d.ts +1 -1
  12. package/dist/case-workspace/domain.d.ts +1 -1
  13. package/dist/components/adapters/host.d.ts +4 -0
  14. package/dist/components/adapters/host.js +12 -0
  15. package/dist/components/adapters/host.js.map +1 -0
  16. package/dist/components/adapters/platform.d.ts +16 -0
  17. package/dist/components/app/context/DeploymentContext.d.ts +24 -0
  18. package/dist/components/app/context/PermissionContext.d.ts +32 -0
  19. package/dist/components/app/context/SubscriptionContext.d.ts +9 -0
  20. package/dist/components/app/context/UserContext.d.ts +22 -0
  21. package/dist/components/app/services/apiKey.d.ts +96 -0
  22. package/dist/components/app/services/auth.d.ts +1 -0
  23. package/dist/components/app/services/configMap.d.ts +94 -0
  24. package/dist/components/app/services/task.d.ts +42 -0
  25. package/dist/components/app/services/workbenchApi.d.ts +495 -0
  26. package/dist/components/app/types/agent.d.ts +100 -0
  27. package/dist/components/app/types/api.d.ts +9 -0
  28. package/dist/components/app/types/knowledge.d.ts +10 -0
  29. package/dist/components/app/types/model.d.ts +23 -0
  30. package/dist/components/app/types/task.d.ts +64 -0
  31. package/dist/components/app/types/taskExecution.d.ts +26 -0
  32. package/dist/components/assets/maps/bundledMapGeo.d.ts +4 -0
  33. package/dist/components/config/communicationIcons.d.ts +23 -0
  34. package/dist/components/config/componentTriggers.d.ts +70 -0
  35. package/dist/components/constants/tableActionButtonStyle.d.ts +15 -0
  36. package/dist/components/contexts/PageFullscreenContext.d.ts +4 -0
  37. package/dist/components/contexts/ParameterContext.d.ts +18 -0
  38. package/dist/components/contexts/TabActivityContext.d.ts +2 -0
  39. package/dist/components/contexts/ViewportContext.d.ts +19 -0
  40. package/dist/components/contexts/WorkbenchConfigLocaleContext.d.ts +23 -0
  41. package/dist/components/contexts/WorkbenchGlobalSpaceContext.d.ts +10 -0
  42. package/dist/components/contexts/WorkbenchThemeContext.d.ts +23 -0
  43. package/dist/components/dialogs/TaskParamsDialog.d.ts +18 -0
  44. package/dist/components/dialogs/TreeFormDialog.d.ts +23 -0
  45. package/dist/components/hooks/index.d.ts +6 -0
  46. package/dist/components/hooks/useComponentCommunication.d.ts +27 -0
  47. package/dist/components/hooks/useConditionMapper.d.ts +17 -0
  48. package/dist/components/hooks/useCurrentUser.d.ts +10 -0
  49. package/dist/components/hooks/useDatabaseDataSource.d.ts +8 -0
  50. package/dist/components/hooks/useDatasourceVersionBindings.d.ts +24 -0
  51. package/dist/components/hooks/useEnhancedDataSource.d.ts +40 -0
  52. package/dist/components/hooks/useMobileViewport.d.ts +18 -0
  53. package/dist/components/hooks/usePageAutoRefresh.d.ts +9 -0
  54. package/dist/components/hooks/useParameterHandler.d.ts +27 -0
  55. package/dist/components/hooks/useReleaseNotesPrompt.d.ts +38 -0
  56. package/dist/components/hooks/useSpaceSwitchHandler.d.ts +7 -0
  57. package/dist/components/hooks/useTaskInputDataSourceCache.d.ts +24 -0
  58. package/dist/components/hooks/useVisibleWhenContext.d.ts +3 -0
  59. package/dist/components/hooks/useWaitForParameters.d.ts +9 -0
  60. package/dist/components/hooks/useWorkbenchAppAccess.d.ts +16 -0
  61. package/dist/components/hooks/useWorkbenchHeaderNavApps.d.ts +7 -0
  62. package/dist/components/hooks/useWorkbenchPreview.d.ts +24 -0
  63. package/dist/components/index.d.ts +23 -0
  64. package/dist/components/inputs/ArrayInput.d.ts +14 -0
  65. package/dist/components/inputs/ObjectArrayInput.d.ts +15 -0
  66. package/dist/components/layout/Grid24Renderer.d.ts +23 -0
  67. package/dist/components/layout/grid24CellContext.d.ts +2 -0
  68. package/dist/components/layout/index.d.ts +6 -0
  69. package/dist/components/layout.js +43 -0
  70. package/dist/components/layout.js.map +1 -0
  71. package/dist/components/lib/api/apiClient.d.ts +22 -0
  72. package/dist/components/lib/api/baseApiClient.d.ts +21 -0
  73. package/dist/components/lib/api/hostAdapterBridge.d.ts +21 -0
  74. package/dist/components/lib/api.d.ts +1 -0
  75. package/dist/components/lib/auth/permissionManager.d.ts +67 -0
  76. package/dist/components/lib/config/deployment.d.ts +33 -0
  77. package/dist/components/lib/config.d.ts +45 -0
  78. package/dist/components/lib/hooks/use-mobile.d.ts +1 -0
  79. package/dist/components/lib/hooks/useOperator.d.ts +11 -0
  80. package/dist/components/lib/services/agentService.d.ts +77 -0
  81. package/dist/components/lib/services/applicationService.d.ts +111 -0
  82. package/dist/components/lib/theme/themeUtils.d.ts +13 -0
  83. package/dist/components/lib/theme/useWorkbenchTheme.d.ts +1 -0
  84. package/dist/components/lib/types/api.d.ts +113 -0
  85. package/dist/components/lib/utils/avatar.d.ts +7 -0
  86. package/dist/components/lib/utils/cn.d.ts +3 -0
  87. package/dist/components/lib/utils/color.d.ts +1 -0
  88. package/dist/components/lib/utils/debounce.d.ts +1 -0
  89. package/dist/components/lib/utils/formatting.d.ts +4 -0
  90. package/dist/components/lib/utils/icon.d.ts +1 -0
  91. package/dist/components/lib/utils.d.ts +7 -0
  92. package/dist/components/locales/i18n.d.ts +10 -0
  93. package/dist/components/locales/routeNamespaces.d.ts +4 -0
  94. package/dist/components/mobile/components/BottomTabNavigation.d.ts +11 -0
  95. package/dist/components/mobile/components/ComponentAdapter.d.ts +9 -0
  96. package/dist/components/mobile/components/MobileFloatingBackButton.d.ts +23 -0
  97. package/dist/components/mobile/components/adaptive/MobileCardView.d.ts +6 -0
  98. package/dist/components/mobile/components/adaptive/MobileChartView.d.ts +9 -0
  99. package/dist/components/mobile/components/adaptive/MobileDateRangeFilterField.d.ts +16 -0
  100. package/dist/components/mobile/components/adaptive/MobileEChartsView.d.ts +10 -0
  101. package/dist/components/mobile/components/adaptive/MobileFormView.d.ts +6 -0
  102. package/dist/components/mobile/components/adaptive/MobileListView.d.ts +6 -0
  103. package/dist/components/mobile/components/adaptive/MobileStatCard.d.ts +13 -0
  104. package/dist/components/mobile/components/adaptive/MobileTableView.d.ts +9 -0
  105. package/dist/components/mobile/components/adaptive/MobileTabsView.d.ts +6 -0
  106. package/dist/components/mobile/components/adaptive/index.d.ts +4 -0
  107. package/dist/components/mobile/components/adaptive/mobileFilterFieldStyles.d.ts +19 -0
  108. package/dist/components/mobile/hooks/useMobileNavigationCanGoBack.d.ts +1 -0
  109. package/dist/components/mobile/hooks/useMobileTabTransitionDirection.d.ts +1 -0
  110. package/dist/components/mobile/index.d.ts +4 -0
  111. package/dist/components/mobile/mobileFlowLayoutContext.d.ts +2 -0
  112. package/dist/components/mobile/runtime-index.d.ts +3 -0
  113. package/dist/components/mobile/utils/fetchUserCurrentSpaceId.d.ts +15 -0
  114. package/dist/components/mobile/utils/getMobileViewportState.d.ts +25 -0
  115. package/dist/components/mobile/utils/mobileBottomNav.d.ts +13 -0
  116. package/dist/components/mobile/utils/mobileBottomNavInset.d.ts +4 -0
  117. package/dist/components/mobile/utils/mobileComponentProps.d.ts +44 -0
  118. package/dist/components/mobile/utils/mobileFormDisplayUtils.d.ts +4 -0
  119. package/dist/components/mobile/utils/mobileNavigationStore.d.ts +35 -0
  120. package/dist/components/mobile/utils/mobileToolbarNav.d.ts +13 -0
  121. package/dist/components/mobile/utils/mobileUA.d.ts +1 -0
  122. package/dist/components/mobile/utils/mobileWorkbenchSpaceSync.d.ts +60 -0
  123. package/dist/components/mobile/utils/wecomDetector.d.ts +9 -0
  124. package/dist/components/mobile/utils/workbenchSpaceSyncGate.d.ts +7 -0
  125. package/dist/components/mobile.js +25 -0
  126. package/dist/components/mobile.js.map +1 -0
  127. package/dist/components/mocks/index.d.ts +13 -0
  128. package/dist/components/mocks/templateRegistry.d.ts +16 -0
  129. package/dist/components/mocks/types.d.ts +1 -0
  130. package/dist/components/renderers/analytics-table/AnalyticsTableRenderer.d.ts +125 -0
  131. package/dist/components/renderers/analytics-table/index.d.ts +1 -0
  132. package/dist/components/renderers/analytics-table.js +5 -0
  133. package/dist/components/renderers/analytics-table.js.map +1 -0
  134. package/dist/components/renderers/base/BaseRenderers.d.ts +7 -0
  135. package/dist/components/renderers/base/LoadingRenderer.d.ts +14 -0
  136. package/dist/components/renderers/card/CardRenderer.d.ts +24 -0
  137. package/dist/components/renderers/card/index.d.ts +1 -0
  138. package/dist/components/renderers/card.js +5 -0
  139. package/dist/components/renderers/card.js.map +1 -0
  140. package/dist/components/renderers/cells/swCells.d.ts +49 -0
  141. package/dist/components/renderers/chart/ChartRenderer.d.ts +167 -0
  142. package/dist/components/renderers/chart/index.d.ts +1 -0
  143. package/dist/components/renderers/chart.js +5 -0
  144. package/dist/components/renderers/chart.js.map +1 -0
  145. package/dist/components/renderers/collapse-panel/CollapsePanelRenderer.d.ts +28 -0
  146. package/dist/components/renderers/collapse-panel/index.d.ts +1 -0
  147. package/dist/components/renderers/collapse-panel.js +5 -0
  148. package/dist/components/renderers/collapse-panel.js.map +1 -0
  149. package/dist/components/renderers/container/ContainerRenderers.d.ts +44 -0
  150. package/dist/components/renderers/container/index.d.ts +1 -0
  151. package/dist/components/renderers/container.js +5 -0
  152. package/dist/components/renderers/container.js.map +1 -0
  153. package/dist/components/renderers/custom-content/CustomContentRenderer.d.ts +20 -0
  154. package/dist/components/renderers/custom-content/index.d.ts +1 -0
  155. package/dist/components/renderers/custom-content.js +6 -0
  156. package/dist/components/renderers/custom-content.js.map +1 -0
  157. package/dist/components/renderers/data/useBoundRows.d.ts +9 -0
  158. package/dist/components/renderers/data-grid-card/DataGridCard.d.ts +46 -0
  159. package/dist/components/renderers/data-grid-card/index.d.ts +1 -0
  160. package/dist/components/renderers/data-grid-card.js +5 -0
  161. package/dist/components/renderers/data-grid-card.js.map +1 -0
  162. package/dist/components/renderers/echarts/EChartsChartRenderer.d.ts +178 -0
  163. package/dist/components/renderers/echarts/index.d.ts +1 -0
  164. package/dist/components/renderers/echarts/shared/colors.d.ts +56 -0
  165. package/dist/components/renderers/echarts/shared/index.d.ts +1 -0
  166. package/dist/components/renderers/echarts.js +5 -0
  167. package/dist/components/renderers/echarts.js.map +1 -0
  168. package/dist/components/renderers/editable-table/EditableTable.types.d.ts +27 -0
  169. package/dist/components/renderers/editable-table/EditableTableController.d.ts +44 -0
  170. package/dist/components/renderers/editable-table/EditableTableRenderer.d.ts +38 -0
  171. package/dist/components/renderers/editable-table/cell-editors/ColorEditor.d.ts +11 -0
  172. package/dist/components/renderers/editable-table/cell-editors/DateEditor.d.ts +11 -0
  173. package/dist/components/renderers/editable-table/cell-editors/FileEditor.d.ts +9 -0
  174. package/dist/components/renderers/editable-table/cell-editors/NumberEditor.d.ts +10 -0
  175. package/dist/components/renderers/editable-table/cell-editors/SelectEditor.d.ts +19 -0
  176. package/dist/components/renderers/editable-table/cell-editors/SwitchEditor.d.ts +13 -0
  177. package/dist/components/renderers/editable-table/cell-editors/TextEditor.d.ts +11 -0
  178. package/dist/components/renderers/editable-table/cell-editors/index.d.ts +7 -0
  179. package/dist/components/renderers/editable-table/editableTableApiErrors.d.ts +3 -0
  180. package/dist/components/renderers/editable-table/editableTableDictionary.d.ts +13 -0
  181. package/dist/components/renderers/editable-table/editableTableFormatters.d.ts +11 -0
  182. package/dist/components/renderers/editable-table/editableTableWriteDatasourceId.d.ts +8 -0
  183. package/dist/components/renderers/editable-table/index.d.ts +4 -0
  184. package/dist/components/renderers/editable-table.js +6 -0
  185. package/dist/components/renderers/editable-table.js.map +1 -0
  186. package/dist/components/renderers/filter-panel/FilterPanelRenderer.d.ts +275 -0
  187. package/dist/components/renderers/filter-panel/filterOptionCache.d.ts +33 -0
  188. package/dist/components/renderers/filter-panel/filterSelectionMemory.d.ts +11 -0
  189. package/dist/components/renderers/filter-panel/index.d.ts +1 -0
  190. package/dist/components/renderers/filter-panel.js +5 -0
  191. package/dist/components/renderers/filter-panel.js.map +1 -0
  192. package/dist/components/renderers/form/FileUploadDropzone.d.ts +24 -0
  193. package/dist/components/renderers/form/FormRenderer.d.ts +30 -0
  194. package/dist/components/renderers/form/formSizing.d.ts +14 -0
  195. package/dist/components/renderers/form/index.d.ts +2 -0
  196. package/dist/components/renderers/form.js +6 -0
  197. package/dist/components/renderers/form.js.map +1 -0
  198. package/dist/components/renderers/hero-card/HeroCardRenderer.d.ts +18 -0
  199. package/dist/components/renderers/hero-card/heroCardRows.d.ts +30 -0
  200. package/dist/components/renderers/hero-card/heroCardUtils.d.ts +164 -0
  201. package/dist/components/renderers/hero-card/index.d.ts +1 -0
  202. package/dist/components/renderers/hero-card.js +5 -0
  203. package/dist/components/renderers/hero-card.js.map +1 -0
  204. package/dist/components/renderers/identity/AppIdentityListRenderer.d.ts +60 -0
  205. package/dist/components/renderers/identity/IdentityAttributeAssignRenderer.d.ts +44 -0
  206. package/dist/components/renderers/identity/index.d.ts +2 -0
  207. package/dist/components/renderers/identity.js +6 -0
  208. package/dist/components/renderers/identity.js.map +1 -0
  209. package/dist/components/renderers/index.d.ts +1 -0
  210. package/dist/components/renderers/list/ListActionButton.d.ts +11 -0
  211. package/dist/components/renderers/list/ListDataTable.d.ts +13 -0
  212. package/dist/components/renderers/list/ListProgressBar.d.ts +12 -0
  213. package/dist/components/renderers/list/ListRenderers.d.ts +19 -0
  214. package/dist/components/renderers/list/ListTaskExecuteDialog.d.ts +17 -0
  215. package/dist/components/renderers/list/index.d.ts +1 -0
  216. package/dist/components/renderers/list/listActionUtils.d.ts +18 -0
  217. package/dist/components/renderers/list/listCellRender.d.ts +9 -0
  218. package/dist/components/renderers/list/listConfig.d.ts +67 -0
  219. package/dist/components/renderers/list/listCsvExport.d.ts +4 -0
  220. package/dist/components/renderers/list/listFormatUtils.d.ts +13 -0
  221. package/dist/components/renderers/list/listItemTemplates.d.ts +32 -0
  222. package/dist/components/renderers/list/listViewToggleUtils.d.ts +5 -0
  223. package/dist/components/renderers/list/useListActions.d.ts +38 -0
  224. package/dist/components/renderers/list/useListDataSource.d.ts +58 -0
  225. package/dist/components/renderers/list/useListSelectionEmit.d.ts +22 -0
  226. package/dist/components/renderers/list.js +5 -0
  227. package/dist/components/renderers/list.js.map +1 -0
  228. package/dist/components/renderers/map-chart/MapChartRenderer.d.ts +42 -0
  229. package/dist/components/renderers/map-chart/index.d.ts +1 -0
  230. package/dist/components/renderers/map-chart.js +5 -0
  231. package/dist/components/renderers/map-chart.js.map +1 -0
  232. package/dist/components/renderers/metric-carousel/MetricCarouselRenderer.d.ts +26 -0
  233. package/dist/components/renderers/metric-carousel/index.d.ts +1 -0
  234. package/dist/components/renderers/metric-carousel.js +5 -0
  235. package/dist/components/renderers/metric-carousel.js.map +1 -0
  236. package/dist/components/renderers/navigation/NavTileRenderer.d.ts +13 -0
  237. package/dist/components/renderers/navigation/index.d.ts +1 -0
  238. package/dist/components/renderers/navigation/navTileUtils.d.ts +46 -0
  239. package/dist/components/renderers/navigation.js +5 -0
  240. package/dist/components/renderers/navigation.js.map +1 -0
  241. package/dist/components/renderers/product-detail/ProductDetailRenderer.d.ts +23 -0
  242. package/dist/components/renderers/product-detail/index.d.ts +1 -0
  243. package/dist/components/renderers/product-detail/productCellRender.d.ts +25 -0
  244. package/dist/components/renderers/product-detail.js +5 -0
  245. package/dist/components/renderers/product-detail.js.map +1 -0
  246. package/dist/components/renderers/product-report/ProductReportRenderer.d.ts +21 -0
  247. package/dist/components/renderers/product-report/index.d.ts +1 -0
  248. package/dist/components/renderers/product-report.js +5 -0
  249. package/dist/components/renderers/product-report.js.map +1 -0
  250. package/dist/components/renderers/publish/PublishHistoryRenderer.d.ts +21 -0
  251. package/dist/components/renderers/publish/PublishPreviewEntryRenderer.d.ts +16 -0
  252. package/dist/components/renderers/publish/index.d.ts +2 -0
  253. package/dist/components/renderers/publish/publishHistoryHelpers.d.ts +41 -0
  254. package/dist/components/renderers/publish/publishPreviewEntryHelpers.d.ts +50 -0
  255. package/dist/components/renderers/publish.js +6 -0
  256. package/dist/components/renderers/publish.js.map +1 -0
  257. package/dist/components/renderers/radar-chart/RadarChartRenderer.d.ts +40 -0
  258. package/dist/components/renderers/radar-chart/index.d.ts +1 -0
  259. package/dist/components/renderers/radar-chart.js +5 -0
  260. package/dist/components/renderers/radar-chart.js.map +1 -0
  261. package/dist/components/renderers/registry.d.ts +38 -0
  262. package/dist/components/renderers/ring-stat/RingStatRenderer.d.ts +66 -0
  263. package/dist/components/renderers/ring-stat/index.d.ts +1 -0
  264. package/dist/components/renderers/ring-stat.js +5 -0
  265. package/dist/components/renderers/ring-stat.js.map +1 -0
  266. package/dist/components/renderers/runtime-DX1LfmqO.js +206944 -0
  267. package/dist/components/renderers/runtime-DX1LfmqO.js.map +1 -0
  268. package/dist/components/renderers/service-desk/ServiceDeskReporterRenderer.d.ts +48 -0
  269. package/dist/components/renderers/service-desk/index.d.ts +1 -0
  270. package/dist/components/renderers/service-desk.js +5 -0
  271. package/dist/components/renderers/service-desk.js.map +1 -0
  272. package/dist/components/renderers/shared/TableEmptyStateWithChromeInsets.d.ts +12 -0
  273. package/dist/components/renderers/shared/ViewToggleButton.d.ts +13 -0
  274. package/dist/components/renderers/shared/useEscapedStickyPanel.d.ts +6 -0
  275. package/dist/components/renderers/shared/useMobileChromeInsets.d.ts +18 -0
  276. package/dist/components/renderers/shared/useStickyHeaderClone.d.ts +31 -0
  277. package/dist/components/renderers/statistics/StatisticGroup.d.ts +77 -0
  278. package/dist/components/renderers/statistics/index.d.ts +1 -0
  279. package/dist/components/renderers/statistics.js +5 -0
  280. package/dist/components/renderers/statistics.js.map +1 -0
  281. package/dist/components/renderers/table/TableRenderer.d.ts +5 -0
  282. package/dist/components/renderers/table/index.d.ts +1 -0
  283. package/dist/components/renderers/table/tableFilterPanelGridClass.d.ts +15 -0
  284. package/dist/components/renderers/table.js +5 -0
  285. package/dist/components/renderers/table.js.map +1 -0
  286. package/dist/components/renderers/tabs/TabsRenderer.d.ts +63 -0
  287. package/dist/components/renderers/tabs/index.d.ts +1 -0
  288. package/dist/components/renderers/tabs/tabVariantStyles.d.ts +50 -0
  289. package/dist/components/renderers/tabs/tabsItemMapping.d.ts +26 -0
  290. package/dist/components/renderers/tabs.js +5 -0
  291. package/dist/components/renderers/tabs.js.map +1 -0
  292. package/dist/components/renderers/task-input/ExecutionHistoryModal.d.ts +9 -0
  293. package/dist/components/renderers/task-input/TaskExecutionOutputs.d.ts +15 -0
  294. package/dist/components/renderers/task-input/TaskInputField.d.ts +54 -0
  295. package/dist/components/renderers/task-input/TaskInputRenderer.d.ts +68 -0
  296. package/dist/components/renderers/task-input/index.d.ts +1 -0
  297. package/dist/components/renderers/task-input.js +5 -0
  298. package/dist/components/renderers/task-input.js.map +1 -0
  299. package/dist/components/renderers/tile-grid/TileGridRenderer.d.ts +41 -0
  300. package/dist/components/renderers/tile-grid/index.d.ts +1 -0
  301. package/dist/components/renderers/tile-grid.js +5 -0
  302. package/dist/components/renderers/tile-grid.js.map +1 -0
  303. package/dist/components/renderers/tree/SimpleTreeRenderer.d.ts +47 -0
  304. package/dist/components/renderers/tree/index.d.ts +1 -0
  305. package/dist/components/renderers/tree.js +5 -0
  306. package/dist/components/renderers/tree.js.map +1 -0
  307. package/dist/components/renderers/types.d.ts +682 -0
  308. package/dist/components/renderers/typography/TypographyRenderer.d.ts +17 -0
  309. package/dist/components/renderers/typography/index.d.ts +1 -0
  310. package/dist/components/renderers/typography.js +8 -0
  311. package/dist/components/renderers/typography.js.map +1 -0
  312. package/dist/components/renderers/workflow/SimpleSchemaForm.d.ts +12 -0
  313. package/dist/components/renderers/workflow/WorkflowComponent.d.ts +5 -0
  314. package/dist/components/renderers/workflow/index.d.ts +1 -0
  315. package/dist/components/renderers/workflow/renderers/ProposalRendererFactory.d.ts +15 -0
  316. package/dist/components/renderers/workflow/runtime-index.d.ts +9 -0
  317. package/dist/components/renderers/workflow/steps/ProposalStep.d.ts +21 -0
  318. package/dist/components/renderers/workflow/steps/ResultStep.d.ts +13 -0
  319. package/dist/components/renderers/workflow/steps/UploadStep.d.ts +15 -0
  320. package/dist/components/renderers/workflow/types.d.ts +185 -0
  321. package/dist/components/renderers/workflow.js +5 -0
  322. package/dist/components/renderers/workflow.js.map +1 -0
  323. package/dist/components/renderers.js +41 -0
  324. package/dist/components/renderers.js.map +1 -0
  325. package/dist/components/runtime/ComponentRenderer.d.ts +34 -0
  326. package/dist/components/runtime/GeniAppComponentProvider.d.ts +24 -0
  327. package/dist/components/runtime/GeniAppWorkbench.d.ts +20 -0
  328. package/dist/components/runtime/Loading.d.ts +9 -0
  329. package/dist/components/runtime/MultiPageRenderer.d.ts +15 -0
  330. package/dist/components/runtime/PageComingSoonOverlay.d.ts +11 -0
  331. package/dist/components/runtime/PageRenderer.d.ts +36 -0
  332. package/dist/components/runtime/TabManager.d.ts +39 -0
  333. package/dist/components/runtime/componentTypes.d.ts +70 -0
  334. package/dist/components/runtime/i18n.d.ts +5 -0
  335. package/dist/components/runtime/runtime-mode.d.ts +40 -0
  336. package/dist/components/shared/TitleManager.d.ts +8 -0
  337. package/dist/components/shared/platform-api/auth/platformRefreshResponse.d.ts +3 -0
  338. package/dist/components/shared/platform-api/auth/setupAuthInterceptors.d.ts +18 -0
  339. package/dist/components/shared/platform-api/auth/tokenStorage.d.ts +4 -0
  340. package/dist/components/shared/platform-api/index.d.ts +4 -0
  341. package/dist/components/shared/platform-types/index.d.ts +1 -0
  342. package/dist/components/shared/platform-types/types/json-schema.d.ts +50 -0
  343. package/dist/components/shared/platform-ui/components/ai/index.d.ts +2 -0
  344. package/dist/components/shared/platform-ui/components/ai/message.d.ts +6 -0
  345. package/dist/components/shared/platform-ui/components/ai/suggestion.d.ts +10 -0
  346. package/dist/components/shared/platform-ui/components/features/agent/AgentIdentity.d.ts +10 -0
  347. package/dist/components/shared/platform-ui/components/features/agent/agentIdentityUtils.d.ts +4 -0
  348. package/dist/components/shared/platform-ui/components/features/agent/index.d.ts +2 -0
  349. package/dist/components/shared/platform-ui/components/features/app/AppCheckboxInput.d.ts +9 -0
  350. package/dist/components/shared/platform-ui/components/features/app/AppConfirmDialog.d.ts +12 -0
  351. package/dist/components/shared/platform-ui/components/features/app/AppDashboardSkeleton.d.ts +9 -0
  352. package/dist/components/shared/platform-ui/components/features/app/AppDatePicker.d.ts +69 -0
  353. package/dist/components/shared/platform-ui/components/features/app/AppModal.d.ts +27 -0
  354. package/dist/components/shared/platform-ui/components/features/app/AppPageStates.d.ts +17 -0
  355. package/dist/components/shared/platform-ui/components/features/app/AppSelectInput.d.ts +10 -0
  356. package/dist/components/shared/platform-ui/components/features/app/AppTemporalInput.d.ts +19 -0
  357. package/dist/components/shared/platform-ui/components/features/app/Page.d.ts +14 -0
  358. package/dist/components/shared/platform-ui/components/features/app/QueryErrorAlert.d.ts +7 -0
  359. package/dist/components/shared/platform-ui/components/features/app/Sidebar.d.ts +47 -0
  360. package/dist/components/shared/platform-ui/components/features/app/index.d.ts +17 -0
  361. package/dist/components/shared/platform-ui/components/features/auth/AuthControlButtons.d.ts +8 -0
  362. package/dist/components/shared/platform-ui/components/features/auth/ForgotPassword.d.ts +9 -0
  363. package/dist/components/shared/platform-ui/components/features/auth/LogoutNotificationPage.d.ts +8 -0
  364. package/dist/components/shared/platform-ui/components/features/auth/Privacy.d.ts +8 -0
  365. package/dist/components/shared/platform-ui/components/features/auth/RequireAuth.d.ts +31 -0
  366. package/dist/components/shared/platform-ui/components/features/auth/Terms.d.ts +8 -0
  367. package/dist/components/shared/platform-ui/components/features/auth/VerifyEmail.d.ts +9 -0
  368. package/dist/components/shared/platform-ui/components/features/auth/application/index.d.ts +1 -0
  369. package/dist/components/shared/platform-ui/components/features/auth/index.d.ts +13 -0
  370. package/dist/components/shared/platform-ui/components/features/avatar/AvatarPickerModal.d.ts +30 -0
  371. package/dist/components/shared/platform-ui/components/features/avatar/generateAvatarUrl.d.ts +9 -0
  372. package/dist/components/shared/platform-ui/components/features/avatar/index.d.ts +2 -0
  373. package/dist/components/shared/platform-ui/components/features/chat/index.d.ts +1 -0
  374. package/dist/components/shared/platform-ui/components/features/data/index.d.ts +1 -0
  375. package/dist/components/shared/platform-ui/components/features/feedback/FeedbackMenu.d.ts +8 -0
  376. package/dist/components/shared/platform-ui/components/features/feedback/index.d.ts +1 -0
  377. package/dist/components/shared/platform-ui/components/features/home/Background.d.ts +4 -0
  378. package/dist/components/shared/platform-ui/components/features/home/index.d.ts +2 -0
  379. package/dist/components/shared/platform-ui/components/features/index.d.ts +22 -0
  380. package/dist/components/shared/platform-ui/components/features/knowledge/EvidenceCitation.d.ts +30 -0
  381. package/dist/components/shared/platform-ui/components/features/knowledge/HighlightedSnippet.d.ts +14 -0
  382. package/dist/components/shared/platform-ui/components/features/knowledge/index.d.ts +2 -0
  383. package/dist/components/shared/platform-ui/components/features/notification/NotificationBell.d.ts +14 -0
  384. package/dist/components/shared/platform-ui/components/features/notification/NotificationList.d.ts +41 -0
  385. package/dist/components/shared/platform-ui/components/features/notification/index.d.ts +2 -0
  386. package/dist/components/shared/platform-ui/components/features/operator/index.d.ts +1 -0
  387. package/dist/components/shared/platform-ui/components/features/rbac/index.d.ts +1 -0
  388. package/dist/components/shared/platform-ui/components/features/rich-text/RichTextField.d.ts +13 -0
  389. package/dist/components/shared/platform-ui/components/features/space/SpaceContext.d.ts +121 -0
  390. package/dist/components/shared/platform-ui/components/features/space/SpaceSwitcher.d.ts +13 -0
  391. package/dist/components/shared/platform-ui/components/features/space/index.d.ts +2 -0
  392. package/dist/components/shared/platform-ui/components/features/subscription/SubscriptionContext.d.ts +26 -0
  393. package/dist/components/shared/platform-ui/components/features/subscription/SubscriptionGuard.d.ts +35 -0
  394. package/dist/components/shared/platform-ui/components/features/subscription/constants.d.ts +126 -0
  395. package/dist/components/shared/platform-ui/components/features/subscription/createSubscriptionService.d.ts +34 -0
  396. package/dist/components/shared/platform-ui/components/features/subscription/index.d.ts +7 -0
  397. package/dist/components/shared/platform-ui/components/features/subscription/types.d.ts +161 -0
  398. package/dist/components/shared/platform-ui/components/features/subscription/useSubscription.d.ts +20 -0
  399. package/dist/components/shared/platform-ui/components/features/subscription/utils.d.ts +18 -0
  400. package/dist/components/shared/platform-ui/components/features/task/index.d.ts +1 -0
  401. package/dist/components/shared/platform-ui/components/features/team/index.d.ts +4 -0
  402. package/dist/components/shared/platform-ui/components/features/user/UserAvatar.d.ts +17 -0
  403. package/dist/components/shared/platform-ui/components/features/user/UserDisplay.d.ts +10 -0
  404. package/dist/components/shared/platform-ui/components/features/user/UserSelect.d.ts +14 -0
  405. package/dist/components/shared/platform-ui/components/features/user/useUserDirectory.d.ts +13 -0
  406. package/dist/components/shared/platform-ui/components/features/user/userDirectoryTypes.d.ts +18 -0
  407. package/dist/components/shared/platform-ui/components/icons/alipay-pay-mark.d.ts +2 -0
  408. package/dist/components/shared/platform-ui/components/icons/bank-transfer-mark.d.ts +2 -0
  409. package/dist/components/shared/platform-ui/components/icons/stripe-payment-mark.d.ts +2 -0
  410. package/dist/components/shared/platform-ui/components/icons/wechat-pay-mark.d.ts +2 -0
  411. package/dist/components/shared/platform-ui/components/index.d.ts +3 -0
  412. package/dist/components/shared/platform-ui/components/patterns/entity-patterns.d.ts +3 -0
  413. package/dist/components/shared/platform-ui/components/patterns/form-section.d.ts +11 -0
  414. package/dist/components/shared/platform-ui/components/patterns/record-list-frame.d.ts +12 -0
  415. package/dist/components/shared/platform-ui/components/patterns/status-stepper.d.ts +13 -0
  416. package/dist/components/shared/platform-ui/components/primitives/data-display/ApiErrorState.d.ts +10 -0
  417. package/dist/components/shared/platform-ui/components/primitives/data-display/FilePreviewDialog.d.ts +18 -0
  418. package/dist/components/shared/platform-ui/components/primitives/data-display/index.d.ts +4 -0
  419. package/dist/components/shared/platform-ui/components/primitives/feedback/index.d.ts +2 -0
  420. package/dist/components/shared/platform-ui/components/primitives/feedback/toaster.d.ts +1 -0
  421. package/dist/components/shared/platform-ui/components/primitives/feedback/use-toast.d.ts +46 -0
  422. package/dist/components/shared/platform-ui/components/primitives/forms/CountryCodeSelect.d.ts +16 -0
  423. package/dist/components/shared/platform-ui/components/primitives/forms/index.d.ts +1 -0
  424. package/dist/components/shared/platform-ui/components/primitives/index.d.ts +5 -0
  425. package/dist/components/shared/platform-ui/components/primitives/layout/AppHeader.d.ts +111 -0
  426. package/dist/components/shared/platform-ui/components/primitives/layout/AppWatermark.d.ts +7 -0
  427. package/dist/components/shared/platform-ui/components/primitives/layout/PublicFooter.d.ts +6 -0
  428. package/dist/components/shared/platform-ui/components/primitives/layout/PublicHeader.d.ts +39 -0
  429. package/dist/components/shared/platform-ui/components/primitives/layout/PublicLayout.d.ts +6 -0
  430. package/dist/components/shared/platform-ui/components/primitives/layout/ThemeToggle.d.ts +33 -0
  431. package/dist/components/shared/platform-ui/components/primitives/layout/WatermarkOverlay.d.ts +9 -0
  432. package/dist/components/shared/platform-ui/components/primitives/layout/brandAssets.d.ts +11 -0
  433. package/dist/components/shared/platform-ui/components/primitives/layout/index.d.ts +6 -0
  434. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/ChartAreaSkeleton.d.ts +13 -0
  435. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/ChartEmptyState.d.ts +14 -0
  436. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/ComponentSkeletonShell.d.ts +16 -0
  437. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/ConfigEditorSkeleton.d.ts +5 -0
  438. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/DetailTabsSkeleton.d.ts +6 -0
  439. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/EmptyStateBadge.d.ts +13 -0
  440. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/FormCardSkeleton.d.ts +7 -0
  441. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/FormFieldSkeleton.d.ts +6 -0
  442. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/FormPageSkeleton.d.ts +6 -0
  443. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/GridCardsSkeleton.d.ts +6 -0
  444. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/ListSkeleton.d.ts +26 -0
  445. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/PageHeaderSkeleton.d.ts +6 -0
  446. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/SplitPaneSkeleton.d.ts +4 -0
  447. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/StatsRowSkeleton.d.ts +5 -0
  448. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/TableEmptyState.d.ts +27 -0
  449. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/TablePageSkeleton.d.ts +8 -0
  450. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/TabsBarSkeleton.d.ts +6 -0
  451. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/index.d.ts +24 -0
  452. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/skeletonMetrics.d.ts +9 -0
  453. package/dist/components/shared/platform-ui/components/primitives/page-skeleton/useVisibleCenter.d.ts +34 -0
  454. package/dist/components/shared/platform-ui/components/ui/accordion.d.ts +7 -0
  455. package/dist/components/shared/platform-ui/components/ui/ai-draft-banner.d.ts +21 -0
  456. package/dist/components/shared/platform-ui/components/ui/alert-dialog.d.ts +48 -0
  457. package/dist/components/shared/platform-ui/components/ui/alert.d.ts +8 -0
  458. package/dist/components/shared/platform-ui/components/ui/avatar.d.ts +6 -0
  459. package/dist/components/shared/platform-ui/components/ui/badge.d.ts +9 -0
  460. package/dist/components/shared/platform-ui/components/ui/breadcrumb.d.ts +19 -0
  461. package/dist/components/shared/platform-ui/components/ui/button.d.ts +11 -0
  462. package/dist/components/shared/platform-ui/components/ui/calendar.d.ts +8 -0
  463. package/dist/components/shared/platform-ui/components/ui/card.d.ts +8 -0
  464. package/dist/components/shared/platform-ui/components/ui/chart.d.ts +16 -0
  465. package/dist/components/shared/platform-ui/components/ui/checkbox.d.ts +4 -0
  466. package/dist/components/shared/platform-ui/components/ui/collapsible.d.ts +5 -0
  467. package/dist/components/shared/platform-ui/components/ui/column-config.d.ts +42 -0
  468. package/dist/components/shared/platform-ui/components/ui/date-picker.d.ts +9 -0
  469. package/dist/components/shared/platform-ui/components/ui/date-range-filter.d.ts +32 -0
  470. package/dist/components/shared/platform-ui/components/ui/date-range-picker.d.ts +11 -0
  471. package/dist/components/shared/platform-ui/components/ui/dialog-input.d.ts +17 -0
  472. package/dist/components/shared/platform-ui/components/ui/dialog-safe-select.d.ts +13 -0
  473. package/dist/components/shared/platform-ui/components/ui/dialog.d.ts +25 -0
  474. package/dist/components/shared/platform-ui/components/ui/dropdown-menu.d.ts +27 -0
  475. package/dist/components/shared/platform-ui/components/ui/feature-guide.d.ts +43 -0
  476. package/dist/components/shared/platform-ui/components/ui/form.d.ts +23 -0
  477. package/dist/components/shared/platform-ui/components/ui/help-tip.d.ts +29 -0
  478. package/dist/components/shared/platform-ui/components/ui/hint-notice.d.ts +22 -0
  479. package/dist/components/shared/platform-ui/components/ui/index.d.ts +6 -0
  480. package/dist/components/shared/platform-ui/components/ui/input.d.ts +3 -0
  481. package/dist/components/shared/platform-ui/components/ui/label.d.ts +5 -0
  482. package/dist/components/shared/platform-ui/components/ui/modal-container.d.ts +56 -0
  483. package/dist/components/shared/platform-ui/components/ui/modal-templates.d.ts +46 -0
  484. package/dist/components/shared/platform-ui/components/ui/multi-select.d.ts +20 -0
  485. package/dist/components/shared/platform-ui/components/ui/pagination.d.ts +28 -0
  486. package/dist/components/shared/platform-ui/components/ui/popover.d.ts +7 -0
  487. package/dist/components/shared/platform-ui/components/ui/progress.d.ts +7 -0
  488. package/dist/components/shared/platform-ui/components/ui/radio-button-group.d.ts +18 -0
  489. package/dist/components/shared/platform-ui/components/ui/radio-group.d.ts +5 -0
  490. package/dist/components/shared/platform-ui/components/ui/scroll-area.d.ts +5 -0
  491. package/dist/components/shared/platform-ui/components/ui/select.d.ts +16 -0
  492. package/dist/components/shared/platform-ui/components/ui/separator.d.ts +7 -0
  493. package/dist/components/shared/platform-ui/components/ui/sheet.d.ts +25 -0
  494. package/dist/components/shared/platform-ui/components/ui/sidebar-rail.d.ts +9 -0
  495. package/dist/components/shared/platform-ui/components/ui/skeleton.d.ts +2 -0
  496. package/dist/components/shared/platform-ui/components/ui/slider.d.ts +13 -0
  497. package/dist/components/shared/platform-ui/components/ui/switch.d.ts +4 -0
  498. package/dist/components/shared/platform-ui/components/ui/table.d.ts +10 -0
  499. package/dist/components/shared/platform-ui/components/ui/tabs.d.ts +10 -0
  500. package/dist/components/shared/platform-ui/components/ui/textarea.d.ts +3 -0
  501. package/dist/components/shared/platform-ui/components/ui/toast.d.ts +21 -0
  502. package/dist/components/shared/platform-ui/components/ui/toggle-group.d.ts +12 -0
  503. package/dist/components/shared/platform-ui/components/ui/toggle.d.ts +12 -0
  504. package/dist/components/shared/platform-ui/components/ui/tooltip.d.ts +7 -0
  505. package/dist/components/shared/platform-ui/components/ui/typography.d.ts +15 -0
  506. package/dist/components/shared/platform-ui/components/ui/underline-tabs.d.ts +13 -0
  507. package/dist/components/shared/platform-ui/components/ui/view-mode-toggle.d.ts +9 -0
  508. package/dist/components/shared/platform-ui/context/AppHostContext.d.ts +16 -0
  509. package/dist/components/shared/platform-ui/contexts/UserSettingsContext.d.ts +23 -0
  510. package/dist/components/shared/platform-ui/hooks/builtInApps.d.ts +91 -0
  511. package/dist/components/shared/platform-ui/hooks/pinnedBuiltInNavApps.d.ts +13 -0
  512. package/dist/components/shared/platform-ui/hooks/shellNavLucideIcon.d.ts +6 -0
  513. package/dist/components/shared/platform-ui/hooks/useAppSettings.d.ts +21 -0
  514. package/dist/components/shared/platform-ui/hooks/useAuthTokenSync.d.ts +3 -0
  515. package/dist/components/shared/platform-ui/hooks/useBuiltInApps.d.ts +6 -0
  516. package/dist/components/shared/platform-ui/hooks/useChatEntryTarget.d.ts +35 -0
  517. package/dist/components/shared/platform-ui/hooks/useIsMobile.d.ts +16 -0
  518. package/dist/components/shared/platform-ui/hooks/useLanguage.d.ts +11 -0
  519. package/dist/components/shared/platform-ui/hooks/useLockBodyScroll.d.ts +1 -0
  520. package/dist/components/shared/platform-ui/hooks/usePageState/index.d.ts +4 -0
  521. package/dist/components/shared/platform-ui/hooks/usePageState/types.d.ts +13 -0
  522. package/dist/components/shared/platform-ui/hooks/useTheme.d.ts +11 -0
  523. package/dist/components/shared/platform-ui/hooks/useUserSettings.d.ts +39 -0
  524. package/dist/components/shared/platform-ui/hooks/useWorkflowCanvas.d.ts +36 -0
  525. package/dist/components/shared/platform-ui/hooks/userPreferencesPinnedNav.d.ts +2 -0
  526. package/dist/components/shared/platform-ui/index.d.ts +127 -0
  527. package/dist/components/shared/platform-ui/kit/ai/conversation.d.ts +16 -0
  528. package/dist/components/shared/platform-ui/kit/ai/index.d.ts +11 -0
  529. package/dist/components/shared/platform-ui/kit/ai/loader.d.ts +6 -0
  530. package/dist/components/shared/platform-ui/kit/ai/message.d.ts +14 -0
  531. package/dist/components/shared/platform-ui/kit/ai/prompt-input.d.ts +18 -0
  532. package/dist/components/shared/platform-ui/kit/ai/suggestion.d.ts +11 -0
  533. package/dist/components/shared/platform-ui/kit/ai/tool.d.ts +28 -0
  534. package/dist/components/shared/platform-ui/kit.d.ts +5 -0
  535. package/dist/components/shared/platform-ui/platform/index.d.ts +38 -0
  536. package/dist/components/shared/platform-ui/platform/types.d.ts +1 -0
  537. package/dist/components/shared/platform-ui/styles/design-tokens.d.ts +189 -0
  538. package/dist/components/shared/platform-ui/styles/z-index-layers.d.ts +46 -0
  539. package/dist/components/shared/platform-ui/utils/unknownError.d.ts +2 -0
  540. package/dist/components/shared/platform-utils/cookieSettings.d.ts +12 -0
  541. package/dist/components/shared/platform-utils/data/countryCodes.d.ts +26 -0
  542. package/dist/components/shared/platform-utils/index.d.ts +18 -0
  543. package/dist/components/shared/platform-utils/utils/appPath.d.ts +5 -0
  544. package/dist/components/shared/platform-utils/utils/chunkLoadRecovery.d.ts +7 -0
  545. package/dist/components/shared/platform-utils/utils/cn.d.ts +3 -0
  546. package/dist/components/shared/platform-utils/utils/crossApp.d.ts +71 -0
  547. package/dist/components/shared/platform-utils/utils/debounce.d.ts +1 -0
  548. package/dist/components/shared/platform-utils/utils/formatUserLabel.d.ts +8 -0
  549. package/dist/components/shared/platform-utils/utils/formatting.d.ts +18 -0
  550. package/dist/components/shared/platform-utils/utils/logoutNotification.d.ts +28 -0
  551. package/dist/components/shared/platform-utils/utils/operatorLocale.d.ts +32 -0
  552. package/dist/components/shared/platform-utils/utils/routeLocalePrefetch.d.ts +5 -0
  553. package/dist/components/shared/platform-utils/utils/shellIframeUrl.d.ts +20 -0
  554. package/dist/components/shared/platform-utils/utils/spaceSettings.d.ts +20 -0
  555. package/dist/components/shared/platform-utils/utils/sso.d.ts +42 -0
  556. package/dist/components/shared/platform-utils/utils/throttle.d.ts +1 -0
  557. package/dist/components/shared/platform-utils/utils/timezones.d.ts +14 -0
  558. package/dist/components/shared/platform-utils/utils/toDateInputValue.d.ts +5 -0
  559. package/dist/components/shared/platform-utils/utils/watermark.d.ts +1 -0
  560. package/dist/components/shared/templates/index.d.ts +3 -0
  561. package/dist/components/shared/templates/slugify.d.ts +1 -0
  562. package/dist/components/shared/templates/templateRegistry.d.ts +18 -0
  563. package/dist/components/shared/templates/types.d.ts +42 -0
  564. package/dist/components/skeleton/ComponentSkeleton.d.ts +9 -0
  565. package/dist/components/skeleton/HeroCardSkeleton.d.ts +11 -0
  566. package/dist/components/skeleton/TileGridSkeleton.d.ts +11 -0
  567. package/dist/components/skeleton/WorkbenchSkeletonTokens.d.ts +1 -0
  568. package/dist/components/skeleton/index.d.ts +4 -0
  569. package/dist/components/standalone.css +2 -0
  570. package/dist/components/standalone.d.ts +21 -0
  571. package/dist/components/standalone.js +358805 -0
  572. package/dist/components/styles/grid24.css +359 -0
  573. package/dist/components/styles/layoutSystem.css +773 -0
  574. package/dist/components/styles.css +3 -0
  575. package/dist/components/testing/index.d.ts +2 -0
  576. package/dist/components/testing.js +5 -0
  577. package/dist/components/testing.js.map +1 -0
  578. package/dist/components/themes/classic.d.ts +7 -0
  579. package/dist/components/themes/index.d.ts +15 -0
  580. package/dist/components/themes/inkOnyx.d.ts +3 -0
  581. package/dist/components/themes/types.d.ts +36 -0
  582. package/dist/components/types/application.d.ts +37 -0
  583. package/dist/components/types/communication.d.ts +94 -0
  584. package/dist/components/types/components.d.ts +346 -0
  585. package/dist/components/types/conditionMapperTypes.d.ts +60 -0
  586. package/dist/components/types/databaseDataSource.d.ts +120 -0
  587. package/dist/components/types/datasource.d.ts +117 -0
  588. package/dist/components/types/editor.d.ts +4 -0
  589. package/dist/components/types/editors.d.ts +91 -0
  590. package/dist/components/types/host-adapters.d.ts +35 -0
  591. package/dist/components/types/index.d.ts +7 -0
  592. package/dist/components/types/parameters.d.ts +59 -0
  593. package/dist/components/types/productReport.d.ts +272 -0
  594. package/dist/components/types/renderers.d.ts +645 -0
  595. package/dist/components/types.d.ts +649 -0
  596. package/dist/components/ui/ActionFormDialog.d.ts +19 -0
  597. package/dist/components/ui/ConfirmDialog.d.ts +17 -0
  598. package/dist/components/ui/FormFieldRenderer.d.ts +51 -0
  599. package/dist/components/ui/IconSelector.d.ts +10 -0
  600. package/dist/components/ui/RecordDetailDialog.d.ts +15 -0
  601. package/dist/components/ui/StructuredValueField.d.ts +16 -0
  602. package/dist/components/ui/date-picker.d.ts +7 -0
  603. package/dist/components/ui/date-range-picker.d.ts +11 -0
  604. package/dist/components/ui/dialog-safe-select.d.ts +13 -0
  605. package/dist/components/ui/dialog-tag-input.d.ts +18 -0
  606. package/dist/components/ui/dialog.d.ts +22 -0
  607. package/dist/components/ui/dropdown-menu.d.ts +27 -0
  608. package/dist/components/ui/pagination.d.ts +28 -0
  609. package/dist/components/ui/select.d.ts +13 -0
  610. package/dist/components/ui/sidebar-rail.d.ts +9 -0
  611. package/dist/components/ui/sidebar.d.ts +65 -0
  612. package/dist/components/ui/table.d.ts +10 -0
  613. package/dist/components/ui/tag-input.d.ts +23 -0
  614. package/dist/components/utils/actionFormValidation.d.ts +34 -0
  615. package/dist/components/utils/autoIdUtils.d.ts +2 -0
  616. package/dist/components/utils/chartGradientStops.d.ts +14 -0
  617. package/dist/components/utils/chinaProvinceMap.d.ts +8 -0
  618. package/dist/components/utils/colors.d.ts +84 -0
  619. package/dist/components/utils/componentUtils.d.ts +4 -0
  620. package/dist/components/utils/conditionMapperUtils.d.ts +59 -0
  621. package/dist/components/utils/cssParser.d.ts +7 -0
  622. package/dist/components/utils/currencySymbol.d.ts +10 -0
  623. package/dist/components/utils/dataConfigUtils.d.ts +80 -0
  624. package/dist/components/utils/databaseDatasourceColumnValue.d.ts +8 -0
  625. package/dist/components/utils/databaseDatasourceParams.d.ts +44 -0
  626. package/dist/components/utils/datasetOperationUtils.d.ts +48 -0
  627. package/dist/components/utils/datasourceVersion.d.ts +61 -0
  628. package/dist/components/utils/debugUtils.d.ts +34 -0
  629. package/dist/components/utils/errorFilter.d.ts +1 -0
  630. package/dist/components/utils/errorHandler.d.ts +10 -0
  631. package/dist/components/utils/expressionUtils.d.ts +13 -0
  632. package/dist/components/utils/extensionErrorHandler.d.ts +4 -0
  633. package/dist/components/utils/filterPanelDateRangeUtils.d.ts +34 -0
  634. package/dist/components/utils/filterPanelMobileDateRangeUtils.d.ts +17 -0
  635. package/dist/components/utils/formActionVisibility.d.ts +21 -0
  636. package/dist/components/utils/grid24LayoutSystem.d.ts +108 -0
  637. package/dist/components/utils/iconUtils.d.ts +22 -0
  638. package/dist/components/utils/layoutContainerNesting.d.ts +5 -0
  639. package/dist/components/utils/layoutSystem.d.ts +189 -0
  640. package/dist/components/utils/navigationUtils.d.ts +70 -0
  641. package/dist/components/utils/navigationVisibleWhenEditor.d.ts +37 -0
  642. package/dist/components/utils/parameterUtils.d.ts +52 -0
  643. package/dist/components/utils/redirectToAppHome.d.ts +4 -0
  644. package/dist/components/utils/resolveComponentMockFields.d.ts +28 -0
  645. package/dist/components/utils/resolveDatabaseDataSourceConfig.d.ts +9 -0
  646. package/dist/components/utils/safeMessaging.d.ts +16 -0
  647. package/dist/components/utils/statisticColors.d.ts +11 -0
  648. package/dist/components/utils/statisticIcons.d.ts +5 -0
  649. package/dist/components/utils/styleUtils.d.ts +35 -0
  650. package/dist/components/utils/systemParameters.d.ts +8 -0
  651. package/dist/components/utils/tabIsolation.d.ts +34 -0
  652. package/dist/components/utils/tableActionButtonRender.d.ts +12 -0
  653. package/dist/components/utils/taskUtils.d.ts +37 -0
  654. package/dist/components/utils/treeFormUtils.d.ts +41 -0
  655. package/dist/components/utils/visibleWhen.d.ts +31 -0
  656. package/dist/components/utils/visibleWhenFormat.d.ts +32 -0
  657. package/dist/components/utils/workbenchConfigLocale.d.ts +44 -0
  658. package/dist/components/utils/workbenchDisplayLocale.d.ts +33 -0
  659. package/dist/components/utils/workbenchPathUtils.d.ts +8 -0
  660. package/dist/components/utils/workflowTransformsUtils.d.ts +3 -0
  661. package/dist/components.js +841 -0
  662. package/dist/components.js.map +1 -0
  663. package/dist/dashboard/src/ChartTooltip.d.ts +1 -1
  664. package/dist/hooks/access/AppAccessNotice.d.ts +1 -1
  665. package/dist/hooks/picker/managedAppPicker.d.ts +1 -1
  666. package/dist/hooks.js +28 -27
  667. package/dist/hooks.js.map +1 -1
  668. package/dist/i18n-DojjvBZv.js +19013 -0
  669. package/dist/i18n-DojjvBZv.js.map +1 -0
  670. package/dist/index.js +61 -59
  671. package/dist/index.js.map +1 -1
  672. package/dist/kit.js +57 -56
  673. package/dist/kit.js.map +1 -1
  674. package/dist/resolveApiRoot-Dzg1R1PS.js +68 -0
  675. package/dist/resolveApiRoot-Dzg1R1PS.js.map +1 -0
  676. package/dist/shell.d.ts +1 -1
  677. package/dist/storage/components/CopyStorageLinkButton.d.ts +1 -1
  678. package/dist/storage/components/StorageImage.d.ts +1 -1
  679. package/dist/storage/components/StorageVideo.d.ts +1 -1
  680. package/dist/style.css +1 -1
  681. package/dist/task-workspace/domain.d.ts +1 -1
  682. package/dist/ui/components/features/app/AppModal.d.ts +2 -2
  683. package/dist/ui/components/primitives/page-skeleton/index.d.ts +1 -1
  684. package/dist/ui/components/ui/alert.d.ts +3 -3
  685. package/dist/ui/components/ui/badge.d.ts +3 -3
  686. package/dist/ui/components/ui/button.d.ts +4 -4
  687. package/dist/ui/components/ui/chart.d.ts +1 -1
  688. package/dist/ui/components/ui/form.d.ts +3 -5
  689. package/dist/ui/components/ui/hint-notice.d.ts +3 -3
  690. package/dist/ui/components/ui/label.d.ts +1 -1
  691. package/dist/ui/components/ui/select.d.ts +1 -1
  692. package/dist/ui/components/ui/sheet.d.ts +3 -3
  693. package/dist/ui/components/ui/tabs.d.ts +1 -1
  694. package/dist/ui/components/ui/toast.d.ts +3 -3
  695. package/dist/ui/components/ui/toggle-group.d.ts +8 -8
  696. package/dist/ui/components/ui/toggle.d.ts +8 -8
  697. package/dist/ui/components/ui/underline-tabs.d.ts +6 -6
  698. package/dist/ui.js +23 -22
  699. package/dist/ui.js.map +1 -1
  700. package/dist/useUserDirectory-GU8imJ0T.js +2124 -0
  701. package/dist/useUserDirectory-GU8imJ0T.js.map +1 -0
  702. package/dist/vite.d.ts +1 -1
  703. package/package.json +217 -31
  704. package/dist/CrossAppRecordPicker-CQVmirWD.js.map +0 -1
  705. package/dist/useUserDirectory-CqkyCQoR.js +0 -2377
  706. package/dist/useUserDirectory-CqkyCQoR.js.map +0 -1
  707. package/dist/workbench/runtime.d.ts +0 -3
  708. package/dist/workbench/styles.css +0 -197
  709. package/dist/workbench/types.d.ts +0 -48
  710. package/dist/workbench.d.ts +0 -8
  711. package/dist/workbench.js +0 -356
  712. package/dist/workbench.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useUserDirectory-GU8imJ0T.js","sources":["../src/ui/components/ui/skeleton.tsx","../src/ui/components/primitives/page-skeleton/TabsBarSkeleton.tsx","../src/ui/components/primitives/page-skeleton/FormFieldSkeleton.tsx","../src/ui/components/primitives/page-skeleton/FormCardSkeleton.tsx","../src/ui/components/primitives/page-skeleton/ConfigEditorSkeleton.tsx","../src/ui/components/primitives/page-skeleton/PageHeaderSkeleton.tsx","../src/ui/components/primitives/page-skeleton/DetailTabsSkeleton.tsx","../src/ui/components/primitives/page-skeleton/TablePageSkeleton.tsx","../src/ui/components/primitives/page-skeleton/GridCardsSkeleton.tsx","../src/ui/components/primitives/page-skeleton/SplitPaneSkeleton.tsx","../src/ui/components/primitives/page-skeleton/StatsRowSkeleton.tsx","../src/ui/components/primitives/page-skeleton/FormPageSkeleton.tsx","../src/ui/styles/z-index-layers.ts","../src/ui/components/primitives/page-skeleton/index.tsx","../src/ui/components/features/app/QueryErrorAlert.tsx","../src/ui/components/features/app/AppPageStates.tsx","../src/ui/components/features/app/AppDashboardSkeleton.tsx","../src/ui/components/ui/dialog.tsx","../src/ui/components/ui/sheet.tsx","../src/ui/components/features/app/AppModal.tsx","../src/ui/hooks/useLockBodyScroll.ts","../src/ui/styles/design-tokens.ts","../src/ui/components/ui/modal-container.tsx","../src/ui/components/ui/button.tsx","../src/ui/components/ui/modal-templates.tsx","../src/ui/components/features/app/AppConfirmDialog.tsx","../src/ui/components/ui/calendar.tsx","../src/ui/components/ui/popover.tsx","../src/ui/components/features/app/AppDatePicker.tsx","../src/ui/components/ui/input.tsx","../src/ui/components/features/app/AppTemporalInput.tsx","../src/ui/components/ui/select.tsx","../src/ui/components/features/app/AppSelectInput.tsx","../src/ui/components/ui/checkbox.tsx","../src/ui/components/features/app/AppCheckboxInput.tsx","../src/ui/components/ui/avatar.tsx","../src/ui/components/features/user/UserAvatar.tsx","../src/ui/components/features/user/UserDisplay.tsx","../src/ui/components/features/user/UserSelect.tsx","../src/ui/components/features/user/useUserDirectory.ts"],"sourcesContent":["import { cn } from '@genispace/geniapp/utils'\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\n 'relative overflow-hidden rounded-md bg-primary/10',\n \"before:pointer-events-none before:absolute before:inset-0 before:-translate-x-full before:animate-shimmer before:content-['']\",\n 'before:bg-gradient-to-r before:from-transparent before:via-white/50 before:to-transparent',\n 'dark:before:via-white/[0.14]',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","import { cn } from '@genispace/geniapp/utils';\nimport { Skeleton } from '../../ui/skeleton';\n\nexport interface TabsBarSkeletonProps {\n count?: number;\n variant?: 'pill' | 'segmented';\n className?: string;\n}\n\nexport function TabsBarSkeleton({\n count = 4,\n variant = 'segmented',\n className,\n}: TabsBarSkeletonProps) {\n if (variant === 'pill') {\n return (\n <div className={cn('flex flex-wrap gap-4 mb-6', className)}>\n {Array.from({ length: count }).map((_, index) => (\n <Skeleton key={index} className=\"h-10 w-24 rounded-xl\" />\n ))}\n </div>\n );\n }\n\n return (\n <div\n className={cn(\n 'mb-6 flex h-auto w-full flex-wrap items-stretch gap-1 rounded-xl border border-neutral-200/80 dark:border-neutral-800',\n 'bg-neutral-100/80 dark:bg-neutral-900/50 p-1',\n className\n )}\n >\n {Array.from({ length: count }).map((_, index) => (\n <Skeleton\n key={index}\n className=\"h-9 min-w-[5.5rem] flex-1 rounded-lg sm:flex-initial sm:min-w-[7rem]\"\n />\n ))}\n </div>\n );\n}\n","import { cn } from '@genispace/geniapp/utils';\nimport { Skeleton } from '../../ui/skeleton';\n\nexport interface FormFieldSkeletonProps {\n labelWidth?: string;\n inputHeight?: string;\n className?: string;\n}\n\nexport function FormFieldSkeleton({\n labelWidth = 'w-24',\n inputHeight = 'h-10',\n className,\n}: FormFieldSkeletonProps) {\n return (\n <div className={cn('space-y-2', className)}>\n <Skeleton className={cn('h-4', labelWidth)} />\n <Skeleton className={cn('w-full rounded-md', inputHeight)} />\n </div>\n );\n}\n","import { cn } from '@genispace/geniapp/utils';\nimport { Skeleton } from '../../ui/skeleton';\nimport { FormFieldSkeleton } from './FormFieldSkeleton';\n\nexport interface FormCardSkeletonProps {\n titleWidth?: string;\n fieldCount?: number;\n showTextarea?: boolean;\n className?: string;\n}\n\nexport function FormCardSkeleton({\n titleWidth = 'w-36',\n fieldCount = 2,\n showTextarea = false,\n className,\n}: FormCardSkeletonProps) {\n return (\n <div className={cn('card p-6 space-y-6', className)}>\n <Skeleton className={cn('h-6', titleWidth)} />\n {Array.from({ length: fieldCount }).map((_, index) => (\n <FormFieldSkeleton\n key={index}\n labelWidth={index === 0 ? 'w-24' : 'w-28'}\n inputHeight={showTextarea && index === fieldCount - 1 ? 'h-[120px]' : 'h-10'}\n />\n ))}\n </div>\n );\n}\n","import { cn } from '@genispace/geniapp/utils';\nimport { Skeleton } from '../../ui/skeleton';\nimport { TabsBarSkeleton } from './TabsBarSkeleton';\nimport { FormCardSkeleton } from './FormCardSkeleton';\nimport { FormFieldSkeleton } from './FormFieldSkeleton';\n\nexport interface ConfigEditorSkeletonProps {\n tabCount?: number;\n className?: string;\n}\n\nexport function ConfigEditorSkeleton({ tabCount = 4, className }: ConfigEditorSkeletonProps) {\n return (\n <div className={cn('space-y-6', className)}>\n <TabsBarSkeleton count={tabCount} variant=\"segmented\" />\n\n <div className=\"grid lg:grid-cols-3 gap-8\">\n <div className=\"lg:col-span-2 space-y-8\">\n <FormCardSkeleton titleWidth=\"w-36\" fieldCount={2} showTextarea />\n\n <div className=\"card p-6 space-y-4\">\n <Skeleton className=\"h-6 w-40\" />\n <Skeleton className=\"h-10 w-full rounded-md\" />\n <FormFieldSkeleton labelWidth=\"w-16\" />\n </div>\n\n <div className=\"card p-6 space-y-4\">\n <Skeleton className=\"h-6 w-24\" />\n <Skeleton className=\"h-4 w-full max-w-xl\" />\n <Skeleton className=\"h-4 w-3/4 max-w-lg\" />\n <div className=\"space-y-3 pt-2\">\n <Skeleton className=\"h-10 w-full rounded-md\" />\n <Skeleton className=\"h-10 w-full rounded-md\" />\n </div>\n </div>\n\n <div className=\"card p-6 space-y-4\">\n <Skeleton className=\"h-6 w-32\" />\n <Skeleton className=\"h-4 w-full max-w-md\" />\n <Skeleton className=\"h-12 w-full rounded-md\" />\n </div>\n\n <div className=\"card p-6 space-y-6\">\n <Skeleton className=\"h-6 w-44\" />\n <div className=\"space-y-2\">\n <Skeleton className=\"h-4 w-28\" />\n <Skeleton className=\"h-[300px] w-full rounded-md\" />\n </div>\n <FormFieldSkeleton labelWidth=\"w-32\" />\n <div className=\"grid md:grid-cols-2 gap-6\">\n <FormFieldSkeleton labelWidth=\"w-24\" />\n <FormFieldSkeleton labelWidth=\"w-24\" />\n </div>\n </div>\n </div>\n\n <aside className=\"lg:col-span-1 space-y-4\">\n <div className=\"card p-5 space-y-3\">\n <Skeleton className=\"h-5 w-40\" />\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-5/6\" />\n </div>\n <div className=\"card p-5 space-y-3\">\n <Skeleton className=\"h-5 w-36\" />\n <Skeleton className=\"h-4 w-full\" />\n <Skeleton className=\"h-4 w-4/5\" />\n </div>\n </aside>\n </div>\n </div>\n );\n}\n","import { cn } from '@genispace/geniapp/utils';\nimport { Skeleton } from '../../ui/skeleton';\n\nexport interface PageHeaderSkeletonProps {\n showBack?: boolean;\n showActions?: boolean;\n className?: string;\n}\n\nexport function PageHeaderSkeleton({\n showBack = true,\n showActions = true,\n className,\n}: PageHeaderSkeletonProps) {\n return (\n <div className={cn('flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-6 sm:mb-8', className)}>\n <div className=\"flex items-center gap-3 sm:gap-4 min-w-0\">\n {showBack ? <Skeleton className=\"h-10 w-10 shrink-0 rounded-md\" /> : null}\n <div className=\"min-w-0 flex-1 space-y-2\">\n <Skeleton className=\"h-8 w-48 max-w-full\" />\n <Skeleton className=\"h-4 w-64 max-w-full\" />\n </div>\n </div>\n {showActions ? (\n <div className=\"flex flex-wrap items-center gap-3 shrink-0\">\n <Skeleton className=\"h-10 w-32 rounded-md\" />\n <Skeleton className=\"h-10 w-36 rounded-md\" />\n </div>\n ) : null}\n </div>\n );\n}\n","import { cn } from '@genispace/geniapp/utils';\nimport { Skeleton } from '../../ui/skeleton';\nimport { PageHeaderSkeleton } from './PageHeaderSkeleton';\nimport { TabsBarSkeleton } from './TabsBarSkeleton';\n\nexport interface DetailTabsSkeletonProps {\n tabCount?: number;\n showHeader?: boolean;\n className?: string;\n}\n\nexport function DetailTabsSkeleton({\n tabCount = 5,\n showHeader = true,\n className,\n}: DetailTabsSkeletonProps) {\n return (\n <div className={cn('space-y-6', className)}>\n {showHeader ? (\n <div className=\"flex flex-col md:flex-row md:items-start gap-6\">\n <Skeleton className=\"h-16 w-16 rounded-xl shrink-0\" />\n <div className=\"flex-1 min-w-0 space-y-3\">\n <Skeleton className=\"h-8 w-56 max-w-full\" />\n <Skeleton className=\"h-4 w-full max-w-2xl\" />\n <div className=\"flex flex-wrap gap-2 pt-1\">\n <Skeleton className=\"h-6 w-20 rounded-full\" />\n <Skeleton className=\"h-6 w-24 rounded-full\" />\n <Skeleton className=\"h-6 w-16 rounded-full\" />\n </div>\n </div>\n <div className=\"flex gap-2 shrink-0\">\n <Skeleton className=\"h-10 w-28 rounded-md\" />\n <Skeleton className=\"h-10 w-10 rounded-md\" />\n </div>\n </div>\n ) : (\n <PageHeaderSkeleton showBack={false} />\n )}\n\n <TabsBarSkeleton count={tabCount} variant=\"pill\" />\n\n <div className=\"card p-6 space-y-6\">\n <Skeleton className=\"h-6 w-40\" />\n <div className=\"grid md:grid-cols-2 gap-6\">\n {Array.from({ length: 4 }).map((_, index) => (\n <div key={index} className=\"space-y-2\">\n <Skeleton className=\"h-4 w-24\" />\n <Skeleton className=\"h-10 w-full rounded-md\" />\n </div>\n ))}\n </div>\n <Skeleton className=\"h-[200px] w-full rounded-md\" />\n </div>\n </div>\n );\n}\n","import { cn } from '@genispace/geniapp/utils';\nimport { Skeleton } from '../../ui/skeleton';\n\nexport interface TablePageSkeletonProps {\n rowCount?: number;\n columnCount?: number;\n showSearch?: boolean;\n showFilters?: boolean;\n className?: string;\n}\n\nexport function TablePageSkeleton({\n rowCount = 8,\n columnCount = 6,\n showSearch = true,\n showFilters = false,\n className,\n}: TablePageSkeletonProps) {\n return (\n <div className={cn('space-y-4', className)}>\n {showSearch ? (\n <div className=\"flex flex-col sm:flex-row gap-3\">\n <Skeleton className=\"h-10 flex-1 rounded-md\" />\n {showFilters ? <Skeleton className=\"h-10 w-32 rounded-md\" /> : null}\n </div>\n ) : null}\n <div className=\"card overflow-hidden\">\n <div className=\"overflow-x-auto\">\n <table className=\"w-full min-w-[640px]\">\n <thead>\n <tr className=\"border-b\">\n {Array.from({ length: columnCount }).map((_, index) => (\n <th key={index} className=\"py-3 px-4 text-left\">\n <Skeleton className=\"h-4 w-16\" />\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: rowCount }).map((_, rowIndex) => (\n <tr key={rowIndex} className=\"border-b\">\n {Array.from({ length: columnCount }).map((_, colIndex) => (\n <td key={colIndex} className=\"py-3 px-4\">\n {colIndex === 0 ? (\n <div className=\"space-y-2\">\n <Skeleton className=\"h-4 w-32\" />\n <Skeleton className=\"h-3 w-48\" />\n </div>\n ) : (\n <Skeleton className=\"h-4 w-20\" />\n )}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n );\n}\n","import { cn } from '@genispace/geniapp/utils';\nimport { Skeleton } from '../../ui/skeleton';\n\nexport interface GridCardsSkeletonProps {\n count?: number;\n columns?: '2' | '3' | '4';\n className?: string;\n}\n\nconst columnClass: Record<NonNullable<GridCardsSkeletonProps['columns']>, string> = {\n '2': 'md:grid-cols-2',\n '3': 'md:grid-cols-2 lg:grid-cols-3',\n '4': 'md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4',\n};\n\nexport function GridCardsSkeleton({\n count = 8,\n columns = '4',\n className,\n}: GridCardsSkeletonProps) {\n return (\n <div className={cn('grid gap-4', columnClass[columns], className)}>\n {Array.from({ length: count }).map((_, index) => (\n <div\n key={index}\n className=\"card p-4 border border-neutral-200 dark:border-neutral-700 bg-white dark:bg-neutral-800 flex flex-col h-full\"\n >\n <div className=\"flex items-start justify-between mb-3\">\n <div className=\"flex items-start gap-3 flex-1 min-w-0\">\n <Skeleton className=\"w-10 h-10 rounded-lg shrink-0\" />\n <div className=\"flex-1 space-y-2 min-w-0\">\n <Skeleton className=\"h-4 w-32\" />\n <Skeleton className=\"h-3 w-full\" />\n <Skeleton className=\"h-3 w-3/4\" />\n </div>\n </div>\n <Skeleton className=\"w-4 h-4 shrink-0\" />\n </div>\n <div className=\"space-y-3 flex-grow\">\n <div className=\"grid grid-cols-2 gap-2\">\n <Skeleton className=\"h-12 rounded-md\" />\n <Skeleton className=\"h-12 rounded-md\" />\n </div>\n <div className=\"flex gap-2\">\n <Skeleton className=\"h-6 w-16 rounded-md\" />\n <Skeleton className=\"h-6 w-20 rounded-md\" />\n </div>\n </div>\n <div className=\"flex items-center justify-between pt-3 mt-3 border-t border-neutral-200/80 dark:border-neutral-800\">\n <Skeleton className=\"h-3 w-24\" />\n <div className=\"flex gap-2\">\n <Skeleton className=\"h-8 w-8 rounded-md\" />\n <Skeleton className=\"h-8 w-8 rounded-md\" />\n </div>\n </div>\n </div>\n ))}\n </div>\n );\n}\n","import { cn } from '@genispace/geniapp/utils';\nimport { Skeleton } from '../../ui/skeleton';\nimport { FormFieldSkeleton } from './FormFieldSkeleton';\n\nexport interface SplitPaneSkeletonProps {\n className?: string;\n}\n\nexport function SplitPaneSkeleton({ className }: SplitPaneSkeletonProps) {\n return (\n <div className={cn('flex flex-col lg:grid lg:grid-cols-12 gap-4 sm:gap-6 min-h-0', className)}>\n <div className=\"lg:col-span-3 flex flex-col min-h-0\">\n <div className=\"card border border-neutral-200 dark:border-neutral-800 overflow-hidden flex flex-col h-full min-h-[320px]\">\n <div className=\"p-4 border-b border-neutral-200 dark:border-neutral-800\">\n <Skeleton className=\"h-6 w-24\" />\n </div>\n <div className=\"p-4 sm:p-6 space-y-4 flex-1\">\n <FormFieldSkeleton labelWidth=\"w-20\" />\n <FormFieldSkeleton labelWidth=\"w-16\" inputHeight=\"h-24\" />\n <FormFieldSkeleton labelWidth=\"w-12\" />\n <div className=\"pt-4 border-t border-neutral-200 dark:border-neutral-800 space-y-3\">\n <Skeleton className=\"h-5 w-20\" />\n <Skeleton className=\"h-10 w-full rounded-md\" />\n <Skeleton className=\"h-10 w-full rounded-md\" />\n </div>\n </div>\n </div>\n </div>\n <div className=\"lg:col-span-9 flex flex-col min-h-0\">\n <div className=\"card border border-neutral-200 dark:border-neutral-800 flex flex-col flex-1 min-h-[320px]\">\n <div className=\"p-4 border-b border-neutral-200 dark:border-neutral-800 flex items-center justify-between gap-3\">\n <Skeleton className=\"h-6 w-32\" />\n <Skeleton className=\"h-9 w-28 rounded-md\" />\n </div>\n <div className=\"p-4 sm:p-6 flex-1 space-y-4\">\n {Array.from({ length: 5 }).map((_, index) => (\n <div key={index} className=\"flex items-center gap-3 p-3 rounded-lg border border-neutral-200/80 dark:border-neutral-800\">\n <Skeleton className=\"h-5 w-5 rounded shrink-0\" />\n <div className=\"flex-1 space-y-2\">\n <Skeleton className=\"h-4 w-40\" />\n <Skeleton className=\"h-3 w-full max-w-md\" />\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n );\n}\n","import { cn } from '@genispace/geniapp/utils';\nimport { Skeleton } from '../../ui/skeleton';\n\nexport interface StatsRowSkeletonProps {\n count?: number;\n className?: string;\n}\n\nexport function StatsRowSkeleton({ count = 4, className }: StatsRowSkeletonProps) {\n return (\n <div className={cn('grid grid-cols-2 lg:grid-cols-4 gap-4', className)}>\n {Array.from({ length: count }).map((_, index) => (\n <div\n key={index}\n className=\"card p-4 border border-neutral-200 dark:border-neutral-700 space-y-3\"\n >\n <Skeleton className=\"h-4 w-20\" />\n <Skeleton className=\"h-8 w-16\" />\n <Skeleton className=\"h-3 w-24\" />\n </div>\n ))}\n </div>\n );\n}\n","import { cn } from '@genispace/geniapp/utils';\nimport { FormCardSkeleton } from './FormCardSkeleton';\nimport { PageHeaderSkeleton } from './PageHeaderSkeleton';\n\nexport interface FormPageSkeletonProps {\n fieldCount?: number;\n showSecondCard?: boolean;\n className?: string;\n}\n\nexport function FormPageSkeleton({\n fieldCount = 4,\n showSecondCard = false,\n className,\n}: FormPageSkeletonProps) {\n return (\n <div className={cn('space-y-6', className)}>\n <PageHeaderSkeleton showBack showActions={false} />\n <FormCardSkeleton fieldCount={fieldCount} />\n {showSecondCard ? <FormCardSkeleton fieldCount={Math.max(2, fieldCount - 2)} /> : null}\n </div>\n );\n}\n","export const Z_INDEX_LAYERS = {\n\n DEFAULT: 0,\n WATERMARK: 5,\n STICKY_HEADER: 10,\n SIDEBAR: 20,\n FIXED_HEADER: 30,\n\n FLOATING_PANEL: 100,\n TOOLTIP: 150,\n DROPDOWN_MENU: 200,\n POPOVER: 250,\n\n BACKDROP: 300,\n DRAWER: 400,\n MODAL_BACKDROP: 500,\n\n CONTEXT_MENU: 1000,\n FUNCTION_DROPDOWN: 10001,\n\n MODAL: 10000,\n NESTED_MODAL: 10002,\n /** Date picker calendar popover inside modals */\n DATE_PICKER_POPOVER: 10003,\n /** Select/Popover/DropdownMenu content portaled to body — must paint above dialog/sheet layers */\n OVERLAY_POPOVER: 10003,\n ALERT_MODAL: 50000,\n TOAST: 100000,\n} as const;\n\nexport const Z_INDEX_CLASSES = {\n DEFAULT: 'z-0',\n WATERMARK: 'z-[5]',\n STICKY_HEADER: 'z-10',\n SIDEBAR: 'z-20',\n FIXED_HEADER: 'z-30',\n FLOATING_PANEL: 'z-[100]',\n TOOLTIP: 'z-[150]',\n DROPDOWN_MENU: 'z-[200]',\n POPOVER: 'z-[250]',\n BACKDROP: 'z-[300]',\n DRAWER: 'z-[400]',\n MODAL_BACKDROP: 'z-[500]',\n CONTEXT_MENU: 'z-[1000]',\n FUNCTION_DROPDOWN: 'z-[10001]',\n MODAL: 'z-[10000]',\n NESTED_MODAL: 'z-[10002]',\n DATE_PICKER_POPOVER: 'z-[10003]',\n OVERLAY_POPOVER: 'z-[10003]',\n ALERT_MODAL: 'z-[50000]',\n TOAST: 'z-[100000]',\n} as const;\n","import { cn } from '@genispace/geniapp/utils';\nimport { Skeleton } from '../../ui/skeleton';\nimport { ConfigEditorSkeleton } from './ConfigEditorSkeleton';\nimport { DetailTabsSkeleton } from './DetailTabsSkeleton';\nimport { TablePageSkeleton } from './TablePageSkeleton';\nimport { GridCardsSkeleton } from './GridCardsSkeleton';\nimport { SplitPaneSkeleton } from './SplitPaneSkeleton';\nimport { PageHeaderSkeleton } from './PageHeaderSkeleton';\nimport { FormCardSkeleton } from './FormCardSkeleton';\nimport { StatsRowSkeleton } from './StatsRowSkeleton';\nimport { FormFieldSkeleton } from './FormFieldSkeleton';\nimport { FormPageSkeleton } from './FormPageSkeleton';\n\nexport { FormFieldSkeleton, type FormFieldSkeletonProps } from './FormFieldSkeleton';\nexport { FormPageSkeleton, type FormPageSkeletonProps } from './FormPageSkeleton';\nexport { PageHeaderSkeleton, type PageHeaderSkeletonProps } from './PageHeaderSkeleton';\nexport { TabsBarSkeleton, type TabsBarSkeletonProps } from './TabsBarSkeleton';\nexport { FormCardSkeleton, type FormCardSkeletonProps } from './FormCardSkeleton';\nexport { TablePageSkeleton, type TablePageSkeletonProps } from './TablePageSkeleton';\nexport { GridCardsSkeleton, type GridCardsSkeletonProps } from './GridCardsSkeleton';\nexport { SplitPaneSkeleton, type SplitPaneSkeletonProps } from './SplitPaneSkeleton';\nexport { ConfigEditorSkeleton, type ConfigEditorSkeletonProps } from './ConfigEditorSkeleton';\nexport { DetailTabsSkeleton, type DetailTabsSkeletonProps } from './DetailTabsSkeleton';\nexport { StatsRowSkeleton, type StatsRowSkeletonProps } from './StatsRowSkeleton';\nexport {\n ChartAreaSkeleton,\n type ChartAreaSkeletonProps,\n type ChartSkeletonType,\n} from './ChartAreaSkeleton';\nexport { ChartEmptyState, type ChartEmptyStateProps } from './ChartEmptyState';\nexport { TableEmptyState, type TableEmptyStateProps } from './TableEmptyState';\nexport { EmptyStateBadge, EmptyTrayIcon, type EmptyStateBadgeProps } from './EmptyStateBadge';\nexport {\n ListSkeleton,\n type ListSkeletonProps,\n type ListSkeletonTemplate,\n} from './ListSkeleton';\nexport {\n ComponentSkeletonShell,\n type ComponentSkeletonShellProps,\n} from './ComponentSkeletonShell';\nexport { skeletonBarWidth, skeletonItemCount } from './skeletonMetrics';\n\nexport type PageSkeletonPreset =\n | 'config-editor'\n | 'detail-tabs'\n | 'table-page'\n | 'grid-cards'\n | 'split-pane'\n | 'profile'\n | 'dashboard'\n | 'form-page';\n\nexport interface PageLoadingSkeletonProps {\n preset: PageSkeletonPreset;\n className?: string;\n}\n\nexport function PageLoadingSkeleton({ preset, className }: PageLoadingSkeletonProps) {\n switch (preset) {\n case 'config-editor':\n return <ConfigEditorSkeleton className={className} />;\n case 'detail-tabs':\n return <DetailTabsSkeleton className={className} />;\n case 'table-page':\n return <TablePageSkeleton className={className} />;\n case 'grid-cards':\n return <GridCardsSkeleton className={className} />;\n case 'split-pane':\n return <SplitPaneSkeleton className={className} />;\n case 'profile':\n return (\n <div className={className}>\n <PageHeaderSkeleton showBack={false} showActions={false} />\n <div className=\"space-y-8\">\n <div className=\"card p-6\">\n <div className=\"flex flex-col md:flex-row items-start gap-6\">\n <Skeleton className=\"size-20 rounded-full shrink-0\" />\n <div className=\"flex-1 w-full space-y-4\">\n <FormFieldSkeleton labelWidth=\"w-20\" />\n <FormFieldSkeleton labelWidth=\"w-24\" />\n <FormFieldSkeleton labelWidth=\"w-28\" />\n </div>\n </div>\n </div>\n <FormCardSkeleton fieldCount={4} />\n </div>\n </div>\n );\n case 'dashboard':\n return (\n <div className={cn('space-y-6', className)}>\n <StatsRowSkeleton />\n <div className=\"grid lg:grid-cols-2 gap-6\">\n <Skeleton className=\"h-64 w-full rounded-xl\" />\n <Skeleton className=\"h-64 w-full rounded-xl\" />\n </div>\n <TablePageSkeleton rowCount={5} showSearch={false} />\n </div>\n );\n case 'form-page':\n return <FormPageSkeleton className={className} />;\n default:\n return null;\n }\n}\n","import { cn } from '@genispace/geniapp/utils';\n\nexport interface QueryErrorAlertProps {\n message: string;\n onRetry?: () => void;\n retryLabel?: string;\n className?: string;\n}\n\nexport function QueryErrorAlert({\n message,\n onRetry,\n retryLabel = 'Retry',\n className,\n}: QueryErrorAlertProps) {\n return (\n <div\n className={cn(\n 'mb-6 flex flex-col gap-3 rounded-lg border border-destructive/40 bg-destructive/10 px-4 py-3 text-sm text-destructive dark:border-destructive/50 dark:bg-destructive/20 sm:flex-row sm:items-center sm:justify-between',\n className\n )}\n role=\"alert\"\n >\n <span className=\"min-w-0 break-words\">{message}</span>\n {onRetry ? (\n <button\n type=\"button\"\n onClick={onRetry}\n className=\"shrink-0 rounded-lg border border-destructive/50 bg-background px-3 py-1.5 text-xs font-medium text-destructive hover:bg-destructive/10 dark:hover:bg-destructive/30\"\n >\n {retryLabel}\n </button>\n ) : null}\n </div>\n );\n}\n","import type { ReactNode } from 'react';\nimport { PageLoadingSkeleton, type PageSkeletonPreset } from '../../primitives/page-skeleton';\nimport { QueryErrorAlert } from './QueryErrorAlert';\n\nexport interface AppPageStatesProps {\n loading: boolean;\n error: string | null;\n onRetry?: () => void;\n retryLabel?: string;\n /** Used when `loadingFallback` is not provided. Default: `table-page`. */\n preset?: PageSkeletonPreset;\n /** Custom skeleton for pages whose layout does not match a preset. */\n loadingFallback?: ReactNode;\n className?: string;\n children: ReactNode;\n}\n\n/** Standard GeniApp page body: loading skeleton, query error, or main content. */\nexport function AppPageStates({\n loading,\n error,\n onRetry,\n retryLabel,\n preset = 'table-page',\n loadingFallback,\n className,\n children,\n}: AppPageStatesProps) {\n if (loading) {\n return (\n <div className={className} role=\"status\" aria-busy=\"true\">\n {loadingFallback ?? <PageLoadingSkeleton preset={preset} />}\n </div>\n );\n }\n\n if (error) {\n return (\n <QueryErrorAlert\n message={error}\n onRetry={onRetry}\n retryLabel={retryLabel}\n className={className}\n />\n );\n }\n\n return <>{children}</>;\n}\n","import { cn } from '@genispace/geniapp/utils';\nimport { Skeleton } from '../../ui/skeleton';\n\nexport interface AppDashboardSkeletonProps {\n className?: string;\n}\n\nfunction PanelHeader({ meta = false }: { meta?: boolean }) {\n return (\n <div className=\"flex min-h-14 items-center justify-between gap-3 border-b border-border px-4 py-3 sm:px-5\">\n <Skeleton className=\"h-4 w-28\" />\n {meta ? <Skeleton className=\"h-3 w-16\" /> : null}\n </div>\n );\n}\n\nfunction MetricPlaceholder({ index }: { index: number }) {\n const noteWidths = ['w-40', 'w-16', 'w-36', 'w-32'];\n return (\n <article className=\"rounded-2xl border border-border bg-card p-4 shadow-sm sm:p-5\">\n <div className=\"flex items-center justify-between gap-4\">\n <Skeleton className=\"h-3 w-24\" />\n <Skeleton className=\"h-4 w-4 rounded\" />\n </div>\n <Skeleton className=\"mt-3 h-9 w-20\" />\n <Skeleton className={cn('mt-2 h-3 max-w-full', noteWidths[index] ?? 'w-28')} />\n </article>\n );\n}\n\nfunction QueuePlaceholder() {\n return (\n <section className=\"min-w-0 overflow-hidden rounded-2xl border border-border bg-card shadow-sm\">\n <PanelHeader meta />\n <div className=\"overflow-x-auto\">\n <div className=\"min-w-[780px]\">\n <div className=\"grid grid-cols-[1.05fr_1.55fr_.75fr_.7fr_1fr] gap-4 border-b border-border bg-muted/40 px-5 py-3\">\n {[20, 28, 16, 16, 20].map((width, index) => <Skeleton key={index} className=\"h-3\" style={{ width: `${width * 4}px` }} />)}\n </div>\n {Array.from({ length: 5 }).map((_, row) => (\n <div key={row} className=\"grid min-h-[55px] grid-cols-[1.05fr_1.55fr_.75fr_.7fr_1fr] items-center gap-4 border-b border-border px-5 py-3 last:border-b-0\">\n <div className=\"flex items-center gap-2\"><Skeleton className=\"h-2.5 w-2.5 rounded-full\" /><Skeleton className=\"h-4 w-28\" /></div>\n <div className=\"space-y-2\"><Skeleton className={cn('h-3.5', row % 2 ? 'w-44' : 'w-52')} /><Skeleton className=\"h-3 w-32\" /></div>\n <Skeleton className=\"h-4 w-20\" />\n <Skeleton className=\"h-7 w-16 rounded-full\" />\n <Skeleton className=\"h-3.5 w-28\" />\n </div>\n ))}\n </div>\n </div>\n </section>\n );\n}\n\nfunction ReasonsPlaceholder() {\n return (\n <section className=\"overflow-hidden rounded-2xl border border-border bg-card shadow-sm\">\n <PanelHeader meta />\n <div className=\"space-y-5 p-5\">\n {[88, 72, 80].map((width, index) => (\n <div key={index}>\n <div className=\"mb-2 flex items-center justify-between gap-4\"><Skeleton className=\"h-3.5\" style={{ width: `${width}%` }} /><Skeleton className=\"h-3.5 w-4\" /></div>\n <Skeleton className=\"h-1.5 w-full rounded-full\" />\n </div>\n ))}\n </div>\n </section>\n );\n}\n\nfunction ChartPlaceholder() {\n return (\n <section className=\"overflow-hidden rounded-2xl border border-border bg-card shadow-sm\">\n <PanelHeader meta />\n <div className=\"flex h-64 items-end justify-around gap-5 px-6 pb-5 pt-8\">\n {[58, 82, 68].map((height, index) => (\n <div key={index} className=\"flex h-full flex-1 items-end justify-center gap-2 border-b border-border\">\n <Skeleton className=\"w-[26%] max-w-12 rounded-b-none rounded-t-md\" style={{ height: `${height}%` }} />\n <Skeleton className=\"w-[20%] max-w-9 rounded-b-none rounded-t-md\" style={{ height: `${Math.max(24, height - 28)}%` }} />\n </div>\n ))}\n </div>\n </section>\n );\n}\n\nfunction HealthPlaceholder() {\n return (\n <section className=\"overflow-hidden rounded-2xl border border-border bg-card shadow-sm\">\n <PanelHeader meta />\n <div className=\"space-y-5 p-5\">\n {Array.from({ length: 3 }).map((_, index) => <div key={index}><div className=\"mb-2 flex justify-between\"><Skeleton className=\"h-3 w-24\" /><Skeleton className=\"h-3 w-10\" /></div><Skeleton className=\"h-1.5 w-full rounded-full\" /></div>)}\n <div className=\"rounded-xl border border-border bg-muted/30 p-4\"><Skeleton className=\"h-3 w-24\" /><Skeleton className=\"mt-3 h-8 w-12\" /><Skeleton className=\"mt-2 h-3 w-28\" /></div>\n </div>\n </section>\n );\n}\n\n/**\n * Page-level loading state for GeniApp dashboards. Its chrome and responsive\n * grid mirror `AppPage` and the common dashboard composition so loading does\n * not shift from a generic table into the final page.\n */\nexport function AppDashboardSkeleton({ className }: AppDashboardSkeletonProps) {\n return (\n <div\n className={cn('relative w-full min-w-0 max-w-full px-4 py-4 sm:px-6 sm:py-6 lg:px-8', className)}\n data-app-dashboard-skeleton\n >\n <div className=\"mb-6 flex min-h-[52px] w-full min-w-0 flex-col items-stretch justify-between gap-3 sm:min-h-[60px] sm:flex-row sm:items-center sm:gap-4\">\n <div className=\"min-w-0 flex-1 space-y-2\">\n <Skeleton className=\"h-7 w-56 max-w-full sm:h-8\" />\n <Skeleton className=\"hidden h-4 w-[28rem] max-w-full sm:block\" />\n </div>\n <Skeleton className=\"h-11 w-24 rounded-xl\" />\n </div>\n\n <div className=\"w-full min-w-0 space-y-6\">\n <div className=\"grid gap-3 sm:grid-cols-2 xl:grid-cols-4\">\n {Array.from({ length: 4 }).map((_, index) => <MetricPlaceholder key={index} index={index} />)}\n </div>\n <div className=\"grid min-w-0 gap-4 xl:grid-cols-[1.45fr_.75fr]\">\n <QueuePlaceholder />\n <ReasonsPlaceholder />\n </div>\n <div className=\"grid min-w-0 gap-4 xl:grid-cols-[1.45fr_.75fr]\">\n <ChartPlaceholder />\n <HealthPlaceholder />\n </div>\n </div>\n </div>\n );\n}\n","import * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from '@genispace/geniapp/utils'\nimport { Z_INDEX_CLASSES } from '../../styles/z-index-layers'\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n `fixed inset-0 ${Z_INDEX_CLASSES.MODAL_BACKDROP} bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\ninterface DialogContentProps\n extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {\n\n nested?: boolean;\n /** @default true */\n showCloseButton?: boolean;\n closeLabel?: string;\n}\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n DialogContentProps\n>(({ className, children, nested, showCloseButton = true, closeLabel = 'Close dialog', ...props }, ref) => {\n const zIndexClass = nested ? Z_INDEX_CLASSES.NESTED_MODAL : Z_INDEX_CLASSES.MODAL;\n return (\n <DialogPortal>\n <DialogOverlay className={nested ? zIndexClass : undefined} />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n `fixed left-[50%] top-[50%] ${zIndexClass} grid w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-4 shadow-lg duration-300 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:p-6`,\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton ? (\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">{closeLabel}</span>\n </DialogPrimitive.Close>\n ) : null}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n})\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from '@genispace/geniapp/utils'\nimport { Z_INDEX_CLASSES } from '../../styles/z-index-layers'\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n `fixed inset-0 ${Z_INDEX_CLASSES.MODAL_BACKDROP} bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,\n className\n )}\n {...props}\n ref={ref}\n />\n))\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n `fixed ${Z_INDEX_CLASSES.MODAL} gap-4 overflow-visible bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out`,\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n onPointerDownOutside={(e) => e.preventDefault()}\n onInteractOutside={(e) => {\n const target = e.target as Element;\n if (target.closest('[data-app-date-picker-popover]')) e.preventDefault();\n if (target.closest('[data-radix-dialog-content]')) e.preventDefault();\n if (target.closest('[data-radix-select-content]')) e.preventDefault();\n }}\n onFocusOutside={(e) => {\n const target = e.target as Element;\n if (target.closest('[data-app-date-picker-popover]')) e.preventDefault();\n if (target.closest('[data-radix-dialog-content]')) e.preventDefault();\n if (target.closest('[data-radix-select-content]')) e.preventDefault();\n }}\n onEscapeKeyDown={(e) => e.preventDefault()}\n {...props}\n >\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n))\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nSheetHeader.displayName = \"SheetHeader\"\n\nconst SheetFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nSheetFooter.displayName = \"SheetFooter\"\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n))\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import type { ReactNode } from 'react';\nimport { cn } from '@genispace/geniapp/utils';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '../../ui/dialog';\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from '../../ui/sheet';\n\nexport type AppModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'wide';\n\nconst SIZE_CLASS: Record<AppModalSize, string> = {\n sm: 'sm:max-w-md',\n md: 'sm:max-w-xl',\n lg: 'sm:max-w-2xl',\n xl: 'sm:max-w-4xl',\n wide: 'sm:max-w-6xl',\n};\nconst IS_TEST = typeof process !== 'undefined' && process.env.NODE_ENV === 'test';\n\nexport interface AppModalProps {\n open: boolean;\n onClose: () => void;\n title: string;\n description?: string;\n children: ReactNode;\n footer?: ReactNode;\n size?: AppModalSize;\n contentClassName?: string;\n bodyClassName?: string;\n closeLabel?: string;\n closeOnOutside?: boolean;\n}\n\nexport function AppModal({\n open,\n onClose,\n title,\n description,\n children,\n footer,\n size = 'md',\n contentClassName,\n bodyClassName,\n closeLabel,\n closeOnOutside = false,\n}: AppModalProps) {\n if (IS_TEST) {\n if (!open) return null;\n return (\n <div role=\"dialog\" aria-modal=\"true\" aria-label={title} className={contentClassName}>\n <header><h2>{title}</h2>{description ? <p>{description}</p> : null}</header>\n <div className={bodyClassName}>{children}</div>\n {footer ? <footer>{footer}</footer> : null}\n <button type=\"button\" aria-label={closeLabel || 'Close'} onClick={onClose}>{closeLabel || 'Close'}</button>\n </div>\n );\n }\n const savedLanguage = typeof window === 'undefined' ? '' : window.localStorage.getItem('i18nextLng') || document.documentElement.lang;\n const isChinese = savedLanguage.toLowerCase().startsWith('zh');\n return (\n <Dialog open={open} onOpenChange={(nextOpen) => { if (!nextOpen) onClose(); }}>\n <DialogContent\n closeLabel={closeLabel || (isChinese ? '关闭对话框' : 'Close dialog')}\n className={cn(\n 'max-h-[calc(100dvh-1rem)] gap-0 overflow-hidden p-0 sm:max-h-[calc(100dvh-3rem)]',\n 'max-sm:bottom-0 max-sm:left-0 max-sm:top-auto max-sm:w-full max-sm:max-w-none max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none max-sm:rounded-t-2xl',\n SIZE_CLASS[size],\n contentClassName,\n )}\n onPointerDownOutside={(event) => { if (!closeOnOutside) event.preventDefault(); }}\n >\n <DialogHeader className=\"shrink-0 border-b border-border px-5 py-4 pr-12 text-left sm:px-6\">\n <DialogTitle className=\"text-lg leading-6\">{title}</DialogTitle>\n {description ? <DialogDescription>{description}</DialogDescription> : null}\n </DialogHeader>\n <div className={cn('min-h-0 flex-1 overflow-y-auto overscroll-contain px-5 py-4 sm:px-6', bodyClassName)}>\n {children}\n </div>\n {footer ? <DialogFooter className=\"shrink-0 border-t border-border bg-background px-5 py-4 sm:px-6\">{footer}</DialogFooter> : null}\n </DialogContent>\n </Dialog>\n );\n}\n\nexport interface AppHelpSheetProps {\n open: boolean;\n onClose: () => void;\n title: string;\n description?: string;\n children: ReactNode;\n side?: 'left' | 'right';\n className?: string;\n}\n\nexport function AppHelpSheet({ open, onClose, title, description, children, side = 'right', className }: AppHelpSheetProps) {\n if (IS_TEST) {\n if (!open) return null;\n return <div role=\"dialog\" aria-modal=\"true\" aria-label={title} className={className}><header><h2>{title}</h2>{description ? <p>{description}</p> : null}</header><div>{children}</div><button type=\"button\" aria-label=\"Close\" onClick={onClose}>Close</button></div>;\n }\n return (\n <Sheet open={open} onOpenChange={(nextOpen) => { if (!nextOpen) onClose(); }}>\n <SheetContent side={side} className={cn('w-full overflow-y-auto sm:max-w-md', className)}>\n <SheetHeader className=\"text-left\">\n <SheetTitle>{title}</SheetTitle>\n {description ? <SheetDescription>{description}</SheetDescription> : null}\n </SheetHeader>\n <div className=\"mt-6 space-y-5 text-sm leading-6 text-muted-foreground\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n}\n","import { useEffect } from 'react';\n\nlet bodyScrollLockCount = 0;\n\ntype Snapshot = {\n htmlOverflow: string;\n bodyOverflow: string;\n};\n\nlet snapshot: Snapshot | null = null;\n\nfunction applyScrollLock() {\n const html = document.documentElement;\n snapshot = {\n htmlOverflow: html.style.overflow,\n bodyOverflow: document.body.style.overflow,\n };\n\n html.style.overflow = 'hidden';\n document.body.style.overflow = 'hidden';\n}\n\nfunction releaseScrollLock() {\n if (!snapshot) return;\n const html = document.documentElement;\n html.style.overflow = snapshot.htmlOverflow;\n document.body.style.overflow = snapshot.bodyOverflow;\n snapshot = null;\n}\n\nexport function useLockBodyScroll(lock: boolean) {\n useEffect(() => {\n if (typeof document === 'undefined') return;\n if (!lock) return;\n\n const isFirst = bodyScrollLockCount === 0;\n if (isFirst) {\n applyScrollLock();\n }\n bodyScrollLockCount++;\n\n return () => {\n bodyScrollLockCount--;\n if (bodyScrollLockCount === 0) {\n releaseScrollLock();\n }\n };\n }, [lock]);\n}\n","/**\n * GeniSpace Design Tokens\n *\n * Single source of truth for all design values across the platform.\n * Aligned with DESIGN_GUIDELINE.html v2.0 and GeniSpace_Design_Guideline.md v1.1.0.\n */\n\n// ---------------------------------------------------------------------------\n// CSS Variable Tokens (HSL values without \"hsl()\" wrapper, consumed via CSS vars)\n// ---------------------------------------------------------------------------\n\nexport const CSS_VARS = {\n light: {\n background: '0 0% 100%',\n foreground: '0 0% 9%', // #171717 (neutral-900)\n card: '0 0% 100%',\n cardForeground: '0 0% 9%',\n popover: '0 0% 100%',\n popoverForeground: '0 0% 9%',\n primary: '217 91% 60%', // #3B82F6 (blue-500)\n primaryForeground: '0 0% 100%', // white\n secondary: '0 0% 96.1%', // #F5F5F5 (neutral-100)\n secondaryForeground: '0 0% 14.9%', // #262626 (neutral-800)\n muted: '210 40% 96.1%',\n mutedForeground: '0 0% 25.1%', // #404040 (ink-medium, neutral-700)\n accent: '210 40% 96.1%',\n accentForeground: '222.2 47.4% 11.2%',\n destructive: '0 84.2% 60.2%', // #ef4444 (red-500)\n destructiveForeground: '0 0% 100%',\n border: '214.3 31.8% 91.4%',\n input: '214.3 31.8% 91.4%',\n ring: '217 91% 60%', // blue-500\n radius: '0.5rem',\n // Sidebar\n sidebarBackground: '0 0% 98%',\n sidebarForeground: '0 0% 9%',\n sidebarPrimary: '0 0% 9%',\n sidebarPrimaryForeground: '0 0% 98%',\n sidebarAccent: '0 0% 96.1%',\n sidebarAccentForeground: '0 0% 9%',\n sidebarBorder: '0 0% 89.8%',\n sidebarRing: '0 0% 9%',\n },\n dark: {\n background: '0 0% 3.9%', // #0a0a0a (neutral-950)\n foreground: '0 0% 98%', // #fafafa (neutral-50)\n card: '0 0% 3.9%',\n cardForeground: '0 0% 98%',\n popover: '0 0% 3.9%',\n popoverForeground: '0 0% 98%',\n primary: '0 0% 98%', // #FAFAFA (neutral-50)\n primaryForeground: '0 0% 9%', // #171717 (neutral-900)\n secondary: '0 0% 14.9%', // #262626 (neutral-800)\n secondaryForeground: '0 0% 98%',\n muted: '0 0% 14.9%',\n mutedForeground: '0 0% 63.9%', // #a3a3a3 (neutral-400)\n accent: '0 0% 14.9%',\n accentForeground: '0 0% 98%',\n destructive: '0 84.2% 60.2%', // keep red-500 in dark mode\n destructiveForeground: '0 0% 100%',\n border: '0 0% 14.9%', // #262626 (neutral-800)\n input: '0 0% 14.9%',\n ring: '0 0% 83.1%',\n // Sidebar\n sidebarBackground: '0 0% 9%',\n sidebarForeground: '0 0% 98%',\n sidebarPrimary: '0 0% 98%',\n sidebarPrimaryForeground: '0 0% 9%',\n sidebarAccent: '0 0% 14.9%',\n sidebarAccentForeground: '0 0% 98%',\n sidebarBorder: '0 0% 14.9%',\n sidebarRing: '0 0% 83.1%',\n },\n} as const;\n\n// ---------------------------------------------------------------------------\n// Brand Colors (static hex values, used in Tailwind config extend)\n// ---------------------------------------------------------------------------\n\nexport const BRAND_COLORS = {\n ink: {\n black: '#171717', // neutral-900, primary text\n dark: '#262626', // neutral-800, secondary text\n medium: '#404040', // neutral-700, body text\n light: '#737373', // neutral-500, muted text\n },\n brand: {\n primary: '#262626',\n 'primary-light': '#525252',\n 'primary-dark': '#171717',\n },\n paper: {\n light: '#FFFCF7',\n medium: '#FDF7EF',\n dark: '#FBF1E4',\n },\n surface: {\n DEFAULT: '#ffffff',\n dark: '#0a0a0a',\n darker: '#171717',\n light: '#f3f4f6',\n },\n content: {\n DEFAULT: '#111827',\n dark: '#fafafa',\n muted: '#4b5563',\n 'dark-muted': '#d1d5db',\n },\n accent: {\n DEFAULT: '#3b82f6',\n light: '#60a5fa',\n dark: '#2563eb',\n foreground: '#ffffff',\n },\n functional: {\n success: '#27AE60',\n warning: '#F39C12',\n error: '#E74C3C',\n info: '#3498DB',\n },\n} as const;\n\n// ---------------------------------------------------------------------------\n// Typography\n// ---------------------------------------------------------------------------\n\nexport const TYPOGRAPHY = {\n fontFamily: {\n sans: [\n 'Inter',\n 'Noto Sans SC',\n 'system-ui',\n '-apple-system',\n 'BlinkMacSystemFont',\n 'Segoe UI',\n 'PingFang SC',\n 'Microsoft YaHei',\n 'Helvetica Neue',\n 'Arial',\n 'sans-serif',\n ],\n mono: [\n 'Geist Mono',\n 'Noto Sans SC',\n 'Consolas',\n 'Monaco',\n 'Courier New',\n 'monospace',\n ],\n display: [\n 'Space Grotesk',\n 'Noto Sans SC',\n 'system-ui',\n '-apple-system',\n 'BlinkMacSystemFont',\n 'sans-serif',\n ],\n },\n fontSize: {\n xs: '0.75rem', // 10.5px (at 14px root)\n sm: '0.875rem', // 12.25px\n base: '1rem', // 14px\n lg: '1.125rem', // 15.75px\n xl: '1.25rem', // 17.5px\n '2xl': '1.5rem', // 21px\n '3xl': '1.75rem', // 24.5px\n '4xl': '2rem', // 28px\n },\n lineHeight: {\n tight: '1.1',\n normal: '1.3',\n relaxed: '1.5',\n },\n} as const;\n\n// ---------------------------------------------------------------------------\n// Spacing (4px base grid)\n// ---------------------------------------------------------------------------\n\nexport const SPACING = {\n px: '1px',\n 0: '0',\n 0.5: '2px',\n 1: '4px',\n 1.5: '6px',\n 2: '8px',\n 2.5: '10px',\n 3: '12px',\n 3.5: '14px',\n 4: '16px',\n 5: '20px',\n 6: '24px',\n 7: '28px',\n 8: '32px',\n 9: '36px',\n 10: '40px',\n 12: '48px',\n 16: '64px',\n 20: '80px',\n 24: '96px',\n} as const;\n\n// ---------------------------------------------------------------------------\n// Shadows\n// ---------------------------------------------------------------------------\n\nexport const SHADOWS = {\n sm: '0 2px 4px rgba(10, 10, 10, 0.08)',\n md: '0 4px 12px rgba(10, 10, 10, 0.12)',\n lg: '0 8px 24px rgba(10, 10, 10, 0.16)',\n} as const;\n\n// ---------------------------------------------------------------------------\n// Transitions\n// ---------------------------------------------------------------------------\n\nexport const TRANSITIONS = {\n fast: '150ms',\n standard: '300ms',\n slow: '500ms',\n} as const;\n\n// ---------------------------------------------------------------------------\n// Modal Dimensions\n// ---------------------------------------------------------------------------\n\nexport const MODAL_DIMENSIONS = {\n sm: { width: '480px', maxHeight: '90vh' },\n md: { width: '640px', maxHeight: '90vh' },\n lg: { width: '896px', maxHeight: '90vh' },\n xl: { width: '1000px', maxHeight: '90vh' },\n\n wide: { width: 'min(1152px, 95vw)', maxHeight: '90vh' },\n full: { width: '95vw', maxHeight: '95vh' },\n} as const;\n","import * as React from \"react\";\nimport { X } from \"lucide-react\";\nimport { cn } from '@genispace/geniapp/utils';\nimport { createPortal } from \"react-dom\";\nimport { useLockBodyScroll } from '../../hooks/useLockBodyScroll';\nimport { MODAL_DIMENSIONS } from '../../styles/design-tokens';\nimport { Z_INDEX_CLASSES } from '../../styles/z-index-layers';\n\nexport const MODAL_SIZES = {\n sm: MODAL_DIMENSIONS.sm,\n md: MODAL_DIMENSIONS.md,\n lg: MODAL_DIMENSIONS.lg,\n xl: MODAL_DIMENSIONS.xl,\n wide: MODAL_DIMENSIONS.wide,\n full: MODAL_DIMENSIONS.full,\n STANDARD: MODAL_DIMENSIONS.lg,\n LARGE: MODAL_DIMENSIONS.wide,\n} as const;\n\nexport type ModalSize = keyof typeof MODAL_SIZES;\n\ninterface ModalContainerProps {\n\n size?: ModalSize;\n\n isOpen: boolean;\n\n onClose: () => void;\n\n title?: React.ReactNode;\n\n showCloseButton?: boolean;\n\n closeOnOverlayClick?: boolean;\n\n className?: string;\n\n contentClassName?: string;\n\n usePortal?: boolean;\n\n children: React.ReactNode;\n}\n\nexport const ModalContainer: React.FC<ModalContainerProps> = ({\n size = 'STANDARD',\n isOpen,\n onClose,\n title,\n showCloseButton = true,\n closeOnOverlayClick = false,\n className,\n contentClassName,\n usePortal = true,\n children\n}) => {\n\n useLockBodyScroll(isOpen);\n\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && isOpen) {\n onClose();\n }\n };\n\n if (isOpen) {\n document.addEventListener('keydown', handleKeyDown);\n }\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [isOpen, onClose]);\n\n const handleOverlayClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (closeOnOverlayClick && event.target === event.currentTarget) {\n onClose();\n }\n };\n\n const sizeDims = MODAL_SIZES[size];\n\n const modalContent = (\n <div \n className={cn(\n \"fixed inset-0 flex items-start sm:items-center justify-center p-4 sm:p-6 overflow-y-auto bg-black/50 backdrop-blur-sm\",\n Z_INDEX_CLASSES.MODAL,\n className\n )}\n onClick={handleOverlayClick}\n style={{ \n opacity: isOpen ? 1 : 0,\n visibility: isOpen ? 'visible' : 'hidden',\n transition: 'opacity 200ms ease-in-out, visibility 200ms ease-in-out'\n }}\n >\n <div \n className={cn(\n \"w-full rounded-lg shadow-xl border bg-white dark:bg-surface-darker flex flex-col overflow-hidden my-auto sm:my-4\",\n \"border-surface-darker/10 dark:border-surface/20\",\n \"animate-in fade-in-0 zoom-in-95 duration-300\",\n \"mx-auto sm:mx-4 md:mx-6 lg:mx-8\",\n \"max-h-[calc(100dvh-2rem)]\",\n contentClassName\n )}\n style={{\n maxWidth: sizeDims.width,\n maxHeight: `min(${sizeDims.maxHeight}, calc(100dvh - 2rem))`,\n }}\n onClick={(e) => e.stopPropagation()}\n >\n {(title || showCloseButton) && (\n <div className=\"flex items-center justify-between p-6 border-b border-neutral-200 dark:border-neutral-700 flex-shrink-0\">\n {title && (\n <div className=\"flex-1 min-w-0\">\n {typeof title === 'string' ? (\n <h2 className=\"text-xl font-semibold text-neutral-900 dark:text-white\">\n {title}\n </h2>\n ) : (\n title\n )}\n </div>\n )}\n\n {showCloseButton && (\n <button\n onClick={onClose}\n className=\"p-2 hover:bg-neutral-100 dark:hover:bg-neutral-700 rounded-lg transition-colors\"\n aria-label=\"Close dialog\"\n >\n <X className=\"w-5 h-5 text-neutral-500 dark:text-neutral-400\" />\n </button>\n )}\n </div>\n )}\n\n <div className=\"flex min-h-0 flex-1 flex-col overflow-hidden\">\n {children}\n </div>\n </div>\n </div>\n );\n\n if (!isOpen) return null;\n\n if (usePortal) {\n return createPortal(modalContent, document.body);\n }\n\n return modalContent;\n};\n\nexport const useModal = (initialOpen = false) => {\n const [isOpen, setIsOpen] = React.useState(initialOpen);\n\n const openModal = React.useCallback(() => setIsOpen(true), []);\n const closeModal = React.useCallback(() => setIsOpen(false), []);\n const toggleModal = React.useCallback(() => setIsOpen(prev => !prev), []);\n\n return {\n isOpen,\n openModal,\n closeModal,\n toggleModal\n };\n};\n\nexport default ModalContainer;\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl text-sm font-medium transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 dark:focus-visible:ring-offset-neutral-950 disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-blue-500 dark:bg-neutral-50 text-white dark:text-neutral-950 shadow-sm hover:shadow-md hover:bg-blue-600 dark:hover:bg-white active:bg-blue-700 dark:active:bg-neutral-100\",\n destructive:\n \"bg-red-600 dark:bg-red-700 text-white shadow-sm hover:shadow-md hover:bg-red-700 dark:hover:bg-red-600 active:bg-red-800 dark:active:bg-red-800\",\n outline:\n \"border border-neutral-300 dark:border-neutral-700 text-neutral-700 dark:text-neutral-300 hover:bg-neutral-100 dark:hover:bg-neutral-800 active:bg-neutral-200 dark:active:bg-neutral-700\",\n secondary:\n \"bg-neutral-100 dark:bg-neutral-800 text-neutral-800 dark:text-neutral-50 shadow-sm hover:shadow-md hover:bg-neutral-200 dark:hover:bg-neutral-700 active:bg-neutral-300 dark:active:bg-neutral-900 hover:text-neutral-900 dark:hover:text-neutral-50 active:text-neutral-950 dark:active:text-neutral-50\",\n ghost:\n \"bg-transparent text-neutral-700 dark:text-neutral-400 hover:bg-neutral-100 dark:hover:bg-neutral-800 active:bg-neutral-200 dark:active:bg-neutral-900 hover:text-neutral-900 dark:hover:text-neutral-200 active:text-neutral-950 dark:active:text-neutral-100\",\n subtle:\n \"bg-transparent text-neutral-600 dark:text-neutral-400 hover:bg-neutral-50 dark:hover:bg-neutral-800/50 active:bg-neutral-100 dark:active:bg-neutral-700/50\",\n link:\n \"bg-transparent text-blue-600 dark:text-blue-400 underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2\",\n sm: \"h-8 rounded-lg px-3 text-xs\",\n lg: \"h-10 rounded-xl px-8\",\n icon: \"h-9 w-9 p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","import * as React from \"react\";\nimport { ModalContainer, ModalSize } from \"./modal-container\";\nimport { Button } from \"./button\";\n\ninterface BaseModalProps {\n size?: ModalSize;\n isOpen: boolean;\n onClose: () => void;\n title?: React.ReactNode;\n className?: string;\n children: React.ReactNode;\n footer?: React.ReactNode;\n showCloseButton?: boolean;\n closeOnOverlayClick?: boolean;\n}\n\nexport const BaseModal: React.FC<BaseModalProps> = ({\n size = 'STANDARD',\n isOpen,\n onClose,\n title,\n className,\n children,\n footer,\n showCloseButton = true,\n closeOnOverlayClick = false\n}) => {\n return (\n <ModalContainer\n size={size}\n isOpen={isOpen}\n onClose={onClose}\n title={title}\n showCloseButton={showCloseButton}\n closeOnOverlayClick={closeOnOverlayClick}\n className={className}\n >\n <div className=\"min-h-0 flex-1 overflow-y-auto overscroll-contain custom-scrollbar\">\n {children}\n </div>\n\n {footer && (\n <div className=\"flex-shrink-0 border-t border-neutral-200 dark:border-neutral-700 bg-neutral-50 dark:bg-neutral-800\">\n {footer}\n </div>\n )}\n </ModalContainer>\n );\n};\n\ninterface FormModalProps extends Omit<BaseModalProps, 'footer'> {\n onSubmit?: () => void;\n onCancel?: () => void;\n submitText?: string;\n cancelText?: string;\n submitDisabled?: boolean;\n submitLoading?: boolean;\n showFooter?: boolean;\n customFooter?: React.ReactNode;\n}\n\nexport const FormModal: React.FC<FormModalProps> = ({\n onSubmit,\n onCancel,\n submitText = \"OK\",\n cancelText = \"Cancel\", \n submitDisabled = false,\n submitLoading = false,\n showFooter = true,\n customFooter,\n ...baseProps\n}) => {\n const handleCancel = () => {\n onCancel?.();\n baseProps.onClose();\n };\n\n const handleSubmit = () => {\n onSubmit?.();\n };\n\n const footer = showFooter ? (\n customFooter || (\n <div className=\"flex items-center justify-end gap-3 p-6\">\n <Button type=\"button\" variant=\"secondary\" onClick={handleCancel}>\n {cancelText}\n </Button>\n\n {onSubmit && (\n <Button\n type=\"button\"\n variant=\"default\"\n onClick={handleSubmit}\n disabled={submitDisabled || submitLoading}\n className=\"gap-2\"\n >\n {submitLoading && (\n <div className=\"h-4 w-4 animate-spin rounded-full border-2 border-white/30 border-t-white\" />\n )}\n {submitText}\n </Button>\n )}\n </div>\n )\n ) : undefined;\n\n return <BaseModal {...baseProps} footer={footer} />;\n};\n\ninterface ConfirmModalProps {\n isOpen: boolean;\n onClose: () => void;\n onConfirm: () => void;\n title?: React.ReactNode;\n message: string;\n confirmText?: string;\n cancelText?: string;\n danger?: boolean;\n loading?: boolean;\n}\n\nexport const ConfirmModal: React.FC<ConfirmModalProps> = ({\n isOpen,\n onClose,\n onConfirm,\n title = \"Confirm\",\n message,\n confirmText = \"Confirm\",\n cancelText = \"Cancel\",\n danger = false,\n loading = false\n}) => {\n const handleConfirm = () => {\n onConfirm();\n };\n\n return (\n <ModalContainer\n size=\"STANDARD\"\n isOpen={isOpen}\n onClose={onClose}\n title={title}\n contentClassName=\"max-w-4xl\" \n >\n <div className=\"p-6\">\n <p className=\"text-neutral-700 dark:text-neutral-300 mb-6\">\n {message}\n </p>\n\n <div className=\"flex items-center justify-end gap-3\">\n <Button type=\"button\" variant=\"secondary\" onClick={onClose} disabled={loading}>\n {cancelText}\n </Button>\n\n <Button\n type=\"button\"\n variant={danger ? \"destructive\" : \"default\"}\n onClick={handleConfirm}\n disabled={loading}\n className=\"gap-2\"\n >\n {loading && (\n <div className=\"h-4 w-4 animate-spin rounded-full border-2 border-white/30 border-t-white\" />\n )}\n {confirmText}\n </Button>\n </div>\n </div>\n </ModalContainer>\n );\n};\n\ninterface ListModalProps extends BaseModalProps {\n searchable?: boolean;\n searchPlaceholder?: string;\n onSearch?: (term: string) => void;\n emptyMessage?: string;\n loading?: boolean;\n}\n\nexport const ListModal: React.FC<ListModalProps> = ({\n searchable = false,\n searchPlaceholder = \"Search...\",\n onSearch,\n emptyMessage = \"No data\",\n loading = false,\n children,\n title,\n ...baseProps\n}) => {\n const [searchTerm, setSearchTerm] = React.useState(\"\");\n\n const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n setSearchTerm(value);\n onSearch?.(value);\n };\n\n return (\n <BaseModal {...baseProps} title={title}>\n {searchable && (\n <div className=\"p-4 border-b border-neutral-200 dark:border-neutral-700\">\n <input\n type=\"text\"\n placeholder={searchPlaceholder}\n value={searchTerm}\n onChange={handleSearchChange}\n className=\"w-full px-3 py-2 border border-neutral-300 dark:border-neutral-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-brand-primary bg-white dark:bg-neutral-700 text-neutral-900 dark:text-white\"\n />\n </div>\n )}\n\n <div className=\"min-h-0 flex-1 overflow-y-auto overscroll-contain custom-scrollbar\">\n {loading ? (\n <div className=\"flex items-center justify-center py-12\">\n <div className=\"w-8 h-8 border-2 border-brand-primary/30 border-t-blue-600 rounded-full animate-spin\" />\n <span className=\"ml-3 text-neutral-600 dark:text-neutral-400\">Loading...</span>\n </div>\n ) : (\n children || (\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\n <p className=\"text-neutral-500 dark:text-neutral-400\">{emptyMessage}</p>\n </div>\n )\n )}\n </div>\n </BaseModal>\n );\n};\n","import { ConfirmModal } from '../../ui/modal-templates';\n\nexport interface AppConfirmDialogProps {\n open: boolean;\n title: string;\n message: string;\n confirmLabel?: string;\n cancelLabel?: string;\n onConfirm: () => void;\n onCancel: () => void;\n danger?: boolean;\n loading?: boolean;\n}\n\nexport function AppConfirmDialog({\n open,\n title,\n message,\n confirmLabel = 'Confirm',\n cancelLabel = 'Cancel',\n onConfirm,\n onCancel,\n danger = false,\n loading = false,\n}: AppConfirmDialogProps) {\n return (\n <ConfirmModal\n isOpen={open}\n onClose={onCancel}\n onConfirm={onConfirm}\n title={title}\n message={message}\n confirmText={confirmLabel}\n cancelText={cancelLabel}\n danger={danger}\n loading={loading}\n />\n );\n}\n","import * as React from \"react\"\nimport { ChevronLeft, ChevronRight } from \"lucide-react\"\nimport { DayPicker } from \"react-day-picker\"\n\nimport { cn } from '@genispace/geniapp/utils'\nimport \"./calendar.css\"\nimport { Z_INDEX_CLASSES } from '../../styles/z-index-layers'\nimport { buttonVariants } from \"./button\"\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n components,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"p-3\",\n props.mode === \"range\" ? \"gs-calendar-range\" : \"gs-calendar-single\",\n className\n )}\n classNames={{\n months: \"flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0\",\n month: \"space-y-4 min-w-[280px]\",\n caption: \"flex justify-center pt-1 relative items-center w-full\",\n caption_label: \"text-sm font-medium\",\n nav: \"space-x-1 flex items-center\",\n nav_button: cn(\n buttonVariants({ variant: \"outline\" }),\n \"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100\"\n ),\n nav_button_previous: \"absolute left-0\",\n nav_button_next: \"absolute right-0\",\n table: \"w-full border-collapse space-y-1\",\n head_row: \"flex w-full\",\n head_cell:\n \"text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem]\",\n row: \"flex w-full mt-2\",\n cell: cn(\n `relative p-0 text-center text-sm flex-1 focus-within:relative focus-within:${Z_INDEX_CLASSES.SIDEBAR} has-[[aria-selected]]:bg-accent has-[[aria-selected].day-outside]:bg-accent/50 has-[[aria-selected].day-range-end]:rounded-r-md`,\n props.mode === \"range\"\n ? \"has-[>.day-range-end]:rounded-r-md has-[>.day-range-start]:rounded-l-md first:has-[[aria-selected]]:rounded-l-md last:has-[[aria-selected]]:rounded-r-md\"\n : undefined\n ),\n day: cn(\n buttonVariants({ variant: \"ghost\" }),\n \"h-8 w-8 p-0 font-normal aria-selected:opacity-100\"\n ),\n day_range_start: \"day-range-start\",\n day_range_end: \"day-range-end\",\n day_selected:\n \"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground\",\n day_today: \"bg-accent text-accent-foreground\",\n day_outside:\n \"day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground\",\n day_disabled: \"text-muted-foreground opacity-50\",\n day_range_middle:\n \"aria-selected:bg-accent aria-selected:text-accent-foreground\",\n day_hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n IconLeft: ({ className, ...props }) => (\n <ChevronLeft className={cn(\"h-4 w-4\", className)} {...props} />\n ),\n IconRight: ({ className, ...props }) => (\n <ChevronRight className={cn(\"h-4 w-4\", className)} {...props} />\n ),\n // Consumer overrides (e.g. a custom DayContent) merge in without dropping\n // the nav chevrons above.\n ...components,\n }}\n {...props}\n />\n )\n}\nCalendar.displayName = \"Calendar\"\n\nexport { Calendar }\n","import * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from '@genispace/geniapp/utils'\nimport { Z_INDEX_CLASSES } from '../../styles/z-index-layers'\n\nfunction usePopoverBackgroundColor() {\n const [backgroundColor, setBackgroundColor] = React.useState<string>('hsl(0 0% 100%)');\n\n React.useEffect(() => {\n const updateBackgroundColor = () => {\n if (typeof window === 'undefined') return;\n\n const root = document.documentElement;\n const popoverValue = getComputedStyle(root).getPropertyValue('--popover').trim();\n const isDark = root.classList.contains('dark');\n\n if (popoverValue) {\n setBackgroundColor(`hsl(${popoverValue})`);\n } else {\n\n setBackgroundColor(isDark ? 'hsl(0 0% 3.9%)' : 'hsl(0 0% 100%)');\n }\n };\n\n updateBackgroundColor();\n\n const observer = new MutationObserver(updateBackgroundColor);\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['class'],\n });\n\n return () => observer.disconnect();\n }, []);\n\n return backgroundColor;\n}\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverAnchor = PopoverPrimitive.Anchor\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, style, ...props }, ref) => {\n const backgroundColor = usePopoverBackgroundColor();\n\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n `${Z_INDEX_CLASSES.OVERLAY_POPOVER} w-72 rounded-md border p-4 shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]`,\n \"text-popover-foreground border-border\",\n className\n )}\n style={{\n backgroundColor,\n ...style,\n }}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n})\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","import * as React from 'react';\nimport { format } from 'date-fns';\nimport { enUS, zhCN } from 'date-fns/locale';\nimport { CalendarDays, Clock3, X } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { cn } from '@genispace/geniapp/utils';\nimport { Z_INDEX_CLASSES } from '../../../styles/z-index-layers';\nimport { Button } from '../../ui/button';\nimport { Calendar } from '../../ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '../../ui/popover';\nimport type { DateRange, Matcher } from 'react-day-picker';\n\nconst IS_TEST = typeof process !== 'undefined' && process.env.NODE_ENV === 'test';\n\nexport type AppDatePickerPopoverLayer = 'default' | 'aboveModal';\nexport type AppDateTimePickerPopoverLayer = AppDatePickerPopoverLayer;\n\nexport interface AppTemporalLabels {\n chooseDate: string;\n chooseDateTime: string;\n chooseTime: string;\n clear: string;\n today: string;\n previousYear: string;\n nextYear: string;\n hour: string;\n minute: string;\n apply: string;\n}\n\nexport interface AppDatePickerProps {\n id?: string;\n value: string;\n onChange: (value: string) => void;\n disabled?: boolean;\n placeholder?: string;\n className?: string;\n triggerClassName?: string;\n min?: string;\n max?: string;\n locale?: string;\n labels?: Partial<AppTemporalLabels>;\n clearable?: boolean;\n 'aria-label'?: string;\n popoverLayer?: AppDatePickerPopoverLayer;\n disabledDays?: Matcher | Matcher[];\n presets?: Array<{ label: string; value: string }>;\n}\n\nexport interface AppDateRangePickerProps extends Omit<AppDatePickerProps, 'value' | 'onChange' | 'presets'> {\n value: { from: string; to: string };\n onChange: (value: { from: string; to: string }) => void;\n presets?: Array<{ label: string; value: { from: string; to: string } }>;\n}\n\nexport interface AppDateTimePickerProps extends Omit<AppDatePickerProps, 'placeholder'> {\n placeholder?: string;\n minuteStep?: number;\n}\n\nexport interface AppTimePickerProps\n extends Pick<AppDatePickerProps, 'id' | 'value' | 'onChange' | 'disabled' | 'className' | 'triggerClassName' | 'locale' | 'labels' | 'clearable' | 'aria-label' | 'popoverLayer'> {\n placeholder?: string;\n minuteStep?: number;\n}\n\nconst DEFAULT_LABELS: Record<'en' | 'zh', AppTemporalLabels> = {\n en: {\n chooseDate: 'Select date',\n chooseDateTime: 'Select date and time',\n chooseTime: 'Select time',\n clear: 'Clear',\n today: 'Today',\n previousYear: 'Previous year',\n nextYear: 'Next year',\n hour: 'Hour',\n minute: 'Minute',\n apply: 'Apply',\n },\n zh: {\n chooseDate: '选择日期',\n chooseDateTime: '选择日期和时间',\n chooseTime: '选择时间',\n clear: '清除',\n today: '今天',\n previousYear: '上一年',\n nextYear: '下一年',\n hour: '小时',\n minute: '分钟',\n apply: '应用',\n },\n};\n\nfunction normalizeLocale(locale?: string): 'en' | 'zh' {\n return String(locale || '').toLowerCase().startsWith('zh') ? 'zh' : 'en';\n}\n\nexport function temporalLabels(locale?: string, overrides?: Partial<AppTemporalLabels>): AppTemporalLabels {\n return { ...DEFAULT_LABELS[normalizeLocale(locale)], ...overrides };\n}\n\nexport function parseBusinessDate(value?: string): Date | undefined {\n const dateOnly = String(value || '').trim().match(/^(\\d{4})-(\\d{2})-(\\d{2})/) ?? [];\n if (!dateOnly[1]) return undefined;\n const date = new Date(Number(dateOnly[1]), Number(dateOnly[2]) - 1, Number(dateOnly[3]));\n if (\n date.getFullYear() !== Number(dateOnly[1]) ||\n date.getMonth() !== Number(dateOnly[2]) - 1 ||\n date.getDate() !== Number(dateOnly[3])\n ) return undefined;\n return date;\n}\n\nexport function formatBusinessDateValue(date: Date): string {\n return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;\n}\n\nfunction parseTime(value?: string): { hour: number; minute: number } {\n const match = String(value || '').match(/(?:T|^)(\\d{2}):(\\d{2})/);\n const hour = Math.min(23, Math.max(0, Number(match?.[1] || 9)));\n const minute = Math.min(59, Math.max(0, Number(match?.[2] || 0)));\n return { hour, minute };\n}\n\nfunction displayDate(value: string, locale: 'en' | 'zh'): string {\n const selected = parseBusinessDate(value);\n if (!selected) return '';\n return format(selected, locale === 'zh' ? 'yyyy年M月d日' : 'MMM d, yyyy', {\n locale: locale === 'zh' ? zhCN : enUS,\n });\n}\n\nfunction displayDateTime(value: string, locale: 'en' | 'zh'): string {\n const date = displayDate(value, locale);\n if (!date) return '';\n const time = parseTime(value);\n return `${date} ${String(time.hour).padStart(2, '0')}:${String(time.minute).padStart(2, '0')}`;\n}\n\nfunction displayTime(value: string): string {\n if (!value) return '';\n const time = parseTime(value);\n return `${String(time.hour).padStart(2, '0')}:${String(time.minute).padStart(2, '0')}`;\n}\n\nfunction useTemporalLanguage(explicitLocale?: string) {\n const { i18n } = useTranslation();\n return normalizeLocale(explicitLocale || i18n.resolvedLanguage || i18n.language);\n}\n\nfunction ClearButton({ label, onClear }: { label: string; onClear: () => void }) {\n return (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n aria-label={label}\n className=\"h-9 w-9 shrink-0 rounded-l-none border-l border-border text-muted-foreground\"\n onClick={onClear}\n >\n <X className=\"h-4 w-4\" aria-hidden=\"true\" />\n </Button>\n );\n}\n\nfunction TriggerValue({ icon, value, placeholder }: { icon: React.ReactNode; value: string; placeholder: string }) {\n return (\n <>\n {icon}\n <span className={cn('min-w-0 flex-1 truncate text-left', !value && 'text-muted-foreground')}>\n {value || placeholder}\n </span>\n </>\n );\n}\n\nfunction RuntimeAppDatePicker({\n id,\n value,\n onChange,\n disabled,\n placeholder,\n className,\n triggerClassName,\n min,\n max,\n locale: explicitLocale,\n labels: labelOverrides,\n clearable = true,\n 'aria-label': ariaLabel,\n popoverLayer = 'aboveModal',\n disabledDays,\n presets = [],\n}: AppDatePickerProps) {\n const locale = useTemporalLanguage(explicitLocale);\n const labels = temporalLabels(locale, labelOverrides);\n const selected = parseBusinessDate(value);\n const minDate = parseBusinessDate(min);\n const maxDate = parseBusinessDate(max);\n const [open, setOpen] = React.useState(false);\n const display = displayDate(value, locale);\n\n return (\n <div className={cn('flex min-w-0 items-stretch rounded-md border border-input bg-background shadow-sm focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2', className)}>\n <Popover open={open} onOpenChange={setOpen} modal>\n <PopoverTrigger asChild>\n <Button\n id={id}\n type=\"button\"\n variant=\"ghost\"\n disabled={disabled}\n aria-label={ariaLabel || placeholder || labels.chooseDate}\n className={cn('h-10 min-w-0 flex-1 justify-start gap-2 rounded-r-none px-3 font-normal hover:bg-accent/60', triggerClassName)}\n >\n <TriggerValue icon={<CalendarDays className=\"h-4 w-4 shrink-0\" aria-hidden=\"true\" />} value={display} placeholder={placeholder || labels.chooseDate} />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className={cn('w-auto max-w-[calc(100vw-1.5rem)] p-0', popoverLayer === 'aboveModal' ? Z_INDEX_CLASSES.DATE_PICKER_POPOVER : Z_INDEX_CLASSES.POPOVER)}\n >\n <Calendar\n mode=\"single\"\n selected={selected}\n defaultMonth={selected || minDate || new Date()}\n onSelect={(date) => {\n if (!date) return;\n onChange(formatBusinessDateValue(date));\n setOpen(false);\n }}\n disabled={[{ before: minDate || new Date(100, 0, 1), after: maxDate || new Date(9999, 11, 31) }, ...(Array.isArray(disabledDays) ? disabledDays : disabledDays ? [disabledDays] : [])]}\n locale={locale === 'zh' ? zhCN : enUS}\n captionLayout=\"dropdown-buttons\"\n fromDate={minDate || new Date(1900, 0, 1)}\n toDate={maxDate || new Date(new Date().getFullYear() + 20, 11, 31)}\n initialFocus\n />\n {presets.length > 0 ? <div className=\"flex flex-wrap gap-1 border-t border-border px-3 py-2\">{presets.map((preset) => <Button key={`${preset.label}-${preset.value}`} type=\"button\" variant=\"ghost\" size=\"sm\" onClick={() => { onChange(preset.value); setOpen(false); }}>{preset.label}</Button>)}</div> : null}\n <div className=\"flex items-center justify-between border-t border-border px-3 py-2\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => {\n const today = formatBusinessDateValue(new Date());\n const beforeMin = minDate && new Date(today) < minDate;\n const afterMax = maxDate && new Date(today) > maxDate;\n if (!beforeMin && !afterMax) onChange(today);\n setOpen(false);\n }}\n >\n {labels.today}\n </Button>\n {clearable && value ? <Button type=\"button\" variant=\"ghost\" size=\"sm\" onClick={() => { onChange(''); setOpen(false); }}>{labels.clear}</Button> : null}\n </div>\n </PopoverContent>\n </Popover>\n {clearable && value && !disabled ? <ClearButton label={labels.clear} onClear={() => onChange('')} /> : null}\n </div>\n );\n}\n\nexport function AppDatePicker(props: AppDatePickerProps) {\n if (IS_TEST) {\n return <input id={props.id} type=\"date\" value={props.value} onChange={(event) => props.onChange(event.currentTarget.value)} disabled={props.disabled} min={props.min} max={props.max} aria-label={props['aria-label'] || props.placeholder} className={props.className} />;\n }\n return <RuntimeAppDatePicker {...props} />;\n}\n\nfunction RuntimeAppDateRangePicker({\n id, value, onChange, disabled, placeholder, className, triggerClassName, min, max,\n locale: explicitLocale, labels: labelOverrides, clearable = true, 'aria-label': ariaLabel,\n popoverLayer = 'aboveModal', disabledDays, presets = [],\n}: AppDateRangePickerProps) {\n const locale = useTemporalLanguage(explicitLocale);\n const labels = temporalLabels(locale, labelOverrides);\n const minDate = parseBusinessDate(min);\n const maxDate = parseBusinessDate(max);\n const selected: DateRange = { from: parseBusinessDate(value.from), to: parseBusinessDate(value.to) };\n const [open, setOpen] = React.useState(false);\n const display = value.from ? `${displayDate(value.from, locale)}${value.to ? ` – ${displayDate(value.to, locale)}` : ''}` : '';\n return <div className={cn('flex min-w-0 items-stretch rounded-md border border-input bg-background shadow-sm focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2', className)}><Popover open={open} onOpenChange={setOpen} modal><PopoverTrigger asChild><Button id={id} type=\"button\" variant=\"ghost\" disabled={disabled} aria-label={ariaLabel || placeholder || labels.chooseDate} className={cn('h-10 min-w-0 flex-1 justify-start gap-2 rounded-r-none px-3 font-normal', triggerClassName)}><TriggerValue icon={<CalendarDays className=\"h-4 w-4 shrink-0\" aria-hidden />} value={display} placeholder={placeholder || labels.chooseDate} /></Button></PopoverTrigger><PopoverContent align=\"start\" className={cn('w-auto max-w-[calc(100vw-1.5rem)] p-0', popoverLayer === 'aboveModal' ? Z_INDEX_CLASSES.DATE_PICKER_POPOVER : Z_INDEX_CLASSES.POPOVER)}><Calendar mode=\"range\" selected={selected} onSelect={(range) => onChange({ from: range?.from ? formatBusinessDateValue(range.from) : '', to: range?.to ? formatBusinessDateValue(range.to) : '' })} numberOfMonths={2} disabled={[{ before: minDate || new Date(100, 0, 1), after: maxDate || new Date(9999, 11, 31) }, ...(Array.isArray(disabledDays) ? disabledDays : disabledDays ? [disabledDays] : [])]} locale={locale === 'zh' ? zhCN : enUS} captionLayout=\"dropdown-buttons\" fromDate={minDate || new Date(1900, 0, 1)} toDate={maxDate || new Date(new Date().getFullYear() + 20, 11, 31)} initialFocus />{presets.length > 0 ? <div className=\"flex flex-wrap gap-1 border-t border-border px-3 py-2\">{presets.map((preset) => <Button key={preset.label} type=\"button\" variant=\"ghost\" size=\"sm\" onClick={() => { onChange(preset.value); setOpen(false); }}>{preset.label}</Button>)}</div> : null}<div className=\"flex justify-end border-t border-border px-3 py-2\">{clearable && value.from ? <Button type=\"button\" variant=\"ghost\" size=\"sm\" onClick={() => onChange({ from: '', to: '' })}>{labels.clear}</Button> : null}</div></PopoverContent></Popover>{clearable && value.from && !disabled ? <ClearButton label={labels.clear} onClear={() => onChange({ from: '', to: '' })} /> : null}</div>;\n}\n\nexport function AppDateRangePicker(props: AppDateRangePickerProps) {\n if (IS_TEST) {\n return <div className={props.className}><input id={props.id} type=\"date\" value={props.value.from} onChange={(event) => props.onChange({ ...props.value, from: event.currentTarget.value })} disabled={props.disabled} min={props.min} max={props.max} aria-label={props['aria-label'] || props.placeholder} /><input type=\"date\" value={props.value.to} onChange={(event) => props.onChange({ ...props.value, to: event.currentTarget.value })} disabled={props.disabled} min={props.min} max={props.max} aria-label={`${props['aria-label'] || props.placeholder || 'Date'} end`} /></div>;\n }\n return <RuntimeAppDateRangePicker {...props} />;\n}\n\nfunction TimeChoiceGrid({\n hour,\n minute,\n minuteStep,\n labels,\n onHour,\n onMinute,\n}: {\n hour: number;\n minute: number;\n minuteStep: number;\n labels: AppTemporalLabels;\n onHour: (value: number) => void;\n onMinute: (value: number) => void;\n}) {\n const minutes = Array.from({ length: Math.ceil(60 / minuteStep) }, (_, index) => Math.min(59, index * minuteStep));\n return (\n <div className=\"grid grid-cols-2 gap-3 border-t border-border p-3\">\n <fieldset>\n <legend className=\"mb-2 text-xs font-medium text-muted-foreground\">{labels.hour}</legend>\n <div className=\"grid max-h-36 grid-cols-4 gap-1 overflow-y-auto pr-1\">\n {Array.from({ length: 24 }, (_, value) => (\n <Button key={value} type=\"button\" size=\"sm\" variant={hour === value ? 'default' : 'ghost'} className=\"h-8 px-1 tabular-nums\" onClick={() => onHour(value)}>\n {String(value).padStart(2, '0')}\n </Button>\n ))}\n </div>\n </fieldset>\n <fieldset>\n <legend className=\"mb-2 text-xs font-medium text-muted-foreground\">{labels.minute}</legend>\n <div className=\"grid max-h-36 grid-cols-3 gap-1 overflow-y-auto pr-1\">\n {minutes.map((value) => (\n <Button key={value} type=\"button\" size=\"sm\" variant={minute === value ? 'default' : 'ghost'} className=\"h-8 px-1 tabular-nums\" onClick={() => onMinute(value)}>\n {String(value).padStart(2, '0')}\n </Button>\n ))}\n </div>\n </fieldset>\n </div>\n );\n}\n\nfunction RuntimeAppDateTimePicker({\n id,\n value,\n onChange,\n disabled,\n placeholder,\n className,\n triggerClassName,\n min,\n max,\n locale: explicitLocale,\n labels: labelOverrides,\n clearable = true,\n minuteStep = 5,\n 'aria-label': ariaLabel,\n popoverLayer = 'aboveModal',\n}: AppDateTimePickerProps) {\n const locale = useTemporalLanguage(explicitLocale);\n const labels = temporalLabels(locale, labelOverrides);\n const selected = parseBusinessDate(value);\n const minDate = parseBusinessDate(min);\n const maxDate = parseBusinessDate(max);\n const initialTime = parseTime(value);\n const [open, setOpen] = React.useState(false);\n const [draftDate, setDraftDate] = React.useState<Date>(selected || new Date());\n const [hour, setHour] = React.useState(initialTime.hour);\n const [minute, setMinute] = React.useState(initialTime.minute);\n\n React.useEffect(() => {\n if (!open) return;\n setDraftDate(selected || new Date());\n const next = parseTime(value);\n setHour(next.hour);\n setMinute(next.minute);\n }, [open, selected?.getTime(), value]);\n\n const apply = () => {\n onChange(`${formatBusinessDateValue(draftDate)}T${String(hour).padStart(2, '0')}:${String(minute).padStart(2, '0')}`);\n setOpen(false);\n };\n\n return (\n <div className={cn('flex min-w-0 items-stretch rounded-md border border-input bg-background shadow-sm focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2', className)}>\n <Popover open={open} onOpenChange={setOpen} modal>\n <PopoverTrigger asChild>\n <Button id={id} type=\"button\" variant=\"ghost\" disabled={disabled} aria-label={ariaLabel || placeholder || labels.chooseDateTime} className={cn('h-10 min-w-0 flex-1 justify-start gap-2 rounded-r-none px-3 font-normal hover:bg-accent/60', triggerClassName)}>\n <TriggerValue icon={<CalendarDays className=\"h-4 w-4 shrink-0\" aria-hidden=\"true\" />} value={displayDateTime(value, locale)} placeholder={placeholder || labels.chooseDateTime} />\n </Button>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className={cn('w-auto max-w-[calc(100vw-1.5rem)] p-0', popoverLayer === 'aboveModal' ? Z_INDEX_CLASSES.DATE_PICKER_POPOVER : Z_INDEX_CLASSES.POPOVER)}>\n <Calendar mode=\"single\" selected={draftDate} onSelect={(date) => date && setDraftDate(date)} disabled={{ before: minDate || new Date(100, 0, 1), after: maxDate || new Date(9999, 11, 31) }} locale={locale === 'zh' ? zhCN : enUS} initialFocus />\n <TimeChoiceGrid hour={hour} minute={minute} minuteStep={Math.max(1, Math.min(30, minuteStep))} labels={labels} onHour={setHour} onMinute={setMinute} />\n <div className=\"flex items-center justify-between border-t border-border px-3 py-2\">\n {clearable && value ? <Button type=\"button\" variant=\"ghost\" size=\"sm\" onClick={() => { onChange(''); setOpen(false); }}>{labels.clear}</Button> : <span />}\n <Button type=\"button\" size=\"sm\" onClick={apply}>{labels.apply}</Button>\n </div>\n </PopoverContent>\n </Popover>\n {clearable && value && !disabled ? <ClearButton label={labels.clear} onClear={() => onChange('')} /> : null}\n </div>\n );\n}\n\nexport function AppDateTimePicker(props: AppDateTimePickerProps) {\n if (IS_TEST) {\n return <input id={props.id} type=\"datetime-local\" value={props.value} onChange={(event) => props.onChange(event.currentTarget.value)} disabled={props.disabled} min={props.min} max={props.max} aria-label={props['aria-label'] || props.placeholder} className={props.className} />;\n }\n return <RuntimeAppDateTimePicker {...props} />;\n}\n\nfunction RuntimeAppTimePicker({\n id,\n value,\n onChange,\n disabled,\n placeholder,\n className,\n triggerClassName,\n locale: explicitLocale,\n labels: labelOverrides,\n clearable = true,\n minuteStep = 5,\n 'aria-label': ariaLabel,\n popoverLayer = 'aboveModal',\n}: AppTimePickerProps) {\n const locale = useTemporalLanguage(explicitLocale);\n const labels = temporalLabels(locale, labelOverrides);\n const initial = parseTime(value);\n const [open, setOpen] = React.useState(false);\n const [hour, setHour] = React.useState(initial.hour);\n const [minute, setMinute] = React.useState(initial.minute);\n React.useEffect(() => {\n if (!open) return;\n const next = parseTime(value);\n setHour(next.hour);\n setMinute(next.minute);\n }, [open, value]);\n const apply = () => {\n onChange(`${String(hour).padStart(2, '0')}:${String(minute).padStart(2, '0')}`);\n setOpen(false);\n };\n\n return (\n <div className={cn('flex min-w-0 items-stretch rounded-md border border-input bg-background shadow-sm focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2', className)}>\n <Popover open={open} onOpenChange={setOpen} modal>\n <PopoverTrigger asChild>\n <Button id={id} type=\"button\" variant=\"ghost\" disabled={disabled} aria-label={ariaLabel || placeholder || labels.chooseTime} className={cn('h-10 min-w-0 flex-1 justify-start gap-2 rounded-r-none px-3 font-normal hover:bg-accent/60', triggerClassName)}>\n <TriggerValue icon={<Clock3 className=\"h-4 w-4 shrink-0\" aria-hidden=\"true\" />} value={displayTime(value)} placeholder={placeholder || labels.chooseTime} />\n </Button>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className={cn('w-[320px] max-w-[calc(100vw-1.5rem)] p-0', popoverLayer === 'aboveModal' ? Z_INDEX_CLASSES.DATE_PICKER_POPOVER : Z_INDEX_CLASSES.POPOVER)}>\n <TimeChoiceGrid hour={hour} minute={minute} minuteStep={Math.max(1, Math.min(30, minuteStep))} labels={labels} onHour={setHour} onMinute={setMinute} />\n <div className=\"flex items-center justify-between border-t border-border px-3 py-2\">\n {clearable && value ? <Button type=\"button\" variant=\"ghost\" size=\"sm\" onClick={() => { onChange(''); setOpen(false); }}>{labels.clear}</Button> : <span />}\n <Button type=\"button\" size=\"sm\" onClick={apply}>{labels.apply}</Button>\n </div>\n </PopoverContent>\n </Popover>\n {clearable && value && !disabled ? <ClearButton label={labels.clear} onClear={() => onChange('')} /> : null}\n </div>\n );\n}\n\nexport function AppTimePicker(props: AppTimePickerProps) {\n if (IS_TEST) {\n return <input id={props.id} type=\"time\" value={props.value} onChange={(event) => props.onChange(event.currentTarget.value)} disabled={props.disabled} aria-label={props['aria-label'] || props.placeholder} className={props.className} />;\n }\n return <RuntimeAppTimePicker {...props} />;\n}\n","import * as React from \"react\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n","import * as React from 'react';\nimport { Input } from '../../ui/input';\nimport {\n AppDatePicker,\n AppDateTimePicker,\n AppTimePicker,\n type AppTemporalLabels,\n type AppDatePickerPopoverLayer,\n} from './AppDatePicker';\n\nconst IS_TEST = typeof process !== 'undefined' && process.env.NODE_ENV === 'test';\n\nexport type TemporalInputType = 'date' | 'datetime-local' | 'time';\n\nexport interface AppTemporalInputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'defaultValue' | 'onChange' | 'type' | 'min' | 'max'> {\n type?: React.HTMLInputTypeAttribute;\n value?: string | number | readonly string[];\n defaultValue?: string | number | readonly string[];\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n onValueChange?: (value: string) => void;\n min?: string | number;\n max?: string | number;\n locale?: string;\n labels?: Partial<AppTemporalLabels>;\n clearable?: boolean;\n minuteStep?: number;\n popoverLayer?: AppDatePickerPopoverLayer;\n}\n\nexport function isTemporalInputType(type?: React.HTMLInputTypeAttribute): type is TemporalInputType {\n return type === 'date' || type === 'datetime-local' || type === 'time';\n}\n\nexport const AppTemporalInput = React.forwardRef<HTMLInputElement, AppTemporalInputProps>(function AppTemporalInput(\n {\n type = 'text',\n value,\n defaultValue,\n onChange,\n onValueChange,\n min,\n max,\n locale,\n labels,\n clearable,\n minuteStep,\n popoverLayer,\n className,\n id,\n disabled,\n placeholder,\n 'aria-label': ariaLabel,\n name,\n ...inputProps\n },\n ref,\n) {\n if (IS_TEST) {\n return <input {...inputProps} ref={ref} id={id} name={name} type={type} value={value} defaultValue={defaultValue} onChange={onChange} min={min} max={max} disabled={disabled} placeholder={placeholder} aria-label={ariaLabel} className={className} />;\n }\n if (!isTemporalInputType(type)) {\n return (\n <Input\n {...inputProps}\n ref={ref}\n id={id}\n name={name}\n type={type}\n value={value}\n defaultValue={defaultValue}\n onChange={onChange}\n min={min}\n max={max}\n disabled={disabled}\n placeholder={placeholder}\n aria-label={ariaLabel}\n className={className}\n />\n );\n }\n\n const currentValue = String(value ?? defaultValue ?? '');\n const emit = (nextValue: string) => {\n onValueChange?.(nextValue);\n if (onChange) {\n const target = { value: nextValue, name: name || '', type } as HTMLInputElement;\n onChange({ target, currentTarget: target } as React.ChangeEvent<HTMLInputElement>);\n }\n };\n const common = {\n id,\n value: currentValue,\n onChange: emit,\n disabled,\n placeholder,\n className,\n min: min == null ? undefined : String(min),\n max: max == null ? undefined : String(max),\n locale,\n labels,\n clearable,\n popoverLayer,\n 'aria-label': ariaLabel,\n };\n\n if (type === 'datetime-local') return <AppDateTimePicker {...common} minuteStep={minuteStep} />;\n if (type === 'time') {\n const { min: _min, max: _max, ...timeProps } = common;\n return <AppTimePicker {...timeProps} minuteStep={minuteStep} />;\n }\n return <AppDatePicker {...common} />;\n});\n","import * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\n\nimport { cn } from '@genispace/geniapp/utils'\nimport { Z_INDEX_CLASSES } from '../../styles/z-index-layers'\n\nfunction Select({\n onValueChange,\n ...props\n}: React.ComponentPropsWithoutRef<typeof SelectPrimitive.Root>) {\n return (\n <SelectPrimitive.Root\n {...props}\n onValueChange={\n onValueChange\n ? (value) => {\n React.startTransition(() => {\n onValueChange(value)\n })\n }\n : undefined\n }\n />\n )\n}\nSelect.displayName = SelectPrimitive.Root.displayName\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n))\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n))\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n))\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n `relative ${Z_INDEX_CLASSES.OVERLAY_POPOVER} max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden custom-scrollbar rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]`,\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n onCloseAutoFocus={(e) => {\n e.preventDefault();\n }}\n onEscapeKeyDown={(e) => {\n e.stopPropagation();\n }}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n))\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", className)}\n {...props}\n />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n","import {\n Children,\n isValidElement,\n type ChangeEvent,\n type ReactElement,\n type ReactNode,\n type SelectHTMLAttributes,\n} from 'react';\nimport { cn } from '@genispace/geniapp/utils';\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectTrigger,\n SelectValue,\n} from '../../ui/select';\n\nconst EMPTY_VALUE = '__genispace_empty_selection__';\nconst IS_TEST = typeof process !== 'undefined' && process.env.NODE_ENV === 'test';\n\ntype NativeOptionProps = { value?: string | number; disabled?: boolean; children?: ReactNode; label?: string };\ntype NativeGroupProps = { label?: string; children?: ReactNode };\n\nfunction optionValue(option: ReactElement<NativeOptionProps>) {\n const raw = option.props.value ?? option.key ?? '';\n return String(raw) || EMPTY_VALUE;\n}\n\nfunction optionText(children: ReactNode) {\n return Children.toArray(children).join('');\n}\n\nfunction renderOptions(children: ReactNode): ReactNode[] {\n const rendered: ReactNode[] = [];\n Children.toArray(children).forEach((child, index) => {\n if (!isValidElement(child)) return;\n if (child.type === 'option') {\n const option = child as ReactElement<NativeOptionProps>;\n rendered.push(\n <SelectItem key={child.key ?? `${optionValue(option)}-${index}`} value={optionValue(option)} disabled={option.props.disabled}>\n {option.props.label || option.props.children}\n </SelectItem>,\n );\n return;\n }\n if (child.type === 'optgroup') {\n const group = child as ReactElement<NativeGroupProps>;\n rendered.push(\n <SelectGroup key={child.key ?? `group-${index}`}>\n {group.props.label ? <SelectLabel>{group.props.label}</SelectLabel> : null}\n {renderOptions(group.props.children)}\n </SelectGroup>,\n );\n return;\n }\n rendered.push(...renderOptions((child.props as { children?: ReactNode }).children));\n });\n return rendered;\n}\n\nfunction selectedLabel(children: ReactNode, value: string): string | undefined {\n let match: string | undefined;\n Children.forEach(children, (child) => {\n if (!isValidElement(child) || match) return;\n if (child.type === 'option') {\n const option = child as ReactElement<NativeOptionProps>;\n if (optionValue(option) === (value || EMPTY_VALUE)) match = option.props.label || optionText(option.props.children);\n return;\n }\n match = selectedLabel((child.props as { children?: ReactNode }).children, value);\n });\n return match;\n}\n\nexport type AppSelectInputProps = Omit<SelectHTMLAttributes<HTMLSelectElement>, 'onChange' | 'size'> & {\n onChange?: (event: ChangeEvent<HTMLSelectElement>) => void;\n children?: ReactNode;\n placeholder?: string;\n contentClassName?: string;\n};\n\nfunction singleValue(value: string | number | readonly string[] | undefined) {\n return Array.isArray(value) ? value[0] : value;\n}\n\n/** Input-compatible adapter for the platform Select. */\nexport function AppSelectInput({\n value,\n defaultValue,\n onChange,\n children,\n className,\n contentClassName,\n disabled,\n required,\n name,\n id,\n placeholder,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n}: AppSelectInputProps) {\n if (IS_TEST) {\n return (\n <select\n id={id}\n name={name}\n value={value}\n defaultValue={defaultValue}\n onChange={onChange}\n disabled={disabled}\n required={required}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n className={className}\n >\n {children}\n </select>\n );\n }\n const normalizedValue = singleValue(value);\n const normalizedDefault = singleValue(defaultValue);\n const controlledValue = normalizedValue == null ? undefined : String(normalizedValue) || EMPTY_VALUE;\n const initialValue = normalizedDefault == null ? undefined : String(normalizedDefault) || EMPTY_VALUE;\n const display = selectedLabel(children, controlledValue ?? initialValue ?? '');\n return (\n <Select\n value={controlledValue}\n defaultValue={initialValue}\n disabled={disabled}\n required={required}\n name={name}\n onValueChange={(nextValue) => {\n const next = nextValue === EMPTY_VALUE ? '' : nextValue;\n onChange?.({ target: { value: next, name: name || '' }, currentTarget: { value: next, name: name || '' } } as ChangeEvent<HTMLSelectElement>);\n }}\n >\n <SelectTrigger id={id} aria-label={ariaLabel} aria-describedby={ariaDescribedBy} className={cn('min-h-10', className)}>\n <SelectValue placeholder={placeholder || display}>{display}</SelectValue>\n </SelectTrigger>\n <SelectContent className={contentClassName}>{renderOptions(children)}</SelectContent>\n </Select>\n );\n}\n","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-neutral-300 dark:border-neutral-700 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <Check className=\"h-3.5 w-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox } ","import type { ChangeEvent, InputHTMLAttributes } from 'react';\nimport { Checkbox } from '../../ui/checkbox';\n\nconst IS_TEST = typeof process !== 'undefined' && process.env.NODE_ENV === 'test';\n\nexport type AppCheckboxInputProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'checked' | 'defaultChecked' | 'onChange' | 'type'> & {\n checked?: boolean;\n defaultChecked?: boolean;\n onChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n};\n\n/** Input-compatible adapter for the platform Checkbox. */\nexport function AppCheckboxInput({ checked, defaultChecked, onChange, className, disabled, required, name, value, id, 'aria-label': ariaLabel, 'aria-describedby': ariaDescribedBy }: AppCheckboxInputProps) {\n if (IS_TEST) {\n return <input id={id} type=\"checkbox\" checked={checked} defaultChecked={defaultChecked} onChange={onChange} className={className} disabled={disabled} required={required} name={name} value={value} aria-label={ariaLabel} aria-describedby={ariaDescribedBy} />;\n }\n return (\n <Checkbox\n id={id}\n checked={checked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n required={required}\n name={name}\n value={value}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n className={className}\n onCheckedChange={(nextChecked) => {\n const next = nextChecked === true;\n onChange?.({ target: { checked: next, name: name || '', value: String(value ?? 'on') }, currentTarget: { checked: next, name: name || '', value: String(value ?? 'on') } } as ChangeEvent<HTMLInputElement>);\n }}\n />\n );\n}\n","import * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n))\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\n className\n )}\n {...props}\n />\n))\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n\nexport { Avatar, AvatarImage, AvatarFallback }\n","import { cn } from '@genispace/geniapp/utils';\nimport { Avatar, AvatarFallback, AvatarImage } from '../../ui/avatar';\n\nconst CJK_UNIFIED_RE = /[\\u4e00-\\u9fff]/;\n\nexport function userInitials(name: string, email?: string): string {\n const n = (name || '').trim();\n const e = (email || '').trim();\n const primary = n || e;\n if (!primary) return '?';\n\n const cjkSource =\n n && CJK_UNIFIED_RE.test(n) ? n : e && CJK_UNIFIED_RE.test(e) ? e : '';\n if (cjkSource) {\n return Array.from(cjkSource.trim()).slice(0, 2).join('');\n }\n\n const parts = primary.split(/\\s+/).filter(Boolean);\n if (parts.length >= 2) {\n return (parts[0].slice(0, 1) + parts[1].slice(0, 1)).toUpperCase();\n }\n return primary.slice(0, 2).toUpperCase();\n}\n\nexport function resolveAvatarUrl(u: { avatarUrl?: string | null; avatar?: string | null }): string | null {\n const v = u.avatarUrl ?? u.avatar;\n if (v == null) return null;\n const s = String(v).trim();\n return s || null;\n}\n\nexport type UserAvatarVariant = 'default' | 'chatUser';\n\nexport interface UserAvatarProps {\n name: string;\n email?: string;\n avatarUrl?: string | null;\n /** Tailwind size classes, e.g. size-5, size-6, size-20 */\n sizeClassName?: string;\n className?: string;\n variant?: UserAvatarVariant;\n\n shape?: 'circle' | 'rounded';\n}\n\nexport function UserAvatar({\n name,\n email,\n avatarUrl,\n sizeClassName = 'size-6',\n className,\n variant = 'default',\n shape = 'circle',\n}: UserAvatarProps) {\n const url = avatarUrl != null ? String(avatarUrl).trim() : '';\n const hasUrl = Boolean(url);\n const round = shape === 'rounded' ? 'rounded-lg' : 'rounded-full';\n\n return (\n <Avatar\n className={cn(\n 'shrink-0 overflow-hidden',\n round,\n variant === 'default' && 'border border-border/50',\n variant === 'chatUser' &&\n 'ring-1 ring-border/50 bg-gradient-to-br from-blue-500 to-indigo-500 text-white font-semibold',\n sizeClassName,\n className,\n )}\n >\n {hasUrl ? (\n <AvatarImage src={url} alt=\"\" className=\"object-cover\" />\n ) : null}\n <AvatarFallback\n className={cn(\n round,\n 'text-xs font-medium',\n variant === 'default' && 'bg-accent/10',\n variant === 'chatUser' && 'bg-transparent text-white font-semibold',\n )}\n >\n {userInitials(name, email)}\n </AvatarFallback>\n </Avatar>\n );\n}\n","import { formatUserLabel } from '@genispace/geniapp/utils';\nimport { UserAvatar } from './UserAvatar';\nimport type { PublicUserProfile } from './userDirectoryTypes';\n\nexport type UserDisplayProps = {\n userId?: string | null;\n profile?: PublicUserProfile | null;\n showAvatar?: boolean;\n className?: string;\n emptyLabel?: string;\n};\n\nexport function UserDisplay({\n userId,\n profile,\n showAvatar = false,\n className = '',\n emptyLabel = '—',\n}: UserDisplayProps) {\n const label = formatUserLabel(profile, userId, emptyLabel);\n if (!showAvatar) {\n return (\n <span className={className} title={userId || undefined}>\n {label}\n </span>\n );\n }\n return (\n <span className={`inline-flex items-center gap-2 ${className}`.trim()}>\n <UserAvatar\n name={profile?.name || label}\n email={profile?.email}\n avatarUrl={profile?.avatarUrl}\n sizeClassName=\"size-6\"\n />\n <span title={userId || undefined}>{label}</span>\n </span>\n );\n}\n","import type { PublicUserProfile } from './userDirectoryTypes';\nimport { formatUserLabel } from '@genispace/geniapp/utils';\n\nexport type UserSelectProps = {\n value: string;\n onChange: (userId: string) => void;\n members: PublicUserProfile[];\n allowEmpty?: boolean;\n emptyLabel?: string;\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n id?: string;\n};\n\nconst defaultSelectClass =\n 'w-full rounded-lg border border-neutral-200 bg-white px-3 py-2 text-sm text-neutral-900 shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500/40 dark:border-neutral-600 dark:bg-neutral-950 dark:text-neutral-50 disabled:cursor-not-allowed disabled:opacity-50';\n\nexport function UserSelect({\n value,\n onChange,\n members,\n allowEmpty = true,\n emptyLabel = '—',\n placeholder,\n disabled = false,\n className,\n id,\n}: UserSelectProps) {\n return (\n <select\n id={id}\n className={className ?? defaultSelectClass}\n value={value}\n disabled={disabled}\n onChange={(e) => onChange(e.target.value)}\n >\n {allowEmpty ? (\n <option value=\"\">{placeholder ?? emptyLabel}</option>\n ) : null}\n {members.map((m) => (\n <option key={m.id} value={m.id}>\n {formatUserLabel(m)}\n </option>\n ))}\n </select>\n );\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { PublicUserProfile, UserDirectoryClient } from './userDirectoryTypes';\n\nexport type UseUserDirectoryOptions = {\n memberStatus?: string;\n};\n\nexport type UseUserDirectoryResult = {\n loading: boolean;\n error: string | null;\n members: PublicUserProfile[];\n getProfile: (userId: string | null | undefined) => PublicUserProfile | undefined;\n resolveMany: (userIds: string[]) => Promise<void>;\n};\n\nexport function useUserDirectory(\n client: UserDirectoryClient | null | undefined,\n options?: UseUserDirectoryOptions\n): UseUserDirectoryResult {\n const memberStatus = options?.memberStatus ?? 'ACTIVE';\n const [members, setMembers] = useState<PublicUserProfile[]>([]);\n const [loading, setLoading] = useState(Boolean(client));\n const [error, setError] = useState<string | null>(null);\n const cacheRef = useRef<Map<string, PublicUserProfile>>(new Map());\n\n useEffect(() => {\n if (!client) {\n setLoading(false);\n return;\n }\n let cancelled = false;\n setLoading(true);\n setError(null);\n cacheRef.current.clear();\n client.spaces\n .listMemberProfiles({ status: memberStatus })\n .then((list) => {\n if (cancelled) return;\n setMembers(list);\n const map = cacheRef.current;\n for (const p of list) {\n map.set(p.id, p);\n }\n })\n .catch((e: unknown) => {\n if (cancelled) return;\n setError(e instanceof Error ? e.message : 'Failed to load team members');\n })\n .finally(() => {\n if (!cancelled) setLoading(false);\n });\n return () => {\n cancelled = true;\n };\n }, [client, memberStatus]);\n\n const getProfile = useCallback((userId: string | null | undefined) => {\n if (!userId) return undefined;\n return cacheRef.current.get(userId);\n }, []);\n\n const resolveMany = useCallback(\n async (userIds: string[]) => {\n if (!client) return;\n const missing = [...new Set(userIds.filter((id) => id && !cacheRef.current.has(id)))];\n if (!missing.length) return;\n try {\n const profiles = await client.users.getPublicProfiles(missing);\n for (const p of profiles) {\n cacheRef.current.set(p.id, p);\n }\n setMembers((prev) => {\n const byId = new Map(prev.map((m) => [m.id, m]));\n for (const p of profiles) {\n byId.set(p.id, p);\n }\n return [...byId.values()];\n });\n } catch {\n /* keep cached labels only */\n }\n },\n [client]\n );\n\n return useMemo(\n () => ({\n loading,\n error,\n members,\n getProfile,\n resolveMany,\n }),\n [loading, error, members, getProfile, resolveMany]\n );\n}\n"],"names":["Skeleton","className","props","jsx","cn","TabsBarSkeleton","count","variant","_","index","FormFieldSkeleton","labelWidth","inputHeight","FormCardSkeleton","titleWidth","fieldCount","showTextarea","ConfigEditorSkeleton","tabCount","jsxs","PageHeaderSkeleton","showBack","showActions","DetailTabsSkeleton","showHeader","TablePageSkeleton","rowCount","columnCount","showSearch","showFilters","rowIndex","colIndex","columnClass","GridCardsSkeleton","columns","SplitPaneSkeleton","StatsRowSkeleton","FormPageSkeleton","showSecondCard","Z_INDEX_CLASSES","PageLoadingSkeleton","preset","QueryErrorAlert","message","onRetry","retryLabel","AppPageStates","loading","error","loadingFallback","children","PanelHeader","meta","MetricPlaceholder","QueuePlaceholder","width","row","ReasonsPlaceholder","ChartPlaceholder","height","HealthPlaceholder","AppDashboardSkeleton","Dialog","DialogPrimitive","DialogTrigger","DialogPortal","DialogClose","DialogOverlay","React","ref","DialogContent","nested","showCloseButton","closeLabel","zIndexClass","X","DialogHeader","DialogFooter","DialogTitle","DialogDescription","Sheet","SheetPrimitive","SheetTrigger","SheetClose","SheetPortal","SheetOverlay","sheetVariants","cva","SheetContent","side","e","target","SheetHeader","SheetFooter","SheetTitle","SheetDescription","SIZE_CLASS","IS_TEST","AppModal","open","onClose","title","description","footer","size","contentClassName","bodyClassName","closeOnOutside","isChinese","nextOpen","event","AppHelpSheet","bodyScrollLockCount","snapshot","applyScrollLock","html","releaseScrollLock","useLockBodyScroll","lock","useEffect","MODAL_DIMENSIONS","MODAL_SIZES","ModalContainer","isOpen","closeOnOverlayClick","usePortal","handleKeyDown","handleOverlayClick","sizeDims","modalContent","createPortal","buttonVariants","Button","asChild","Slot","BaseModal","FormModal","onSubmit","onCancel","submitText","cancelText","submitDisabled","submitLoading","showFooter","customFooter","baseProps","ConfirmModal","onConfirm","confirmText","danger","ListModal","searchable","searchPlaceholder","onSearch","emptyMessage","searchTerm","setSearchTerm","value","AppConfirmDialog","confirmLabel","cancelLabel","Calendar","classNames","showOutsideDays","components","DayPicker","ChevronLeft","ChevronRight","usePopoverBackgroundColor","backgroundColor","setBackgroundColor","updateBackgroundColor","root","popoverValue","isDark","observer","Popover","PopoverPrimitive","PopoverTrigger","PopoverAnchor","PopoverContent","align","sideOffset","style","DEFAULT_LABELS","normalizeLocale","locale","temporalLabels","overrides","parseBusinessDate","dateOnly","date","formatBusinessDateValue","parseTime","match","hour","minute","displayDate","selected","format","zhCN","enUS","displayDateTime","time","displayTime","useTemporalLanguage","explicitLocale","i18n","useTranslation","ClearButton","label","onClear","TriggerValue","icon","placeholder","Fragment","RuntimeAppDatePicker","id","onChange","disabled","triggerClassName","min","max","labelOverrides","clearable","ariaLabel","popoverLayer","disabledDays","presets","labels","minDate","maxDate","setOpen","display","CalendarDays","today","beforeMin","afterMax","AppDatePicker","RuntimeAppDateRangePicker","range","AppDateRangePicker","TimeChoiceGrid","minuteStep","onHour","onMinute","minutes","RuntimeAppDateTimePicker","initialTime","draftDate","setDraftDate","setHour","setMinute","next","apply","AppDateTimePicker","RuntimeAppTimePicker","initial","Clock3","AppTimePicker","Input","type","isTemporalInputType","AppTemporalInput","defaultValue","onValueChange","name","inputProps","currentValue","common","nextValue","_min","_max","timeProps","Select","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","SelectLabel","SelectItem","Check","SelectSeparator","EMPTY_VALUE","optionValue","option","raw","optionText","Children","renderOptions","rendered","child","isValidElement","group","selectedLabel","singleValue","AppSelectInput","required","ariaDescribedBy","normalizedValue","normalizedDefault","controlledValue","initialValue","Checkbox","CheckboxPrimitive","AppCheckboxInput","checked","defaultChecked","nextChecked","Avatar","AvatarPrimitive","AvatarImage","AvatarFallback","CJK_UNIFIED_RE","userInitials","email","n","primary","cjkSource","parts","UserAvatar","avatarUrl","sizeClassName","shape","url","hasUrl","round","UserDisplay","userId","profile","showAvatar","emptyLabel","formatUserLabel","defaultSelectClass","UserSelect","members","allowEmpty","m","useUserDirectory","client","options","memberStatus","setMembers","useState","setLoading","setError","cacheRef","useRef","cancelled","list","map","p","getProfile","useCallback","resolveMany","userIds","missing","profiles","prev","byId","useMemo"],"mappings":"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"}
package/dist/vite.d.ts CHANGED
@@ -19,4 +19,4 @@ export declare const geniappOptimizeDeps: {
19
19
  exclude: string[];
20
20
  };
21
21
  /** Stable chunk grouping without repository-path aliases. */
22
- export declare function geniappManualChunks(id: string): "react-runtime" | "localization" | "icons" | "genispace-runtime" | undefined;
22
+ export declare function geniappManualChunks(id: string): "react-runtime" | "localization" | "icons" | "genispace-runtime";