@genispace/geniapp 0.2.0 → 0.4.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 (672) hide show
  1. package/README.md +44 -3
  2. package/dist/{CrossAppRecordPicker-CQVmirWD.js → CrossAppRecordPicker-BRpqAjd7.js} +189 -253
  3. package/dist/CrossAppRecordPicker-BRpqAjd7.js.map +1 -0
  4. package/dist/Grid24EditableCanvas-C5xiiXdZ.js +7 -0
  5. package/dist/Grid24EditableCanvas-C5xiiXdZ.js.map +1 -0
  6. package/dist/MobileFlowCanvas-DctpXMPy.js +7 -0
  7. package/dist/MobileFlowCanvas-DctpXMPy.js.map +1 -0
  8. package/dist/MultiPageRenderer-D7rlHY8l.js +537 -0
  9. package/dist/MultiPageRenderer-D7rlHY8l.js.map +1 -0
  10. package/dist/Sidebar-DdSOXqnC.js +260 -0
  11. package/dist/Sidebar-DdSOXqnC.js.map +1 -0
  12. package/dist/ai/adopt/AiSuggestionPanel.d.ts +1 -1
  13. package/dist/ai/components/AgentJobProgress.d.ts +1 -1
  14. package/dist/ai/components/BulkActionBar.d.ts +1 -1
  15. package/dist/ai/integrations/partner/createPartnerRecordPickerHook.d.ts +1 -1
  16. package/dist/case-workspace/domain.d.ts +1 -1
  17. package/dist/components/adapters/host.d.ts +4 -0
  18. package/dist/components/adapters/host.js +12 -0
  19. package/dist/components/adapters/host.js.map +1 -0
  20. package/dist/components/adapters/platform.d.ts +16 -0
  21. package/dist/components/index.d.ts +23 -0
  22. package/dist/components/internal/shared-api/auth/platformRefreshResponse.d.ts +3 -0
  23. package/dist/components/internal/shared-api/auth/setupAuthInterceptors.d.ts +18 -0
  24. package/dist/components/internal/shared-api/auth/tokenStorage.d.ts +4 -0
  25. package/dist/components/internal/shared-api/index.d.ts +4 -0
  26. package/dist/components/internal/shared-types/index.d.ts +1 -0
  27. package/dist/components/internal/shared-types/types/json-schema.d.ts +50 -0
  28. package/dist/components/internal/shared-ui/components/ai/index.d.ts +2 -0
  29. package/dist/components/internal/shared-ui/components/ai/message.d.ts +6 -0
  30. package/dist/components/internal/shared-ui/components/ai/suggestion.d.ts +10 -0
  31. package/dist/components/internal/shared-ui/components/features/agent/AgentIdentity.d.ts +10 -0
  32. package/dist/components/internal/shared-ui/components/features/agent/agentIdentityUtils.d.ts +4 -0
  33. package/dist/components/internal/shared-ui/components/features/agent/index.d.ts +2 -0
  34. package/dist/components/internal/shared-ui/components/features/app/AppCheckboxInput.d.ts +9 -0
  35. package/dist/components/internal/shared-ui/components/features/app/AppConfirmDialog.d.ts +12 -0
  36. package/dist/components/internal/shared-ui/components/features/app/AppDashboardSkeleton.d.ts +9 -0
  37. package/dist/components/internal/shared-ui/components/features/app/AppDatePicker.d.ts +69 -0
  38. package/dist/components/internal/shared-ui/components/features/app/AppModal.d.ts +27 -0
  39. package/dist/components/internal/shared-ui/components/features/app/AppPageStates.d.ts +17 -0
  40. package/dist/components/internal/shared-ui/components/features/app/AppSelectInput.d.ts +10 -0
  41. package/dist/components/internal/shared-ui/components/features/app/AppTemporalInput.d.ts +19 -0
  42. package/dist/components/internal/shared-ui/components/features/app/Page.d.ts +14 -0
  43. package/dist/components/internal/shared-ui/components/features/app/QueryErrorAlert.d.ts +7 -0
  44. package/dist/components/internal/shared-ui/components/features/app/Sidebar.d.ts +47 -0
  45. package/dist/components/internal/shared-ui/components/features/app/index.d.ts +17 -0
  46. package/dist/components/internal/shared-ui/components/features/auth/AuthControlButtons.d.ts +8 -0
  47. package/dist/components/internal/shared-ui/components/features/auth/ForgotPassword.d.ts +9 -0
  48. package/dist/components/internal/shared-ui/components/features/auth/LogoutNotificationPage.d.ts +8 -0
  49. package/dist/components/internal/shared-ui/components/features/auth/Privacy.d.ts +8 -0
  50. package/dist/components/internal/shared-ui/components/features/auth/RequireAuth.d.ts +31 -0
  51. package/dist/components/internal/shared-ui/components/features/auth/Terms.d.ts +8 -0
  52. package/dist/components/internal/shared-ui/components/features/auth/VerifyEmail.d.ts +9 -0
  53. package/dist/components/internal/shared-ui/components/features/auth/application/index.d.ts +1 -0
  54. package/dist/components/internal/shared-ui/components/features/auth/index.d.ts +13 -0
  55. package/dist/components/internal/shared-ui/components/features/avatar/AvatarPickerModal.d.ts +30 -0
  56. package/dist/components/internal/shared-ui/components/features/avatar/generateAvatarUrl.d.ts +9 -0
  57. package/dist/components/internal/shared-ui/components/features/avatar/index.d.ts +2 -0
  58. package/dist/components/internal/shared-ui/components/features/chat/index.d.ts +1 -0
  59. package/dist/components/internal/shared-ui/components/features/data/index.d.ts +1 -0
  60. package/dist/components/internal/shared-ui/components/features/feedback/FeedbackMenu.d.ts +8 -0
  61. package/dist/components/internal/shared-ui/components/features/feedback/index.d.ts +1 -0
  62. package/dist/components/internal/shared-ui/components/features/home/Background.d.ts +4 -0
  63. package/dist/components/internal/shared-ui/components/features/home/index.d.ts +2 -0
  64. package/dist/components/internal/shared-ui/components/features/index.d.ts +22 -0
  65. package/dist/components/internal/shared-ui/components/features/knowledge/EvidenceCitation.d.ts +30 -0
  66. package/dist/components/internal/shared-ui/components/features/knowledge/HighlightedSnippet.d.ts +14 -0
  67. package/dist/components/internal/shared-ui/components/features/knowledge/index.d.ts +2 -0
  68. package/dist/components/internal/shared-ui/components/features/notification/NotificationBell.d.ts +14 -0
  69. package/dist/components/internal/shared-ui/components/features/notification/NotificationList.d.ts +41 -0
  70. package/dist/components/internal/shared-ui/components/features/notification/index.d.ts +2 -0
  71. package/dist/components/internal/shared-ui/components/features/operator/index.d.ts +1 -0
  72. package/dist/components/internal/shared-ui/components/features/rbac/index.d.ts +1 -0
  73. package/dist/components/internal/shared-ui/components/features/rich-text/RichTextField.d.ts +13 -0
  74. package/dist/components/internal/shared-ui/components/features/space/SpaceContext.d.ts +121 -0
  75. package/dist/components/internal/shared-ui/components/features/space/SpaceSwitcher.d.ts +13 -0
  76. package/dist/components/internal/shared-ui/components/features/space/index.d.ts +2 -0
  77. package/dist/components/internal/shared-ui/components/features/subscription/SubscriptionContext.d.ts +26 -0
  78. package/dist/components/internal/shared-ui/components/features/subscription/SubscriptionGuard.d.ts +35 -0
  79. package/dist/components/internal/shared-ui/components/features/subscription/constants.d.ts +126 -0
  80. package/dist/components/internal/shared-ui/components/features/subscription/createSubscriptionService.d.ts +34 -0
  81. package/dist/components/internal/shared-ui/components/features/subscription/index.d.ts +7 -0
  82. package/dist/components/internal/shared-ui/components/features/subscription/types.d.ts +161 -0
  83. package/dist/components/internal/shared-ui/components/features/subscription/useSubscription.d.ts +20 -0
  84. package/dist/components/internal/shared-ui/components/features/subscription/utils.d.ts +18 -0
  85. package/dist/components/internal/shared-ui/components/features/task/index.d.ts +1 -0
  86. package/dist/components/internal/shared-ui/components/features/team/index.d.ts +4 -0
  87. package/dist/components/internal/shared-ui/components/features/user/UserAvatar.d.ts +17 -0
  88. package/dist/components/internal/shared-ui/components/features/user/UserDisplay.d.ts +10 -0
  89. package/dist/components/internal/shared-ui/components/features/user/UserSelect.d.ts +14 -0
  90. package/dist/components/internal/shared-ui/components/features/user/useUserDirectory.d.ts +13 -0
  91. package/dist/components/internal/shared-ui/components/features/user/userDirectoryTypes.d.ts +18 -0
  92. package/dist/components/internal/shared-ui/components/icons/alipay-pay-mark.d.ts +2 -0
  93. package/dist/components/internal/shared-ui/components/icons/bank-transfer-mark.d.ts +2 -0
  94. package/dist/components/internal/shared-ui/components/icons/stripe-payment-mark.d.ts +2 -0
  95. package/dist/components/internal/shared-ui/components/icons/wechat-pay-mark.d.ts +2 -0
  96. package/dist/components/internal/shared-ui/components/index.d.ts +3 -0
  97. package/dist/components/internal/shared-ui/components/patterns/entity-patterns.d.ts +3 -0
  98. package/dist/components/internal/shared-ui/components/patterns/form-section.d.ts +11 -0
  99. package/dist/components/internal/shared-ui/components/patterns/record-list-frame.d.ts +12 -0
  100. package/dist/components/internal/shared-ui/components/patterns/status-stepper.d.ts +13 -0
  101. package/dist/components/internal/shared-ui/components/primitives/data-display/ApiErrorState.d.ts +10 -0
  102. package/dist/components/internal/shared-ui/components/primitives/data-display/FilePreviewDialog.d.ts +18 -0
  103. package/dist/components/internal/shared-ui/components/primitives/data-display/index.d.ts +4 -0
  104. package/dist/components/internal/shared-ui/components/primitives/feedback/index.d.ts +2 -0
  105. package/dist/components/internal/shared-ui/components/primitives/feedback/toaster.d.ts +1 -0
  106. package/dist/components/internal/shared-ui/components/primitives/feedback/use-toast.d.ts +46 -0
  107. package/dist/components/internal/shared-ui/components/primitives/forms/CountryCodeSelect.d.ts +16 -0
  108. package/dist/components/internal/shared-ui/components/primitives/forms/index.d.ts +1 -0
  109. package/dist/components/internal/shared-ui/components/primitives/index.d.ts +5 -0
  110. package/dist/components/internal/shared-ui/components/primitives/layout/AppHeader.d.ts +111 -0
  111. package/dist/components/internal/shared-ui/components/primitives/layout/AppWatermark.d.ts +7 -0
  112. package/dist/components/internal/shared-ui/components/primitives/layout/PublicFooter.d.ts +6 -0
  113. package/dist/components/internal/shared-ui/components/primitives/layout/PublicHeader.d.ts +39 -0
  114. package/dist/components/internal/shared-ui/components/primitives/layout/PublicLayout.d.ts +6 -0
  115. package/dist/components/internal/shared-ui/components/primitives/layout/ThemeToggle.d.ts +33 -0
  116. package/dist/components/internal/shared-ui/components/primitives/layout/WatermarkOverlay.d.ts +9 -0
  117. package/dist/components/internal/shared-ui/components/primitives/layout/brandAssets.d.ts +11 -0
  118. package/dist/components/internal/shared-ui/components/primitives/layout/index.d.ts +6 -0
  119. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/ChartAreaSkeleton.d.ts +13 -0
  120. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/ChartEmptyState.d.ts +14 -0
  121. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/ComponentSkeletonShell.d.ts +16 -0
  122. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/ConfigEditorSkeleton.d.ts +5 -0
  123. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/DetailTabsSkeleton.d.ts +6 -0
  124. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/EmptyStateBadge.d.ts +13 -0
  125. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/FormCardSkeleton.d.ts +7 -0
  126. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/FormFieldSkeleton.d.ts +6 -0
  127. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/FormPageSkeleton.d.ts +6 -0
  128. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/GridCardsSkeleton.d.ts +6 -0
  129. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/ListSkeleton.d.ts +26 -0
  130. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/PageHeaderSkeleton.d.ts +6 -0
  131. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/SplitPaneSkeleton.d.ts +4 -0
  132. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/StatsRowSkeleton.d.ts +5 -0
  133. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/TableEmptyState.d.ts +27 -0
  134. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/TablePageSkeleton.d.ts +8 -0
  135. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/TabsBarSkeleton.d.ts +6 -0
  136. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/index.d.ts +24 -0
  137. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/skeletonMetrics.d.ts +9 -0
  138. package/dist/components/internal/shared-ui/components/primitives/page-skeleton/useVisibleCenter.d.ts +34 -0
  139. package/dist/components/internal/shared-ui/components/ui/accordion.d.ts +7 -0
  140. package/dist/components/internal/shared-ui/components/ui/ai-draft-banner.d.ts +21 -0
  141. package/dist/components/internal/shared-ui/components/ui/alert-dialog.d.ts +48 -0
  142. package/dist/components/internal/shared-ui/components/ui/alert.d.ts +8 -0
  143. package/dist/components/internal/shared-ui/components/ui/avatar.d.ts +6 -0
  144. package/dist/components/internal/shared-ui/components/ui/badge.d.ts +9 -0
  145. package/dist/components/internal/shared-ui/components/ui/breadcrumb.d.ts +19 -0
  146. package/dist/components/internal/shared-ui/components/ui/button.d.ts +11 -0
  147. package/dist/components/internal/shared-ui/components/ui/calendar.d.ts +8 -0
  148. package/dist/components/internal/shared-ui/components/ui/card.d.ts +8 -0
  149. package/dist/components/internal/shared-ui/components/ui/chart.d.ts +16 -0
  150. package/dist/components/internal/shared-ui/components/ui/checkbox.d.ts +4 -0
  151. package/dist/components/internal/shared-ui/components/ui/collapsible.d.ts +5 -0
  152. package/dist/components/internal/shared-ui/components/ui/column-config.d.ts +42 -0
  153. package/dist/components/internal/shared-ui/components/ui/date-picker.d.ts +9 -0
  154. package/dist/components/internal/shared-ui/components/ui/date-range-filter.d.ts +32 -0
  155. package/dist/components/internal/shared-ui/components/ui/date-range-picker.d.ts +11 -0
  156. package/dist/components/internal/shared-ui/components/ui/dialog-input.d.ts +17 -0
  157. package/dist/components/internal/shared-ui/components/ui/dialog-safe-select.d.ts +13 -0
  158. package/dist/components/internal/shared-ui/components/ui/dialog.d.ts +25 -0
  159. package/dist/components/internal/shared-ui/components/ui/dropdown-menu.d.ts +27 -0
  160. package/dist/components/internal/shared-ui/components/ui/feature-guide.d.ts +43 -0
  161. package/dist/components/internal/shared-ui/components/ui/form.d.ts +23 -0
  162. package/dist/components/internal/shared-ui/components/ui/help-tip.d.ts +29 -0
  163. package/dist/components/internal/shared-ui/components/ui/hint-notice.d.ts +22 -0
  164. package/dist/components/internal/shared-ui/components/ui/index.d.ts +6 -0
  165. package/dist/components/internal/shared-ui/components/ui/input.d.ts +3 -0
  166. package/dist/components/internal/shared-ui/components/ui/label.d.ts +5 -0
  167. package/dist/components/internal/shared-ui/components/ui/modal-container.d.ts +56 -0
  168. package/dist/components/internal/shared-ui/components/ui/modal-templates.d.ts +46 -0
  169. package/dist/components/internal/shared-ui/components/ui/multi-select.d.ts +20 -0
  170. package/dist/components/internal/shared-ui/components/ui/pagination.d.ts +28 -0
  171. package/dist/components/internal/shared-ui/components/ui/popover.d.ts +7 -0
  172. package/dist/components/internal/shared-ui/components/ui/progress.d.ts +7 -0
  173. package/dist/components/internal/shared-ui/components/ui/radio-button-group.d.ts +18 -0
  174. package/dist/components/internal/shared-ui/components/ui/radio-group.d.ts +5 -0
  175. package/dist/components/internal/shared-ui/components/ui/scroll-area.d.ts +5 -0
  176. package/dist/components/internal/shared-ui/components/ui/select.d.ts +16 -0
  177. package/dist/components/internal/shared-ui/components/ui/separator.d.ts +7 -0
  178. package/dist/components/internal/shared-ui/components/ui/sheet.d.ts +25 -0
  179. package/dist/components/internal/shared-ui/components/ui/sidebar-rail.d.ts +9 -0
  180. package/dist/components/internal/shared-ui/components/ui/skeleton.d.ts +2 -0
  181. package/dist/components/internal/shared-ui/components/ui/slider.d.ts +13 -0
  182. package/dist/components/internal/shared-ui/components/ui/switch.d.ts +4 -0
  183. package/dist/components/internal/shared-ui/components/ui/table.d.ts +10 -0
  184. package/dist/components/internal/shared-ui/components/ui/tabs.d.ts +10 -0
  185. package/dist/components/internal/shared-ui/components/ui/textarea.d.ts +3 -0
  186. package/dist/components/internal/shared-ui/components/ui/toast.d.ts +21 -0
  187. package/dist/components/internal/shared-ui/components/ui/toggle-group.d.ts +12 -0
  188. package/dist/components/internal/shared-ui/components/ui/toggle.d.ts +12 -0
  189. package/dist/components/internal/shared-ui/components/ui/tooltip.d.ts +7 -0
  190. package/dist/components/internal/shared-ui/components/ui/typography.d.ts +15 -0
  191. package/dist/components/internal/shared-ui/components/ui/underline-tabs.d.ts +13 -0
  192. package/dist/components/internal/shared-ui/components/ui/view-mode-toggle.d.ts +9 -0
  193. package/dist/components/internal/shared-ui/context/AppHostContext.d.ts +16 -0
  194. package/dist/components/internal/shared-ui/contexts/UserSettingsContext.d.ts +23 -0
  195. package/dist/components/internal/shared-ui/hooks/builtInApps.d.ts +91 -0
  196. package/dist/components/internal/shared-ui/hooks/pinnedBuiltInNavApps.d.ts +13 -0
  197. package/dist/components/internal/shared-ui/hooks/shellNavLucideIcon.d.ts +6 -0
  198. package/dist/components/internal/shared-ui/hooks/useAppSettings.d.ts +21 -0
  199. package/dist/components/internal/shared-ui/hooks/useAuthTokenSync.d.ts +3 -0
  200. package/dist/components/internal/shared-ui/hooks/useBuiltInApps.d.ts +6 -0
  201. package/dist/components/internal/shared-ui/hooks/useChatEntryTarget.d.ts +35 -0
  202. package/dist/components/internal/shared-ui/hooks/useIsMobile.d.ts +16 -0
  203. package/dist/components/internal/shared-ui/hooks/useLanguage.d.ts +11 -0
  204. package/dist/components/internal/shared-ui/hooks/useLockBodyScroll.d.ts +1 -0
  205. package/dist/components/internal/shared-ui/hooks/usePageState/index.d.ts +4 -0
  206. package/dist/components/internal/shared-ui/hooks/usePageState/types.d.ts +13 -0
  207. package/dist/components/internal/shared-ui/hooks/useTheme.d.ts +11 -0
  208. package/dist/components/internal/shared-ui/hooks/useUserSettings.d.ts +39 -0
  209. package/dist/components/internal/shared-ui/hooks/useWorkflowCanvas.d.ts +36 -0
  210. package/dist/components/internal/shared-ui/hooks/userPreferencesPinnedNav.d.ts +2 -0
  211. package/dist/components/internal/shared-ui/index.d.ts +127 -0
  212. package/dist/components/internal/shared-ui/kit/ai/conversation.d.ts +16 -0
  213. package/dist/components/internal/shared-ui/kit/ai/index.d.ts +11 -0
  214. package/dist/components/internal/shared-ui/kit/ai/loader.d.ts +6 -0
  215. package/dist/components/internal/shared-ui/kit/ai/message.d.ts +14 -0
  216. package/dist/components/internal/shared-ui/kit/ai/prompt-input.d.ts +18 -0
  217. package/dist/components/internal/shared-ui/kit/ai/suggestion.d.ts +11 -0
  218. package/dist/components/internal/shared-ui/kit/ai/tool.d.ts +28 -0
  219. package/dist/components/internal/shared-ui/kit.d.ts +5 -0
  220. package/dist/components/internal/shared-ui/platform/index.d.ts +38 -0
  221. package/dist/components/internal/shared-ui/platform/types.d.ts +1 -0
  222. package/dist/components/internal/shared-ui/styles/design-tokens.d.ts +189 -0
  223. package/dist/components/internal/shared-ui/styles/z-index-layers.d.ts +46 -0
  224. package/dist/components/internal/shared-ui/utils/unknownError.d.ts +2 -0
  225. package/dist/components/internal/shared-utils/cookieSettings.d.ts +12 -0
  226. package/dist/components/internal/shared-utils/data/countryCodes.d.ts +26 -0
  227. package/dist/components/internal/shared-utils/index.d.ts +18 -0
  228. package/dist/components/internal/shared-utils/utils/appPath.d.ts +5 -0
  229. package/dist/components/internal/shared-utils/utils/chunkLoadRecovery.d.ts +7 -0
  230. package/dist/components/internal/shared-utils/utils/cn.d.ts +3 -0
  231. package/dist/components/internal/shared-utils/utils/crossApp.d.ts +71 -0
  232. package/dist/components/internal/shared-utils/utils/debounce.d.ts +1 -0
  233. package/dist/components/internal/shared-utils/utils/formatUserLabel.d.ts +8 -0
  234. package/dist/components/internal/shared-utils/utils/formatting.d.ts +18 -0
  235. package/dist/components/internal/shared-utils/utils/logoutNotification.d.ts +28 -0
  236. package/dist/components/internal/shared-utils/utils/operatorLocale.d.ts +32 -0
  237. package/dist/components/internal/shared-utils/utils/routeLocalePrefetch.d.ts +5 -0
  238. package/dist/components/internal/shared-utils/utils/shellIframeUrl.d.ts +20 -0
  239. package/dist/components/internal/shared-utils/utils/spaceSettings.d.ts +20 -0
  240. package/dist/components/internal/shared-utils/utils/sso.d.ts +42 -0
  241. package/dist/components/internal/shared-utils/utils/throttle.d.ts +1 -0
  242. package/dist/components/internal/shared-utils/utils/timezones.d.ts +14 -0
  243. package/dist/components/internal/shared-utils/utils/toDateInputValue.d.ts +5 -0
  244. package/dist/components/internal/shared-utils/utils/watermark.d.ts +1 -0
  245. package/dist/components/internal/workbench/app/context/DeploymentContext.d.ts +24 -0
  246. package/dist/components/internal/workbench/app/context/PermissionContext.d.ts +32 -0
  247. package/dist/components/internal/workbench/app/context/SubscriptionContext.d.ts +9 -0
  248. package/dist/components/internal/workbench/app/context/UserContext.d.ts +22 -0
  249. package/dist/components/internal/workbench/app/services/apiKey.d.ts +96 -0
  250. package/dist/components/internal/workbench/app/services/auth.d.ts +1 -0
  251. package/dist/components/internal/workbench/app/services/configMap.d.ts +94 -0
  252. package/dist/components/internal/workbench/app/services/task.d.ts +42 -0
  253. package/dist/components/internal/workbench/app/services/workbenchApi.d.ts +495 -0
  254. package/dist/components/internal/workbench/app/types/agent.d.ts +100 -0
  255. package/dist/components/internal/workbench/app/types/api.d.ts +9 -0
  256. package/dist/components/internal/workbench/app/types/knowledge.d.ts +10 -0
  257. package/dist/components/internal/workbench/app/types/model.d.ts +23 -0
  258. package/dist/components/internal/workbench/app/types/task.d.ts +64 -0
  259. package/dist/components/internal/workbench/app/types/taskExecution.d.ts +26 -0
  260. package/dist/components/internal/workbench/assets/maps/bundledMapGeo.d.ts +4 -0
  261. package/dist/components/internal/workbench/components/Grid24Renderer.d.ts +23 -0
  262. package/dist/components/internal/workbench/components/Loading.d.ts +9 -0
  263. package/dist/components/internal/workbench/components/MultiPageRenderer.d.ts +15 -0
  264. package/dist/components/internal/workbench/components/PageComingSoonOverlay.d.ts +11 -0
  265. package/dist/components/internal/workbench/components/PageComponentRenderer.d.ts +34 -0
  266. package/dist/components/internal/workbench/components/PageLayoutRenderer.d.ts +36 -0
  267. package/dist/components/internal/workbench/components/TabManager.d.ts +39 -0
  268. package/dist/components/internal/workbench/components/componentTypes.d.ts +70 -0
  269. package/dist/components/internal/workbench/components/dialogs/TaskParamsDialog.d.ts +18 -0
  270. package/dist/components/internal/workbench/components/dialogs/TreeFormDialog.d.ts +23 -0
  271. package/dist/components/internal/workbench/components/edit-mode/ComponentEditOverlay.d.ts +3 -0
  272. package/dist/components/internal/workbench/components/edit-mode/ContainerDropZoneOverlay.d.ts +1 -0
  273. package/dist/components/internal/workbench/components/edit-mode/EditModeProvider.d.ts +26 -0
  274. package/dist/components/internal/workbench/components/edit-mode/WorkbenchEditMode.d.ts +3 -0
  275. package/dist/components/internal/workbench/components/edit-mode/canvas/Grid24EditableCanvas.d.ts +1 -0
  276. package/dist/components/internal/workbench/components/edit-mode/canvas/MobileFlowCanvas.d.ts +1 -0
  277. package/dist/components/internal/workbench/components/edit-mode/index.d.ts +4 -0
  278. package/dist/components/internal/workbench/components/edit-mode/studio/StudioPreviewContext.d.ts +4 -0
  279. package/dist/components/internal/workbench/components/editor/common/types.d.ts +4 -0
  280. package/dist/components/internal/workbench/components/grid24CellContext.d.ts +2 -0
  281. package/dist/components/internal/workbench/components/inputs/ArrayInput.d.ts +14 -0
  282. package/dist/components/internal/workbench/components/inputs/ObjectArrayInput.d.ts +15 -0
  283. package/dist/components/internal/workbench/components/mobileFlowLayoutContext.d.ts +2 -0
  284. package/dist/components/internal/workbench/components/renderers/AnalyticsTableRenderer.d.ts +125 -0
  285. package/dist/components/internal/workbench/components/renderers/AppIdentityListRenderer.d.ts +60 -0
  286. package/dist/components/internal/workbench/components/renderers/BaseRenderers.d.ts +7 -0
  287. package/dist/components/internal/workbench/components/renderers/CardRenderer.d.ts +24 -0
  288. package/dist/components/internal/workbench/components/renderers/ChartRenderer.d.ts +167 -0
  289. package/dist/components/internal/workbench/components/renderers/CollapsePanelRenderer.d.ts +28 -0
  290. package/dist/components/internal/workbench/components/renderers/ContainerRenderers.d.ts +44 -0
  291. package/dist/components/internal/workbench/components/renderers/CustomContentRenderer.d.ts +20 -0
  292. package/dist/components/internal/workbench/components/renderers/DataGridCard.d.ts +46 -0
  293. package/dist/components/internal/workbench/components/renderers/EChartsChartRenderer.d.ts +178 -0
  294. package/dist/components/internal/workbench/components/renderers/EditableTable.types.d.ts +27 -0
  295. package/dist/components/internal/workbench/components/renderers/EditableTableController.d.ts +44 -0
  296. package/dist/components/internal/workbench/components/renderers/EditableTableRenderer.d.ts +38 -0
  297. package/dist/components/internal/workbench/components/renderers/ExecutionHistoryModal.d.ts +9 -0
  298. package/dist/components/internal/workbench/components/renderers/FileUploadDropzone.d.ts +24 -0
  299. package/dist/components/internal/workbench/components/renderers/FilterPanelRenderer.d.ts +275 -0
  300. package/dist/components/internal/workbench/components/renderers/FormRenderer.d.ts +30 -0
  301. package/dist/components/internal/workbench/components/renderers/HeroCardRenderer.d.ts +18 -0
  302. package/dist/components/internal/workbench/components/renderers/IdentityAttributeAssignRenderer.d.ts +44 -0
  303. package/dist/components/internal/workbench/components/renderers/ListRenderers.d.ts +19 -0
  304. package/dist/components/internal/workbench/components/renderers/LoadingRenderer.d.ts +14 -0
  305. package/dist/components/internal/workbench/components/renderers/MapChartRenderer.d.ts +42 -0
  306. package/dist/components/internal/workbench/components/renderers/MetricCarouselRenderer.d.ts +26 -0
  307. package/dist/components/internal/workbench/components/renderers/NavTileRenderer.d.ts +13 -0
  308. package/dist/components/internal/workbench/components/renderers/ProductDetailRenderer.d.ts +23 -0
  309. package/dist/components/internal/workbench/components/renderers/ProductReportRenderer.d.ts +21 -0
  310. package/dist/components/internal/workbench/components/renderers/PublishHistoryRenderer.d.ts +21 -0
  311. package/dist/components/internal/workbench/components/renderers/PublishPreviewEntryRenderer.d.ts +16 -0
  312. package/dist/components/internal/workbench/components/renderers/RadarChartRenderer.d.ts +40 -0
  313. package/dist/components/internal/workbench/components/renderers/RingStatRenderer.d.ts +66 -0
  314. package/dist/components/internal/workbench/components/renderers/ServiceDeskReporterRenderer.d.ts +48 -0
  315. package/dist/components/internal/workbench/components/renderers/SimpleTreeRenderer.d.ts +47 -0
  316. package/dist/components/internal/workbench/components/renderers/StatisticGroup.d.ts +77 -0
  317. package/dist/components/internal/workbench/components/renderers/TableRenderer.d.ts +5 -0
  318. package/dist/components/internal/workbench/components/renderers/TabsRenderer.d.ts +63 -0
  319. package/dist/components/internal/workbench/components/renderers/TaskExecutionOutputs.d.ts +15 -0
  320. package/dist/components/internal/workbench/components/renderers/TaskInputField.d.ts +54 -0
  321. package/dist/components/internal/workbench/components/renderers/TaskInputRenderer.d.ts +68 -0
  322. package/dist/components/internal/workbench/components/renderers/TileGridRenderer.d.ts +41 -0
  323. package/dist/components/internal/workbench/components/renderers/TypographyRenderer.d.ts +17 -0
  324. package/dist/components/internal/workbench/components/renderers/WorkflowComponent/SimpleSchemaForm.d.ts +12 -0
  325. package/dist/components/internal/workbench/components/renderers/WorkflowComponent/WorkflowComponent.d.ts +5 -0
  326. package/dist/components/internal/workbench/components/renderers/WorkflowComponent/index.d.ts +9 -0
  327. package/dist/components/internal/workbench/components/renderers/WorkflowComponent/renderers/ProposalRendererFactory.d.ts +15 -0
  328. package/dist/components/internal/workbench/components/renderers/WorkflowComponent/steps/ProposalStep.d.ts +21 -0
  329. package/dist/components/internal/workbench/components/renderers/WorkflowComponent/steps/ResultStep.d.ts +13 -0
  330. package/dist/components/internal/workbench/components/renderers/WorkflowComponent/steps/UploadStep.d.ts +15 -0
  331. package/dist/components/internal/workbench/components/renderers/WorkflowComponent/types.d.ts +185 -0
  332. package/dist/components/internal/workbench/components/renderers/cell-editors/ColorEditor.d.ts +11 -0
  333. package/dist/components/internal/workbench/components/renderers/cell-editors/DateEditor.d.ts +11 -0
  334. package/dist/components/internal/workbench/components/renderers/cell-editors/FileEditor.d.ts +9 -0
  335. package/dist/components/internal/workbench/components/renderers/cell-editors/NumberEditor.d.ts +10 -0
  336. package/dist/components/internal/workbench/components/renderers/cell-editors/SelectEditor.d.ts +19 -0
  337. package/dist/components/internal/workbench/components/renderers/cell-editors/SwitchEditor.d.ts +13 -0
  338. package/dist/components/internal/workbench/components/renderers/cell-editors/TextEditor.d.ts +11 -0
  339. package/dist/components/internal/workbench/components/renderers/cell-editors/index.d.ts +7 -0
  340. package/dist/components/internal/workbench/components/renderers/cells/swCells.d.ts +49 -0
  341. package/dist/components/internal/workbench/components/renderers/data/useBoundRows.d.ts +9 -0
  342. package/dist/components/internal/workbench/components/renderers/echarts/shared/colors.d.ts +56 -0
  343. package/dist/components/internal/workbench/components/renderers/echarts/shared/index.d.ts +1 -0
  344. package/dist/components/internal/workbench/components/renderers/editableTableApiErrors.d.ts +3 -0
  345. package/dist/components/internal/workbench/components/renderers/editableTableDictionary.d.ts +13 -0
  346. package/dist/components/internal/workbench/components/renderers/editableTableFormatters.d.ts +11 -0
  347. package/dist/components/internal/workbench/components/renderers/editableTableWriteDatasourceId.d.ts +8 -0
  348. package/dist/components/internal/workbench/components/renderers/filterOptionCache.d.ts +33 -0
  349. package/dist/components/internal/workbench/components/renderers/filterSelectionMemory.d.ts +11 -0
  350. package/dist/components/internal/workbench/components/renderers/formSizing.d.ts +14 -0
  351. package/dist/components/internal/workbench/components/renderers/heroCardRows.d.ts +30 -0
  352. package/dist/components/internal/workbench/components/renderers/heroCardUtils.d.ts +164 -0
  353. package/dist/components/internal/workbench/components/renderers/index.d.ts +38 -0
  354. package/dist/components/internal/workbench/components/renderers/list/ListActionButton.d.ts +11 -0
  355. package/dist/components/internal/workbench/components/renderers/list/ListDataTable.d.ts +13 -0
  356. package/dist/components/internal/workbench/components/renderers/list/ListProgressBar.d.ts +12 -0
  357. package/dist/components/internal/workbench/components/renderers/list/ListTaskExecuteDialog.d.ts +17 -0
  358. package/dist/components/internal/workbench/components/renderers/list/listActionUtils.d.ts +18 -0
  359. package/dist/components/internal/workbench/components/renderers/list/listCellRender.d.ts +9 -0
  360. package/dist/components/internal/workbench/components/renderers/list/listConfig.d.ts +67 -0
  361. package/dist/components/internal/workbench/components/renderers/list/listCsvExport.d.ts +4 -0
  362. package/dist/components/internal/workbench/components/renderers/list/listFormatUtils.d.ts +13 -0
  363. package/dist/components/internal/workbench/components/renderers/list/listItemTemplates.d.ts +32 -0
  364. package/dist/components/internal/workbench/components/renderers/list/listViewToggleUtils.d.ts +5 -0
  365. package/dist/components/internal/workbench/components/renderers/list/useListActions.d.ts +38 -0
  366. package/dist/components/internal/workbench/components/renderers/list/useListDataSource.d.ts +58 -0
  367. package/dist/components/internal/workbench/components/renderers/list/useListSelectionEmit.d.ts +22 -0
  368. package/dist/components/internal/workbench/components/renderers/navTileUtils.d.ts +46 -0
  369. package/dist/components/internal/workbench/components/renderers/product/productCellRender.d.ts +25 -0
  370. package/dist/components/internal/workbench/components/renderers/publishHistoryHelpers.d.ts +41 -0
  371. package/dist/components/internal/workbench/components/renderers/publishPreviewEntryHelpers.d.ts +50 -0
  372. package/dist/components/internal/workbench/components/renderers/shared/TableEmptyStateWithChromeInsets.d.ts +12 -0
  373. package/dist/components/internal/workbench/components/renderers/shared/ViewToggleButton.d.ts +13 -0
  374. package/dist/components/internal/workbench/components/renderers/shared/useEscapedStickyPanel.d.ts +6 -0
  375. package/dist/components/internal/workbench/components/renderers/shared/useMobileChromeInsets.d.ts +18 -0
  376. package/dist/components/internal/workbench/components/renderers/shared/useStickyHeaderClone.d.ts +31 -0
  377. package/dist/components/internal/workbench/components/renderers/tabVariantStyles.d.ts +50 -0
  378. package/dist/components/internal/workbench/components/renderers/tableFilterPanelGridClass.d.ts +15 -0
  379. package/dist/components/internal/workbench/components/renderers/tabsItemMapping.d.ts +26 -0
  380. package/dist/components/internal/workbench/components/renderers/types.d.ts +682 -0
  381. package/dist/components/internal/workbench/components/shared/TitleManager.d.ts +8 -0
  382. package/dist/components/internal/workbench/components/skeleton/ComponentSkeleton.d.ts +9 -0
  383. package/dist/components/internal/workbench/components/skeleton/HeroCardSkeleton.d.ts +11 -0
  384. package/dist/components/internal/workbench/components/skeleton/TileGridSkeleton.d.ts +11 -0
  385. package/dist/components/internal/workbench/components/skeleton/WorkbenchSkeletonTokens.d.ts +1 -0
  386. package/dist/components/internal/workbench/components/skeleton/index.d.ts +4 -0
  387. package/dist/components/internal/workbench/components/ui/ActionFormDialog.d.ts +19 -0
  388. package/dist/components/internal/workbench/components/ui/ConfirmDialog.d.ts +17 -0
  389. package/dist/components/internal/workbench/components/ui/FormFieldRenderer.d.ts +51 -0
  390. package/dist/components/internal/workbench/components/ui/IconSelector.d.ts +10 -0
  391. package/dist/components/internal/workbench/components/ui/RecordDetailDialog.d.ts +15 -0
  392. package/dist/components/internal/workbench/components/ui/StructuredValueField.d.ts +16 -0
  393. package/dist/components/internal/workbench/components/ui/date-picker.d.ts +7 -0
  394. package/dist/components/internal/workbench/components/ui/date-range-picker.d.ts +11 -0
  395. package/dist/components/internal/workbench/components/ui/dialog-safe-select.d.ts +13 -0
  396. package/dist/components/internal/workbench/components/ui/dialog-tag-input.d.ts +18 -0
  397. package/dist/components/internal/workbench/components/ui/dialog.d.ts +22 -0
  398. package/dist/components/internal/workbench/components/ui/dropdown-menu.d.ts +27 -0
  399. package/dist/components/internal/workbench/components/ui/pagination.d.ts +28 -0
  400. package/dist/components/internal/workbench/components/ui/select.d.ts +13 -0
  401. package/dist/components/internal/workbench/components/ui/sidebar-rail.d.ts +9 -0
  402. package/dist/components/internal/workbench/components/ui/sidebar.d.ts +65 -0
  403. package/dist/components/internal/workbench/components/ui/table.d.ts +10 -0
  404. package/dist/components/internal/workbench/components/ui/tag-input.d.ts +23 -0
  405. package/dist/components/internal/workbench/config/communicationIcons.d.ts +23 -0
  406. package/dist/components/internal/workbench/config/componentTriggers.d.ts +70 -0
  407. package/dist/components/internal/workbench/constants/tableActionButtonStyle.d.ts +15 -0
  408. package/dist/components/internal/workbench/contexts/PageFullscreenContext.d.ts +4 -0
  409. package/dist/components/internal/workbench/contexts/ParameterContext.d.ts +18 -0
  410. package/dist/components/internal/workbench/contexts/TabActivityContext.d.ts +2 -0
  411. package/dist/components/internal/workbench/contexts/ViewportContext.d.ts +19 -0
  412. package/dist/components/internal/workbench/contexts/WorkbenchConfigLocaleContext.d.ts +23 -0
  413. package/dist/components/internal/workbench/contexts/WorkbenchGlobalSpaceContext.d.ts +10 -0
  414. package/dist/components/internal/workbench/contexts/WorkbenchThemeContext.d.ts +23 -0
  415. package/dist/components/internal/workbench/hooks/index.d.ts +6 -0
  416. package/dist/components/internal/workbench/hooks/useComponentCommunication.d.ts +27 -0
  417. package/dist/components/internal/workbench/hooks/useConditionMapper.d.ts +17 -0
  418. package/dist/components/internal/workbench/hooks/useCurrentUser.d.ts +10 -0
  419. package/dist/components/internal/workbench/hooks/useDatabaseDataSource.d.ts +8 -0
  420. package/dist/components/internal/workbench/hooks/useDatasourceVersionBindings.d.ts +24 -0
  421. package/dist/components/internal/workbench/hooks/useEnhancedDataSource.d.ts +40 -0
  422. package/dist/components/internal/workbench/hooks/useMobileViewport.d.ts +18 -0
  423. package/dist/components/internal/workbench/hooks/usePageAutoRefresh.d.ts +9 -0
  424. package/dist/components/internal/workbench/hooks/useParameterHandler.d.ts +27 -0
  425. package/dist/components/internal/workbench/hooks/useReleaseNotesPrompt.d.ts +38 -0
  426. package/dist/components/internal/workbench/hooks/useSpaceSwitchHandler.d.ts +7 -0
  427. package/dist/components/internal/workbench/hooks/useTaskInputDataSourceCache.d.ts +24 -0
  428. package/dist/components/internal/workbench/hooks/useVisibleWhenContext.d.ts +3 -0
  429. package/dist/components/internal/workbench/hooks/useWaitForParameters.d.ts +9 -0
  430. package/dist/components/internal/workbench/hooks/useWorkbenchAppAccess.d.ts +16 -0
  431. package/dist/components/internal/workbench/hooks/useWorkbenchHeaderNavApps.d.ts +7 -0
  432. package/dist/components/internal/workbench/hooks/useWorkbenchPreview.d.ts +24 -0
  433. package/dist/components/internal/workbench/lib/api/apiClient.d.ts +22 -0
  434. package/dist/components/internal/workbench/lib/api/baseApiClient.d.ts +21 -0
  435. package/dist/components/internal/workbench/lib/api/hostAdapterBridge.d.ts +21 -0
  436. package/dist/components/internal/workbench/lib/api.d.ts +1 -0
  437. package/dist/components/internal/workbench/lib/auth/permissionManager.d.ts +67 -0
  438. package/dist/components/internal/workbench/lib/config/deployment.d.ts +33 -0
  439. package/dist/components/internal/workbench/lib/config.d.ts +45 -0
  440. package/dist/components/internal/workbench/lib/hooks/use-mobile.d.ts +1 -0
  441. package/dist/components/internal/workbench/lib/hooks/useOperator.d.ts +11 -0
  442. package/dist/components/internal/workbench/lib/services/agentService.d.ts +77 -0
  443. package/dist/components/internal/workbench/lib/services/applicationService.d.ts +111 -0
  444. package/dist/components/internal/workbench/lib/theme/themeUtils.d.ts +13 -0
  445. package/dist/components/internal/workbench/lib/theme/useWorkbenchTheme.d.ts +1 -0
  446. package/dist/components/internal/workbench/lib/types/api.d.ts +113 -0
  447. package/dist/components/internal/workbench/lib/utils/avatar.d.ts +7 -0
  448. package/dist/components/internal/workbench/lib/utils/cn.d.ts +3 -0
  449. package/dist/components/internal/workbench/lib/utils/color.d.ts +1 -0
  450. package/dist/components/internal/workbench/lib/utils/debounce.d.ts +1 -0
  451. package/dist/components/internal/workbench/lib/utils/formatting.d.ts +4 -0
  452. package/dist/components/internal/workbench/lib/utils/icon.d.ts +1 -0
  453. package/dist/components/internal/workbench/lib/utils.d.ts +7 -0
  454. package/dist/components/internal/workbench/locales/i18n.d.ts +10 -0
  455. package/dist/components/internal/workbench/locales/routeNamespaces.d.ts +4 -0
  456. package/dist/components/internal/workbench/mobile/components/BottomTabNavigation.d.ts +11 -0
  457. package/dist/components/internal/workbench/mobile/components/ComponentAdapter.d.ts +9 -0
  458. package/dist/components/internal/workbench/mobile/components/MobileFloatingBackButton.d.ts +23 -0
  459. package/dist/components/internal/workbench/mobile/components/adaptive/MobileCardView.d.ts +6 -0
  460. package/dist/components/internal/workbench/mobile/components/adaptive/MobileChartView.d.ts +9 -0
  461. package/dist/components/internal/workbench/mobile/components/adaptive/MobileDateRangeFilterField.d.ts +16 -0
  462. package/dist/components/internal/workbench/mobile/components/adaptive/MobileEChartsView.d.ts +10 -0
  463. package/dist/components/internal/workbench/mobile/components/adaptive/MobileFormView.d.ts +6 -0
  464. package/dist/components/internal/workbench/mobile/components/adaptive/MobileListView.d.ts +6 -0
  465. package/dist/components/internal/workbench/mobile/components/adaptive/MobileStatCard.d.ts +13 -0
  466. package/dist/components/internal/workbench/mobile/components/adaptive/MobileTableView.d.ts +9 -0
  467. package/dist/components/internal/workbench/mobile/components/adaptive/MobileTabsView.d.ts +6 -0
  468. package/dist/components/internal/workbench/mobile/components/adaptive/index.d.ts +4 -0
  469. package/dist/components/internal/workbench/mobile/components/adaptive/mobileFilterFieldStyles.d.ts +19 -0
  470. package/dist/components/internal/workbench/mobile/hooks/useMobileNavigationCanGoBack.d.ts +1 -0
  471. package/dist/components/internal/workbench/mobile/hooks/useMobileTabTransitionDirection.d.ts +1 -0
  472. package/dist/components/internal/workbench/mobile/index.d.ts +3 -0
  473. package/dist/components/internal/workbench/mobile/utils/fetchUserCurrentSpaceId.d.ts +15 -0
  474. package/dist/components/internal/workbench/mobile/utils/getMobileViewportState.d.ts +25 -0
  475. package/dist/components/internal/workbench/mobile/utils/mobileBottomNav.d.ts +13 -0
  476. package/dist/components/internal/workbench/mobile/utils/mobileBottomNavInset.d.ts +4 -0
  477. package/dist/components/internal/workbench/mobile/utils/mobileComponentProps.d.ts +44 -0
  478. package/dist/components/internal/workbench/mobile/utils/mobileFormDisplayUtils.d.ts +4 -0
  479. package/dist/components/internal/workbench/mobile/utils/mobileNavigationStore.d.ts +35 -0
  480. package/dist/components/internal/workbench/mobile/utils/mobileToolbarNav.d.ts +13 -0
  481. package/dist/components/internal/workbench/mobile/utils/mobileUA.d.ts +1 -0
  482. package/dist/components/internal/workbench/mobile/utils/mobileWorkbenchSpaceSync.d.ts +60 -0
  483. package/dist/components/internal/workbench/mobile/utils/wecomDetector.d.ts +9 -0
  484. package/dist/components/internal/workbench/mobile/utils/workbenchSpaceSyncGate.d.ts +7 -0
  485. package/dist/components/internal/workbench/mocks/index.d.ts +13 -0
  486. package/dist/components/internal/workbench/mocks/templateRegistry.d.ts +16 -0
  487. package/dist/components/internal/workbench/mocks/types.d.ts +1 -0
  488. package/dist/components/internal/workbench/styles/grid24.css +359 -0
  489. package/dist/components/internal/workbench/styles/layoutSystem.css +773 -0
  490. package/dist/components/internal/workbench/themes/classic.d.ts +7 -0
  491. package/dist/components/internal/workbench/themes/index.d.ts +15 -0
  492. package/dist/components/internal/workbench/themes/inkOnyx.d.ts +3 -0
  493. package/dist/components/internal/workbench/themes/types.d.ts +36 -0
  494. package/dist/components/internal/workbench/types/application.d.ts +37 -0
  495. package/dist/components/internal/workbench/types/communication.d.ts +94 -0
  496. package/dist/components/internal/workbench/types/components.d.ts +346 -0
  497. package/dist/components/internal/workbench/types/conditionMapperTypes.d.ts +60 -0
  498. package/dist/components/internal/workbench/types/databaseDataSource.d.ts +120 -0
  499. package/dist/components/internal/workbench/types/datasource.d.ts +117 -0
  500. package/dist/components/internal/workbench/types/editors.d.ts +91 -0
  501. package/dist/components/internal/workbench/types/index.d.ts +7 -0
  502. package/dist/components/internal/workbench/types/parameters.d.ts +59 -0
  503. package/dist/components/internal/workbench/types/productReport.d.ts +272 -0
  504. package/dist/components/internal/workbench/types/renderers.d.ts +645 -0
  505. package/dist/components/internal/workbench/types.d.ts +649 -0
  506. package/dist/components/internal/workbench/utils/actionFormValidation.d.ts +34 -0
  507. package/dist/components/internal/workbench/utils/autoIdUtils.d.ts +2 -0
  508. package/dist/components/internal/workbench/utils/chartGradientStops.d.ts +14 -0
  509. package/dist/components/internal/workbench/utils/chinaProvinceMap.d.ts +8 -0
  510. package/dist/components/internal/workbench/utils/colors.d.ts +84 -0
  511. package/dist/components/internal/workbench/utils/componentUtils.d.ts +4 -0
  512. package/dist/components/internal/workbench/utils/conditionMapperUtils.d.ts +59 -0
  513. package/dist/components/internal/workbench/utils/cssParser.d.ts +7 -0
  514. package/dist/components/internal/workbench/utils/currencySymbol.d.ts +10 -0
  515. package/dist/components/internal/workbench/utils/dataConfigUtils.d.ts +80 -0
  516. package/dist/components/internal/workbench/utils/databaseDatasourceColumnValue.d.ts +8 -0
  517. package/dist/components/internal/workbench/utils/databaseDatasourceParams.d.ts +44 -0
  518. package/dist/components/internal/workbench/utils/datasetOperationUtils.d.ts +48 -0
  519. package/dist/components/internal/workbench/utils/datasourceVersion.d.ts +61 -0
  520. package/dist/components/internal/workbench/utils/debugUtils.d.ts +34 -0
  521. package/dist/components/internal/workbench/utils/errorFilter.d.ts +1 -0
  522. package/dist/components/internal/workbench/utils/errorHandler.d.ts +10 -0
  523. package/dist/components/internal/workbench/utils/expressionUtils.d.ts +13 -0
  524. package/dist/components/internal/workbench/utils/extensionErrorHandler.d.ts +4 -0
  525. package/dist/components/internal/workbench/utils/filterPanelDateRangeUtils.d.ts +34 -0
  526. package/dist/components/internal/workbench/utils/filterPanelMobileDateRangeUtils.d.ts +17 -0
  527. package/dist/components/internal/workbench/utils/formActionVisibility.d.ts +21 -0
  528. package/dist/components/internal/workbench/utils/grid24LayoutSystem.d.ts +108 -0
  529. package/dist/components/internal/workbench/utils/iconUtils.d.ts +22 -0
  530. package/dist/components/internal/workbench/utils/layoutContainerNesting.d.ts +5 -0
  531. package/dist/components/internal/workbench/utils/layoutSystem.d.ts +189 -0
  532. package/dist/components/internal/workbench/utils/navigationUtils.d.ts +70 -0
  533. package/dist/components/internal/workbench/utils/navigationVisibleWhenEditor.d.ts +37 -0
  534. package/dist/components/internal/workbench/utils/parameterUtils.d.ts +52 -0
  535. package/dist/components/internal/workbench/utils/redirectToAppHome.d.ts +4 -0
  536. package/dist/components/internal/workbench/utils/resolveComponentMockFields.d.ts +28 -0
  537. package/dist/components/internal/workbench/utils/resolveDatabaseDataSourceConfig.d.ts +9 -0
  538. package/dist/components/internal/workbench/utils/safeMessaging.d.ts +16 -0
  539. package/dist/components/internal/workbench/utils/statisticColors.d.ts +11 -0
  540. package/dist/components/internal/workbench/utils/statisticIcons.d.ts +5 -0
  541. package/dist/components/internal/workbench/utils/styleUtils.d.ts +35 -0
  542. package/dist/components/internal/workbench/utils/systemParameters.d.ts +8 -0
  543. package/dist/components/internal/workbench/utils/tabIsolation.d.ts +34 -0
  544. package/dist/components/internal/workbench/utils/tableActionButtonRender.d.ts +12 -0
  545. package/dist/components/internal/workbench/utils/taskUtils.d.ts +37 -0
  546. package/dist/components/internal/workbench/utils/treeFormUtils.d.ts +41 -0
  547. package/dist/components/internal/workbench/utils/visibleWhen.d.ts +31 -0
  548. package/dist/components/internal/workbench/utils/visibleWhenFormat.d.ts +32 -0
  549. package/dist/components/internal/workbench/utils/workbenchConfigLocale.d.ts +44 -0
  550. package/dist/components/internal/workbench/utils/workbenchDisplayLocale.d.ts +33 -0
  551. package/dist/components/internal/workbench/utils/workbenchPathUtils.d.ts +8 -0
  552. package/dist/components/internal/workbench/utils/workflowTransformsUtils.d.ts +3 -0
  553. package/dist/components/internal/workbench-templates/index.d.ts +3 -0
  554. package/dist/components/internal/workbench-templates/slugify.d.ts +1 -0
  555. package/dist/components/internal/workbench-templates/templateRegistry.d.ts +18 -0
  556. package/dist/components/internal/workbench-templates/types.d.ts +42 -0
  557. package/dist/components/layout/index.d.ts +6 -0
  558. package/dist/components/layout.js +43 -0
  559. package/dist/components/layout.js.map +1 -0
  560. package/dist/components/mobile/index.d.ts +4 -0
  561. package/dist/components/mobile.js +25 -0
  562. package/dist/components/mobile.js.map +1 -0
  563. package/dist/components/renderers/chart/index.d.ts +3 -0
  564. package/dist/components/renderers/chart.js +7 -0
  565. package/dist/components/renderers/chart.js.map +1 -0
  566. package/dist/components/renderers/container/index.d.ts +6 -0
  567. package/dist/components/renderers/container.js +10 -0
  568. package/dist/components/renderers/container.js.map +1 -0
  569. package/dist/components/renderers/custom-content/index.d.ts +1 -0
  570. package/dist/components/renderers/custom-content.js +6 -0
  571. package/dist/components/renderers/custom-content.js.map +1 -0
  572. package/dist/components/renderers/echarts/index.d.ts +1 -0
  573. package/dist/components/renderers/echarts.js +5 -0
  574. package/dist/components/renderers/echarts.js.map +1 -0
  575. package/dist/components/renderers/filter-panel/index.d.ts +1 -0
  576. package/dist/components/renderers/filter-panel.js +5 -0
  577. package/dist/components/renderers/filter-panel.js.map +1 -0
  578. package/dist/components/renderers/form/index.d.ts +1 -0
  579. package/dist/components/renderers/form.js +5 -0
  580. package/dist/components/renderers/form.js.map +1 -0
  581. package/dist/components/renderers/identity/index.d.ts +2 -0
  582. package/dist/components/renderers/identity.js +6 -0
  583. package/dist/components/renderers/identity.js.map +1 -0
  584. package/dist/components/renderers/index.d.ts +1 -0
  585. package/dist/components/renderers/list/index.d.ts +1 -0
  586. package/dist/components/renderers/list.js +5 -0
  587. package/dist/components/renderers/list.js.map +1 -0
  588. package/dist/components/renderers/publish/index.d.ts +2 -0
  589. package/dist/components/renderers/publish.js +6 -0
  590. package/dist/components/renderers/publish.js.map +1 -0
  591. package/dist/components/renderers/runtime-nH-w5aCf.js +206936 -0
  592. package/dist/components/renderers/runtime-nH-w5aCf.js.map +1 -0
  593. package/dist/components/renderers/service-desk/index.d.ts +1 -0
  594. package/dist/components/renderers/service-desk.js +5 -0
  595. package/dist/components/renderers/service-desk.js.map +1 -0
  596. package/dist/components/renderers/statistics/index.d.ts +3 -0
  597. package/dist/components/renderers/statistics.js +7 -0
  598. package/dist/components/renderers/statistics.js.map +1 -0
  599. package/dist/components/renderers/table/index.d.ts +4 -0
  600. package/dist/components/renderers/table.js +8 -0
  601. package/dist/components/renderers/table.js.map +1 -0
  602. package/dist/components/renderers/tabs/index.d.ts +2 -0
  603. package/dist/components/renderers/tabs.js +6 -0
  604. package/dist/components/renderers/tabs.js.map +1 -0
  605. package/dist/components/renderers/task-input/index.d.ts +1 -0
  606. package/dist/components/renderers/task-input.js +5 -0
  607. package/dist/components/renderers/task-input.js.map +1 -0
  608. package/dist/components/renderers/tree/index.d.ts +1 -0
  609. package/dist/components/renderers/tree.js +5 -0
  610. package/dist/components/renderers/tree.js.map +1 -0
  611. package/dist/components/renderers/workflow/index.d.ts +1 -0
  612. package/dist/components/renderers/workflow.js +5 -0
  613. package/dist/components/renderers/workflow.js.map +1 -0
  614. package/dist/components/renderers.js +41 -0
  615. package/dist/components/renderers.js.map +1 -0
  616. package/dist/components/runtime/GeniAppComponentProvider.d.ts +24 -0
  617. package/dist/components/runtime/GeniAppWorkbench.d.ts +20 -0
  618. package/dist/components/runtime/i18n.d.ts +5 -0
  619. package/dist/components/standalone.css +2 -0
  620. package/dist/components/standalone.d.ts +21 -0
  621. package/dist/components/standalone.js +358816 -0
  622. package/dist/components/styles.css +3 -0
  623. package/dist/components/testing/index.d.ts +2 -0
  624. package/dist/components/testing.js +5 -0
  625. package/dist/components/testing.js.map +1 -0
  626. package/dist/components/types/host-adapters.d.ts +35 -0
  627. package/dist/components.js +841 -0
  628. package/dist/components.js.map +1 -0
  629. package/dist/dashboard/src/ChartTooltip.d.ts +1 -1
  630. package/dist/hooks/access/AppAccessNotice.d.ts +1 -1
  631. package/dist/hooks/picker/managedAppPicker.d.ts +1 -1
  632. package/dist/hooks.js +28 -27
  633. package/dist/hooks.js.map +1 -1
  634. package/dist/i18n-DojjvBZv.js +19013 -0
  635. package/dist/i18n-DojjvBZv.js.map +1 -0
  636. package/dist/index.js +61 -59
  637. package/dist/index.js.map +1 -1
  638. package/dist/kit.js +57 -56
  639. package/dist/kit.js.map +1 -1
  640. package/dist/resolveApiRoot-Dzg1R1PS.js +68 -0
  641. package/dist/resolveApiRoot-Dzg1R1PS.js.map +1 -0
  642. package/dist/shell.d.ts +1 -1
  643. package/dist/storage/components/CopyStorageLinkButton.d.ts +1 -1
  644. package/dist/storage/components/StorageImage.d.ts +1 -1
  645. package/dist/storage/components/StorageVideo.d.ts +1 -1
  646. package/dist/style.css +1 -1
  647. package/dist/task-workspace/domain.d.ts +1 -1
  648. package/dist/ui/components/features/app/AppModal.d.ts +2 -2
  649. package/dist/ui/components/primitives/page-skeleton/index.d.ts +1 -1
  650. package/dist/ui/components/ui/alert.d.ts +3 -3
  651. package/dist/ui/components/ui/badge.d.ts +3 -3
  652. package/dist/ui/components/ui/button.d.ts +4 -4
  653. package/dist/ui/components/ui/chart.d.ts +1 -1
  654. package/dist/ui/components/ui/form.d.ts +3 -5
  655. package/dist/ui/components/ui/hint-notice.d.ts +3 -3
  656. package/dist/ui/components/ui/label.d.ts +1 -1
  657. package/dist/ui/components/ui/select.d.ts +1 -1
  658. package/dist/ui/components/ui/sheet.d.ts +3 -3
  659. package/dist/ui/components/ui/tabs.d.ts +1 -1
  660. package/dist/ui/components/ui/toast.d.ts +3 -3
  661. package/dist/ui/components/ui/toggle-group.d.ts +8 -8
  662. package/dist/ui/components/ui/toggle.d.ts +8 -8
  663. package/dist/ui/components/ui/underline-tabs.d.ts +6 -6
  664. package/dist/ui.js +23 -22
  665. package/dist/ui.js.map +1 -1
  666. package/dist/useUserDirectory-GU8imJ0T.js +2124 -0
  667. package/dist/useUserDirectory-GU8imJ0T.js.map +1 -0
  668. package/dist/vite.d.ts +1 -1
  669. package/package.json +168 -36
  670. package/dist/CrossAppRecordPicker-CQVmirWD.js.map +0 -1
  671. package/dist/useUserDirectory-CqkyCQoR.js +0 -2377
  672. package/dist/useUserDirectory-CqkyCQoR.js.map +0 -1
package/dist/kit.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"kit.js","sources":["../src/ui/components/ui/card.tsx","../src/ui/components/ui/badge.tsx","../src/ui/components/ui/label.tsx","../src/ui/components/ui/textarea.tsx","../src/ui/components/ui/switch.tsx","../src/ui/components/ui/slider.tsx","../src/ui/components/ui/progress.tsx","../src/ui/components/ui/separator.tsx","../src/ui/components/ui/alert.tsx","../src/ui/components/ui/hint-notice.tsx","../src/ui/components/ui/help-tip.tsx","../src/ui/components/ui/ai-draft-banner.tsx","../src/ui/components/ui/tabs.tsx","../src/ui/components/ui/underline-tabs.tsx","../src/ui/components/ui/toggle.tsx","../src/ui/components/ui/toggle-group.tsx","../src/ui/components/ui/collapsible.tsx","../src/ui/components/ui/scroll-area.tsx","../src/ui/components/ui/dialog-safe-select.tsx","../src/ui/components/ui/dropdown-menu.tsx","../src/ui/components/ui/multi-select.tsx","../src/ui/components/ui/tooltip.tsx","../src/ui/components/ui/radio-group.tsx","../src/ui/components/ui/date-picker.tsx","../src/ui/components/ui/alert-dialog.tsx","../src/ui/components/ui/table.tsx","../src/ui/components/ui/chart.tsx","../src/ui/components/ui/feature-guide.tsx","../src/ui/components/ui/column-config.tsx","../src/ui/components/primitives/feedback/use-toast.ts","../src/ui/components/ui/toast.tsx","../src/ui/components/primitives/feedback/toaster.tsx","../src/ui/components/patterns/form-section.tsx","../src/ui/hooks/useIsMobile.ts"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl border border-border bg-card text-card-foreground shadow\",\n className\n )}\n {...props}\n />\n))\nCard.displayName = \"Card\"\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-4 sm:p-6\", className)}\n {...props}\n />\n))\nCardHeader.displayName = \"CardHeader\"\n\nconst CardTitle = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n))\nCardTitle.displayName = \"CardTitle\"\n\nconst CardDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nCardDescription.displayName = \"CardDescription\"\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-4 pt-0 sm:px-6 sm:pb-6\", className)} {...props} />\n))\nCardContent.displayName = \"CardContent\"\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-4 pt-0 sm:px-6 sm:pb-6\", className)}\n {...props}\n />\n))\nCardFooter.displayName = \"CardFooter\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n )\n}\n\nexport { Badge, badgeVariants }\n","import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n","import * as React from \"react\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst Textarea = React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentProps<\"textarea\">\n>(({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm 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})\nTextarea.displayName = \"Textarea\"\n\nexport { Textarea }\n","import * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\n\nimport { cn } from '@genispace/geniapp/utils'\nimport { Z_INDEX_CLASSES } from '../../styles/z-index-layers'\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n `relative ${Z_INDEX_CLASSES.STICKY_HEADER} touch-manipulation`,\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n))\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch }\n","import * as React from \"react\"\nimport { cn } from '@genispace/geniapp/utils'\n\ninterface SliderProps {\n value?: number[]\n defaultValue?: number[]\n onValueChange?: (value: number[]) => void\n min?: number\n max?: number\n step?: number\n className?: string\n disabled?: boolean\n}\n\nconst Slider = React.forwardRef<HTMLDivElement, SliderProps>(\n ({ \n value, \n defaultValue = [0], \n onValueChange, \n min = 0, \n max = 100, \n step = 1, \n className,\n disabled = false,\n ...props \n }, ref) => {\n const [internalValue, setInternalValue] = React.useState(defaultValue)\n const sliderRef = React.useRef<HTMLDivElement>(null)\n const thumbRef = React.useRef<HTMLDivElement>(null)\n\n const currentValue = value || internalValue\n const currentValuePercent = ((currentValue[0] - min) / (max - min)) * 100\n\n const handleMouseDown = React.useCallback((e: React.MouseEvent) => {\n if (disabled) return\n\n const slider = sliderRef.current\n if (!slider) return\n\n const updateValue = (clientX: number) => {\n const rect = slider.getBoundingClientRect()\n const percent = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width))\n const newValue = Math.round((min + percent * (max - min)) / step) * step\n const clampedValue = Math.max(min, Math.min(max, newValue))\n\n const newValueArray = [clampedValue]\n setInternalValue(newValueArray)\n onValueChange?.(newValueArray)\n }\n\n updateValue(e.clientX)\n\n const handleMouseMove = (e: MouseEvent) => {\n updateValue(e.clientX)\n }\n\n const handleMouseUp = () => {\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n }\n\n document.addEventListener('mousemove', handleMouseMove)\n document.addEventListener('mouseup', handleMouseUp)\n }, [disabled, min, max, step, onValueChange])\n\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\n if (disabled) return\n\n let newValue = currentValue[0]\n\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowDown':\n newValue = Math.max(min, currentValue[0] - step)\n break\n case 'ArrowRight':\n case 'ArrowUp':\n newValue = Math.min(max, currentValue[0] + step)\n break\n case 'Home':\n newValue = min\n break\n case 'End':\n newValue = max\n break\n default:\n return\n }\n\n e.preventDefault()\n const newValueArray = [newValue]\n setInternalValue(newValueArray)\n onValueChange?.(newValueArray)\n }, [disabled, currentValue, min, max, step, onValueChange])\n\n return (\n <div\n ref={ref}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <div\n ref={sliderRef}\n className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-neutral-200 dark:bg-neutral-700 cursor-pointer\"\n onMouseDown={handleMouseDown}\n >\n <div \n className=\"absolute h-full bg-brand-primary-light dark:bg-brand-primary transition-all duration-150 ease-out\"\n style={{ width: `${currentValuePercent}%` }}\n />\n </div>\n <div\n ref={thumbRef}\n className={cn(\n \"absolute block h-5 w-5 rounded-full border-2 border-brand-primary bg-white shadow-md transition-colors cursor-pointer\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-600 focus-visible:ring-offset-2\",\n disabled && \"pointer-events-none opacity-50\"\n )}\n style={{ left: `calc(${currentValuePercent}% - 10px)` }}\n tabIndex={disabled ? -1 : 0}\n onKeyDown={handleKeyDown}\n role=\"slider\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={currentValue[0]}\n />\n </div>\n )\n }\n)\n\nSlider.displayName = \"Slider\"\n\nexport { Slider } ","import * as React from \"react\"\nimport { cn } from '@genispace/geniapp/utils'\n\ninterface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {\n value?: number\n max?: number\n}\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, max = 100, ...props }, ref) => {\n const percentage = Math.min(Math.max((value / max) * 100, 0), 100)\n\n return (\n <div\n ref={ref}\n className={cn(\n \"relative h-2 w-full overflow-hidden rounded-full bg-neutral-200 dark:bg-neutral-800\",\n className\n )}\n {...props}\n >\n <div\n className=\"h-full w-full flex-1 bg-brand-primary-light transition-all duration-300 ease-in-out\"\n style={{ transform: `translateX(-${100 - percentage}%)` }}\n />\n </div>\n )\n }\n)\nProgress.displayName = \"Progress\"\n\nexport { Progress } ","import React from 'react';\nimport { cn } from '@genispace/geniapp/utils';\n\nexport interface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: 'horizontal' | 'vertical';\n}\n\nconst Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n ({ className, orientation = 'horizontal', ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'shrink-0 bg-neutral-200 dark:bg-neutral-800',\n orientation === 'horizontal' ? 'h-px w-full' : 'w-px h-full',\n className\n )}\n {...props}\n />\n )\n);\n\nSeparator.displayName = 'Separator';\n\nexport { Separator };\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n))\nAlert.displayName = \"Alert\"\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n))\nAlertTitle.displayName = \"AlertTitle\"\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n))\nAlertDescription.displayName = \"AlertDescription\"\n\nexport { Alert, AlertTitle, AlertDescription }\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Info, AlertTriangle } from 'lucide-react';\n\nimport { cn } from '@genispace/geniapp/utils';\n\nimport { Card, CardContent } from './card';\n\nconst hintNoticeCardVariants = cva('rounded-xl border shadow-sm', {\n variants: {\n variant: {\n info: 'border-sky-200/80 dark:border-sky-900/45 bg-sky-50/70 dark:bg-sky-950/30',\n neutral:\n 'border-neutral-200 dark:border-neutral-700 bg-neutral-50/70 dark:bg-neutral-900/35',\n warning:\n 'border-amber-200/80 dark:border-amber-900/40 bg-amber-50/60 dark:bg-amber-950/25',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n});\n\nconst hintNoticeIconWrapVariants = cva('shrink-0 mt-0.5', {\n variants: {\n variant: {\n info: 'text-sky-600 dark:text-sky-400',\n neutral: 'text-neutral-500 dark:text-neutral-400',\n warning: 'text-amber-600 dark:text-amber-500',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n});\n\nexport type HintNoticeVariant = NonNullable<VariantProps<typeof hintNoticeCardVariants>['variant']>;\n\nexport interface HintNoticeProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>,\n VariantProps<typeof hintNoticeCardVariants> {\n /** Optional heading above the body */\n title?: React.ReactNode;\n /** Body content */\n children: React.ReactNode;\n /** Extra classes for inner `CardContent` */\n contentClassName?: string;\n /** When false, hides the leading icon slot */\n showIcon?: boolean;\n /** Custom icon node; defaults to Info (or Warning triangle for `warning` variant) */\n icon?: React.ReactNode;\n /** Apply `whitespace-pre-line` to the body wrapper */\n preserveWhitespace?: boolean;\n}\n\nfunction DefaultIcon({ variant }: { variant: HintNoticeVariant }) {\n if (variant === 'warning') {\n return <AlertTriangle className=\"h-4 w-4\" aria-hidden />;\n }\n return <Info className=\"h-4 w-4\" aria-hidden />;\n}\n\nexport const HintNotice = React.forwardRef<HTMLDivElement, HintNoticeProps>(\n function HintNotice(\n {\n className,\n variant,\n title,\n children,\n contentClassName,\n showIcon = true,\n icon,\n preserveWhitespace = false,\n ...props\n },\n ref\n ) {\n const v = variant ?? 'info';\n\n return (\n <Card ref={ref} className={cn(hintNoticeCardVariants({ variant: v }), className)} {...props}>\n <CardContent className={cn('pt-5 pb-4', contentClassName)}>\n <div className=\"flex gap-3\">\n {showIcon ? (\n <div className={cn(hintNoticeIconWrapVariants({ variant: v }))}>\n {icon ?? <DefaultIcon variant={v} />}\n </div>\n ) : null}\n <div className=\"min-w-0 space-y-2\">\n {title ? (\n <p className=\"text-sm font-medium text-neutral-900 dark:text-neutral-100\">{title}</p>\n ) : null}\n <div\n className={cn(\n 'text-sm text-neutral-600 dark:text-neutral-400 leading-relaxed',\n preserveWhitespace && 'whitespace-pre-line'\n )}\n >\n {children}\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n );\n }\n);\n\nHintNotice.displayName = 'HintNotice';\n","import * as React from 'react';\nimport { ArrowUpRight, HelpCircle } from 'lucide-react';\n\nimport { cn } from '@genispace/geniapp/utils';\n\nimport { Popover, PopoverContent, PopoverTrigger } from './popover';\n\nexport interface HelpTipProps {\n /** Optional bold heading rendered above the content */\n title?: React.ReactNode;\n /** Explanation body — can be long-form (rendered in a Popover, not a Tooltip) */\n content: React.ReactNode;\n /** External/help-center URL for the \"Learn more\" row */\n moreHref?: string;\n /** Click handler alternative to `moreHref` for the \"Learn more\" row */\n onMore?: () => void;\n /** Label for the \"Learn more\" row (i18n override) */\n moreLabel?: string;\n /** Accessible label for the trigger button (i18n override) */\n label?: string;\n /** Popover placement side */\n side?: 'top' | 'right' | 'bottom' | 'left';\n /** Popover alignment relative to the trigger */\n align?: 'start' | 'center' | 'end';\n /** Extra classes for the trigger button */\n className?: string;\n /** Extra classes for the popover content */\n contentClassName?: string;\n}\n\n/**\n * HelpTip — small circled \"?\" affordance that opens a Popover with contextual help.\n * Use next to field labels, section titles, and toolbar actions where the\n * explanation may be longer than a one-line tooltip.\n */\nexport function HelpTip({\n title,\n content,\n moreHref,\n onMore,\n moreLabel = 'Learn more',\n label = 'Help',\n side = 'top',\n align = 'center',\n className,\n contentClassName,\n}: HelpTipProps) {\n const hasMore = Boolean(moreHref || onMore);\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n aria-label={label}\n className={cn(\n 'inline-flex shrink-0 items-center justify-center rounded-full align-middle',\n 'text-muted-foreground transition-colors hover:text-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1',\n className\n )}\n >\n <HelpCircle className=\"h-3.5 w-3.5\" aria-hidden />\n </button>\n </PopoverTrigger>\n <PopoverContent\n side={side}\n align={align}\n className={cn('w-auto max-w-[20rem] p-3 text-sm', contentClassName)}\n >\n {title ? (\n <p className=\"mb-1 font-semibold text-foreground\">{title}</p>\n ) : null}\n <div className=\"leading-relaxed text-muted-foreground\">{content}</div>\n {hasMore ? (\n <div className=\"mt-2\">\n {moreHref ? (\n <a\n href={moreHref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={onMore}\n className=\"inline-flex items-center gap-0.5 text-xs font-medium text-primary hover:underline\"\n >\n {moreLabel}\n <ArrowUpRight className=\"h-3 w-3\" aria-hidden />\n </a>\n ) : (\n <button\n type=\"button\"\n onClick={onMore}\n className=\"inline-flex items-center gap-0.5 text-xs font-medium text-primary hover:underline\"\n >\n {moreLabel}\n <ArrowUpRight className=\"h-3 w-3\" aria-hidden />\n </button>\n )}\n </div>\n ) : null}\n </PopoverContent>\n </Popover>\n );\n}\n","import * as React from 'react';\nimport { Sparkles, X } from 'lucide-react';\n\nimport { cn } from '@genispace/geniapp/utils';\n\nexport type AiDraftBannerTone = 'info' | 'warning';\n\nexport interface AiDraftBannerProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Banner heading, e.g. \"AI draft applied\" */\n title: React.ReactNode;\n /** Secondary line under the title */\n description?: React.ReactNode;\n /** When provided, renders a dismiss button */\n onDismiss?: () => void;\n /** Accessible label for the dismiss button (i18n) */\n dismissLabel: string;\n /** Visual tone — maps to the platform status tokens */\n tone?: AiDraftBannerTone;\n /** Extra rows below the header (e.g. collapsible reasons, actions) */\n children?: React.ReactNode;\n}\n\nconst toneStyles: Record<\n AiDraftBannerTone,\n { container: string; icon: string }\n> = {\n info: {\n container: 'border-status-info/40 bg-status-info/10',\n icon: 'text-status-info',\n },\n warning: {\n container: 'border-status-warning/40 bg-status-warning/10',\n icon: 'text-status-warning',\n },\n};\n\n/**\n * AiDraftBanner — canonical presentation for \"AI draft applied\" surfaces.\n * Built on the platform status tokens, so it is dark-mode correct by construction.\n */\nexport const AiDraftBanner = React.forwardRef<HTMLDivElement, AiDraftBannerProps>(\n function AiDraftBanner(\n {\n title,\n description,\n onDismiss,\n dismissLabel,\n tone = 'info',\n children,\n className,\n ...props\n },\n ref\n ) {\n const styles = toneStyles[tone];\n\n return (\n <div\n ref={ref}\n role=\"status\"\n className={cn('rounded-lg border p-3', styles.container, className)}\n {...props}\n >\n <div className=\"flex items-start gap-2.5\">\n <Sparkles className={cn('mt-0.5 h-4 w-4 shrink-0', styles.icon)} aria-hidden />\n <div className=\"min-w-0 flex-1 space-y-0.5\">\n <p className=\"text-sm font-medium text-foreground\">{title}</p>\n {description ? (\n <p className=\"text-xs text-muted-foreground\">{description}</p>\n ) : null}\n </div>\n {onDismiss ? (\n <button\n type=\"button\"\n aria-label={dismissLabel}\n onClick={onDismiss}\n className={cn(\n 'shrink-0 rounded-sm p-0.5 text-muted-foreground transition-colors hover:text-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring'\n )}\n >\n <X className=\"h-3.5 w-3.5\" aria-hidden />\n </button>\n ) : null}\n </div>\n {children ? <div className=\"mt-2 pl-[26px]\">{children}</div> : null}\n </div>\n );\n }\n);\n","import * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nfunction Tabs({\n onValueChange,\n ...props\n}: React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n {...props}\n onValueChange={\n onValueChange\n ? (value) => {\n React.startTransition(() => {\n onValueChange(value)\n })\n }\n : undefined\n }\n />\n )\n}\nTabs.displayName = TabsPrimitive.Root.displayName\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow\",\n className\n )}\n {...props}\n />\n))\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n","import * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst UnderlineTabs = TabsPrimitive.Root\n\nconst UnderlineTabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-auto items-stretch justify-start gap-0 rounded-none border-0 border-b border-border bg-transparent p-0 text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nUnderlineTabsList.displayName = \"UnderlineTabsList\"\n\nconst underlineTabsTriggerVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-none border-b-2 border-transparent bg-transparent px-4 py-2 text-sm font-medium text-muted-foreground ring-offset-background transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"data-[state=active]:border-primary data-[state=active]:text-foreground\",\n brand:\n \"data-[state=active]:border-brand-primary data-[state=active]:text-brand-primary dark:data-[state=active]:border-blue-400 dark:data-[state=active]:text-blue-400 data-[state=active]:font-medium\",\n orange:\n \"data-[state=active]:border-orange-500 data-[state=active]:text-orange-700 dark:data-[state=active]:text-orange-300 data-[state=active]:bg-white dark:data-[state=active]:bg-gray-900\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst UnderlineTabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> &\n VariantProps<typeof underlineTabsTriggerVariants>\n>(({ className, variant, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(underlineTabsTriggerVariants({ variant, className }))}\n {...props}\n />\n))\nUnderlineTabsTrigger.displayName = \"UnderlineTabsTrigger\"\n\nconst UnderlineTabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-0 outline-none ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=inactive]:hidden\",\n className\n )}\n {...props}\n />\n))\nUnderlineTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport {\n UnderlineTabs,\n UnderlineTabsList,\n UnderlineTabsTrigger,\n UnderlineTabsContent,\n underlineTabsTriggerVariants,\n}\n","import * as React from \"react\"\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-2 min-w-9\",\n sm: \"h-8 px-1.5 min-w-8\",\n lg: \"h-10 px-2.5 min-w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Toggle = React.forwardRef<\n React.ElementRef<typeof TogglePrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>\n>(({ className, variant, size, ...props }, ref) => (\n <TogglePrimitive.Root\n ref={ref}\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n))\n\nToggle.displayName = TogglePrimitive.Root.displayName\n\nexport { Toggle, toggleVariants }\n","import * as React from \"react\"\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\"\nimport { type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nimport { toggleVariants } from \"./toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants>\n>({\n size: \"default\",\n variant: \"default\",\n})\n\nconst ToggleGroup = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants>\n>(({ className, variant, size, children, ...props }, ref) => (\n <ToggleGroupPrimitive.Root\n ref={ref}\n className={cn(\"flex items-center justify-center gap-1\", className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n))\n\nToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName\n\nconst ToggleGroupItem = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>\n>(({ className, children, variant, size, ...props }, ref) => {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <ToggleGroupPrimitive.Item\n ref={ref}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n})\n\nToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName\n\nexport { ToggleGroup, ToggleGroupItem }\n","import * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nconst Collapsible = CollapsiblePrimitive.Root\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","import * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar }\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\nconst DialogSafeSelect = SelectPrimitive.Root;\n\nconst DialogSafeSelectGroup = SelectPrimitive.Group;\n\nconst DialogSafeSelectValue = SelectPrimitive.Value;\n\nconst DialogSafeSelectTrigger = 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));\nDialogSafeSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst DialogSafeSelectScrollUpButton = 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));\nDialogSafeSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst DialogSafeSelectScrollDownButton = 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));\nDialogSafeSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;\n\nconst DialogSafeSelectContent = 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.NESTED_MODAL} 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 // Accessibility improvements for dialog usage\n onCloseAutoFocus={(e) => {\n // Prevent focus issues when closing\n e.preventDefault();\n }}\n onPointerDownOutside={(e) => {\n // Prevent closing on dialog interaction\n const target = e.target as Element;\n const dialog = target.closest('[data-radix-dialog-content]');\n if (dialog) {\n e.preventDefault();\n }\n }}\n {...props}\n >\n <DialogSafeSelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"min-h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <DialogSafeSelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nDialogSafeSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst DialogSafeSelectLabel = 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));\nDialogSafeSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst DialogSafeSelectItem = 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));\nDialogSafeSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst DialogSafeSelectSeparator = 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));\nDialogSafeSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n DialogSafeSelect,\n DialogSafeSelectGroup,\n DialogSafeSelectValue,\n DialogSafeSelectTrigger,\n DialogSafeSelectContent,\n DialogSafeSelectLabel,\n DialogSafeSelectItem,\n DialogSafeSelectSeparator,\n DialogSafeSelectScrollUpButton,\n DialogSafeSelectScrollDownButton,\n}; ","\"use client\"\n\nimport * as React from \"react\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from '@genispace/geniapp/utils'\nimport { Z_INDEX_CLASSES } from '../../styles/z-index-layers'\n\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n))\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n Z_INDEX_CLASSES.OVERLAY_POPOVER,\n \"min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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-dropdown-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n Z_INDEX_CLASSES.OVERLAY_POPOVER,\n \"max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden custom-scrollbar rounded-md border bg-popover p-1 text-popover-foreground shadow-md\",\n \"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-dropdown-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n))\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n))\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors 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 left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n))\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n )\n}\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\"\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n","import * as React from \"react\"\nimport { Check, ChevronDown, X } from \"lucide-react\"\nimport { cn } from '@genispace/geniapp/utils'\nimport { Popover, PopoverTrigger, PopoverContent } from './popover'\nimport { Checkbox } from './checkbox'\nimport { Button } from './button'\n\nexport interface MultiSelectOption {\n label: string\n value: string\n disabled?: boolean\n}\n\nexport interface MultiSelectProps {\n options: MultiSelectOption[]\n value?: string[]\n onChange?: (value: string[]) => void\n placeholder?: string\n disabled?: boolean\n className?: string\n triggerClassName?: string\n contentClassName?: string\n maxDisplayCount?: number \n showClearButton?: boolean \n emptyText?: string \n}\n\nexport const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(\n (\n {\n options,\n value = [],\n onChange,\n placeholder = \"Please select\",\n disabled = false,\n className,\n triggerClassName,\n contentClassName,\n maxDisplayCount = 3,\n showClearButton = true,\n emptyText = \"No options\",\n },\n ref\n ) => {\n const [open, setOpen] = React.useState(false)\n const selectedValues = React.useMemo(\n () => (Array.isArray(value) ? value : []),\n [value]\n )\n\n const selectedOptions = React.useMemo(() => {\n return options.filter(opt => selectedValues.includes(opt.value))\n }, [options, selectedValues])\n\n const getDisplayText = () => {\n if (selectedOptions.length === 0) {\n return placeholder\n }\n\n if (selectedOptions.length <= maxDisplayCount) {\n return selectedOptions.map(opt => opt.label).join(', ')\n }\n\n const displayed = selectedOptions.slice(0, maxDisplayCount)\n const remaining = selectedOptions.length - maxDisplayCount\n return `${displayed.map(opt => opt.label).join(', ')} +${remaining}`\n }\n\n const handleToggleOption = (optionValue: string) => {\n if (disabled) return\n\n const newValues = selectedValues.includes(optionValue)\n ? selectedValues.filter(v => v !== optionValue)\n : [...selectedValues, optionValue]\n\n onChange?.(newValues)\n }\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation()\n onChange?.([])\n }\n\n const handleSelectAll = () => {\n const allValues = options.filter(opt => !opt.disabled).map(opt => opt.value)\n if (selectedValues.length === allValues.length) {\n onChange?.([])\n } else {\n onChange?.(allValues)\n }\n }\n\n const allSelected = options.filter(opt => !opt.disabled).length > 0 && \n selectedValues.length === options.filter(opt => !opt.disabled).length\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n ref={ref}\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n className={cn(\n \"h-9 w-full justify-between text-left font-normal\",\n !selectedOptions.length && \"text-muted-foreground\",\n triggerClassName,\n className\n )}\n >\n <span className=\"truncate flex-1 text-left\">\n {getDisplayText()}\n </span>\n <div className=\"flex items-center gap-1 ml-2 shrink-0\">\n {showClearButton && selectedOptions.length > 0 && (\n <X\n className=\"h-4 w-4 opacity-50 hover:opacity-100 transition-opacity\"\n onClick={handleClear}\n />\n )}\n <ChevronDown className=\"h-4 w-4 opacity-50 shrink-0\" />\n </div>\n </Button>\n </PopoverTrigger>\n <PopoverContent \n className={cn(\"w-[var(--radix-popover-trigger-width)] p-0\", contentClassName)}\n align=\"start\"\n onOpenAutoFocus={(e) => e.preventDefault()}\n >\n <div className=\"max-h-[300px] overflow-y-auto\">\n {options.length === 0 ? (\n <div className=\"px-3 py-6 text-center text-sm text-muted-foreground\">\n {emptyText}\n </div>\n ) : (\n <>\n {options.filter(opt => !opt.disabled).length > 0 && (\n <div className=\"px-2 py-1.5 border-b\">\n <div\n className=\"flex items-center gap-2 px-2 py-1.5 rounded-sm hover:bg-accent cursor-pointer\"\n onClick={handleSelectAll}\n >\n <Checkbox\n checked={allSelected}\n onCheckedChange={handleSelectAll}\n onClick={(e) => e.stopPropagation()}\n />\n <span className=\"text-sm font-medium\">\n {allSelected ? 'Deselect all' : 'Select all'}\n </span>\n </div>\n </div>\n )}\n\n <div className=\"p-1\">\n {options.map((option) => {\n const isSelected = selectedValues.includes(option.value)\n return (\n <div\n key={option.value}\n className={cn(\n \"flex items-center gap-2 px-2 py-1.5 rounded-sm cursor-pointer hover:bg-accent transition-colors\",\n option.disabled && \"opacity-50 cursor-not-allowed\"\n )}\n onClick={() => !option.disabled && handleToggleOption(option.value)}\n >\n <Checkbox\n checked={isSelected}\n disabled={option.disabled}\n onCheckedChange={() => !option.disabled && handleToggleOption(option.value)}\n onClick={(e) => e.stopPropagation()}\n />\n <span className=\"text-sm flex-1\">{option.label}</span>\n {isSelected && (\n <Check className=\"h-4 w-4 text-primary shrink-0\" />\n )}\n </div>\n )\n })}\n </div>\n </>\n )}\n </div>\n </PopoverContent>\n </Popover>\n )\n }\n)\n\nMultiSelect.displayName = \"MultiSelect\"\n\n","import * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from '@genispace/geniapp/utils'\nimport { Z_INDEX_CLASSES } from '../../styles/z-index-layers'\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n `${Z_INDEX_CLASSES.TOOLTIP} overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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-tooltip-content-transform-origin]`,\n className\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\n))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","import * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { Circle } from \"lucide-react\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n )\n})\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-neutral-300 dark:border-neutral-700 text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-primary disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n\nexport { RadioGroup, RadioGroupItem } ","import { AppDatePicker } from '../features/app/AppDatePicker';\n\nexport interface DatePickerProps {\n selected?: Date;\n onChange?: (date: Date | undefined) => void;\n placeholderText?: string;\n className?: string;\n compact?: boolean;\n locale?: string;\n}\n\nfunction toValue(date?: Date): string {\n if (!date) return '';\n return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;\n}\n\nexport function DatePicker({ selected, onChange, placeholderText, className, compact = false, locale }: DatePickerProps) {\n return (\n <AppDatePicker\n value={toValue(selected)}\n onChange={(value) => onChange?.(value ? new Date(`${value}T00:00:00`) : undefined)}\n placeholder={placeholderText}\n locale={locale}\n className={className}\n triggerClassName={compact ? 'h-8 px-2 text-sm' : undefined}\n />\n );\n}\n","import * as React from \"react\";\nimport { ModalContainer } from \"./modal-container\";\nimport { CheckCircle, XCircle, AlertTriangle, Info } from \"lucide-react\";\nimport { cn } from '@genispace/geniapp/utils';\nimport { useTranslation } from \"react-i18next\";\n\nexport type AlertType = 'success' | 'error' | 'warning' | 'info';\n\nconst AlertIcons: Record<AlertType, React.ComponentType<{ className?: string }>> = {\n success: CheckCircle,\n error: XCircle,\n warning: AlertTriangle,\n info: Info,\n};\n\nconst AlertStyles: Record<AlertType, {\n iconColor: string;\n buttonColor: string;\n}> = {\n success: {\n iconColor: \"text-green-500 dark:text-green-400\",\n buttonColor: \"bg-green-600 hover:bg-green-700 dark:bg-green-500 dark:hover:bg-green-600\",\n },\n error: {\n iconColor: \"text-red-500 dark:text-red-400\", \n buttonColor: \"bg-red-600 hover:bg-red-700 dark:bg-red-500 dark:hover:bg-red-600\",\n },\n warning: {\n iconColor: \"text-orange-500 dark:text-orange-400\",\n buttonColor: \"bg-orange-600 hover:bg-orange-700 dark:bg-orange-500 dark:hover:bg-orange-600\",\n },\n info: {\n iconColor: \"text-brand-primary dark:text-neutral-400\",\n buttonColor: \"bg-brand-primary-light hover:bg-brand-primary dark:bg-brand-primary dark:hover:bg-brand-primary-light\",\n },\n};\n\ninterface AlertDialogProps {\n\n isOpen: boolean;\n\n onClose: () => void;\n\n type?: AlertType;\n\n title?: string;\n\n message: string;\n\n confirmText?: string;\n\n onConfirm?: () => void;\n\n showCancel?: boolean;\n\n cancelText?: string;\n\n onCancel?: () => void;\n\n loading?: boolean;\n}\n\nexport const AlertDialog: React.FC<AlertDialogProps> = ({\n isOpen,\n onClose,\n type = 'info',\n title,\n message,\n confirmText,\n onConfirm,\n showCancel = false,\n cancelText,\n onCancel,\n loading = false,\n}) => {\n const { t } = useTranslation('common');\n const IconComponent = AlertIcons[type];\n const styles = AlertStyles[type];\n\n const defaultTitle = {\n success: t('dialog.title.success', 'Success'),\n error: t('dialog.title.error', 'Error'),\n warning: t('dialog.title.warning', 'Warning'),\n info: t('dialog.title.info', 'Information'),\n }[type];\n\n const defaultConfirmText = confirmText || t('dialog.button.confirm', 'OK');\n const defaultCancelText = cancelText || t('dialog.button.cancel', 'Cancel');\n\n const handleConfirm = () => {\n if (onConfirm) {\n onConfirm();\n } else {\n onClose();\n }\n };\n\n const handleCancel = () => {\n if (onCancel) {\n onCancel();\n } else {\n onClose();\n }\n };\n\n return (\n <ModalContainer\n size=\"STANDARD\"\n isOpen={isOpen}\n onClose={onClose}\n showCloseButton={false}\n closeOnOverlayClick={!loading}\n contentClassName=\"max-w-md shadow-2xl\" \n >\n <div className=\"p-6 bg-white dark:bg-neutral-900 rounded-lg\">\n <div className=\"flex items-center gap-4 mb-4\">\n <div className={cn(\"flex-shrink-0\", styles.iconColor)}>\n <IconComponent className=\"w-8 h-8\" />\n </div>\n <div className=\"flex-1\">\n {(title || defaultTitle) && (\n <h3 className=\"text-lg font-semibold text-neutral-900 dark:text-neutral-100 mb-1\">\n {title || defaultTitle}\n </h3>\n )}\n </div>\n </div>\n\n <div className=\"mb-6\">\n <p className=\"text-neutral-700 dark:text-neutral-200 whitespace-pre-line leading-relaxed\">\n {message}\n </p>\n </div>\n\n <div className=\"flex items-center justify-end gap-3\">\n {showCancel && (\n <button\n type=\"button\"\n onClick={handleCancel}\n disabled={loading}\n className=\"px-4 py-2 text-sm font-medium text-neutral-700 dark:text-neutral-200 bg-white dark:bg-neutral-800 border border-neutral-300 dark:border-neutral-600 rounded-lg hover:bg-neutral-50 dark:hover:bg-neutral-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring transition-colors disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n {defaultCancelText}\n </button>\n )}\n\n <button\n type=\"button\"\n onClick={handleConfirm}\n disabled={loading}\n className={cn(\n \"px-4 py-2 text-sm font-medium text-white dark:text-white rounded-lg transition-colors flex items-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-neutral-900 shadow-sm\",\n styles.buttonColor\n )}\n >\n {loading && (\n <div className=\"w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin\" />\n )}\n {defaultConfirmText}\n </button>\n </div>\n </div>\n </ModalContainer>\n );\n};\n\ninterface AlertState {\n isOpen: boolean;\n type: AlertType;\n title?: string;\n message: string;\n confirmText?: string;\n onConfirm?: () => void | Promise<void>;\n showCancel?: boolean;\n cancelText?: string;\n onCancel?: () => void;\n loading?: boolean;\n}\n\n// Alert Context\ninterface AlertContextType {\n showAlert: (options: Omit<AlertState, 'isOpen'>) => void;\n hideAlert: () => void;\n setLoading: (loading: boolean) => void;\n state: AlertState;\n}\n\nconst AlertContext = React.createContext<AlertContextType | undefined>(undefined);\n\nexport const AlertProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [state, setState] = React.useState<AlertState>({\n isOpen: false,\n type: 'info',\n message: '',\n });\n\n const showAlert = React.useCallback((options: Omit<AlertState, 'isOpen'>) => {\n setState({\n ...options,\n isOpen: true,\n });\n }, []);\n\n const hideAlert = React.useCallback(() => {\n setState(prev => ({\n ...prev,\n isOpen: false,\n }));\n }, []);\n\n const setLoading = React.useCallback((loading: boolean) => {\n setState(prev => ({\n ...prev,\n loading,\n }));\n }, []);\n\n const value = React.useMemo(() => ({\n showAlert,\n hideAlert,\n setLoading,\n state,\n }), [showAlert, hideAlert, setLoading, state]);\n\n return (\n <AlertContext.Provider value={value}>\n {children}\n <AlertDialog\n isOpen={state.isOpen}\n onClose={hideAlert}\n type={state.type}\n title={state.title}\n message={state.message}\n confirmText={state.confirmText}\n onConfirm={state.onConfirm}\n showCancel={state.showCancel}\n cancelText={state.cancelText}\n onCancel={state.onCancel}\n loading={state.loading}\n />\n </AlertContext.Provider>\n );\n};\n\n// Alert Hook\nexport const useAlert = () => {\n const context = React.useContext(AlertContext);\n if (!context) {\n throw new Error('useAlert must be used within AlertProvider');\n }\n return context;\n};\n\nexport const useAlertDialog = () => {\n const { showAlert, hideAlert, setLoading } = useAlert();\n const { t } = useTranslation('common');\n\n return React.useMemo(() => ({\n\n success: (message: string, options?: Partial<Omit<AlertState, 'isOpen' | 'type' | 'message'>>) => {\n showAlert({\n type: 'success',\n message,\n ...options,\n });\n },\n\n error: (message: string, options?: Partial<Omit<AlertState, 'isOpen' | 'type' | 'message'>>) => {\n showAlert({\n type: 'error',\n message,\n ...options,\n });\n },\n\n warning: (message: string, options?: Partial<Omit<AlertState, 'isOpen' | 'type' | 'message'>>) => {\n showAlert({\n type: 'warning',\n message,\n ...options,\n });\n },\n\n info: (message: string, options?: Partial<Omit<AlertState, 'isOpen' | 'type' | 'message'>>) => {\n showAlert({\n type: 'info',\n message,\n ...options,\n });\n },\n\n confirm: (\n message: string, \n onConfirm: () => void | Promise<void>,\n options?: Partial<Omit<AlertState, 'isOpen' | 'message' | 'onConfirm' | 'showCancel'>>\n ) => {\n showAlert({\n type: options?.type || 'warning',\n title: options?.title || t('dialog.title.confirm', 'Confirm Operation'),\n message,\n onConfirm: async () => {\n\n const result = onConfirm();\n if (result instanceof Promise) {\n setLoading(true);\n\n try {\n await result;\n hideAlert();\n } catch (error) {\n setLoading(false);\n console.error('Confirm operation failed:', error);\n throw error;\n }\n } else {\n\n hideAlert();\n }\n },\n showCancel: true,\n confirmText: options?.confirmText || t('dialog.button.confirm', 'OK'),\n cancelText: options?.cancelText || t('dialog.button.cancel', 'Cancel'),\n ...options,\n });\n },\n\n confirmDelete: (\n message: string,\n onConfirm: () => Promise<void>,\n options?: Partial<Omit<AlertState, 'isOpen' | 'message' | 'onConfirm' | 'showCancel' | 'type'>>\n ) => {\n showAlert({\n type: 'error',\n title: options?.title || t('dialog.title.delete', 'Delete Confirmation'),\n message,\n onConfirm: async () => {\n\n setLoading(true);\n\n try {\n\n await onConfirm();\n\n hideAlert();\n } catch (error) {\n\n setLoading(false);\n\n console.error('Delete operation failed:', error);\n throw error; \n }\n },\n showCancel: true,\n confirmText: options?.confirmText || t('dialog.button.delete', 'Delete'),\n cancelText: options?.cancelText || t('dialog.button.cancel', 'Cancel'),\n ...options,\n });\n },\n\n hide: hideAlert,\n }), [showAlert, hideAlert, setLoading, t]);\n};\n\nexport default AlertDialog;\n","import * as React from \"react\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n))\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n))\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n))\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n))\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n))\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-11 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"px-4 py-3 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nTableCaption.displayName = \"TableCaption\"\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","import * as React from 'react';\nimport * as RechartsPrimitive from 'recharts';\nimport { cn } from '@genispace/geniapp/utils';\n\nexport type ChartConfig = Record<\n string,\n {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n color?: string;\n }\n>;\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />');\n }\n return context;\n}\n\nexport function ChartContainer({\n id,\n className,\n children,\n config,\n ...props\n}: React.ComponentProps<'div'> & {\n config: ChartConfig;\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];\n}) {\n const uniqueId = React.useId();\n const chartId = `chart-${id ?? uniqueId.replace(/:/g, '')}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n className={cn(\n 'flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke=\"#ccc\"]]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke=\"#fff\"]]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke=\"#ccc\"]]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke=\"#ccc\"]]:stroke-border [&_.recharts-sector[stroke=\"#fff\"]]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none',\n className\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n}\n\nfunction ChartStyle({ id, config }: { id: string; config: ChartConfig }) {\n const colorConfig = Object.entries(config).filter(([, item]) => item.color);\n if (colorConfig.length === 0) return null;\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(config)\n .filter(([, item]) => item.color)\n .map(\n ([key, item]) =>\n `[data-chart=${id}] { --color-${key}: ${item.color}; }`\n )\n .join('\\n'),\n }}\n />\n );\n}\n\nexport const ChartTooltip = RechartsPrimitive.Tooltip;\n\nexport function ChartTooltipContent({\n active,\n payload,\n label,\n className,\n hideLabel = false,\n}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<'div'> & {\n hideLabel?: boolean;\n }) {\n const { config } = useChart();\n\n if (!active || !payload?.length) {\n return null;\n }\n\n return (\n <div\n className={cn(\n 'grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl',\n className\n )}\n >\n {!hideLabel && label != null && (\n <div className=\"font-medium text-foreground\">{String(label)}</div>\n )}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${String(item.name ?? item.dataKey ?? 'value')}`;\n const itemConfig = config[key as keyof typeof config];\n const indicatorColor = item.color ?? (item.payload as { fill?: string } | undefined)?.fill ?? itemConfig?.color;\n\n return (\n <div\n key={index}\n className=\"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground\"\n >\n <div\n className=\"shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]\"\n style={\n {\n '--color-bg': indicatorColor,\n '--color-border': indicatorColor,\n } as React.CSSProperties\n }\n />\n <div className=\"flex flex-1 justify-between leading-none\">\n <span className=\"text-muted-foreground\">\n {itemConfig?.label ?? item.name ?? key}\n </span>\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {typeof item.value === 'number'\n ? item.value.toLocaleString()\n : String(item.value ?? '')}\n </span>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\nexport const ChartLegend = RechartsPrimitive.Legend;\n","import * as React from 'react';\nimport { BookOpen } from 'lucide-react';\n\nimport { cn } from '@genispace/geniapp/utils';\n\nimport { Button, type ButtonProps } from './button';\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from './sheet';\n\nexport interface FeatureGuideStep {\n /** Step heading */\n title: React.ReactNode;\n /** Step body — free-form content */\n body: React.ReactNode;\n /** Optional illustration URL rendered below the body */\n image?: string;\n /** Alt text for the illustration (i18n) */\n imageAlt?: string;\n}\n\nexport interface FeatureGuideProps {\n /** Controlled open state */\n open: boolean;\n /** Controlled open state change handler */\n onOpenChange: (open: boolean) => void;\n /** Guide title */\n title: React.ReactNode;\n /** Optional short description under the title */\n description?: React.ReactNode;\n /** Ordered walkthrough steps */\n steps: FeatureGuideStep[];\n /** Optional footer slot (e.g. docs link, \"Got it\" button) */\n footer?: React.ReactNode;\n /** Extra classes for the sheet content */\n className?: string;\n}\n\n/**\n * FeatureGuide — right-side sheet walking users through a feature in numbered steps.\n * Fully controlled: callers own the `open` state and wire their own trigger\n * (or use the `FeatureGuideTrigger` convenience button).\n */\nexport function FeatureGuide({\n open,\n onOpenChange,\n title,\n description,\n steps,\n footer,\n className,\n}: FeatureGuideProps) {\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent\n side=\"right\"\n className={cn('flex w-full flex-col sm:max-w-md', className)}\n >\n <SheetHeader>\n <SheetTitle>{title}</SheetTitle>\n {description ? <SheetDescription>{description}</SheetDescription> : null}\n </SheetHeader>\n <div className=\"-mx-1 flex-1 overflow-y-auto px-1\">\n <ol className=\"space-y-6 py-2\">\n {steps.map((step, index) => (\n <li key={index} className=\"flex gap-3\">\n <span\n aria-hidden\n className=\"flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary text-xs font-medium text-primary-foreground\"\n >\n {index + 1}\n </span>\n <div className=\"min-w-0 flex-1 space-y-1.5\">\n <p className=\"text-sm font-semibold leading-6 text-foreground\">\n {step.title}\n </p>\n <div className=\"text-sm leading-relaxed text-muted-foreground\">\n {step.body}\n </div>\n {step.image ? (\n <img\n src={step.image}\n alt={step.imageAlt ?? ''}\n loading=\"lazy\"\n className=\"mt-2 w-full rounded-lg border object-cover\"\n />\n ) : null}\n </div>\n </li>\n ))}\n </ol>\n </div>\n {footer ? <div className=\"border-t pt-4\">{footer}</div> : null}\n </SheetContent>\n </Sheet>\n );\n}\n\nexport interface FeatureGuideTriggerProps extends Omit<ButtonProps, 'asChild'> {\n /** Trigger label content */\n children?: React.ReactNode;\n}\n\n/**\n * FeatureGuideTrigger — convenience ghost button with a BookOpen icon.\n * Wire `onClick` to open the controlled `FeatureGuide`.\n */\nexport const FeatureGuideTrigger = React.forwardRef<\n HTMLButtonElement,\n FeatureGuideTriggerProps\n>(function FeatureGuideTrigger({ children = 'Guide', className, ...props }, ref) {\n return (\n <Button ref={ref} type=\"button\" variant=\"ghost\" size=\"sm\" className={className} {...props}>\n <BookOpen className=\"h-4 w-4\" aria-hidden />\n {children}\n </Button>\n );\n});\n","import * as React from 'react';\nimport { RotateCcw, Settings2 } from 'lucide-react';\n\nimport { cn } from '@genispace/geniapp/utils';\n\nimport { Button } from './button';\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from './dropdown-menu';\n\nexport interface ColumnConfigColumn {\n /** Stable column identifier persisted to localStorage */\n key: string;\n /** Human-readable label shown in the menu */\n label: React.ReactNode;\n}\n\nexport interface UseColumnConfigResult {\n /** Keys of currently visible columns, in `allColumns` order */\n visibleKeys: string[];\n /** Whether a given column key is visible */\n isVisible: (key: string) => boolean;\n /** Toggle visibility of a column */\n toggle: (key: string) => void;\n /** Restore the default visibility (clears persisted state) */\n reset: () => void;\n}\n\nfunction readHiddenKeys(storageKey: string, fallback: string[]): string[] {\n if (typeof window === 'undefined') return fallback;\n try {\n const raw = window.localStorage.getItem(storageKey);\n if (!raw) return fallback;\n const parsed = JSON.parse(raw);\n if (Array.isArray(parsed) && parsed.every((k) => typeof k === 'string')) {\n return parsed;\n }\n } catch {\n // Ignore malformed persisted state and fall back to defaults.\n }\n return fallback;\n}\n\n/**\n * useColumnConfig — client-side column visibility state persisted to localStorage.\n * Tables consume `isVisible(key)` to filter their column arrays; pair with\n * `ColumnConfigMenu` for the standard configuration dropdown.\n */\nexport function useColumnConfig(\n storageKey: string,\n allColumns: ColumnConfigColumn[],\n defaultHidden: string[] = []\n): UseColumnConfigResult {\n const defaultHiddenRef = React.useRef(defaultHidden);\n defaultHiddenRef.current = defaultHidden;\n\n const [hiddenKeys, setHiddenKeys] = React.useState<string[]>(() =>\n readHiddenKeys(storageKey, defaultHidden)\n );\n\n // Re-read persisted state when the storage key changes.\n React.useEffect(() => {\n setHiddenKeys(readHiddenKeys(storageKey, defaultHiddenRef.current));\n }, [storageKey]);\n\n const isVisible = React.useCallback(\n (key: string) => !hiddenKeys.includes(key),\n [hiddenKeys]\n );\n\n const toggle = React.useCallback(\n (key: string) => {\n setHiddenKeys((prev) => {\n const next = prev.includes(key)\n ? prev.filter((k) => k !== key)\n : [...prev, key];\n try {\n window.localStorage.setItem(storageKey, JSON.stringify(next));\n } catch {\n // Persisting is best-effort (private mode, quota, SSR).\n }\n return next;\n });\n },\n [storageKey]\n );\n\n const reset = React.useCallback(() => {\n setHiddenKeys(defaultHiddenRef.current);\n try {\n window.localStorage.removeItem(storageKey);\n } catch {\n // Best-effort.\n }\n }, [storageKey]);\n\n const visibleKeys = React.useMemo(\n () => allColumns.map((c) => c.key).filter((key) => !hiddenKeys.includes(key)),\n [allColumns, hiddenKeys]\n );\n\n return { visibleKeys, isVisible, toggle, reset };\n}\n\nexport interface ColumnConfigMenuProps {\n /** Column definitions to list in the menu */\n columns: ColumnConfigColumn[];\n /** Result of `useColumnConfig` */\n hook: UseColumnConfigResult;\n /** Accessible label for the trigger button (i18n override) */\n label?: string;\n /** Menu heading (i18n override) */\n menuLabel?: string;\n /** Reset item label (i18n override) */\n resetLabel?: string;\n /** Extra classes for the trigger button */\n className?: string;\n}\n\n/**\n * ColumnConfigMenu — standard \"configure columns\" dropdown (Settings2 ghost icon\n * button) with a checkbox item per column and a reset item.\n */\nexport function ColumnConfigMenu({\n columns,\n hook,\n label = 'Configure columns',\n menuLabel = 'Columns',\n resetLabel = 'Reset columns',\n className,\n}: ColumnConfigMenuProps) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n aria-label={label}\n className={cn('shrink-0', className)}\n >\n <Settings2 className=\"h-4 w-4\" aria-hidden />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-52\">\n <DropdownMenuLabel>{menuLabel}</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {columns.map((column) => (\n <DropdownMenuCheckboxItem\n key={column.key}\n checked={hook.isVisible(column.key)}\n onCheckedChange={() => hook.toggle(column.key)}\n // Keep the menu open while toggling multiple columns.\n onSelect={(event) => event.preventDefault()}\n >\n {column.label}\n </DropdownMenuCheckboxItem>\n ))}\n <DropdownMenuSeparator />\n <DropdownMenuItem onSelect={() => hook.reset()}>\n <RotateCcw className=\"mr-2 h-3.5 w-3.5\" aria-hidden />\n {resetLabel}\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n","\"use client\"\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\"\n\nimport type {\n ToastActionElement,\n ToastProps,\n} from '../../ui/toast'\n\nconst TOAST_LIMIT = 1\nconst TOAST_REMOVE_DELAY = 1000\nconst TOAST_DEFAULT_DURATION = 5000 \n\ntype ToasterToast = ToastProps & {\n id: string\n title?: React.ReactNode\n description?: React.ReactNode\n action?: ToastActionElement\n duration?: number \n}\n\ntype ActionTypes = {\n ADD_TOAST: \"ADD_TOAST\";\n UPDATE_TOAST: \"UPDATE_TOAST\";\n DISMISS_TOAST: \"DISMISS_TOAST\";\n REMOVE_TOAST: \"REMOVE_TOAST\";\n}\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const satisfies ActionTypes\n\n// Export actionTypes for use in reducer\nexport { actionTypes };\n\nlet count = 0\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER\n return count.toString()\n}\n\ntype ActionType = typeof actionTypes\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"]\n toast: ToasterToast\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"]\n toast: Partial<ToasterToast>\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"]\n toastId?: ToasterToast[\"id\"]\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"]\n toastId?: ToasterToast[\"id\"]\n }\n\ninterface State {\n toasts: ToasterToast[]\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>()\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId)\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n })\n }, TOAST_REMOVE_DELAY)\n\n toastTimeouts.set(toastId, timeout)\n}\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n }\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t\n ),\n }\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId)\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id)\n })\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t\n ),\n }\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n }\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n }\n }\n}\n\nconst listeners: Array<(state: State) => void> = []\n\nlet memoryState: State = { toasts: [] }\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action)\n listeners.forEach((listener) => {\n listener(memoryState)\n })\n}\n\ntype Toast = Omit<ToasterToast, \"id\">\n\nfunction toast({ duration = TOAST_DEFAULT_DURATION, ...props }: Toast) {\n const id = genId()\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n })\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id })\n\n if (duration > 0) {\n setTimeout(() => {\n dismiss()\n }, duration)\n }\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n duration,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss()\n },\n },\n })\n\n return {\n id: id,\n dismiss,\n update,\n }\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState)\n\n React.useEffect(() => {\n listeners.push(setState)\n return () => {\n const index = listeners.indexOf(setState)\n if (index > -1) {\n listeners.splice(index, 1)\n }\n }\n }, [state])\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n }\n}\n\nexport { useToast, toast }\n","import * as React from \"react\"\nimport * as ToastPrimitives from \"@radix-ui/react-toast\"\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 ToastProvider = ToastPrimitives.Provider\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\n\n `fixed top-4 left-1/2 transform -translate-x-1/2 ${Z_INDEX_CLASSES.TOAST} flex max-h-screen w-[calc(100vw-2rem)] max-w-sm flex-col gap-2 p-0`,\n\n \"sm:top-auto sm:bottom-4 sm:left-auto sm:right-4 sm:transform-none sm:translate-x-0 sm:w-full sm:max-w-[420px] sm:flex-col\",\n className\n )}\n {...props}\n />\n))\nToastViewport.displayName = ToastPrimitives.Viewport.displayName\n\nconst toastVariants = cva(\n \"group pointer-events-auto relative flex w-full items-center justify-between space-x-3 overflow-hidden rounded-lg border shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full p-3 pr-5 sm:p-4 sm:pr-6 sm:space-x-4\",\n {\n variants: {\n variant: {\n default: \"border bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60 text-foreground\",\n destructive:\n \"destructive group border-destructive/50 bg-destructive/95 backdrop-blur supports-[backdrop-filter]:bg-destructive/60 text-destructive-foreground\",\n success:\n \"success group border-green-500/50 bg-green-500/95 backdrop-blur supports-[backdrop-filter]:bg-green-500/60 text-green-50 dark:border-green-600/50 dark:bg-green-600/95 dark:supports-[backdrop-filter]:bg-green-600/60 dark:text-green-50\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> &\n VariantProps<typeof toastVariants>\n>(({ className, variant, ...props }, ref) => {\n return (\n <ToastPrimitives.Root\n ref={ref}\n className={cn(toastVariants({ variant }), className)}\n {...props}\n />\n )\n})\nToast.displayName = ToastPrimitives.Root.displayName\n\nconst ToastAction = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n \"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive\",\n className\n )}\n {...props}\n />\n))\nToastAction.displayName = ToastPrimitives.Action.displayName\n\nconst ToastClose = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Close\n ref={ref}\n className={cn(\n \"absolute right-1.5 top-1.5 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus-visible:ring-ring group-[.destructive]:focus:ring-offset-red-600 sm:right-2 sm:top-2\",\n className\n )}\n toast-close=\"\"\n {...props}\n >\n <X className=\"h-3.5 w-3.5 sm:h-4 sm:w-4\" />\n </ToastPrimitives.Close>\n))\nToastClose.displayName = ToastPrimitives.Close.displayName\n\nconst ToastTitle = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Title\n ref={ref}\n className={cn(\"text-sm font-semibold leading-tight [&+div]:text-xs sm:text-sm\", className)}\n {...props}\n />\n))\nToastTitle.displayName = ToastPrimitives.Title.displayName\n\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Description\n ref={ref}\n className={cn(\"text-xs opacity-90 mt-0.5 leading-relaxed sm:text-sm\", className)}\n {...props}\n />\n))\nToastDescription.displayName = ToastPrimitives.Description.displayName\n\ninterface ToastProgressBarProps {\n duration: number\n variant?: \"default\" | \"destructive\" | \"success\"\n onComplete?: () => void\n}\n\nconst ToastProgressBar = React.forwardRef<\n HTMLDivElement,\n ToastProgressBarProps\n>(({ duration, variant = \"default\", onComplete }, ref) => {\n const progressBarRef = React.useRef<HTMLDivElement>(null)\n const containerRef = React.useRef<HTMLDivElement>(null)\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout>>()\n\n React.useEffect(() => {\n\n const updateStyles = () => {\n if (containerRef.current) {\n const isDesktop = window.matchMedia(\"(min-width: 640px)\").matches\n if (isDesktop) {\n\n containerRef.current.style.marginLeft = \"-1rem\"\n containerRef.current.style.marginRight = \"-1.5rem\"\n containerRef.current.style.width = \"calc(100% + 1rem + 1.5rem)\"\n } else {\n\n containerRef.current.style.marginLeft = \"-0.75rem\"\n containerRef.current.style.marginRight = \"-1.25rem\"\n containerRef.current.style.width = \"calc(100% + 0.75rem + 1.25rem)\"\n }\n }\n }\n\n updateStyles()\n const mediaQuery = window.matchMedia(\"(min-width: 640px)\")\n mediaQuery.addEventListener(\"change\", updateStyles)\n\n return () => {\n mediaQuery.removeEventListener(\"change\", updateStyles)\n }\n }, [])\n\n React.useEffect(() => {\n\n if (progressBarRef.current) {\n\n progressBarRef.current.style.width = \"100%\"\n progressBarRef.current.style.transformOrigin = \"right center\"\n\n requestAnimationFrame(() => {\n if (progressBarRef.current) {\n progressBarRef.current.style.width = \"0%\"\n progressBarRef.current.style.transition = `width ${duration}ms linear`\n }\n })\n }\n\n timeoutRef.current = setTimeout(() => {\n onComplete?.()\n }, duration)\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [duration, onComplete])\n\n const progressBarColor = React.useMemo(() => {\n switch (variant) {\n case \"destructive\":\n return \"bg-destructive\"\n case \"success\":\n return \"bg-green-500 dark:bg-green-600\"\n default:\n return \"bg-primary\"\n }\n }, [variant])\n\n return (\n <div\n ref={(node) => {\n ;(containerRef as React.MutableRefObject<HTMLDivElement | null>).current = node\n if (typeof ref === \"function\") {\n ref(node)\n } else if (ref) {\n ;(ref as React.MutableRefObject<HTMLDivElement | null>).current = node\n }\n }}\n className=\"absolute bottom-0 left-0 right-0 h-1 bg-black/10 dark:bg-white/10 overflow-hidden rounded-b-lg\"\n >\n <div\n ref={progressBarRef}\n className={cn(\n \"h-full absolute right-0\", \n progressBarColor\n )}\n style={{\n width: \"100%\",\n }}\n />\n </div>\n )\n})\nToastProgressBar.displayName = \"ToastProgressBar\"\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>\n\nexport {\n type ToastProps,\n type ToastActionElement,\n ToastProvider,\n ToastViewport,\n Toast,\n ToastTitle,\n ToastDescription,\n ToastClose,\n ToastAction,\n ToastProgressBar,\n}\n","import { useToast } from \"./use-toast\"\nimport {\n Toast,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastTitle,\n ToastViewport,\n ToastProgressBar,\n} from '../../ui/toast'\n\nexport function Toaster() {\n const { toasts, dismiss } = useToast()\n\n return (\n <ToastProvider>\n {toasts.map(function ({ id, title, description, action, duration, variant, ...props }) {\n const toastVariant = variant ?? undefined\n return (\n <Toast key={id} variant={toastVariant} {...props}>\n <div className=\"grid gap-1\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && (\n <ToastDescription>{description}</ToastDescription>\n )}\n </div>\n {action}\n <ToastClose />\n {duration && duration > 0 && (\n <ToastProgressBar\n duration={duration}\n variant={toastVariant}\n onComplete={() => {\n\n dismiss(id)\n }}\n />\n )}\n </Toast>\n )\n })}\n <ToastViewport />\n </ToastProvider>\n )\n}\n","import * as React from 'react';\nimport { cn } from '@genispace/geniapp/utils';\n\nexport type FormSectionProps = {\n title: string;\n description?: string;\n children: React.ReactNode;\n className?: string;\n};\n\n/**\n * Grouped form block: title, optional description, and fields (design tokens).\n */\nexport function FormSection({ title, description, children, className }: FormSectionProps) {\n return (\n <section className={cn('space-y-3 rounded-xl border border-border bg-card p-4 shadow-sm', className)}>\n <div className=\"space-y-1\">\n <h3 className=\"text-sm font-semibold leading-none tracking-tight text-foreground\">{title}</h3>\n {description ? <p className=\"text-xs text-muted-foreground\">{description}</p> : null}\n </div>\n <div className=\"space-y-3\">{children}</div>\n </section>\n );\n}\n","import { useEffect, useState } from 'react';\n\n/**\n * Tailwind `sm` breakpoint in px. Below this width we treat the viewport as an\n * H5 / mobile device and switch to the mobile-first layouts (stat grids start at\n * 2 columns, data tables fall back to card lists, denser padding, etc.).\n */\nexport const MOBILE_BREAKPOINT = 640;\n\n/**\n * Reports whether the viewport is narrower than the given breakpoint (default:\n * the Tailwind `sm` boundary, 640px). SSR-safe — returns `false` on the server\n * and during the first client render, then syncs on mount so hydration matches.\n *\n * Use this to switch between desktop and mobile renderings that pure Tailwind\n * responsive classes cannot express — e.g. rendering a card list instead of a\n * `<table>`, or mounting a bottom sheet instead of an inline filter row.\n */\nexport function useIsMobile(breakpoint: number = MOBILE_BREAKPOINT): boolean {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') return;\n\n const query = window.matchMedia(`(max-width: ${breakpoint - 0.02}px)`);\n const update = () => setIsMobile(query.matches);\n\n update();\n query.addEventListener('change', update);\n return () => query.removeEventListener('change', update);\n }, [breakpoint]);\n\n return isMobile;\n}\n"],"names":["Card","React","className","props","ref","jsx","cn","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","badgeVariants","cva","Badge","variant","labelVariants","Label","LabelPrimitive","Textarea","Switch","SwitchPrimitives","Z_INDEX_CLASSES","Slider","value","defaultValue","onValueChange","min","max","step","disabled","internalValue","setInternalValue","sliderRef","thumbRef","currentValue","currentValuePercent","handleMouseDown","e","slider","updateValue","clientX","rect","percent","newValue","newValueArray","handleMouseMove","handleMouseUp","handleKeyDown","jsxs","Progress","percentage","Separator","orientation","alertVariants","Alert","AlertTitle","AlertDescription","hintNoticeCardVariants","hintNoticeIconWrapVariants","DefaultIcon","AlertTriangle","Info","HintNotice","title","children","contentClassName","showIcon","icon","preserveWhitespace","HelpTip","content","moreHref","onMore","moreLabel","label","side","align","hasMore","Popover","PopoverTrigger","HelpCircle","PopoverContent","ArrowUpRight","toneStyles","AiDraftBanner","description","onDismiss","dismissLabel","tone","styles","Sparkles","Tabs","TabsPrimitive","TabsList","TabsTrigger","TabsContent","UnderlineTabs","UnderlineTabsList","underlineTabsTriggerVariants","UnderlineTabsTrigger","UnderlineTabsContent","toggleVariants","Toggle","size","TogglePrimitive","ToggleGroupContext","ToggleGroup","ToggleGroupPrimitive","ToggleGroupItem","context","Collapsible","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","ScrollArea","ScrollAreaPrimitive","ScrollBar","DialogSafeSelect","SelectPrimitive","DialogSafeSelectGroup","DialogSafeSelectValue","DialogSafeSelectTrigger","ChevronDown","DialogSafeSelectScrollUpButton","ChevronUp","DialogSafeSelectScrollDownButton","DialogSafeSelectContent","position","DialogSafeSelectLabel","DialogSafeSelectItem","Check","DialogSafeSelectSeparator","DropdownMenu","DropdownMenuPrimitive","DropdownMenuTrigger","DropdownMenuGroup","DropdownMenuPortal","DropdownMenuSub","DropdownMenuRadioGroup","DropdownMenuSubTrigger","inset","ChevronRight","DropdownMenuSubContent","DropdownMenuContent","sideOffset","DropdownMenuItem","DropdownMenuCheckboxItem","checked","DropdownMenuRadioItem","Circle","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","MultiSelect","options","onChange","placeholder","triggerClassName","maxDisplayCount","showClearButton","emptyText","open","setOpen","selectedValues","selectedOptions","opt","getDisplayText","displayed","remaining","handleToggleOption","optionValue","newValues","v","handleClear","handleSelectAll","allValues","allSelected","Button","Fragment","Checkbox","option","isSelected","TooltipProvider","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","RadioGroup","RadioGroupPrimitive","RadioGroupItem","toValue","date","DatePicker","selected","placeholderText","compact","locale","AppDatePicker","AlertIcons","CheckCircle","XCircle","AlertStyles","AlertDialog","isOpen","onClose","type","message","confirmText","onConfirm","showCancel","cancelText","onCancel","loading","t","useTranslation","IconComponent","defaultTitle","defaultConfirmText","defaultCancelText","handleConfirm","handleCancel","ModalContainer","AlertContext","AlertProvider","state","setState","showAlert","hideAlert","prev","setLoading","useAlert","useAlertDialog","result","error","Table","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","ChartContext","useChart","ChartContainer","id","config","uniqueId","chartId","ChartStyle","RechartsPrimitive","item","key","ChartTooltip","ChartTooltipContent","active","payload","hideLabel","index","itemConfig","indicatorColor","ChartLegend","FeatureGuide","onOpenChange","steps","footer","Sheet","SheetContent","SheetHeader","SheetTitle","SheetDescription","FeatureGuideTrigger","BookOpen","readHiddenKeys","storageKey","fallback","raw","parsed","k","useColumnConfig","allColumns","defaultHidden","defaultHiddenRef","hiddenKeys","setHiddenKeys","isVisible","toggle","next","reset","c","ColumnConfigMenu","columns","hook","menuLabel","resetLabel","Settings2","column","event","RotateCcw","TOAST_LIMIT","TOAST_REMOVE_DELAY","TOAST_DEFAULT_DURATION","count","genId","toastTimeouts","addToRemoveQueue","toastId","timeout","dispatch","reducer","action","toast","listeners","memoryState","listener","duration","update","dismiss","useToast","ToastProvider","ToastPrimitives","ToastViewport","toastVariants","Toast","ToastAction","ToastClose","ToastTitle","ToastDescription","ToastProgressBar","onComplete","progressBarRef","containerRef","timeoutRef","updateStyles","mediaQuery","progressBarColor","node","Toaster","toasts","toastVariant","FormSection","MOBILE_BREAKPOINT","useIsMobile","breakpoint","isMobile","setIsMobile","useState","useEffect","query"],"mappings":"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"}
1
+ {"version":3,"file":"kit.js","sources":["../src/ui/components/ui/card.tsx","../src/ui/components/ui/badge.tsx","../src/ui/components/ui/label.tsx","../src/ui/components/ui/textarea.tsx","../src/ui/components/ui/switch.tsx","../src/ui/components/ui/slider.tsx","../src/ui/components/ui/progress.tsx","../src/ui/components/ui/separator.tsx","../src/ui/components/ui/alert.tsx","../src/ui/components/ui/hint-notice.tsx","../src/ui/components/ui/help-tip.tsx","../src/ui/components/ui/ai-draft-banner.tsx","../src/ui/components/ui/tabs.tsx","../src/ui/components/ui/underline-tabs.tsx","../src/ui/components/ui/toggle.tsx","../src/ui/components/ui/toggle-group.tsx","../src/ui/components/ui/collapsible.tsx","../src/ui/components/ui/scroll-area.tsx","../src/ui/components/ui/dialog-safe-select.tsx","../src/ui/components/ui/dropdown-menu.tsx","../src/ui/components/ui/multi-select.tsx","../src/ui/components/ui/tooltip.tsx","../src/ui/components/ui/radio-group.tsx","../src/ui/components/ui/date-picker.tsx","../src/ui/components/ui/alert-dialog.tsx","../src/ui/components/ui/table.tsx","../src/ui/components/ui/chart.tsx","../src/ui/components/ui/feature-guide.tsx","../src/ui/components/ui/column-config.tsx","../src/ui/components/primitives/feedback/use-toast.ts","../src/ui/components/ui/toast.tsx","../src/ui/components/primitives/feedback/toaster.tsx","../src/ui/components/patterns/form-section.tsx","../src/ui/hooks/useIsMobile.ts"],"sourcesContent":["import * as React from \"react\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl border border-border bg-card text-card-foreground shadow\",\n className\n )}\n {...props}\n />\n))\nCard.displayName = \"Card\"\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-4 sm:p-6\", className)}\n {...props}\n />\n))\nCardHeader.displayName = \"CardHeader\"\n\nconst CardTitle = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n))\nCardTitle.displayName = \"CardTitle\"\n\nconst CardDescription = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nCardDescription.displayName = \"CardDescription\"\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-4 pt-0 sm:px-6 sm:pb-6\", className)} {...props} />\n))\nCardContent.displayName = \"CardContent\"\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-4 pt-0 sm:px-6 sm:pb-6\", className)}\n {...props}\n />\n))\nCardFooter.displayName = \"CardFooter\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n )\n}\n\nexport { Badge, badgeVariants }\n","import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst labelVariants = cva(\n \"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n)\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n))\nLabel.displayName = LabelPrimitive.Root.displayName\n\nexport { Label }\n","import * as React from \"react\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst Textarea = React.forwardRef<\n HTMLTextAreaElement,\n React.ComponentProps<\"textarea\">\n>(({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm 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})\nTextarea.displayName = \"Textarea\"\n\nexport { Textarea }\n","import * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\n\nimport { cn } from '@genispace/geniapp/utils'\nimport { Z_INDEX_CLASSES } from '../../styles/z-index-layers'\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n `relative ${Z_INDEX_CLASSES.STICKY_HEADER} touch-manipulation`,\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n))\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch }\n","import * as React from \"react\"\nimport { cn } from '@genispace/geniapp/utils'\n\ninterface SliderProps {\n value?: number[]\n defaultValue?: number[]\n onValueChange?: (value: number[]) => void\n min?: number\n max?: number\n step?: number\n className?: string\n disabled?: boolean\n}\n\nconst Slider = React.forwardRef<HTMLDivElement, SliderProps>(\n ({ \n value, \n defaultValue = [0], \n onValueChange, \n min = 0, \n max = 100, \n step = 1, \n className,\n disabled = false,\n ...props \n }, ref) => {\n const [internalValue, setInternalValue] = React.useState(defaultValue)\n const sliderRef = React.useRef<HTMLDivElement>(null)\n const thumbRef = React.useRef<HTMLDivElement>(null)\n\n const currentValue = value || internalValue\n const currentValuePercent = ((currentValue[0] - min) / (max - min)) * 100\n\n const handleMouseDown = React.useCallback((e: React.MouseEvent) => {\n if (disabled) return\n\n const slider = sliderRef.current\n if (!slider) return\n\n const updateValue = (clientX: number) => {\n const rect = slider.getBoundingClientRect()\n const percent = Math.max(0, Math.min(1, (clientX - rect.left) / rect.width))\n const newValue = Math.round((min + percent * (max - min)) / step) * step\n const clampedValue = Math.max(min, Math.min(max, newValue))\n\n const newValueArray = [clampedValue]\n setInternalValue(newValueArray)\n onValueChange?.(newValueArray)\n }\n\n updateValue(e.clientX)\n\n const handleMouseMove = (e: MouseEvent) => {\n updateValue(e.clientX)\n }\n\n const handleMouseUp = () => {\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n }\n\n document.addEventListener('mousemove', handleMouseMove)\n document.addEventListener('mouseup', handleMouseUp)\n }, [disabled, min, max, step, onValueChange])\n\n const handleKeyDown = React.useCallback((e: React.KeyboardEvent) => {\n if (disabled) return\n\n let newValue = currentValue[0]\n\n switch (e.key) {\n case 'ArrowLeft':\n case 'ArrowDown':\n newValue = Math.max(min, currentValue[0] - step)\n break\n case 'ArrowRight':\n case 'ArrowUp':\n newValue = Math.min(max, currentValue[0] + step)\n break\n case 'Home':\n newValue = min\n break\n case 'End':\n newValue = max\n break\n default:\n return\n }\n\n e.preventDefault()\n const newValueArray = [newValue]\n setInternalValue(newValueArray)\n onValueChange?.(newValueArray)\n }, [disabled, currentValue, min, max, step, onValueChange])\n\n return (\n <div\n ref={ref}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <div\n ref={sliderRef}\n className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-neutral-200 dark:bg-neutral-700 cursor-pointer\"\n onMouseDown={handleMouseDown}\n >\n <div \n className=\"absolute h-full bg-brand-primary-light dark:bg-brand-primary transition-all duration-150 ease-out\"\n style={{ width: `${currentValuePercent}%` }}\n />\n </div>\n <div\n ref={thumbRef}\n className={cn(\n \"absolute block h-5 w-5 rounded-full border-2 border-brand-primary bg-white shadow-md transition-colors cursor-pointer\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-600 focus-visible:ring-offset-2\",\n disabled && \"pointer-events-none opacity-50\"\n )}\n style={{ left: `calc(${currentValuePercent}% - 10px)` }}\n tabIndex={disabled ? -1 : 0}\n onKeyDown={handleKeyDown}\n role=\"slider\"\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={currentValue[0]}\n />\n </div>\n )\n }\n)\n\nSlider.displayName = \"Slider\"\n\nexport { Slider } ","import * as React from \"react\"\nimport { cn } from '@genispace/geniapp/utils'\n\ninterface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {\n value?: number\n max?: number\n}\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, max = 100, ...props }, ref) => {\n const percentage = Math.min(Math.max((value / max) * 100, 0), 100)\n\n return (\n <div\n ref={ref}\n className={cn(\n \"relative h-2 w-full overflow-hidden rounded-full bg-neutral-200 dark:bg-neutral-800\",\n className\n )}\n {...props}\n >\n <div\n className=\"h-full w-full flex-1 bg-brand-primary-light transition-all duration-300 ease-in-out\"\n style={{ transform: `translateX(-${100 - percentage}%)` }}\n />\n </div>\n )\n }\n)\nProgress.displayName = \"Progress\"\n\nexport { Progress } ","import React from 'react';\nimport { cn } from '@genispace/geniapp/utils';\n\nexport interface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: 'horizontal' | 'vertical';\n}\n\nconst Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n ({ className, orientation = 'horizontal', ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'shrink-0 bg-neutral-200 dark:bg-neutral-800',\n orientation === 'horizontal' ? 'h-px w-full' : 'w-px h-full',\n className\n )}\n {...props}\n />\n )\n);\n\nSeparator.displayName = 'Separator';\n\nexport { Separator };\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n))\nAlert.displayName = \"Alert\"\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n))\nAlertTitle.displayName = \"AlertTitle\"\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n))\nAlertDescription.displayName = \"AlertDescription\"\n\nexport { Alert, AlertTitle, AlertDescription }\n","import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { Info, AlertTriangle } from 'lucide-react';\n\nimport { cn } from '@genispace/geniapp/utils';\n\nimport { Card, CardContent } from './card';\n\nconst hintNoticeCardVariants = cva('rounded-xl border shadow-sm', {\n variants: {\n variant: {\n info: 'border-sky-200/80 dark:border-sky-900/45 bg-sky-50/70 dark:bg-sky-950/30',\n neutral:\n 'border-neutral-200 dark:border-neutral-700 bg-neutral-50/70 dark:bg-neutral-900/35',\n warning:\n 'border-amber-200/80 dark:border-amber-900/40 bg-amber-50/60 dark:bg-amber-950/25',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n});\n\nconst hintNoticeIconWrapVariants = cva('shrink-0 mt-0.5', {\n variants: {\n variant: {\n info: 'text-sky-600 dark:text-sky-400',\n neutral: 'text-neutral-500 dark:text-neutral-400',\n warning: 'text-amber-600 dark:text-amber-500',\n },\n },\n defaultVariants: {\n variant: 'info',\n },\n});\n\nexport type HintNoticeVariant = NonNullable<VariantProps<typeof hintNoticeCardVariants>['variant']>;\n\nexport interface HintNoticeProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>,\n VariantProps<typeof hintNoticeCardVariants> {\n /** Optional heading above the body */\n title?: React.ReactNode;\n /** Body content */\n children: React.ReactNode;\n /** Extra classes for inner `CardContent` */\n contentClassName?: string;\n /** When false, hides the leading icon slot */\n showIcon?: boolean;\n /** Custom icon node; defaults to Info (or Warning triangle for `warning` variant) */\n icon?: React.ReactNode;\n /** Apply `whitespace-pre-line` to the body wrapper */\n preserveWhitespace?: boolean;\n}\n\nfunction DefaultIcon({ variant }: { variant: HintNoticeVariant }) {\n if (variant === 'warning') {\n return <AlertTriangle className=\"h-4 w-4\" aria-hidden />;\n }\n return <Info className=\"h-4 w-4\" aria-hidden />;\n}\n\nexport const HintNotice = React.forwardRef<HTMLDivElement, HintNoticeProps>(\n function HintNotice(\n {\n className,\n variant,\n title,\n children,\n contentClassName,\n showIcon = true,\n icon,\n preserveWhitespace = false,\n ...props\n },\n ref\n ) {\n const v = variant ?? 'info';\n\n return (\n <Card ref={ref} className={cn(hintNoticeCardVariants({ variant: v }), className)} {...props}>\n <CardContent className={cn('pt-5 pb-4', contentClassName)}>\n <div className=\"flex gap-3\">\n {showIcon ? (\n <div className={cn(hintNoticeIconWrapVariants({ variant: v }))}>\n {icon ?? <DefaultIcon variant={v} />}\n </div>\n ) : null}\n <div className=\"min-w-0 space-y-2\">\n {title ? (\n <p className=\"text-sm font-medium text-neutral-900 dark:text-neutral-100\">{title}</p>\n ) : null}\n <div\n className={cn(\n 'text-sm text-neutral-600 dark:text-neutral-400 leading-relaxed',\n preserveWhitespace && 'whitespace-pre-line'\n )}\n >\n {children}\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n );\n }\n);\n\nHintNotice.displayName = 'HintNotice';\n","import * as React from 'react';\nimport { ArrowUpRight, HelpCircle } from 'lucide-react';\n\nimport { cn } from '@genispace/geniapp/utils';\n\nimport { Popover, PopoverContent, PopoverTrigger } from './popover';\n\nexport interface HelpTipProps {\n /** Optional bold heading rendered above the content */\n title?: React.ReactNode;\n /** Explanation body — can be long-form (rendered in a Popover, not a Tooltip) */\n content: React.ReactNode;\n /** External/help-center URL for the \"Learn more\" row */\n moreHref?: string;\n /** Click handler alternative to `moreHref` for the \"Learn more\" row */\n onMore?: () => void;\n /** Label for the \"Learn more\" row (i18n override) */\n moreLabel?: string;\n /** Accessible label for the trigger button (i18n override) */\n label?: string;\n /** Popover placement side */\n side?: 'top' | 'right' | 'bottom' | 'left';\n /** Popover alignment relative to the trigger */\n align?: 'start' | 'center' | 'end';\n /** Extra classes for the trigger button */\n className?: string;\n /** Extra classes for the popover content */\n contentClassName?: string;\n}\n\n/**\n * HelpTip — small circled \"?\" affordance that opens a Popover with contextual help.\n * Use next to field labels, section titles, and toolbar actions where the\n * explanation may be longer than a one-line tooltip.\n */\nexport function HelpTip({\n title,\n content,\n moreHref,\n onMore,\n moreLabel = 'Learn more',\n label = 'Help',\n side = 'top',\n align = 'center',\n className,\n contentClassName,\n}: HelpTipProps) {\n const hasMore = Boolean(moreHref || onMore);\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n aria-label={label}\n className={cn(\n 'inline-flex shrink-0 items-center justify-center rounded-full align-middle',\n 'text-muted-foreground transition-colors hover:text-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1',\n className\n )}\n >\n <HelpCircle className=\"h-3.5 w-3.5\" aria-hidden />\n </button>\n </PopoverTrigger>\n <PopoverContent\n side={side}\n align={align}\n className={cn('w-auto max-w-[20rem] p-3 text-sm', contentClassName)}\n >\n {title ? (\n <p className=\"mb-1 font-semibold text-foreground\">{title}</p>\n ) : null}\n <div className=\"leading-relaxed text-muted-foreground\">{content}</div>\n {hasMore ? (\n <div className=\"mt-2\">\n {moreHref ? (\n <a\n href={moreHref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={onMore}\n className=\"inline-flex items-center gap-0.5 text-xs font-medium text-primary hover:underline\"\n >\n {moreLabel}\n <ArrowUpRight className=\"h-3 w-3\" aria-hidden />\n </a>\n ) : (\n <button\n type=\"button\"\n onClick={onMore}\n className=\"inline-flex items-center gap-0.5 text-xs font-medium text-primary hover:underline\"\n >\n {moreLabel}\n <ArrowUpRight className=\"h-3 w-3\" aria-hidden />\n </button>\n )}\n </div>\n ) : null}\n </PopoverContent>\n </Popover>\n );\n}\n","import * as React from 'react';\nimport { Sparkles, X } from 'lucide-react';\n\nimport { cn } from '@genispace/geniapp/utils';\n\nexport type AiDraftBannerTone = 'info' | 'warning';\n\nexport interface AiDraftBannerProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Banner heading, e.g. \"AI draft applied\" */\n title: React.ReactNode;\n /** Secondary line under the title */\n description?: React.ReactNode;\n /** When provided, renders a dismiss button */\n onDismiss?: () => void;\n /** Accessible label for the dismiss button (i18n) */\n dismissLabel: string;\n /** Visual tone — maps to the platform status tokens */\n tone?: AiDraftBannerTone;\n /** Extra rows below the header (e.g. collapsible reasons, actions) */\n children?: React.ReactNode;\n}\n\nconst toneStyles: Record<\n AiDraftBannerTone,\n { container: string; icon: string }\n> = {\n info: {\n container: 'border-status-info/40 bg-status-info/10',\n icon: 'text-status-info',\n },\n warning: {\n container: 'border-status-warning/40 bg-status-warning/10',\n icon: 'text-status-warning',\n },\n};\n\n/**\n * AiDraftBanner — canonical presentation for \"AI draft applied\" surfaces.\n * Built on the platform status tokens, so it is dark-mode correct by construction.\n */\nexport const AiDraftBanner = React.forwardRef<HTMLDivElement, AiDraftBannerProps>(\n function AiDraftBanner(\n {\n title,\n description,\n onDismiss,\n dismissLabel,\n tone = 'info',\n children,\n className,\n ...props\n },\n ref\n ) {\n const styles = toneStyles[tone];\n\n return (\n <div\n ref={ref}\n role=\"status\"\n className={cn('rounded-lg border p-3', styles.container, className)}\n {...props}\n >\n <div className=\"flex items-start gap-2.5\">\n <Sparkles className={cn('mt-0.5 h-4 w-4 shrink-0', styles.icon)} aria-hidden />\n <div className=\"min-w-0 flex-1 space-y-0.5\">\n <p className=\"text-sm font-medium text-foreground\">{title}</p>\n {description ? (\n <p className=\"text-xs text-muted-foreground\">{description}</p>\n ) : null}\n </div>\n {onDismiss ? (\n <button\n type=\"button\"\n aria-label={dismissLabel}\n onClick={onDismiss}\n className={cn(\n 'shrink-0 rounded-sm p-0.5 text-muted-foreground transition-colors hover:text-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring'\n )}\n >\n <X className=\"h-3.5 w-3.5\" aria-hidden />\n </button>\n ) : null}\n </div>\n {children ? <div className=\"mt-2 pl-[26px]\">{children}</div> : null}\n </div>\n );\n }\n);\n","import * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nfunction Tabs({\n onValueChange,\n ...props\n}: React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n {...props}\n onValueChange={\n onValueChange\n ? (value) => {\n React.startTransition(() => {\n onValueChange(value)\n })\n }\n : undefined\n }\n />\n )\n}\nTabs.displayName = TabsPrimitive.Root.displayName\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow\",\n className\n )}\n {...props}\n />\n))\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n","import * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst UnderlineTabs = TabsPrimitive.Root\n\nconst UnderlineTabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-auto items-stretch justify-start gap-0 rounded-none border-0 border-b border-border bg-transparent p-0 text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\nUnderlineTabsList.displayName = \"UnderlineTabsList\"\n\nconst underlineTabsTriggerVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-none border-b-2 border-transparent bg-transparent px-4 py-2 text-sm font-medium text-muted-foreground ring-offset-background transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"data-[state=active]:border-primary data-[state=active]:text-foreground\",\n brand:\n \"data-[state=active]:border-brand-primary data-[state=active]:text-brand-primary dark:data-[state=active]:border-blue-400 dark:data-[state=active]:text-blue-400 data-[state=active]:font-medium\",\n orange:\n \"data-[state=active]:border-orange-500 data-[state=active]:text-orange-700 dark:data-[state=active]:text-orange-300 data-[state=active]:bg-white dark:data-[state=active]:bg-gray-900\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst UnderlineTabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger> &\n VariantProps<typeof underlineTabsTriggerVariants>\n>(({ className, variant, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(underlineTabsTriggerVariants({ variant, className }))}\n {...props}\n />\n))\nUnderlineTabsTrigger.displayName = \"UnderlineTabsTrigger\"\n\nconst UnderlineTabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-0 outline-none ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=inactive]:hidden\",\n className\n )}\n {...props}\n />\n))\nUnderlineTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport {\n UnderlineTabs,\n UnderlineTabsList,\n UnderlineTabsTrigger,\n UnderlineTabsContent,\n underlineTabsTriggerVariants,\n}\n","import * as React from \"react\"\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-2 min-w-9\",\n sm: \"h-8 px-1.5 min-w-8\",\n lg: \"h-10 px-2.5 min-w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nconst Toggle = React.forwardRef<\n React.ElementRef<typeof TogglePrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>\n>(({ className, variant, size, ...props }, ref) => (\n <TogglePrimitive.Root\n ref={ref}\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n))\n\nToggle.displayName = TogglePrimitive.Root.displayName\n\nexport { Toggle, toggleVariants }\n","import * as React from \"react\"\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\"\nimport { type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nimport { toggleVariants } from \"./toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants>\n>({\n size: \"default\",\n variant: \"default\",\n})\n\nconst ToggleGroup = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants>\n>(({ className, variant, size, children, ...props }, ref) => (\n <ToggleGroupPrimitive.Root\n ref={ref}\n className={cn(\"flex items-center justify-center gap-1\", className)}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n))\n\nToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName\n\nconst ToggleGroupItem = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>\n>(({ className, children, variant, size, ...props }, ref) => {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <ToggleGroupPrimitive.Item\n ref={ref}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n})\n\nToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName\n\nexport { ToggleGroup, ToggleGroupItem }\n","import * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nconst Collapsible = CollapsiblePrimitive.Root\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","import * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar }\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\nconst DialogSafeSelect = SelectPrimitive.Root;\n\nconst DialogSafeSelectGroup = SelectPrimitive.Group;\n\nconst DialogSafeSelectValue = SelectPrimitive.Value;\n\nconst DialogSafeSelectTrigger = 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));\nDialogSafeSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst DialogSafeSelectScrollUpButton = 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));\nDialogSafeSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst DialogSafeSelectScrollDownButton = 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));\nDialogSafeSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;\n\nconst DialogSafeSelectContent = 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.NESTED_MODAL} 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 // Accessibility improvements for dialog usage\n onCloseAutoFocus={(e) => {\n // Prevent focus issues when closing\n e.preventDefault();\n }}\n onPointerDownOutside={(e) => {\n // Prevent closing on dialog interaction\n const target = e.target as Element;\n const dialog = target.closest('[data-radix-dialog-content]');\n if (dialog) {\n e.preventDefault();\n }\n }}\n {...props}\n >\n <DialogSafeSelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"min-h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <DialogSafeSelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nDialogSafeSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst DialogSafeSelectLabel = 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));\nDialogSafeSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst DialogSafeSelectItem = 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));\nDialogSafeSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst DialogSafeSelectSeparator = 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));\nDialogSafeSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n DialogSafeSelect,\n DialogSafeSelectGroup,\n DialogSafeSelectValue,\n DialogSafeSelectTrigger,\n DialogSafeSelectContent,\n DialogSafeSelectLabel,\n DialogSafeSelectItem,\n DialogSafeSelectSeparator,\n DialogSafeSelectScrollUpButton,\n DialogSafeSelectScrollDownButton,\n}; ","\"use client\"\n\nimport * as React from \"react\"\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from '@genispace/geniapp/utils'\nimport { Z_INDEX_CLASSES } from '../../styles/z-index-layers'\n\nconst DropdownMenu = DropdownMenuPrimitive.Root\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n))\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n Z_INDEX_CLASSES.OVERLAY_POPOVER,\n \"min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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-dropdown-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n Z_INDEX_CLASSES.OVERLAY_POPOVER,\n \"max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden custom-scrollbar rounded-md border bg-popover p-1 text-popover-foreground shadow-md\",\n \"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-dropdown-menu-content-transform-origin]\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n))\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n))\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors 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 left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n))\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n))\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n )\n}\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\"\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n","import * as React from \"react\"\nimport { Check, ChevronDown, X } from \"lucide-react\"\nimport { cn } from '@genispace/geniapp/utils'\nimport { Popover, PopoverTrigger, PopoverContent } from './popover'\nimport { Checkbox } from './checkbox'\nimport { Button } from './button'\n\nexport interface MultiSelectOption {\n label: string\n value: string\n disabled?: boolean\n}\n\nexport interface MultiSelectProps {\n options: MultiSelectOption[]\n value?: string[]\n onChange?: (value: string[]) => void\n placeholder?: string\n disabled?: boolean\n className?: string\n triggerClassName?: string\n contentClassName?: string\n maxDisplayCount?: number \n showClearButton?: boolean \n emptyText?: string \n}\n\nexport const MultiSelect = React.forwardRef<HTMLButtonElement, MultiSelectProps>(\n (\n {\n options,\n value = [],\n onChange,\n placeholder = \"Please select\",\n disabled = false,\n className,\n triggerClassName,\n contentClassName,\n maxDisplayCount = 3,\n showClearButton = true,\n emptyText = \"No options\",\n },\n ref\n ) => {\n const [open, setOpen] = React.useState(false)\n const selectedValues = React.useMemo(\n () => (Array.isArray(value) ? value : []),\n [value]\n )\n\n const selectedOptions = React.useMemo(() => {\n return options.filter(opt => selectedValues.includes(opt.value))\n }, [options, selectedValues])\n\n const getDisplayText = () => {\n if (selectedOptions.length === 0) {\n return placeholder\n }\n\n if (selectedOptions.length <= maxDisplayCount) {\n return selectedOptions.map(opt => opt.label).join(', ')\n }\n\n const displayed = selectedOptions.slice(0, maxDisplayCount)\n const remaining = selectedOptions.length - maxDisplayCount\n return `${displayed.map(opt => opt.label).join(', ')} +${remaining}`\n }\n\n const handleToggleOption = (optionValue: string) => {\n if (disabled) return\n\n const newValues = selectedValues.includes(optionValue)\n ? selectedValues.filter(v => v !== optionValue)\n : [...selectedValues, optionValue]\n\n onChange?.(newValues)\n }\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation()\n onChange?.([])\n }\n\n const handleSelectAll = () => {\n const allValues = options.filter(opt => !opt.disabled).map(opt => opt.value)\n if (selectedValues.length === allValues.length) {\n onChange?.([])\n } else {\n onChange?.(allValues)\n }\n }\n\n const allSelected = options.filter(opt => !opt.disabled).length > 0 && \n selectedValues.length === options.filter(opt => !opt.disabled).length\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n ref={ref}\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n className={cn(\n \"h-9 w-full justify-between text-left font-normal\",\n !selectedOptions.length && \"text-muted-foreground\",\n triggerClassName,\n className\n )}\n >\n <span className=\"truncate flex-1 text-left\">\n {getDisplayText()}\n </span>\n <div className=\"flex items-center gap-1 ml-2 shrink-0\">\n {showClearButton && selectedOptions.length > 0 && (\n <X\n className=\"h-4 w-4 opacity-50 hover:opacity-100 transition-opacity\"\n onClick={handleClear}\n />\n )}\n <ChevronDown className=\"h-4 w-4 opacity-50 shrink-0\" />\n </div>\n </Button>\n </PopoverTrigger>\n <PopoverContent \n className={cn(\"w-[var(--radix-popover-trigger-width)] p-0\", contentClassName)}\n align=\"start\"\n onOpenAutoFocus={(e) => e.preventDefault()}\n >\n <div className=\"max-h-[300px] overflow-y-auto\">\n {options.length === 0 ? (\n <div className=\"px-3 py-6 text-center text-sm text-muted-foreground\">\n {emptyText}\n </div>\n ) : (\n <>\n {options.filter(opt => !opt.disabled).length > 0 && (\n <div className=\"px-2 py-1.5 border-b\">\n <div\n className=\"flex items-center gap-2 px-2 py-1.5 rounded-sm hover:bg-accent cursor-pointer\"\n onClick={handleSelectAll}\n >\n <Checkbox\n checked={allSelected}\n onCheckedChange={handleSelectAll}\n onClick={(e) => e.stopPropagation()}\n />\n <span className=\"text-sm font-medium\">\n {allSelected ? 'Deselect all' : 'Select all'}\n </span>\n </div>\n </div>\n )}\n\n <div className=\"p-1\">\n {options.map((option) => {\n const isSelected = selectedValues.includes(option.value)\n return (\n <div\n key={option.value}\n className={cn(\n \"flex items-center gap-2 px-2 py-1.5 rounded-sm cursor-pointer hover:bg-accent transition-colors\",\n option.disabled && \"opacity-50 cursor-not-allowed\"\n )}\n onClick={() => !option.disabled && handleToggleOption(option.value)}\n >\n <Checkbox\n checked={isSelected}\n disabled={option.disabled}\n onCheckedChange={() => !option.disabled && handleToggleOption(option.value)}\n onClick={(e) => e.stopPropagation()}\n />\n <span className=\"text-sm flex-1\">{option.label}</span>\n {isSelected && (\n <Check className=\"h-4 w-4 text-primary shrink-0\" />\n )}\n </div>\n )\n })}\n </div>\n </>\n )}\n </div>\n </PopoverContent>\n </Popover>\n )\n }\n)\n\nMultiSelect.displayName = \"MultiSelect\"\n\n","import * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from '@genispace/geniapp/utils'\nimport { Z_INDEX_CLASSES } from '../../styles/z-index-layers'\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n `${Z_INDEX_CLASSES.TOOLTIP} overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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-tooltip-content-transform-origin]`,\n className\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\n))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","import * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { Circle } from \"lucide-react\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Root\n className={cn(\"grid gap-2\", className)}\n {...props}\n ref={ref}\n />\n )\n})\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-neutral-300 dark:border-neutral-700 text-primary shadow focus:outline-none focus-visible:ring-1 focus-visible:ring-primary disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n})\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName\n\nexport { RadioGroup, RadioGroupItem } ","import { AppDatePicker } from '../features/app/AppDatePicker';\n\nexport interface DatePickerProps {\n selected?: Date;\n onChange?: (date: Date | undefined) => void;\n placeholderText?: string;\n className?: string;\n compact?: boolean;\n locale?: string;\n}\n\nfunction toValue(date?: Date): string {\n if (!date) return '';\n return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;\n}\n\nexport function DatePicker({ selected, onChange, placeholderText, className, compact = false, locale }: DatePickerProps) {\n return (\n <AppDatePicker\n value={toValue(selected)}\n onChange={(value) => onChange?.(value ? new Date(`${value}T00:00:00`) : undefined)}\n placeholder={placeholderText}\n locale={locale}\n className={className}\n triggerClassName={compact ? 'h-8 px-2 text-sm' : undefined}\n />\n );\n}\n","import * as React from \"react\";\nimport { ModalContainer } from \"./modal-container\";\nimport { CheckCircle, XCircle, AlertTriangle, Info } from \"lucide-react\";\nimport { cn } from '@genispace/geniapp/utils';\nimport { useTranslation } from \"react-i18next\";\n\nexport type AlertType = 'success' | 'error' | 'warning' | 'info';\n\nconst AlertIcons: Record<AlertType, React.ComponentType<{ className?: string }>> = {\n success: CheckCircle,\n error: XCircle,\n warning: AlertTriangle,\n info: Info,\n};\n\nconst AlertStyles: Record<AlertType, {\n iconColor: string;\n buttonColor: string;\n}> = {\n success: {\n iconColor: \"text-green-500 dark:text-green-400\",\n buttonColor: \"bg-green-600 hover:bg-green-700 dark:bg-green-500 dark:hover:bg-green-600\",\n },\n error: {\n iconColor: \"text-red-500 dark:text-red-400\", \n buttonColor: \"bg-red-600 hover:bg-red-700 dark:bg-red-500 dark:hover:bg-red-600\",\n },\n warning: {\n iconColor: \"text-orange-500 dark:text-orange-400\",\n buttonColor: \"bg-orange-600 hover:bg-orange-700 dark:bg-orange-500 dark:hover:bg-orange-600\",\n },\n info: {\n iconColor: \"text-brand-primary dark:text-neutral-400\",\n buttonColor: \"bg-brand-primary-light hover:bg-brand-primary dark:bg-brand-primary dark:hover:bg-brand-primary-light\",\n },\n};\n\ninterface AlertDialogProps {\n\n isOpen: boolean;\n\n onClose: () => void;\n\n type?: AlertType;\n\n title?: string;\n\n message: string;\n\n confirmText?: string;\n\n onConfirm?: () => void;\n\n showCancel?: boolean;\n\n cancelText?: string;\n\n onCancel?: () => void;\n\n loading?: boolean;\n}\n\nexport const AlertDialog: React.FC<AlertDialogProps> = ({\n isOpen,\n onClose,\n type = 'info',\n title,\n message,\n confirmText,\n onConfirm,\n showCancel = false,\n cancelText,\n onCancel,\n loading = false,\n}) => {\n const { t } = useTranslation('common');\n const IconComponent = AlertIcons[type];\n const styles = AlertStyles[type];\n\n const defaultTitle = {\n success: t('dialog.title.success', 'Success'),\n error: t('dialog.title.error', 'Error'),\n warning: t('dialog.title.warning', 'Warning'),\n info: t('dialog.title.info', 'Information'),\n }[type];\n\n const defaultConfirmText = confirmText || t('dialog.button.confirm', 'OK');\n const defaultCancelText = cancelText || t('dialog.button.cancel', 'Cancel');\n\n const handleConfirm = () => {\n if (onConfirm) {\n onConfirm();\n } else {\n onClose();\n }\n };\n\n const handleCancel = () => {\n if (onCancel) {\n onCancel();\n } else {\n onClose();\n }\n };\n\n return (\n <ModalContainer\n size=\"STANDARD\"\n isOpen={isOpen}\n onClose={onClose}\n showCloseButton={false}\n closeOnOverlayClick={!loading}\n contentClassName=\"max-w-md shadow-2xl\" \n >\n <div className=\"p-6 bg-white dark:bg-neutral-900 rounded-lg\">\n <div className=\"flex items-center gap-4 mb-4\">\n <div className={cn(\"flex-shrink-0\", styles.iconColor)}>\n <IconComponent className=\"w-8 h-8\" />\n </div>\n <div className=\"flex-1\">\n {(title || defaultTitle) && (\n <h3 className=\"text-lg font-semibold text-neutral-900 dark:text-neutral-100 mb-1\">\n {title || defaultTitle}\n </h3>\n )}\n </div>\n </div>\n\n <div className=\"mb-6\">\n <p className=\"text-neutral-700 dark:text-neutral-200 whitespace-pre-line leading-relaxed\">\n {message}\n </p>\n </div>\n\n <div className=\"flex items-center justify-end gap-3\">\n {showCancel && (\n <button\n type=\"button\"\n onClick={handleCancel}\n disabled={loading}\n className=\"px-4 py-2 text-sm font-medium text-neutral-700 dark:text-neutral-200 bg-white dark:bg-neutral-800 border border-neutral-300 dark:border-neutral-600 rounded-lg hover:bg-neutral-50 dark:hover:bg-neutral-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring transition-colors disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n {defaultCancelText}\n </button>\n )}\n\n <button\n type=\"button\"\n onClick={handleConfirm}\n disabled={loading}\n className={cn(\n \"px-4 py-2 text-sm font-medium text-white dark:text-white rounded-lg transition-colors flex items-center gap-2 disabled:opacity-50 disabled:cursor-not-allowed focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-white dark:focus:ring-offset-neutral-900 shadow-sm\",\n styles.buttonColor\n )}\n >\n {loading && (\n <div className=\"w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin\" />\n )}\n {defaultConfirmText}\n </button>\n </div>\n </div>\n </ModalContainer>\n );\n};\n\ninterface AlertState {\n isOpen: boolean;\n type: AlertType;\n title?: string;\n message: string;\n confirmText?: string;\n onConfirm?: () => void | Promise<void>;\n showCancel?: boolean;\n cancelText?: string;\n onCancel?: () => void;\n loading?: boolean;\n}\n\n// Alert Context\ninterface AlertContextType {\n showAlert: (options: Omit<AlertState, 'isOpen'>) => void;\n hideAlert: () => void;\n setLoading: (loading: boolean) => void;\n state: AlertState;\n}\n\nconst AlertContext = React.createContext<AlertContextType | undefined>(undefined);\n\nexport const AlertProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [state, setState] = React.useState<AlertState>({\n isOpen: false,\n type: 'info',\n message: '',\n });\n\n const showAlert = React.useCallback((options: Omit<AlertState, 'isOpen'>) => {\n setState({\n ...options,\n isOpen: true,\n });\n }, []);\n\n const hideAlert = React.useCallback(() => {\n setState(prev => ({\n ...prev,\n isOpen: false,\n }));\n }, []);\n\n const setLoading = React.useCallback((loading: boolean) => {\n setState(prev => ({\n ...prev,\n loading,\n }));\n }, []);\n\n const value = React.useMemo(() => ({\n showAlert,\n hideAlert,\n setLoading,\n state,\n }), [showAlert, hideAlert, setLoading, state]);\n\n return (\n <AlertContext.Provider value={value}>\n {children}\n <AlertDialog\n isOpen={state.isOpen}\n onClose={hideAlert}\n type={state.type}\n title={state.title}\n message={state.message}\n confirmText={state.confirmText}\n onConfirm={state.onConfirm}\n showCancel={state.showCancel}\n cancelText={state.cancelText}\n onCancel={state.onCancel}\n loading={state.loading}\n />\n </AlertContext.Provider>\n );\n};\n\n// Alert Hook\nexport const useAlert = () => {\n const context = React.useContext(AlertContext);\n if (!context) {\n throw new Error('useAlert must be used within AlertProvider');\n }\n return context;\n};\n\nexport const useAlertDialog = () => {\n const { showAlert, hideAlert, setLoading } = useAlert();\n const { t } = useTranslation('common');\n\n return React.useMemo(() => ({\n\n success: (message: string, options?: Partial<Omit<AlertState, 'isOpen' | 'type' | 'message'>>) => {\n showAlert({\n type: 'success',\n message,\n ...options,\n });\n },\n\n error: (message: string, options?: Partial<Omit<AlertState, 'isOpen' | 'type' | 'message'>>) => {\n showAlert({\n type: 'error',\n message,\n ...options,\n });\n },\n\n warning: (message: string, options?: Partial<Omit<AlertState, 'isOpen' | 'type' | 'message'>>) => {\n showAlert({\n type: 'warning',\n message,\n ...options,\n });\n },\n\n info: (message: string, options?: Partial<Omit<AlertState, 'isOpen' | 'type' | 'message'>>) => {\n showAlert({\n type: 'info',\n message,\n ...options,\n });\n },\n\n confirm: (\n message: string, \n onConfirm: () => void | Promise<void>,\n options?: Partial<Omit<AlertState, 'isOpen' | 'message' | 'onConfirm' | 'showCancel'>>\n ) => {\n showAlert({\n type: options?.type || 'warning',\n title: options?.title || t('dialog.title.confirm', 'Confirm Operation'),\n message,\n onConfirm: async () => {\n\n const result = onConfirm();\n if (result instanceof Promise) {\n setLoading(true);\n\n try {\n await result;\n hideAlert();\n } catch (error) {\n setLoading(false);\n console.error('Confirm operation failed:', error);\n throw error;\n }\n } else {\n\n hideAlert();\n }\n },\n showCancel: true,\n confirmText: options?.confirmText || t('dialog.button.confirm', 'OK'),\n cancelText: options?.cancelText || t('dialog.button.cancel', 'Cancel'),\n ...options,\n });\n },\n\n confirmDelete: (\n message: string,\n onConfirm: () => Promise<void>,\n options?: Partial<Omit<AlertState, 'isOpen' | 'message' | 'onConfirm' | 'showCancel' | 'type'>>\n ) => {\n showAlert({\n type: 'error',\n title: options?.title || t('dialog.title.delete', 'Delete Confirmation'),\n message,\n onConfirm: async () => {\n\n setLoading(true);\n\n try {\n\n await onConfirm();\n\n hideAlert();\n } catch (error) {\n\n setLoading(false);\n\n console.error('Delete operation failed:', error);\n throw error; \n }\n },\n showCancel: true,\n confirmText: options?.confirmText || t('dialog.button.delete', 'Delete'),\n cancelText: options?.cancelText || t('dialog.button.cancel', 'Cancel'),\n ...options,\n });\n },\n\n hide: hideAlert,\n }), [showAlert, hideAlert, setLoading, t]);\n};\n\nexport default AlertDialog;\n","import * as React from \"react\"\n\nimport { cn } from '@genispace/geniapp/utils'\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n))\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n))\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n))\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n))\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n))\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-11 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"px-4 py-3 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nTableCaption.displayName = \"TableCaption\"\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","import * as React from 'react';\nimport * as RechartsPrimitive from 'recharts';\nimport { cn } from '@genispace/geniapp/utils';\n\nexport type ChartConfig = Record<\n string,\n {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n color?: string;\n }\n>;\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />');\n }\n return context;\n}\n\nexport function ChartContainer({\n id,\n className,\n children,\n config,\n ...props\n}: React.ComponentProps<'div'> & {\n config: ChartConfig;\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];\n}) {\n const uniqueId = React.useId();\n const chartId = `chart-${id ?? uniqueId.replace(/:/g, '')}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n className={cn(\n 'flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke=\"#ccc\"]]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke=\"#fff\"]]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke=\"#ccc\"]]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke=\"#ccc\"]]:stroke-border [&_.recharts-sector[stroke=\"#fff\"]]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none',\n className\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n}\n\nfunction ChartStyle({ id, config }: { id: string; config: ChartConfig }) {\n const colorConfig = Object.entries(config).filter(([, item]) => item.color);\n if (colorConfig.length === 0) return null;\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(config)\n .filter(([, item]) => item.color)\n .map(\n ([key, item]) =>\n `[data-chart=${id}] { --color-${key}: ${item.color}; }`\n )\n .join('\\n'),\n }}\n />\n );\n}\n\nexport const ChartTooltip = RechartsPrimitive.Tooltip;\n\nexport function ChartTooltipContent({\n active,\n payload,\n label,\n className,\n hideLabel = false,\n}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<'div'> & {\n hideLabel?: boolean;\n }) {\n const { config } = useChart();\n\n if (!active || !payload?.length) {\n return null;\n }\n\n return (\n <div\n className={cn(\n 'grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl',\n className\n )}\n >\n {!hideLabel && label != null && (\n <div className=\"font-medium text-foreground\">{String(label)}</div>\n )}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${String(item.name ?? item.dataKey ?? 'value')}`;\n const itemConfig = config[key as keyof typeof config];\n const indicatorColor = item.color ?? (item.payload as { fill?: string } | undefined)?.fill ?? itemConfig?.color;\n\n return (\n <div\n key={index}\n className=\"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground\"\n >\n <div\n className=\"shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]\"\n style={\n {\n '--color-bg': indicatorColor,\n '--color-border': indicatorColor,\n } as React.CSSProperties\n }\n />\n <div className=\"flex flex-1 justify-between leading-none\">\n <span className=\"text-muted-foreground\">\n {itemConfig?.label ?? item.name ?? key}\n </span>\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {typeof item.value === 'number'\n ? item.value.toLocaleString()\n : String(item.value ?? '')}\n </span>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n\nexport const ChartLegend = RechartsPrimitive.Legend;\n","import * as React from 'react';\nimport { BookOpen } from 'lucide-react';\n\nimport { cn } from '@genispace/geniapp/utils';\n\nimport { Button, type ButtonProps } from './button';\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from './sheet';\n\nexport interface FeatureGuideStep {\n /** Step heading */\n title: React.ReactNode;\n /** Step body — free-form content */\n body: React.ReactNode;\n /** Optional illustration URL rendered below the body */\n image?: string;\n /** Alt text for the illustration (i18n) */\n imageAlt?: string;\n}\n\nexport interface FeatureGuideProps {\n /** Controlled open state */\n open: boolean;\n /** Controlled open state change handler */\n onOpenChange: (open: boolean) => void;\n /** Guide title */\n title: React.ReactNode;\n /** Optional short description under the title */\n description?: React.ReactNode;\n /** Ordered walkthrough steps */\n steps: FeatureGuideStep[];\n /** Optional footer slot (e.g. docs link, \"Got it\" button) */\n footer?: React.ReactNode;\n /** Extra classes for the sheet content */\n className?: string;\n}\n\n/**\n * FeatureGuide — right-side sheet walking users through a feature in numbered steps.\n * Fully controlled: callers own the `open` state and wire their own trigger\n * (or use the `FeatureGuideTrigger` convenience button).\n */\nexport function FeatureGuide({\n open,\n onOpenChange,\n title,\n description,\n steps,\n footer,\n className,\n}: FeatureGuideProps) {\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent\n side=\"right\"\n className={cn('flex w-full flex-col sm:max-w-md', className)}\n >\n <SheetHeader>\n <SheetTitle>{title}</SheetTitle>\n {description ? <SheetDescription>{description}</SheetDescription> : null}\n </SheetHeader>\n <div className=\"-mx-1 flex-1 overflow-y-auto px-1\">\n <ol className=\"space-y-6 py-2\">\n {steps.map((step, index) => (\n <li key={index} className=\"flex gap-3\">\n <span\n aria-hidden\n className=\"flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary text-xs font-medium text-primary-foreground\"\n >\n {index + 1}\n </span>\n <div className=\"min-w-0 flex-1 space-y-1.5\">\n <p className=\"text-sm font-semibold leading-6 text-foreground\">\n {step.title}\n </p>\n <div className=\"text-sm leading-relaxed text-muted-foreground\">\n {step.body}\n </div>\n {step.image ? (\n <img\n src={step.image}\n alt={step.imageAlt ?? ''}\n loading=\"lazy\"\n className=\"mt-2 w-full rounded-lg border object-cover\"\n />\n ) : null}\n </div>\n </li>\n ))}\n </ol>\n </div>\n {footer ? <div className=\"border-t pt-4\">{footer}</div> : null}\n </SheetContent>\n </Sheet>\n );\n}\n\nexport interface FeatureGuideTriggerProps extends Omit<ButtonProps, 'asChild'> {\n /** Trigger label content */\n children?: React.ReactNode;\n}\n\n/**\n * FeatureGuideTrigger — convenience ghost button with a BookOpen icon.\n * Wire `onClick` to open the controlled `FeatureGuide`.\n */\nexport const FeatureGuideTrigger = React.forwardRef<\n HTMLButtonElement,\n FeatureGuideTriggerProps\n>(function FeatureGuideTrigger({ children = 'Guide', className, ...props }, ref) {\n return (\n <Button ref={ref} type=\"button\" variant=\"ghost\" size=\"sm\" className={className} {...props}>\n <BookOpen className=\"h-4 w-4\" aria-hidden />\n {children}\n </Button>\n );\n});\n","import * as React from 'react';\nimport { RotateCcw, Settings2 } from 'lucide-react';\n\nimport { cn } from '@genispace/geniapp/utils';\n\nimport { Button } from './button';\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from './dropdown-menu';\n\nexport interface ColumnConfigColumn {\n /** Stable column identifier persisted to localStorage */\n key: string;\n /** Human-readable label shown in the menu */\n label: React.ReactNode;\n}\n\nexport interface UseColumnConfigResult {\n /** Keys of currently visible columns, in `allColumns` order */\n visibleKeys: string[];\n /** Whether a given column key is visible */\n isVisible: (key: string) => boolean;\n /** Toggle visibility of a column */\n toggle: (key: string) => void;\n /** Restore the default visibility (clears persisted state) */\n reset: () => void;\n}\n\nfunction readHiddenKeys(storageKey: string, fallback: string[]): string[] {\n if (typeof window === 'undefined') return fallback;\n try {\n const raw = window.localStorage.getItem(storageKey);\n if (!raw) return fallback;\n const parsed = JSON.parse(raw);\n if (Array.isArray(parsed) && parsed.every((k) => typeof k === 'string')) {\n return parsed;\n }\n } catch {\n // Ignore malformed persisted state and fall back to defaults.\n }\n return fallback;\n}\n\n/**\n * useColumnConfig — client-side column visibility state persisted to localStorage.\n * Tables consume `isVisible(key)` to filter their column arrays; pair with\n * `ColumnConfigMenu` for the standard configuration dropdown.\n */\nexport function useColumnConfig(\n storageKey: string,\n allColumns: ColumnConfigColumn[],\n defaultHidden: string[] = []\n): UseColumnConfigResult {\n const defaultHiddenRef = React.useRef(defaultHidden);\n defaultHiddenRef.current = defaultHidden;\n\n const [hiddenKeys, setHiddenKeys] = React.useState<string[]>(() =>\n readHiddenKeys(storageKey, defaultHidden)\n );\n\n // Re-read persisted state when the storage key changes.\n React.useEffect(() => {\n setHiddenKeys(readHiddenKeys(storageKey, defaultHiddenRef.current));\n }, [storageKey]);\n\n const isVisible = React.useCallback(\n (key: string) => !hiddenKeys.includes(key),\n [hiddenKeys]\n );\n\n const toggle = React.useCallback(\n (key: string) => {\n setHiddenKeys((prev) => {\n const next = prev.includes(key)\n ? prev.filter((k) => k !== key)\n : [...prev, key];\n try {\n window.localStorage.setItem(storageKey, JSON.stringify(next));\n } catch {\n // Persisting is best-effort (private mode, quota, SSR).\n }\n return next;\n });\n },\n [storageKey]\n );\n\n const reset = React.useCallback(() => {\n setHiddenKeys(defaultHiddenRef.current);\n try {\n window.localStorage.removeItem(storageKey);\n } catch {\n // Best-effort.\n }\n }, [storageKey]);\n\n const visibleKeys = React.useMemo(\n () => allColumns.map((c) => c.key).filter((key) => !hiddenKeys.includes(key)),\n [allColumns, hiddenKeys]\n );\n\n return { visibleKeys, isVisible, toggle, reset };\n}\n\nexport interface ColumnConfigMenuProps {\n /** Column definitions to list in the menu */\n columns: ColumnConfigColumn[];\n /** Result of `useColumnConfig` */\n hook: UseColumnConfigResult;\n /** Accessible label for the trigger button (i18n override) */\n label?: string;\n /** Menu heading (i18n override) */\n menuLabel?: string;\n /** Reset item label (i18n override) */\n resetLabel?: string;\n /** Extra classes for the trigger button */\n className?: string;\n}\n\n/**\n * ColumnConfigMenu — standard \"configure columns\" dropdown (Settings2 ghost icon\n * button) with a checkbox item per column and a reset item.\n */\nexport function ColumnConfigMenu({\n columns,\n hook,\n label = 'Configure columns',\n menuLabel = 'Columns',\n resetLabel = 'Reset columns',\n className,\n}: ColumnConfigMenuProps) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n aria-label={label}\n className={cn('shrink-0', className)}\n >\n <Settings2 className=\"h-4 w-4\" aria-hidden />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-52\">\n <DropdownMenuLabel>{menuLabel}</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {columns.map((column) => (\n <DropdownMenuCheckboxItem\n key={column.key}\n checked={hook.isVisible(column.key)}\n onCheckedChange={() => hook.toggle(column.key)}\n // Keep the menu open while toggling multiple columns.\n onSelect={(event) => event.preventDefault()}\n >\n {column.label}\n </DropdownMenuCheckboxItem>\n ))}\n <DropdownMenuSeparator />\n <DropdownMenuItem onSelect={() => hook.reset()}>\n <RotateCcw className=\"mr-2 h-3.5 w-3.5\" aria-hidden />\n {resetLabel}\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n","\"use client\"\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\"\n\nimport type {\n ToastActionElement,\n ToastProps,\n} from '../../ui/toast'\n\nconst TOAST_LIMIT = 1\nconst TOAST_REMOVE_DELAY = 1000\nconst TOAST_DEFAULT_DURATION = 5000 \n\ntype ToasterToast = ToastProps & {\n id: string\n title?: React.ReactNode\n description?: React.ReactNode\n action?: ToastActionElement\n duration?: number \n}\n\ntype ActionTypes = {\n ADD_TOAST: \"ADD_TOAST\";\n UPDATE_TOAST: \"UPDATE_TOAST\";\n DISMISS_TOAST: \"DISMISS_TOAST\";\n REMOVE_TOAST: \"REMOVE_TOAST\";\n}\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const satisfies ActionTypes\n\n// Export actionTypes for use in reducer\nexport { actionTypes };\n\nlet count = 0\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER\n return count.toString()\n}\n\ntype ActionType = typeof actionTypes\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"]\n toast: ToasterToast\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"]\n toast: Partial<ToasterToast>\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"]\n toastId?: ToasterToast[\"id\"]\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"]\n toastId?: ToasterToast[\"id\"]\n }\n\ninterface State {\n toasts: ToasterToast[]\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>()\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId)\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n })\n }, TOAST_REMOVE_DELAY)\n\n toastTimeouts.set(toastId, timeout)\n}\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n }\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t\n ),\n }\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId)\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id)\n })\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t\n ),\n }\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n }\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n }\n }\n}\n\nconst listeners: Array<(state: State) => void> = []\n\nlet memoryState: State = { toasts: [] }\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action)\n listeners.forEach((listener) => {\n listener(memoryState)\n })\n}\n\ntype Toast = Omit<ToasterToast, \"id\">\n\nfunction toast({ duration = TOAST_DEFAULT_DURATION, ...props }: Toast) {\n const id = genId()\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n })\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id })\n\n if (duration > 0) {\n setTimeout(() => {\n dismiss()\n }, duration)\n }\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n duration,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss()\n },\n },\n })\n\n return {\n id: id,\n dismiss,\n update,\n }\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState)\n\n React.useEffect(() => {\n listeners.push(setState)\n return () => {\n const index = listeners.indexOf(setState)\n if (index > -1) {\n listeners.splice(index, 1)\n }\n }\n }, [state])\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n }\n}\n\nexport { useToast, toast }\n","import * as React from \"react\"\nimport * as ToastPrimitives from \"@radix-ui/react-toast\"\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 ToastProvider = ToastPrimitives.Provider\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\n\n `fixed top-4 left-1/2 transform -translate-x-1/2 ${Z_INDEX_CLASSES.TOAST} flex max-h-screen w-[calc(100vw-2rem)] max-w-sm flex-col gap-2 p-0`,\n\n \"sm:top-auto sm:bottom-4 sm:left-auto sm:right-4 sm:transform-none sm:translate-x-0 sm:w-full sm:max-w-[420px] sm:flex-col\",\n className\n )}\n {...props}\n />\n))\nToastViewport.displayName = ToastPrimitives.Viewport.displayName\n\nconst toastVariants = cva(\n \"group pointer-events-auto relative flex w-full items-center justify-between space-x-3 overflow-hidden rounded-lg border shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full p-3 pr-5 sm:p-4 sm:pr-6 sm:space-x-4\",\n {\n variants: {\n variant: {\n default: \"border bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60 text-foreground\",\n destructive:\n \"destructive group border-destructive/50 bg-destructive/95 backdrop-blur supports-[backdrop-filter]:bg-destructive/60 text-destructive-foreground\",\n success:\n \"success group border-green-500/50 bg-green-500/95 backdrop-blur supports-[backdrop-filter]:bg-green-500/60 text-green-50 dark:border-green-600/50 dark:bg-green-600/95 dark:supports-[backdrop-filter]:bg-green-600/60 dark:text-green-50\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> &\n VariantProps<typeof toastVariants>\n>(({ className, variant, ...props }, ref) => {\n return (\n <ToastPrimitives.Root\n ref={ref}\n className={cn(toastVariants({ variant }), className)}\n {...props}\n />\n )\n})\nToast.displayName = ToastPrimitives.Root.displayName\n\nconst ToastAction = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n \"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive\",\n className\n )}\n {...props}\n />\n))\nToastAction.displayName = ToastPrimitives.Action.displayName\n\nconst ToastClose = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Close\n ref={ref}\n className={cn(\n \"absolute right-1.5 top-1.5 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus-visible:ring-ring group-[.destructive]:focus:ring-offset-red-600 sm:right-2 sm:top-2\",\n className\n )}\n toast-close=\"\"\n {...props}\n >\n <X className=\"h-3.5 w-3.5 sm:h-4 sm:w-4\" />\n </ToastPrimitives.Close>\n))\nToastClose.displayName = ToastPrimitives.Close.displayName\n\nconst ToastTitle = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Title\n ref={ref}\n className={cn(\"text-sm font-semibold leading-tight [&+div]:text-xs sm:text-sm\", className)}\n {...props}\n />\n))\nToastTitle.displayName = ToastPrimitives.Title.displayName\n\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Description\n ref={ref}\n className={cn(\"text-xs opacity-90 mt-0.5 leading-relaxed sm:text-sm\", className)}\n {...props}\n />\n))\nToastDescription.displayName = ToastPrimitives.Description.displayName\n\ninterface ToastProgressBarProps {\n duration: number\n variant?: \"default\" | \"destructive\" | \"success\"\n onComplete?: () => void\n}\n\nconst ToastProgressBar = React.forwardRef<\n HTMLDivElement,\n ToastProgressBarProps\n>(({ duration, variant = \"default\", onComplete }, ref) => {\n const progressBarRef = React.useRef<HTMLDivElement>(null)\n const containerRef = React.useRef<HTMLDivElement>(null)\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout>>()\n\n React.useEffect(() => {\n\n const updateStyles = () => {\n if (containerRef.current) {\n const isDesktop = window.matchMedia(\"(min-width: 640px)\").matches\n if (isDesktop) {\n\n containerRef.current.style.marginLeft = \"-1rem\"\n containerRef.current.style.marginRight = \"-1.5rem\"\n containerRef.current.style.width = \"calc(100% + 1rem + 1.5rem)\"\n } else {\n\n containerRef.current.style.marginLeft = \"-0.75rem\"\n containerRef.current.style.marginRight = \"-1.25rem\"\n containerRef.current.style.width = \"calc(100% + 0.75rem + 1.25rem)\"\n }\n }\n }\n\n updateStyles()\n const mediaQuery = window.matchMedia(\"(min-width: 640px)\")\n mediaQuery.addEventListener(\"change\", updateStyles)\n\n return () => {\n mediaQuery.removeEventListener(\"change\", updateStyles)\n }\n }, [])\n\n React.useEffect(() => {\n\n if (progressBarRef.current) {\n\n progressBarRef.current.style.width = \"100%\"\n progressBarRef.current.style.transformOrigin = \"right center\"\n\n requestAnimationFrame(() => {\n if (progressBarRef.current) {\n progressBarRef.current.style.width = \"0%\"\n progressBarRef.current.style.transition = `width ${duration}ms linear`\n }\n })\n }\n\n timeoutRef.current = setTimeout(() => {\n onComplete?.()\n }, duration)\n\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n }\n }\n }, [duration, onComplete])\n\n const progressBarColor = React.useMemo(() => {\n switch (variant) {\n case \"destructive\":\n return \"bg-destructive\"\n case \"success\":\n return \"bg-green-500 dark:bg-green-600\"\n default:\n return \"bg-primary\"\n }\n }, [variant])\n\n return (\n <div\n ref={(node) => {\n ;(containerRef as React.MutableRefObject<HTMLDivElement | null>).current = node\n if (typeof ref === \"function\") {\n ref(node)\n } else if (ref) {\n ;(ref as React.MutableRefObject<HTMLDivElement | null>).current = node\n }\n }}\n className=\"absolute bottom-0 left-0 right-0 h-1 bg-black/10 dark:bg-white/10 overflow-hidden rounded-b-lg\"\n >\n <div\n ref={progressBarRef}\n className={cn(\n \"h-full absolute right-0\", \n progressBarColor\n )}\n style={{\n width: \"100%\",\n }}\n />\n </div>\n )\n})\nToastProgressBar.displayName = \"ToastProgressBar\"\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>\n\nexport {\n type ToastProps,\n type ToastActionElement,\n ToastProvider,\n ToastViewport,\n Toast,\n ToastTitle,\n ToastDescription,\n ToastClose,\n ToastAction,\n ToastProgressBar,\n}\n","import { useToast } from \"./use-toast\"\nimport {\n Toast,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastTitle,\n ToastViewport,\n ToastProgressBar,\n} from '../../ui/toast'\n\nexport function Toaster() {\n const { toasts, dismiss } = useToast()\n\n return (\n <ToastProvider>\n {toasts.map(function ({ id, title, description, action, duration, variant, ...props }) {\n const toastVariant = variant ?? undefined\n return (\n <Toast key={id} variant={toastVariant} {...props}>\n <div className=\"grid gap-1\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && (\n <ToastDescription>{description}</ToastDescription>\n )}\n </div>\n {action}\n <ToastClose />\n {duration && duration > 0 && (\n <ToastProgressBar\n duration={duration}\n variant={toastVariant}\n onComplete={() => {\n\n dismiss(id)\n }}\n />\n )}\n </Toast>\n )\n })}\n <ToastViewport />\n </ToastProvider>\n )\n}\n","import * as React from 'react';\nimport { cn } from '@genispace/geniapp/utils';\n\nexport type FormSectionProps = {\n title: string;\n description?: string;\n children: React.ReactNode;\n className?: string;\n};\n\n/**\n * Grouped form block: title, optional description, and fields (design tokens).\n */\nexport function FormSection({ title, description, children, className }: FormSectionProps) {\n return (\n <section className={cn('space-y-3 rounded-xl border border-border bg-card p-4 shadow-sm', className)}>\n <div className=\"space-y-1\">\n <h3 className=\"text-sm font-semibold leading-none tracking-tight text-foreground\">{title}</h3>\n {description ? <p className=\"text-xs text-muted-foreground\">{description}</p> : null}\n </div>\n <div className=\"space-y-3\">{children}</div>\n </section>\n );\n}\n","import { useEffect, useState } from 'react';\n\n/**\n * Tailwind `sm` breakpoint in px. Below this width we treat the viewport as an\n * H5 / mobile device and switch to the mobile-first layouts (stat grids start at\n * 2 columns, data tables fall back to card lists, denser padding, etc.).\n */\nexport const MOBILE_BREAKPOINT = 640;\n\n/**\n * Reports whether the viewport is narrower than the given breakpoint (default:\n * the Tailwind `sm` boundary, 640px). SSR-safe — returns `false` on the server\n * and during the first client render, then syncs on mount so hydration matches.\n *\n * Use this to switch between desktop and mobile renderings that pure Tailwind\n * responsive classes cannot express — e.g. rendering a card list instead of a\n * `<table>`, or mounting a bottom sheet instead of an inline filter row.\n */\nexport function useIsMobile(breakpoint: number = MOBILE_BREAKPOINT): boolean {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') return;\n\n const query = window.matchMedia(`(max-width: ${breakpoint - 0.02}px)`);\n const update = () => setIsMobile(query.matches);\n\n update();\n query.addEventListener('change', update);\n return () => query.removeEventListener('change', update);\n }, [breakpoint]);\n\n return isMobile;\n}\n"],"names":["Card","React","className","props","ref","jsx","cn","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","badgeVariants","cva","Badge","variant","labelVariants","Label","LabelPrimitive","Textarea","Switch","SwitchPrimitives","Z_INDEX_CLASSES","Slider","value","defaultValue","onValueChange","min","max","step","disabled","internalValue","setInternalValue","sliderRef","thumbRef","currentValue","currentValuePercent","handleMouseDown","e","slider","updateValue","clientX","rect","percent","newValue","newValueArray","handleMouseMove","handleMouseUp","handleKeyDown","jsxs","Progress","percentage","Separator","orientation","alertVariants","Alert","AlertTitle","AlertDescription","hintNoticeCardVariants","hintNoticeIconWrapVariants","DefaultIcon","AlertTriangle","Info","HintNotice","title","children","contentClassName","showIcon","icon","preserveWhitespace","HelpTip","content","moreHref","onMore","moreLabel","label","side","align","hasMore","Popover","PopoverTrigger","HelpCircle","PopoverContent","ArrowUpRight","toneStyles","AiDraftBanner","description","onDismiss","dismissLabel","tone","styles","Sparkles","Tabs","TabsPrimitive","TabsList","TabsTrigger","TabsContent","UnderlineTabs","UnderlineTabsList","underlineTabsTriggerVariants","UnderlineTabsTrigger","UnderlineTabsContent","toggleVariants","Toggle","size","TogglePrimitive","ToggleGroupContext","ToggleGroup","ToggleGroupPrimitive","ToggleGroupItem","context","Collapsible","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","ScrollArea","ScrollAreaPrimitive","ScrollBar","DialogSafeSelect","SelectPrimitive","DialogSafeSelectGroup","DialogSafeSelectValue","DialogSafeSelectTrigger","ChevronDown","DialogSafeSelectScrollUpButton","ChevronUp","DialogSafeSelectScrollDownButton","DialogSafeSelectContent","position","DialogSafeSelectLabel","DialogSafeSelectItem","Check","DialogSafeSelectSeparator","DropdownMenu","DropdownMenuPrimitive","DropdownMenuTrigger","DropdownMenuGroup","DropdownMenuPortal","DropdownMenuSub","DropdownMenuRadioGroup","DropdownMenuSubTrigger","inset","ChevronRight","DropdownMenuSubContent","DropdownMenuContent","sideOffset","DropdownMenuItem","DropdownMenuCheckboxItem","checked","DropdownMenuRadioItem","Circle","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","MultiSelect","options","onChange","placeholder","triggerClassName","maxDisplayCount","showClearButton","emptyText","open","setOpen","selectedValues","selectedOptions","opt","getDisplayText","displayed","remaining","handleToggleOption","optionValue","newValues","v","handleClear","handleSelectAll","allValues","allSelected","Button","Fragment","Checkbox","option","isSelected","TooltipProvider","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","RadioGroup","RadioGroupPrimitive","RadioGroupItem","toValue","date","DatePicker","selected","placeholderText","compact","locale","AppDatePicker","AlertIcons","CheckCircle","XCircle","AlertStyles","AlertDialog","isOpen","onClose","type","message","confirmText","onConfirm","showCancel","cancelText","onCancel","loading","t","useTranslation","IconComponent","defaultTitle","defaultConfirmText","defaultCancelText","handleConfirm","handleCancel","ModalContainer","AlertContext","AlertProvider","state","setState","showAlert","hideAlert","prev","setLoading","useAlert","useAlertDialog","result","error","Table","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","ChartContext","useChart","ChartContainer","id","config","uniqueId","chartId","ChartStyle","RechartsPrimitive","item","key","ChartTooltip","ChartTooltipContent","active","payload","hideLabel","index","itemConfig","indicatorColor","ChartLegend","FeatureGuide","onOpenChange","steps","footer","Sheet","SheetContent","SheetHeader","SheetTitle","SheetDescription","FeatureGuideTrigger","BookOpen","readHiddenKeys","storageKey","fallback","raw","parsed","k","useColumnConfig","allColumns","defaultHidden","defaultHiddenRef","hiddenKeys","setHiddenKeys","isVisible","toggle","next","reset","c","ColumnConfigMenu","columns","hook","menuLabel","resetLabel","Settings2","column","event","RotateCcw","TOAST_LIMIT","TOAST_REMOVE_DELAY","TOAST_DEFAULT_DURATION","count","genId","toastTimeouts","addToRemoveQueue","toastId","timeout","dispatch","reducer","action","toast","listeners","memoryState","listener","duration","update","dismiss","useToast","ToastProvider","ToastPrimitives","ToastViewport","toastVariants","Toast","ToastAction","ToastClose","ToastTitle","ToastDescription","ToastProgressBar","onComplete","progressBarRef","containerRef","timeoutRef","updateStyles","mediaQuery","progressBarColor","node","Toaster","toasts","toastVariant","FormSection","MOBILE_BREAKPOINT","useIsMobile","breakpoint","isMobile","setIsMobile","useState","useEffect","query"],"mappings":"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"}