@alepha/ui 0.17.2 → 0.18.1

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 (270) hide show
  1. package/dist/admin/{AdminApiKeys-CF_qOO3u.js → AdminApiKeys-C-6_Q-lH.js} +56 -192
  2. package/dist/admin/AdminApiKeys-C-6_Q-lH.js.map +1 -0
  3. package/dist/admin/{AdminAudits-BQno3hZG.js → AdminAudits-Bgbf04hO.js} +25 -61
  4. package/dist/admin/AdminAudits-Bgbf04hO.js.map +1 -0
  5. package/dist/admin/{AdminFiles-kvuUaASF.js → AdminFiles-B9a7G3cY.js} +6 -8
  6. package/dist/admin/AdminFiles-B9a7G3cY.js.map +1 -0
  7. package/dist/admin/{AdminJobDashboard-CrPxp0W1.js → AdminJobDashboard-DaTwf5OY.js} +55 -186
  8. package/dist/admin/AdminJobDashboard-DaTwf5OY.js.map +1 -0
  9. package/dist/admin/{AdminJobExecutions-D-b4Zt7W.js → AdminJobExecutions-B9cek5dl.js} +132 -168
  10. package/dist/admin/AdminJobExecutions-B9cek5dl.js.map +1 -0
  11. package/dist/admin/{AdminJobRegistry-CNX5cpDx.js → AdminJobRegistry-DFgV3oqx.js} +60 -83
  12. package/dist/admin/AdminJobRegistry-DFgV3oqx.js.map +1 -0
  13. package/dist/admin/AdminLayout-DHsvWxVB.js +70 -0
  14. package/dist/admin/AdminLayout-DHsvWxVB.js.map +1 -0
  15. package/dist/admin/{AdminParameters-DCGbpt2c.js → AdminParameters-DHw9ATgl.js} +53 -53
  16. package/dist/admin/AdminParameters-DHw9ATgl.js.map +1 -0
  17. package/dist/admin/{AdminSessions-DyhW6RZv.js → AdminSessions-BhGJPI3z.js} +11 -18
  18. package/dist/admin/AdminSessions-BhGJPI3z.js.map +1 -0
  19. package/dist/admin/{AdminUserLayout-CrBj4UuI.js → AdminUserLayout-BdC4Te8m.js} +112 -151
  20. package/dist/admin/AdminUserLayout-BdC4Te8m.js.map +1 -0
  21. package/dist/admin/AdminUserProfile-DAt23fqY.js +69 -0
  22. package/dist/admin/AdminUserProfile-DAt23fqY.js.map +1 -0
  23. package/dist/admin/AdminUserSessions-1uzcx02z.js +109 -0
  24. package/dist/admin/AdminUserSessions-1uzcx02z.js.map +1 -0
  25. package/dist/admin/AdminUsers-C85c3eiQ.js +121 -0
  26. package/dist/admin/AdminUsers-C85c3eiQ.js.map +1 -0
  27. package/dist/{auth/AuthLayout-CdJcrPs4.js → admin/AuthLayout-DFJvCvzw.js} +3 -3
  28. package/dist/{auth/AuthLayout-CdJcrPs4.js.map → admin/AuthLayout-DFJvCvzw.js.map} +1 -1
  29. package/dist/{auth/IconGoogle-Bm18QD2q.js → admin/IconGoogle-CSQLPYwX.js} +1 -1
  30. package/dist/{auth/IconGoogle-Bm18QD2q.js.map → admin/IconGoogle-CSQLPYwX.js.map} +1 -1
  31. package/dist/{demo/DemoLogin-DjJ9314c.js → admin/Login-BGheURrg.js} +15 -129
  32. package/dist/{auth/Login-BS_FYTy0.js.map → admin/Login-BGheURrg.js.map} +1 -1
  33. package/dist/{auth/Profile-CjDsW378.js → admin/Profile-B-c9pCPf.js} +5 -5
  34. package/dist/{auth/Profile-CjDsW378.js.map → admin/Profile-B-c9pCPf.js.map} +1 -1
  35. package/dist/{demo/DemoRegister-DzkJ5M83.js → admin/Register-Cs10l8vX.js} +20 -146
  36. package/dist/{auth/Register-C5eqzAaD.js.map → admin/Register-Cs10l8vX.js.map} +1 -1
  37. package/dist/{demo/DemoResetPassword-DWh4_BpQ.js → admin/ResetPassword-BwDdfkGH.js} +20 -82
  38. package/dist/{auth/ResetPassword-XifinVao.js.map → admin/ResetPassword-BwDdfkGH.js.map} +1 -1
  39. package/dist/{demo/DemoVerifyEmail-DbU_tCj8.js → admin/VerifyEmail-DfXHAiQl.js} +15 -32
  40. package/dist/{auth/VerifyEmail-DTgbeJOO.js.map → admin/VerifyEmail-DfXHAiQl.js.map} +1 -1
  41. package/dist/admin/auth-Dr0Cf8I7.js +319 -0
  42. package/dist/admin/auth-Dr0Cf8I7.js.map +1 -0
  43. package/dist/admin/core-2xoLiT0o.js +4031 -0
  44. package/dist/admin/core-2xoLiT0o.js.map +1 -0
  45. package/dist/admin/index.d.ts +739 -13
  46. package/dist/admin/index.d.ts.map +1 -1
  47. package/dist/admin/index.js +79 -111
  48. package/dist/admin/index.js.map +1 -1
  49. package/dist/admin/rolldown-runtime-CjeV3_4I.js +18 -0
  50. package/dist/auth/AuthLayout-CAE1pX9s.js +22 -0
  51. package/dist/auth/AuthLayout-CAE1pX9s.js.map +1 -0
  52. package/dist/auth/{Login-BS_FYTy0.js → Login-Denw_UGy.js} +8 -8
  53. package/dist/auth/Login-Denw_UGy.js.map +1 -0
  54. package/dist/auth/Profile-BMX_Ar_s.js +155 -0
  55. package/dist/auth/Profile-BMX_Ar_s.js.map +1 -0
  56. package/dist/auth/{Register-C5eqzAaD.js → Register-6hi_cpfF.js} +8 -8
  57. package/dist/auth/Register-6hi_cpfF.js.map +1 -0
  58. package/dist/auth/{ResetPassword-XifinVao.js → ResetPassword-CqfTk1FI.js} +6 -6
  59. package/dist/auth/ResetPassword-CqfTk1FI.js.map +1 -0
  60. package/dist/auth/{VerifyEmail-DTgbeJOO.js → VerifyEmail-nWiSTMjF.js} +5 -5
  61. package/dist/auth/VerifyEmail-nWiSTMjF.js.map +1 -0
  62. package/dist/auth/core-niW0sFLv.js +2264 -0
  63. package/dist/auth/core-niW0sFLv.js.map +1 -0
  64. package/dist/auth/index.d.ts +336 -8
  65. package/dist/auth/index.d.ts.map +1 -1
  66. package/dist/auth/index.js +18 -22
  67. package/dist/auth/index.js.map +1 -1
  68. package/dist/core/index.d.ts +1033 -843
  69. package/dist/core/index.d.ts.map +1 -1
  70. package/dist/core/index.js +1626 -1354
  71. package/dist/core/index.js.map +1 -1
  72. package/dist/demo/AuthLayout-jLa0aKsI.js +22 -0
  73. package/dist/demo/AuthLayout-jLa0aKsI.js.map +1 -0
  74. package/dist/demo/DemoButton-BmaWZVwf.js +178 -0
  75. package/dist/demo/DemoButton-BmaWZVwf.js.map +1 -0
  76. package/dist/demo/{DemoDataTable-lnBKWBf8.js → DemoDataTable-Z9xyV221.js} +18 -18
  77. package/dist/demo/DemoDataTable-Z9xyV221.js.map +1 -0
  78. package/dist/demo/DemoDialog-4ItHLf9t.js +101 -0
  79. package/dist/demo/DemoDialog-4ItHLf9t.js.map +1 -0
  80. package/dist/demo/DemoFlex-EtVq8QfX.js +105 -0
  81. package/dist/demo/DemoFlex-EtVq8QfX.js.map +1 -0
  82. package/dist/demo/DemoHeading-BS-vGfkI.js +18 -0
  83. package/dist/demo/DemoHeading-BS-vGfkI.js.map +1 -0
  84. package/dist/demo/{DemoHome-CUMZsYaH.js → DemoHome-Clbn8AmS.js} +9 -12
  85. package/dist/demo/DemoHome-Clbn8AmS.js.map +1 -0
  86. package/dist/demo/DemoJsonViewer-DkIX_ky2.js +109 -0
  87. package/dist/demo/DemoJsonViewer-DkIX_ky2.js.map +1 -0
  88. package/dist/demo/DemoLayout-C56xb5EE.js +73 -0
  89. package/dist/demo/DemoLayout-C56xb5EE.js.map +1 -0
  90. package/dist/demo/DemoLogin-BZwpicOS.js +128 -0
  91. package/dist/demo/DemoLogin-BZwpicOS.js.map +1 -0
  92. package/dist/demo/DemoRegister-C7_qc4MJ.js +140 -0
  93. package/dist/demo/DemoRegister-C7_qc4MJ.js.map +1 -0
  94. package/dist/demo/DemoResetPassword-BI1Ct4Dw.js +76 -0
  95. package/dist/demo/DemoResetPassword-BI1Ct4Dw.js.map +1 -0
  96. package/dist/demo/{DemoSidebar-C1csnGhX.js → DemoSidebar-CcBo4ltC.js} +6 -9
  97. package/dist/demo/DemoSidebar-CcBo4ltC.js.map +1 -0
  98. package/dist/demo/DemoText-CzXuUn3g.js +124 -0
  99. package/dist/demo/DemoText-CzXuUn3g.js.map +1 -0
  100. package/dist/demo/DemoToast-BgHDhWrX.js +95 -0
  101. package/dist/demo/DemoToast-BgHDhWrX.js.map +1 -0
  102. package/dist/demo/{DemoTypeForm-CWz6fJrJ.js → DemoTypeForm-DDzWoMSV.js} +4 -4
  103. package/dist/demo/{DemoTypeForm-CWz6fJrJ.js.map → DemoTypeForm-DDzWoMSV.js.map} +1 -1
  104. package/dist/demo/DemoVerifyEmail-C_Irdnov.js +30 -0
  105. package/dist/demo/DemoVerifyEmail-C_Irdnov.js.map +1 -0
  106. package/dist/demo/IconGoogle-CSQLPYwX.js +56 -0
  107. package/dist/demo/IconGoogle-CSQLPYwX.js.map +1 -0
  108. package/dist/demo/Login-hSOU3jZc.js +219 -0
  109. package/dist/demo/Login-hSOU3jZc.js.map +1 -0
  110. package/dist/demo/Profile-CWqti7FB.js +155 -0
  111. package/dist/demo/Profile-CWqti7FB.js.map +1 -0
  112. package/dist/demo/Register-a70LPgs2.js +375 -0
  113. package/dist/demo/Register-a70LPgs2.js.map +1 -0
  114. package/dist/demo/ResetPassword-DWN0lzr5.js +286 -0
  115. package/dist/demo/ResetPassword-DWN0lzr5.js.map +1 -0
  116. package/dist/demo/Showcase-Dq3MISpd.js +232 -0
  117. package/dist/demo/Showcase-Dq3MISpd.js.map +1 -0
  118. package/dist/demo/VerifyEmail-DZWL72K4.js +135 -0
  119. package/dist/demo/VerifyEmail-DZWL72K4.js.map +1 -0
  120. package/dist/demo/auth-d6n3xbug.js +257 -0
  121. package/dist/demo/auth-d6n3xbug.js.map +1 -0
  122. package/dist/demo/core-RCUw1Q-a.js +4217 -0
  123. package/dist/demo/core-RCUw1Q-a.js.map +1 -0
  124. package/dist/demo/index.d.ts +17 -6
  125. package/dist/demo/index.d.ts.map +1 -1
  126. package/dist/demo/index.js +92 -24
  127. package/dist/demo/index.js.map +1 -1
  128. package/dist/demo/rolldown-runtime-CjeV3_4I.js +18 -0
  129. package/package.json +16 -20
  130. package/src/admin/AdminRouter.ts +10 -39
  131. package/src/admin/components/AdminLayout.tsx +42 -10
  132. package/src/admin/components/audits/AdminAudits.tsx +10 -64
  133. package/src/admin/components/files/AdminFiles.tsx +2 -3
  134. package/src/admin/components/jobs/AdminJobDashboard.tsx +36 -142
  135. package/src/admin/components/jobs/AdminJobExecutions.tsx +117 -175
  136. package/src/admin/components/jobs/AdminJobRegistry.tsx +58 -73
  137. package/src/admin/components/keys/AdminApiKeys.tsx +21 -169
  138. package/src/admin/components/parameters/AdminParameters.tsx +4 -4
  139. package/src/admin/components/parameters/ParameterEmptyState.tsx +1 -2
  140. package/src/admin/components/parameters/ParameterHistory.tsx +3 -3
  141. package/src/admin/components/parameters/ParameterTree.tsx +2 -8
  142. package/src/admin/components/parameters/types.ts +3 -3
  143. package/src/admin/components/sessions/AdminSessions.tsx +8 -16
  144. package/src/admin/components/users/AdminUserLayout.tsx +113 -150
  145. package/src/admin/components/users/AdminUserProfile.tsx +50 -0
  146. package/src/admin/components/users/AdminUserSessions.tsx +106 -126
  147. package/src/admin/components/users/AdminUsers.tsx +46 -62
  148. package/src/admin/index.ts +0 -4
  149. package/src/auth/components/buttons/UserButton.tsx +1 -1
  150. package/src/auth/index.ts +0 -4
  151. package/src/core/UiRouter.ts +1 -1
  152. package/src/core/atoms/alephaSidebarAtom.ts +7 -31
  153. package/src/core/components/{layout/AlephaMantineProvider.tsx → AlephaMantineProvider.tsx} +3 -4
  154. package/src/core/components/Flex.tsx +63 -0
  155. package/src/core/components/Heading.tsx +19 -0
  156. package/src/core/components/Text.tsx +140 -0
  157. package/src/core/components/buttons/ActionButton.tsx +12 -1
  158. package/src/core/components/buttons/BurgerButton.tsx +3 -3
  159. package/src/core/components/buttons/LanguageButton.tsx +1 -1
  160. package/src/core/components/buttons/ToggleSidebarButton.tsx +1 -4
  161. package/src/core/components/data/DetailDrawer.tsx +144 -0
  162. package/src/core/components/data/DetailList.tsx +64 -0
  163. package/src/core/components/data/StatCards.tsx +50 -0
  164. package/src/core/components/layout/AppBar.tsx +11 -10
  165. package/src/core/components/layout/Breadcrumb.tsx +8 -8
  166. package/src/core/components/layout/Container.tsx +15 -0
  167. package/src/core/components/layout/DashboardShell.tsx +23 -238
  168. package/src/core/components/layout/Omnibar.tsx +1 -2
  169. package/src/core/components/layout/Sidebar.tsx +103 -71
  170. package/src/core/components/layout/index.ts +65 -0
  171. package/src/core/{components/form → form/components}/Control.tsx +32 -14
  172. package/src/core/{components/form → form/components}/ControlArray.tsx +2 -5
  173. package/src/core/{components/form → form/components}/ControlDate.tsx +1 -4
  174. package/src/core/{components/form → form/components}/ControlNumber.tsx +1 -4
  175. package/src/core/{components/form → form/components}/ControlObject.tsx +1 -4
  176. package/src/core/{components/form → form/components}/ControlQueryBuilder.tsx +7 -7
  177. package/src/core/{components/form → form/components}/ControlSelect.tsx +2 -4
  178. package/src/core/{components/form → form/components}/TypeForm.browser.spec.tsx +22 -64
  179. package/src/core/{components/form → form/components}/TypeForm.tsx +1 -3
  180. package/src/core/form/factories/dialogForm.tsx +31 -0
  181. package/src/core/form/index.ts +23 -0
  182. package/src/core/{utils → form/utils}/parseInput.ts +2 -4
  183. package/src/core/index.ts +43 -51
  184. package/src/core/interfaces/AlephaIntent.ts +6 -0
  185. package/src/core/interfaces/AlephaTheme.ts +0 -1
  186. package/src/core/json/factories/dialogJson.tsx +24 -0
  187. package/src/core/json/index.ts +2 -0
  188. package/src/core/primitives/$ui.ts +17 -0
  189. package/src/core/services/DialogService.tsx +1 -48
  190. package/src/core/styles.css +1 -8
  191. package/src/core/{components/table → table/components}/ColumnPicker.tsx +2 -3
  192. package/src/core/{components/table → table/components}/DataTable.tsx +8 -9
  193. package/src/core/{components/table → table/components}/DataTableFilters.tsx +6 -3
  194. package/src/core/{components/table → table/components}/DataTableToolbar.tsx +4 -5
  195. package/src/core/{components/table → table/components}/FilterPicker.tsx +2 -3
  196. package/src/core/table/index.ts +12 -0
  197. package/src/core/{components/table → table/interfaces}/types.ts +2 -2
  198. package/src/demo/DemoRouter.ts +87 -6
  199. package/src/demo/components/DemoHome.tsx +6 -10
  200. package/src/demo/components/DemoLayout.tsx +38 -8
  201. package/src/demo/components/auth/DemoLogin.tsx +1 -1
  202. package/src/demo/components/auth/DemoRegister.tsx +1 -1
  203. package/src/demo/components/auth/DemoResetPassword.tsx +1 -1
  204. package/src/demo/components/auth/DemoVerifyEmail.tsx +1 -1
  205. package/src/demo/components/core/DemoButton.tsx +160 -0
  206. package/src/demo/components/core/DemoFlex.tsx +101 -0
  207. package/src/demo/components/core/DemoHeading.tsx +13 -0
  208. package/src/demo/components/core/DemoText.tsx +110 -0
  209. package/src/demo/components/json/DemoJsonViewer.tsx +1 -1
  210. package/src/demo/components/layout/DemoDialog.tsx +103 -0
  211. package/src/demo/components/{core → layout}/DemoSidebar.tsx +0 -1
  212. package/src/demo/components/layout/DemoToast.tsx +96 -0
  213. package/src/demo/components/shared/MacWindow.tsx +149 -74
  214. package/src/demo/components/shared/Showcase.tsx +4 -8
  215. package/src/demo/index.ts +1 -4
  216. package/src/demo/primitives/$uiDemo.ts +10 -0
  217. package/dist/admin/AdminApiKeys-CF_qOO3u.js.map +0 -1
  218. package/dist/admin/AdminAudits-BQno3hZG.js.map +0 -1
  219. package/dist/admin/AdminFiles-kvuUaASF.js.map +0 -1
  220. package/dist/admin/AdminJobDashboard-CrPxp0W1.js.map +0 -1
  221. package/dist/admin/AdminJobExecutions-D-b4Zt7W.js.map +0 -1
  222. package/dist/admin/AdminJobRegistry-CNX5cpDx.js.map +0 -1
  223. package/dist/admin/AdminLayout-e-ZP5nWw.js +0 -37
  224. package/dist/admin/AdminLayout-e-ZP5nWw.js.map +0 -1
  225. package/dist/admin/AdminParameters-DCGbpt2c.js.map +0 -1
  226. package/dist/admin/AdminSessions-DyhW6RZv.js.map +0 -1
  227. package/dist/admin/AdminUserAudits-D1GcREEE.js +0 -177
  228. package/dist/admin/AdminUserAudits-D1GcREEE.js.map +0 -1
  229. package/dist/admin/AdminUserCreate-DR8LA0tv.js +0 -104
  230. package/dist/admin/AdminUserCreate-DR8LA0tv.js.map +0 -1
  231. package/dist/admin/AdminUserDetails-CDkZNHQD.js +0 -477
  232. package/dist/admin/AdminUserDetails-CDkZNHQD.js.map +0 -1
  233. package/dist/admin/AdminUserLayout-CrBj4UuI.js.map +0 -1
  234. package/dist/admin/AdminUserSessions-srgFHrqy.js +0 -129
  235. package/dist/admin/AdminUserSessions-srgFHrqy.js.map +0 -1
  236. package/dist/admin/AdminUserSettings-BFuxl-xT.js +0 -167
  237. package/dist/admin/AdminUserSettings-BFuxl-xT.js.map +0 -1
  238. package/dist/admin/AdminUsers-D1pDpiwK.js +0 -118
  239. package/dist/admin/AdminUsers-D1pDpiwK.js.map +0 -1
  240. package/dist/demo/DemoDataTable-lnBKWBf8.js.map +0 -1
  241. package/dist/demo/DemoHome-CUMZsYaH.js.map +0 -1
  242. package/dist/demo/DemoJsonViewer-_uokbGaW.js +0 -429
  243. package/dist/demo/DemoJsonViewer-_uokbGaW.js.map +0 -1
  244. package/dist/demo/DemoLayout-DHVoacE6.js +0 -46
  245. package/dist/demo/DemoLayout-DHVoacE6.js.map +0 -1
  246. package/dist/demo/DemoLogin-DjJ9314c.js.map +0 -1
  247. package/dist/demo/DemoRegister-DzkJ5M83.js.map +0 -1
  248. package/dist/demo/DemoResetPassword-DWh4_BpQ.js.map +0 -1
  249. package/dist/demo/DemoSidebar-C1csnGhX.js.map +0 -1
  250. package/dist/demo/DemoVerifyEmail-DbU_tCj8.js.map +0 -1
  251. package/dist/demo/Showcase-BzoXNlCn.js +0 -185
  252. package/dist/demo/Showcase-BzoXNlCn.js.map +0 -1
  253. package/dist/json/index.d.ts +0 -57
  254. package/dist/json/index.d.ts.map +0 -1
  255. package/dist/json/index.js +0 -325
  256. package/dist/json/index.js.map +0 -1
  257. package/src/admin/components/users/AdminUserAudits.tsx +0 -184
  258. package/src/admin/components/users/AdminUserCreate.tsx +0 -85
  259. package/src/admin/components/users/AdminUserDetails.tsx +0 -431
  260. package/src/admin/components/users/AdminUserSettings.tsx +0 -171
  261. package/src/core/components/data/ErrorViewer.tsx +0 -171
  262. package/src/json/extensions/DialogService.tsx +0 -31
  263. package/src/json/index.ts +0 -18
  264. package/src/json/styles.css +0 -1
  265. /package/dist/{demo → auth}/IconGoogle-Ch1m3Uzl.js +0 -0
  266. /package/dist/{demo → auth}/IconGoogle-Ch1m3Uzl.js.map +0 -0
  267. /package/src/{json → core/json}/components/JsonViewer.css +0 -0
  268. /package/src/{json → core/json}/components/JsonViewer.tsx +0 -0
  269. /package/src/core/{components/table → table/components}/DataTablePagination.tsx +0 -0
  270. /package/src/core/{components/table → table/components}/useTableSelection.ts +0 -0
@@ -3,10 +3,11 @@ import { Alepha, Async, Page, PageMetadata, Static, TObject, TProperties } from
3
3
  import { BaseInputField, FormModel } from "alepha/react/form";
4
4
  import * as alepha_react_head0 from "alepha/react/head";
5
5
  import * as alepha_server_cookies0 from "alepha/server/cookies";
6
- import { AnchorProps, AppShellFooterProps, AppShellHeaderProps, AppShellMainProps, AppShellNavbarProps, AppShellProps, AutocompleteProps, BurgerProps, ButtonProps, ColorInputProps, ColorSchemeScriptProps, ContainerProps, DrawerProps, FileInputProps, Flex, FlexProps, MantineBreakpoint, MantineProviderProps, MantineThemeOverride, MenuProps, MenuTargetProps, ModalProps, MultiSelectProps, NumberInputProps, PasswordInputProps, SegmentedControlProps, SelectProps, SliderProps, SwitchProps, TableProps, TableTrProps, TagsInputProps, Text, TextInputProps, TextareaProps, ThemeIconProps, TooltipProps } from "@mantine/core";
7
6
  import { ModalsProviderProps } from "@mantine/modals";
8
- import { ComponentType, ReactElement, ReactNode } from "react";
7
+ import { AnchorProps, AppShellFooterProps, AppShellHeaderProps, AppShellMainProps, AppShellNavbarProps, AppShellProps, AutocompleteProps, BurgerProps, ButtonProps, ColorInputProps, ColorSchemeScriptProps, ContainerProps as ContainerProps$1, DrawerProps, FileInputProps, FlexProps as FlexProps$1, MantineBreakpoint, MantineProviderProps, MantineSize, MantineThemeOverride, MenuProps, MenuTargetProps, ModalProps, MultiSelectProps, NumberInputProps, PasswordInputProps, SegmentedControlProps, SelectProps, SliderProps, SwitchProps, TableProps, TableTrProps, TagsInputProps, TextInputProps, TextProps as TextProps$1, TextareaProps, ThemeIconProps, TooltipProps } from "@mantine/core";
9
8
  import * as react_jsx_runtime0 from "react/jsx-runtime";
9
+ import * as react from "react";
10
+ import { ComponentType, ReactElement, ReactNode } from "react";
10
11
  import * as _mantine_notifications0 from "@mantine/notifications";
11
12
  import { NotificationData, NotificationsProps } from "@mantine/notifications";
12
13
  import * as alepha_react_router0 from "alepha/react/router";
@@ -19,43 +20,23 @@ import { DurationLike } from "alepha/datetime";
19
20
  //#region ../../src/core/atoms/alephaSidebarAtom.d.ts
20
21
  declare const alephaSidebarAtom: alepha.Atom<alepha.TObject<{
21
22
  /**
22
- * Whether the sidebar is opened or closed (mobile).
23
+ * Whether the sidebar drawer is closed (mobile).
23
24
  */
24
- opened: alepha.TBoolean;
25
+ closed: alepha.TBoolean;
25
26
  /**
26
- * Whether the sidebar is collapsed (narrow) or expanded (wide).
27
+ * Whether the sidebar is collapsed (desktop icon-only mode).
27
28
  */
28
29
  collapsed: alepha.TBoolean;
29
30
  /**
30
- * Current width of the sidebar when expanded (can be changed by resizing).
31
- * @default 300
32
- */
33
- width: alepha.TNumber;
34
- /**
35
- * Default width used when expanding from collapsed state or on hover.
31
+ * Width of the sidebar when expanded.
36
32
  * @default 300
37
33
  */
38
- defaultWidth: alepha.TNumber;
34
+ expandedWidth: alepha.TNumber;
39
35
  /**
40
36
  * Width of the sidebar when collapsed.
41
37
  * @default 78
42
38
  */
43
39
  collapsedWidth: alepha.TNumber;
44
- /**
45
- * Maximum width when resizing.
46
- * @default 500
47
- */
48
- maxWidth: alepha.TNumber;
49
- /**
50
- * Minimum width before auto-collapse triggers.
51
- * @default 150
52
- */
53
- collapseThreshold: alepha.TNumber;
54
- /**
55
- * Delay in ms before sidebar expands on hover when collapsed.
56
- * @default 300
57
- */
58
- hoverDelay: alepha.TNumber;
59
40
  }>, "alepha.ui.sidebar">;
60
41
  type AlephaSidebarState = Static<typeof alephaSidebarAtom.schema>;
61
42
  //#endregion
@@ -69,528 +50,972 @@ type CurrentAlephaTheme = Static<typeof alephaThemeAtom.schema>;
69
50
  declare const alephaThemeListAtom: alepha.Atom<alepha.TArray<alepha.TRecord<string, alepha.TAny>>, "alepha.ui.themeList">;
70
51
  type AlephaThemeListAtom = Static<typeof alephaThemeListAtom.schema>;
71
52
  //#endregion
72
- //#region ../../src/core/utils/parseInput.d.ts
73
- interface GenericControlProps {
74
- input: BaseInputField;
75
- title?: string;
76
- description?: string;
77
- icon?: ReactElement | ((props: {
78
- size: number;
79
- }) => ReactNode);
80
- size?: "xs" | "sm" | "md" | "lg" | "xl";
53
+ //#region ../../src/core/interfaces/AlephaTheme.d.ts
54
+ type AlephaTheme = MantineThemeOverride & {
55
+ name: string;
56
+ description: string;
57
+ defaultColorScheme?: "light" | "dark";
58
+ };
59
+ //#endregion
60
+ //#region ../../src/core/atoms/themes/default.d.ts
61
+ declare const defaultTheme: AlephaTheme;
62
+ //#endregion
63
+ //#region ../../src/core/atoms/themes/midnight.d.ts
64
+ declare const midnightTheme: AlephaTheme;
65
+ //#endregion
66
+ //#region ../../src/core/components/layout/Omnibar.d.ts
67
+ interface OmnibarProps {
68
+ shortcut?: string | string[];
69
+ searchPlaceholder?: string;
70
+ nothingFound?: ReactNode;
81
71
  }
72
+ declare const Omnibar: (props: OmnibarProps) => react_jsx_runtime0.JSX.Element;
82
73
  //#endregion
83
- //#region ../../src/core/components/form/ControlArray.d.ts
84
- interface ControlArrayProps extends GenericControlProps {
74
+ //#region ../../src/core/components/AlephaMantineProvider.d.ts
75
+ interface AlephaMantineProviderProps {
76
+ children?: ReactNode;
77
+ mantine?: MantineProviderProps;
78
+ colorSchemeScript?: ColorSchemeScriptProps;
79
+ navigationProgress?: NavigationProgressProps;
80
+ notifications?: NotificationsProps;
81
+ modals?: ModalsProviderProps;
82
+ omnibar?: OmnibarProps | false;
83
+ }
84
+ declare const AlephaMantineProvider: (props: AlephaMantineProviderProps) => react_jsx_runtime0.JSX.Element;
85
+ //#endregion
86
+ //#region ../../src/core/components/buttons/ActionButton.d.ts
87
+ interface ActionMenuItem {
85
88
  /**
86
- * Minimum number of items allowed.
87
- * @default 0
89
+ * Menu item type
88
90
  */
89
- min?: number;
91
+ type?: "item" | "divider" | "label";
90
92
  /**
91
- * Maximum number of items allowed.
92
- * @default Infinity
93
+ * Label text for the menu item
93
94
  */
94
- max?: number;
95
+ label?: string | ReactNode;
95
96
  /**
96
- * Label for the add button.
97
- * @default "Add item"
97
+ * Icon element to display before the label
98
98
  */
99
- addLabel?: string;
99
+ icon?: ReactNode;
100
100
  /**
101
- * Number of columns for object item fields.
102
- * @default 1
101
+ * Click handler for menu items
103
102
  */
104
- columns?: number;
103
+ onClick?: () => void;
105
104
  /**
106
- * Variant for the container.
107
- * - "fieldset": Uses Mantine Fieldset with legend
108
- * - "plain": No container, just renders items
109
- * @default "fieldset"
105
+ * Href for navigation menu items
110
106
  */
111
- variant?: "fieldset" | "plain";
107
+ href?: string;
112
108
  /**
113
- * Per-field control props override for object items.
114
- * Keys are field names from the item schema.
109
+ * Color for the menu item (e.g., "red" for danger actions)
115
110
  */
116
- controlProps?: Record<string, Partial<Omit<ControlProps, "input">>>;
111
+ color?: string;
117
112
  /**
118
- * Control props for primitive items.
113
+ * Nested submenu items
119
114
  */
120
- itemControlProps?: Partial<Omit<ControlProps, "input">>;
115
+ children?: ActionMenuItem[];
121
116
  /**
122
- * Show drag handle for reordering.
123
- * @default false
117
+ * Whether the menu item is active
124
118
  */
125
- sortable?: boolean;
119
+ active?: boolean;
126
120
  }
127
- /**
128
- * ControlArray component for editing arrays of schema items.
129
- *
130
- * Features:
131
- * - Dynamic add/remove of items
132
- * - Supports arrays of objects with nested fields
133
- * - Supports arrays of primitives
134
- * - Grid layout for object items
135
- * - Min/max constraints
136
- * - Syncs with form state (handles external updates and resets)
137
- *
138
- * @example
139
- * ```tsx
140
- * // For a schema like:
141
- * // t.object({
142
- * // contacts: t.array(t.object({
143
- * // name: t.text(),
144
- * // email: t.text({ format: "email" }),
145
- * // }))
146
- * // })
147
- *
148
- * <ControlArray
149
- * input={form.input.contacts}
150
- * columns={2}
151
- * addLabel="Add contact"
152
- * controlProps={{
153
- * email: { text: { placeholder: "email@example.com" } }
154
- * }}
155
- * />
156
- * ```
157
- */
158
- declare const ControlArray: (props: ControlArrayProps) => react_jsx_runtime0.JSX.Element | null;
159
- //#endregion
160
- //#region ../../src/core/components/form/ControlNumber.d.ts
161
- interface ControlNumberProps extends GenericControlProps {
162
- numberInputProps?: Partial<NumberInputProps>;
163
- sliderProps?: Partial<SliderProps>;
121
+ interface ActionMenuConfig {
122
+ /**
123
+ * Array of menu items to display
124
+ */
125
+ items: ActionMenuItem[];
126
+ /**
127
+ * Menu position relative to the button
128
+ */
129
+ position?: "bottom" | "bottom-start" | "bottom-end" | "top" | "top-start" | "top-end" | "left" | "right";
130
+ /**
131
+ * Menu width
132
+ */
133
+ width?: number | string;
134
+ /**
135
+ * Menu shadow
136
+ */
137
+ shadow?: "xs" | "sm" | "md" | "lg" | "xl";
138
+ on?: "hover" | "click";
139
+ targetProps?: MenuTargetProps;
140
+ menuProps?: MenuProps;
141
+ }
142
+ interface ActionCommonProps extends ButtonProps {
143
+ children?: ReactNode;
144
+ textVisibleFrom?: "xs" | "sm" | "md" | "lg" | "xl";
145
+ /**
146
+ * Tooltip to display on hover. Can be a string for simple tooltips
147
+ * or a TooltipProps object for advanced configuration.
148
+ */
149
+ tooltip?: string | number | TooltipProps;
150
+ /**
151
+ * Menu configuration. When provided, the action will display a dropdown menu.
152
+ */
153
+ menu?: ActionMenuConfig;
154
+ /**
155
+ * If set, a confirmation dialog will be shown before performing the action.
156
+ * If `true`, a default title and message will be used.
157
+ * If a string, it will be used as the message with a default title.
158
+ * If an object, it can contain `title` and `message` properties to customize the dialog.
159
+ */
160
+ confirm?: boolean | string | {
161
+ title?: string;
162
+ message: string;
163
+ };
164
+ /**
165
+ * Icon to display on the left side of the button.
166
+ * If no children are provided, the button will be styled as an icon-only button.
167
+ */
168
+ icon?: ReactNode | ComponentType;
169
+ /**
170
+ * Additional props to pass to the ThemeIcon wrapping the icon.
171
+ */
172
+ themeIconProps?: ThemeIconProps;
173
+ /**
174
+ * Visual intent of the action button.
175
+ */
176
+ intent?: "primary" | "success" | "danger" | "warning" | "info" | "none";
177
+ }
178
+ type ActionProps = ActionCommonProps & (ActionNavigationButtonProps | ActionClickButtonProps | ActionSubmitButtonProps | ActionHookButtonProps | {});
179
+ declare const ActionButton: (_props: ActionProps) => react_jsx_runtime0.JSX.Element;
180
+ interface ActionSubmitButtonProps extends ButtonProps {
181
+ form: FormModel<any>;
182
+ type?: "submit" | "reset";
183
+ }
184
+ interface ActionHookButtonProps extends ButtonProps {
185
+ action: UseActionReturn<any[], any>;
186
+ }
187
+ interface ActionClickButtonProps extends ButtonProps {
188
+ onClick: (e: any) => any;
189
+ preventDefault?: boolean;
190
+ }
191
+ interface ActionNavigationButtonProps extends ButtonProps {
192
+ href: string;
193
+ active?: Partial<UseActiveOptions> | false;
194
+ routerGoOptions?: RouterPushOptions;
195
+ classNameActive?: string;
196
+ variantActive?: ButtonProps["variant"];
197
+ propsActive?: ButtonProps;
198
+ target?: string;
199
+ anchorProps?: AnchorProps;
200
+ anchor?: boolean;
164
201
  }
165
- /**
166
- *
167
- */
168
- declare const ControlNumber: (props: ControlNumberProps) => react_jsx_runtime0.JSX.Element | null;
169
202
  //#endregion
170
- //#region ../../src/core/components/form/ControlObject.d.ts
171
- interface ControlObjectProps extends GenericControlProps {
203
+ //#region ../../src/core/components/buttons/BurgerButton.d.ts
204
+ interface BurgerButtonProps extends BurgerProps {}
205
+ declare const BurgerButton: (props: BurgerButtonProps) => react_jsx_runtime0.JSX.Element;
206
+ //#endregion
207
+ //#region ../../src/core/components/buttons/ClipboardButton.d.ts
208
+ interface ClipboardButtonProps extends Omit<ActionCommonProps, "onClick" | "icon"> {
172
209
  /**
173
- * Number of columns for the grid layout.
174
- * @default 1
210
+ * The value to copy to the clipboard
175
211
  */
176
- columns?: number;
212
+ value: string;
177
213
  /**
178
- * Variant for the container.
179
- * - "fieldset": Uses Mantine Fieldset with legend
180
- * - "plain": No container, just renders fields
181
- * @default "fieldset"
214
+ * Timeout in ms to show the "Copied" state (default: 2000)
182
215
  */
183
- variant?: "fieldset" | "plain";
216
+ timeout?: number;
184
217
  /**
185
- * Per-field control props override.
186
- * Keys are field names from the schema.
218
+ * Label to show in tooltip when not copied (default: "Copy")
187
219
  */
188
- controlProps?: Record<string, Partial<Omit<ControlProps, "input">>>;
220
+ copyLabel?: string;
221
+ /**
222
+ * Label to show in tooltip when copied (default: "Copied")
223
+ */
224
+ copiedLabel?: string;
189
225
  }
226
+ declare const ClipboardButton: (props: ClipboardButtonProps) => react_jsx_runtime0.JSX.Element;
227
+ //#endregion
228
+ //#region ../../src/core/components/buttons/DarkModeButton.d.ts
190
229
  /**
191
- * ControlObject component for editing nested object schemas.
192
- *
193
- * Features:
194
- * - Renders all properties of an object schema
195
- * - Supports grid layout with configurable columns
196
- * - Per-field customization via controlProps
197
- * - Recursive support for deeply nested objects
198
- *
199
- * The form system provides nested InputFields under the `.items` property.
200
- * For example: form.input.address.items.street
230
+ * SSR-safe dark mode toggle button.
201
231
  *
202
- * @example
203
- * ```tsx
204
- * // For a schema like:
205
- * // t.object({
206
- * // address: t.object({
207
- * // street: t.text(),
208
- * // city: t.text(),
209
- * // zip: t.text(),
210
- * // })
211
- * // })
212
- *
213
- * <ControlObject
214
- * input={form.input.address}
215
- * columns={2}
216
- * controlProps={{
217
- * zip: { text: { maxLength: 10 } }
218
- * }}
219
- * />
220
- * ```
232
+ * Uses CSS-based icon switching to avoid hydration mismatches.
233
+ * Both icons are rendered, CSS hides the wrong one based on
234
+ * `data-mantine-color-scheme` attribute.
221
235
  */
222
- declare const ControlObject: (props: ControlObjectProps) => react_jsx_runtime0.JSX.Element | null;
236
+ declare const DarkModeButton: (props: Partial<ActionProps>) => react_jsx_runtime0.JSX.Element;
223
237
  //#endregion
224
- //#region ../../src/core/components/form/ControlSelect.d.ts
225
- type SelectValueLabel = string | {
238
+ //#region ../../src/core/components/buttons/LanguageButton.d.ts
239
+ declare const LanguageButton: (props: Partial<ActionProps>) => react_jsx_runtime0.JSX.Element;
240
+ //#endregion
241
+ //#region ../../src/core/components/buttons/OmnibarButton.d.ts
242
+ interface OmnibarButtonProps {
243
+ actionProps?: ActionProps;
244
+ collapsed?: boolean;
245
+ }
246
+ declare const OmnibarButton: (props: OmnibarButtonProps) => react_jsx_runtime0.JSX.Element;
247
+ //#endregion
248
+ //#region ../../src/core/components/buttons/ThemeButton.d.ts
249
+ declare const ThemeButton: (props: Partial<ActionProps>) => react_jsx_runtime0.JSX.Element;
250
+ //#endregion
251
+ //#region ../../src/core/components/buttons/ToggleSidebarButton.d.ts
252
+ type Props = ActionProps;
253
+ declare const ToggleSidebarButton: (props: Props) => react_jsx_runtime0.JSX.Element;
254
+ //#endregion
255
+ //#region ../../src/core/components/data/DetailDrawer.d.ts
256
+ interface DetailDrawerTab {
226
257
  value: string;
227
258
  label: string;
228
- icon?: string;
229
- };
230
- interface ControlSelectProps extends GenericControlProps {
231
- select?: boolean | SelectProps;
232
- multi?: boolean | MultiSelectProps;
233
- tags?: boolean | TagsInputProps;
234
- autocomplete?: boolean | AutocompleteProps;
235
- segmented?: boolean | Partial<SegmentedControlProps>;
236
- loader?: () => Promise<SelectValueLabel[]>;
259
+ icon?: ComponentType<{
260
+ size?: number;
261
+ }>;
262
+ content: ReactNode;
237
263
  }
238
- /**
239
- * ControlSelect component for handling Select, MultiSelect, and TagsInput.
240
- *
241
- * Features:
242
- * - Basic Select with enum support
243
- * - MultiSelect for array of enums
244
- * - TagsInput for array of strings (no enum)
245
- * - Future: Lazy loading
246
- * - Future: Searchable/filterable options
247
- * - Future: Custom option rendering
248
- *
249
- * Automatically detects enum values and array types from schema.
250
- */
251
- declare const ControlSelect: (props: ControlSelectProps) => react_jsx_runtime0.JSX.Element | null;
252
- //#endregion
253
- //#region ../../src/core/components/form/Control.d.ts
254
- interface ControlProps extends GenericControlProps {
255
- text?: TextInputProps;
256
- area?: boolean | TextareaProps;
257
- select?: boolean | Partial<ControlSelectProps>;
258
- password?: boolean | PasswordInputProps;
259
- switch?: boolean | SwitchProps;
260
- number?: boolean | Partial<ControlNumberProps>;
261
- file?: boolean | FileInputProps;
262
- color?: boolean | ColorInputProps;
263
- date?: boolean | DateInputProps;
264
- datetime?: boolean | DateTimePickerProps;
265
- time?: boolean | TimeInputProps;
266
- query?: any;
267
- object?: boolean | Partial<Omit<ControlObjectProps, "input">>;
268
- array?: boolean | Partial<Omit<ControlArrayProps, "input">>;
269
- custom?: ComponentType<CustomControlProps>;
270
- slider?: boolean;
271
- segmented?: boolean;
264
+ interface DetailDrawerStatus {
265
+ label: string;
266
+ active: boolean;
272
267
  }
273
- /**
274
- * Generic form control that renders the appropriate input based on the schema and props.
275
- *
276
- * Supports:
277
- * - TextInput (with format detection: email, url, tel)
278
- * - Textarea
279
- * - NumberInput (for number/integer types)
280
- * - FileInput
281
- * - ColorInput (for color format)
282
- * - Select (for enum types)
283
- * - Autocomplete
284
- * - PasswordInput
285
- * - Switch (for boolean types)
286
- * - SegmentedControl (for enum types)
287
- * - DateInput (for date format)
288
- * - DateTimePicker (for date-time format)
289
- * - TimeInput (for time format)
290
- * - QueryBuilder (for building type-safe queries with autocomplete)
291
- * - ControlObject (for nested object schemas)
292
- * - ControlArray (for arrays of objects)
293
- * - Custom component
294
- *
295
- * Automatically handles labels, descriptions, error messages, required state, and default icons.
296
- */
297
- declare const Control: (_props: ControlProps) => react_jsx_runtime0.JSX.Element | null;
298
- type CustomControlProps = {
299
- defaultValue: any;
300
- onChange: (value: any) => void;
301
- };
268
+ interface DetailDrawerProps {
269
+ opened: boolean;
270
+ onClose: () => void;
271
+ title: ReactNode;
272
+ subtitle?: ReactNode;
273
+ status?: DetailDrawerStatus;
274
+ actions?: ActionMenuItem[];
275
+ tabs?: DetailDrawerTab[];
276
+ children?: ReactNode;
277
+ loading?: boolean;
278
+ size?: DrawerProps["size"];
279
+ defaultTab?: string;
280
+ }
281
+ declare const DetailDrawer: ({
282
+ opened,
283
+ onClose,
284
+ title,
285
+ subtitle,
286
+ status,
287
+ actions,
288
+ tabs,
289
+ children,
290
+ loading,
291
+ size,
292
+ defaultTab
293
+ }: DetailDrawerProps) => react_jsx_runtime0.JSX.Element;
302
294
  //#endregion
303
- //#region ../../src/core/UiRouter.d.ts
304
- /**
305
- * UI Router defining the root page with AlephaMantineProvider.
306
- *
307
- * - Use UiRouter when you need Alepha's Mantine-based UI components and theming.
308
- * - Prefer to use $ui() for convenience. (Custom Factory of UiRouter)
309
- */
310
- declare class UiRouter {
311
- readonly root: alepha_react_router0.PagePrimitive<alepha_react_router0.PageConfigSchema, any, alepha_react_router0.TPropsParentDefault>;
295
+ //#region ../../src/core/components/data/DetailList.d.ts
296
+ interface DetailListItem {
297
+ label: string;
298
+ value: ReactNode;
299
+ hidden?: boolean;
300
+ copyable?: string;
312
301
  }
302
+ interface DetailListProps {
303
+ items: DetailListItem[];
304
+ columns?: number;
305
+ }
306
+ declare const DetailList: ({
307
+ items,
308
+ columns
309
+ }: DetailListProps) => react_jsx_runtime0.JSX.Element;
313
310
  //#endregion
314
- //#region ../../src/core/interfaces/AlephaTheme.d.ts
315
- type AlephaTheme = MantineThemeOverride & {
316
- name: string;
317
- description: string;
318
- defaultColorScheme?: "light" | "dark";
319
- };
320
- //#endregion
321
- //#region ../../src/core/atoms/themes/default.d.ts
322
- declare const defaultTheme: AlephaTheme;
323
- //#endregion
324
- //#region ../../src/core/atoms/themes/midnight.d.ts
325
- declare const midnightTheme: AlephaTheme;
311
+ //#region ../../src/core/components/data/StatCards.d.ts
312
+ interface StatCardItem {
313
+ label: string;
314
+ value: ReactNode;
315
+ icon?: ReactNode | ComponentType<{
316
+ size?: number;
317
+ }>;
318
+ }
319
+ interface StatCardsProps {
320
+ items: StatCardItem[];
321
+ }
322
+ declare const StatCards: ({
323
+ items
324
+ }: StatCardsProps) => react_jsx_runtime0.JSX.Element;
326
325
  //#endregion
327
- //#region ../../src/core/components/buttons/ActionButton.d.ts
328
- interface ActionMenuItem {
329
- /**
330
- * Menu item type
331
- */
332
- type?: "item" | "divider" | "label";
326
+ //#region ../../src/core/services/DialogService.d.ts
327
+ interface BaseDialogOptions extends Partial<ModalProps> {
328
+ title?: ReactNode;
329
+ message?: ReactNode;
330
+ content?: any;
331
+ }
332
+ interface AlertDialogOptions extends BaseDialogOptions {
333
+ okLabel?: string;
334
+ }
335
+ interface ConfirmDialogOptions extends BaseDialogOptions {
336
+ confirmLabel?: string;
337
+ cancelLabel?: string;
338
+ confirmColor?: string;
339
+ }
340
+ interface PromptDialogOptions extends BaseDialogOptions {
341
+ placeholder?: string;
342
+ defaultValue?: string;
343
+ label?: string;
344
+ required?: boolean;
345
+ submitLabel?: string;
346
+ cancelLabel?: string;
347
+ }
348
+ interface AlertDialogProps {
349
+ options?: AlertDialogOptions;
350
+ onClose: () => void;
351
+ }
352
+ interface ConfirmDialogProps {
353
+ options?: ConfirmDialogOptions;
354
+ onConfirm: (confirmed: boolean) => void;
355
+ }
356
+ interface PromptDialogProps {
357
+ options?: PromptDialogOptions;
358
+ onSubmit: (value: string | null) => void;
359
+ }
360
+ interface DialogServiceOptions {
361
+ default?: Partial<BaseDialogOptions>;
362
+ }
363
+ declare class DialogService {
364
+ readonly options: DialogServiceOptions;
333
365
  /**
334
- * Label text for the menu item
366
+ * Show an alert dialog with a message
335
367
  */
336
- label?: string | ReactNode;
368
+ alert(options?: AlertDialogOptions): Promise<void>;
337
369
  /**
338
- * Icon element to display before the label
370
+ * Show a confirmation dialog that returns a promise
339
371
  */
340
- icon?: ReactNode;
372
+ confirm(options?: ConfirmDialogOptions): Promise<boolean>;
341
373
  /**
342
- * Click handler for menu items
374
+ * Show a prompt dialog to get user input
343
375
  */
344
- onClick?: () => void;
376
+ prompt(options?: PromptDialogOptions): Promise<string | null>;
345
377
  /**
346
- * Href for navigation menu items
378
+ * Open a custom dialog with provided content
347
379
  */
348
- href?: string;
380
+ open(options?: BaseDialogOptions): string;
349
381
  /**
350
- * Color for the menu item (e.g., "red" for danger actions)
382
+ * Close the currently open dialog or a specific dialog by ID
351
383
  */
352
- color?: string;
384
+ close(modalId?: string): void;
385
+ }
386
+ //#endregion
387
+ //#region ../../src/core/components/dialogs/AlertDialog.d.ts
388
+ declare const AlertDialog: ({
389
+ options,
390
+ onClose
391
+ }: AlertDialogProps) => react_jsx_runtime0.JSX.Element;
392
+ //#endregion
393
+ //#region ../../src/core/components/dialogs/ConfirmDialog.d.ts
394
+ declare const ConfirmDialog: ({
395
+ options,
396
+ onConfirm
397
+ }: ConfirmDialogProps) => react_jsx_runtime0.JSX.Element;
398
+ //#endregion
399
+ //#region ../../src/core/components/dialogs/PromptDialog.d.ts
400
+ declare const PromptDialog: ({
401
+ options,
402
+ onSubmit
403
+ }: PromptDialogProps) => react_jsx_runtime0.JSX.Element;
404
+ //#endregion
405
+ //#region ../../src/core/components/Flex.d.ts
406
+ interface FlexProps extends FlexProps$1 {
353
407
  /**
354
- * Nested submenu items
408
+ * flex: 1 — fill available space.
355
409
  */
356
- children?: ActionMenuItem[];
410
+ fill?: boolean;
357
411
  /**
358
- * Whether the menu item is active
412
+ * Shorthand for align="center" + justify="center".
359
413
  */
360
- active?: boolean;
361
- }
362
- interface ActionMenuConfig {
414
+ center?: boolean;
363
415
  /**
364
- * Array of menu items to display
416
+ * Shorthand for justify="center".
365
417
  */
366
- items: ActionMenuItem[];
418
+ centerX?: boolean;
367
419
  /**
368
- * Menu position relative to the button
420
+ * Shorthand for align="center".
369
421
  */
370
- position?: "bottom" | "bottom-start" | "bottom-end" | "top" | "top-start" | "top-end" | "left" | "right";
422
+ centerY?: boolean;
371
423
  /**
372
- * Menu width
424
+ * Shorthand for direction="column".
373
425
  */
374
- width?: number | string;
426
+ col?: boolean;
427
+ }
428
+ declare const Flex: react.ForwardRefExoticComponent<FlexProps & react.RefAttributes<HTMLDivElement>>;
429
+ //#endregion
430
+ //#region ../../src/core/interfaces/AlephaIntent.d.ts
431
+ type AlephaIntent = "primary" | "info" | "success" | "warning" | "danger";
432
+ //#endregion
433
+ //#region ../../src/core/components/Heading.d.ts
434
+ type HeadingProps = {
435
+ title: string | ReactNode;
436
+ description?: string | ReactNode;
437
+ icon?: ReactNode;
438
+ intent?: AlephaIntent;
439
+ loading?: boolean;
440
+ ellipsis?: boolean;
441
+ fill?: boolean;
442
+ tag?: string | ReactNode;
443
+ };
444
+ declare const Heading: (props: HeadingProps) => react_jsx_runtime0.JSX.Element;
445
+ //#endregion
446
+ //#region ../../src/core/components/layout/AppBar.d.ts
447
+ type AppBarItem = AppBarElement | AppBarBurger | AppBarDark | AppBarSearch | AppBarLang | AppBarSpacer | AppBarDivider | AppBarLogo | AppBarBack;
448
+ interface AppBarAbstractItem {
449
+ position: "left" | "center" | "right";
375
450
  /**
376
- * Menu shadow
451
+ * Visibility control: return true to show, false to hide.
377
452
  */
378
- shadow?: "xs" | "sm" | "md" | "lg" | "xl";
379
- on?: "hover" | "click";
380
- targetProps?: MenuTargetProps;
381
- menuProps?: MenuProps;
453
+ can?: () => boolean;
382
454
  }
383
- interface ActionCommonProps extends ButtonProps {
384
- children?: ReactNode;
385
- textVisibleFrom?: "xs" | "sm" | "md" | "lg" | "xl";
386
- /**
387
- * Tooltip to display on hover. Can be a string for simple tooltips
388
- * or a TooltipProps object for advanced configuration.
389
- */
390
- tooltip?: string | number | TooltipProps;
391
- /**
392
- * Menu configuration. When provided, the action will display a dropdown menu.
393
- */
394
- menu?: ActionMenuConfig;
395
- /**
396
- * If set, a confirmation dialog will be shown before performing the action.
397
- * If `true`, a default title and message will be used.
398
- * If a string, it will be used as the message with a default title.
399
- * If an object, it can contain `title` and `message` properties to customize the dialog.
400
- */
401
- confirm?: boolean | string | {
402
- title?: string;
403
- message: string;
404
- };
405
- /**
406
- * Icon to display on the left side of the button.
407
- * If no children are provided, the button will be styled as an icon-only button.
408
- */
409
- icon?: ReactNode | ComponentType;
410
- /**
411
- * Additional props to pass to the ThemeIcon wrapping the icon.
412
- */
413
- themeIconProps?: ThemeIconProps;
414
- /**
415
- * Visual intent of the action button.
416
- */
417
- intent?: "primary" | "success" | "danger" | "warning" | "info" | "none";
455
+ interface AppBarElement extends AppBarAbstractItem {
456
+ element: ReactNode;
418
457
  }
419
- type ActionProps = ActionCommonProps & (ActionNavigationButtonProps | ActionClickButtonProps | ActionSubmitButtonProps | ActionHookButtonProps | {});
420
- declare const ActionButton: (_props: ActionProps) => react_jsx_runtime0.JSX.Element;
421
- interface ActionSubmitButtonProps extends ButtonProps {
422
- form: FormModel<any>;
423
- type?: "submit" | "reset";
458
+ interface AppBarBurger extends AppBarAbstractItem {
459
+ type: "burger";
424
460
  }
425
- interface ActionHookButtonProps extends ButtonProps {
426
- action: UseActionReturn<any[], any>;
461
+ interface AppBarDark extends AppBarAbstractItem {
462
+ type: "dark";
463
+ props?: Partial<ActionProps>;
427
464
  }
428
- interface ActionClickButtonProps extends ButtonProps {
429
- onClick: (e: any) => any;
430
- preventDefault?: boolean;
465
+ interface AppBarSearch extends AppBarAbstractItem {
466
+ type: "search";
467
+ props?: OmnibarButtonProps;
431
468
  }
432
- interface ActionNavigationButtonProps extends ButtonProps {
433
- href: string;
434
- active?: Partial<UseActiveOptions> | false;
435
- routerGoOptions?: RouterPushOptions;
436
- classNameActive?: string;
437
- variantActive?: ButtonProps["variant"];
438
- target?: string;
439
- anchorProps?: AnchorProps;
469
+ interface AppBarLang extends AppBarAbstractItem {
470
+ type: "lang";
471
+ props?: Partial<ActionProps>;
440
472
  }
441
- //#endregion
442
- //#region ../../src/core/components/buttons/BurgerButton.d.ts
443
- interface BurgerButtonProps extends BurgerProps {}
444
- declare const BurgerButton: (props: BurgerButtonProps) => react_jsx_runtime0.JSX.Element;
445
- //#endregion
446
- //#region ../../src/core/components/buttons/ClipboardButton.d.ts
447
- interface ClipboardButtonProps extends Omit<ActionCommonProps, "onClick" | "icon"> {
473
+ interface AppBarSpacer extends AppBarAbstractItem {
474
+ type: "spacer";
475
+ }
476
+ interface AppBarDivider extends AppBarAbstractItem {
477
+ type: "divider";
478
+ }
479
+ interface AppBarLogo extends AppBarAbstractItem {
480
+ type: "logo";
481
+ props?: {
482
+ /**
483
+ * Logo image source URL.
484
+ */
485
+ src?: string;
486
+ /**
487
+ * Logo text (used if no src provided).
488
+ */
489
+ text?: string;
490
+ /**
491
+ * Icon component (used if no src or text provided).
492
+ */
493
+ icon?: ReactNode | ComponentType;
494
+ /**
495
+ * Link href when logo is clicked.
496
+ */
497
+ href?: string;
498
+ /**
499
+ * Logo image height in pixels.
500
+ * @default 32
501
+ */
502
+ height?: number;
503
+ /**
504
+ * Logo image width in pixels.
505
+ */
506
+ width?: number;
507
+ /**
508
+ * Font weight for text logo.
509
+ * @default 700
510
+ */
511
+ fontWeight?: number;
512
+ /**
513
+ * Font size for text logo.
514
+ * @default "lg"
515
+ */
516
+ fontSize?: string;
517
+ };
518
+ }
519
+ interface AppBarBack extends AppBarAbstractItem {
520
+ type: "back";
521
+ props?: {
522
+ /**
523
+ * Custom label for back button.
524
+ * @default "Back"
525
+ */
526
+ label?: string;
527
+ /**
528
+ * Show only icon without label.
529
+ * @default true
530
+ */
531
+ iconOnly?: boolean;
532
+ /**
533
+ * Custom href to navigate to instead of history back.
534
+ */
535
+ href?: string;
536
+ /**
537
+ * Custom icon component.
538
+ */
539
+ icon?: ReactNode | ComponentType;
540
+ };
541
+ }
542
+ interface AppBarProps {
543
+ flexProps?: FlexProps$1;
544
+ items?: AppBarItem[];
448
545
  /**
449
- * The value to copy to the clipboard
546
+ * Wrap the AppBar content in a Mantine Container.
547
+ * Pass `true` for default Container, or ContainerProps to customize.
450
548
  */
451
- value: string;
549
+ container?: boolean | ContainerProps$1;
550
+ }
551
+ declare const AppBar: (props: AppBarProps) => react_jsx_runtime0.JSX.Element;
552
+ //#endregion
553
+ //#region ../../src/core/components/layout/Breadcrumb.d.ts
554
+ interface BreadcrumbProps extends FlexProps$1 {
452
555
  /**
453
- * Timeout in ms to show the "Copied" state (default: 2000)
556
+ * Label for the home/root crumb. Set to `false` to hide the root crumb.
557
+ *
558
+ * @default "Home"
454
559
  */
455
- timeout?: number;
560
+ home?: string | false;
456
561
  /**
457
- * Label to show in tooltip when not copied (default: "Copy")
562
+ * Custom separator between crumbs.
563
+ *
564
+ * @default IconChevronRight
458
565
  */
459
- copyLabel?: string;
566
+ separator?: ReactNode;
460
567
  /**
461
- * Label to show in tooltip when copied (default: "Copied")
568
+ * Size of text and separator icons.
569
+ *
570
+ * @default "xs"
462
571
  */
463
- copiedLabel?: string;
572
+ size?: string;
464
573
  }
465
- declare const ClipboardButton: (props: ClipboardButtonProps) => react_jsx_runtime0.JSX.Element;
466
- //#endregion
467
- //#region ../../src/core/components/buttons/DarkModeButton.d.ts
468
574
  /**
469
- * SSR-safe dark mode toggle button.
575
+ * Automatic breadcrumb component that reads the current route hierarchy
576
+ * from the Alepha router's layer stack.
470
577
  *
471
- * Uses CSS-based icon switching to avoid hydration mismatches.
472
- * Both icons are rendered, CSS hides the wrong one based on
473
- * `data-mantine-color-scheme` attribute.
578
+ * Pages should define a `label` in their `$page()` options for best results.
579
+ * Falls back to the page name converted to Title Case.
474
580
  */
475
- declare const DarkModeButton: (props: Partial<ActionProps>) => react_jsx_runtime0.JSX.Element;
581
+ declare const Breadcrumb: ({
582
+ home,
583
+ separator,
584
+ size,
585
+ ...groupProps
586
+ }: BreadcrumbProps) => react_jsx_runtime0.JSX.Element | null;
476
587
  //#endregion
477
- //#region ../../src/core/components/buttons/LanguageButton.d.ts
478
- declare const LanguageButton: (props: Partial<ActionProps>) => react_jsx_runtime0.JSX.Element;
588
+ //#region ../../src/core/components/layout/Container.d.ts
589
+ interface ContainerProps extends ContainerProps$1 {}
590
+ declare const Container: react.ForwardRefExoticComponent<ContainerProps & react.RefAttributes<HTMLDivElement>>;
479
591
  //#endregion
480
- //#region ../../src/core/components/buttons/OmnibarButton.d.ts
481
- interface OmnibarButtonProps {
482
- actionProps?: ActionProps;
592
+ //#region ../../src/core/components/layout/Sidebar.d.ts
593
+ interface SidebarProps {
594
+ items?: SidebarNode[];
595
+ onItemClick?: (item: SidebarMenuItem) => void;
596
+ onSearchClick?: () => void;
597
+ theme?: SidebarTheme;
598
+ flexProps?: Partial<FlexProps$1>;
483
599
  collapsed?: boolean;
600
+ gap?: MantineBreakpoint | number;
601
+ hide?: {
602
+ paths?: string[];
603
+ };
604
+ /**
605
+ * Automatically populate the menu from the router's pages.
606
+ */
607
+ autoPopulateMenu?: boolean | {
608
+ startsWith: string;
609
+ };
484
610
  }
485
- declare const OmnibarButton: (props: OmnibarButtonProps) => react_jsx_runtime0.JSX.Element;
486
- //#endregion
487
- //#region ../../src/core/components/buttons/ThemeButton.d.ts
488
- declare const ThemeButton: (props: Partial<ActionProps>) => react_jsx_runtime0.JSX.Element;
489
- //#endregion
490
- //#region ../../src/core/components/buttons/ToggleSidebarButton.d.ts
491
- type Props = ActionProps;
492
- declare const ToggleSidebarButton: (props: Props) => react_jsx_runtime0.JSX.Element;
493
- //#endregion
494
- //#region ../../src/core/services/DialogService.d.ts
495
- interface BaseDialogOptions extends Partial<ModalProps> {
496
- title?: ReactNode;
497
- message?: ReactNode;
498
- content?: any;
611
+ declare const Sidebar: (props: SidebarProps) => react_jsx_runtime0.JSX.Element;
612
+ interface SidebarItemProps {
613
+ item: SidebarMenuItem;
614
+ level: number;
615
+ onItemClick?: (item: SidebarMenuItem) => void;
616
+ theme: SidebarTheme;
499
617
  }
500
- interface AlertDialogOptions extends BaseDialogOptions {
501
- okLabel?: string;
618
+ type SidebarNode = SidebarMenuItem | SidebarSpacer | SidebarDivider | SidebarSearch | SidebarElement | SidebarSection | SidebarToggle;
619
+ interface SidebarAbstractItem {
620
+ position?: "top" | "bottom";
502
621
  }
503
- interface ConfirmDialogOptions extends BaseDialogOptions {
504
- confirmLabel?: string;
505
- cancelLabel?: string;
506
- confirmColor?: string;
622
+ interface SidebarElement extends SidebarAbstractItem {
623
+ element: ReactNode;
507
624
  }
508
- interface PromptDialogOptions extends BaseDialogOptions {
509
- placeholder?: string;
510
- defaultValue?: string;
511
- label?: string;
512
- required?: boolean;
513
- submitLabel?: string;
514
- cancelLabel?: string;
625
+ interface SidebarSpacer extends SidebarAbstractItem {
626
+ type: "spacer";
515
627
  }
516
- interface AlertDialogProps {
517
- options?: AlertDialogOptions;
518
- onClose: () => void;
628
+ interface SidebarDivider extends SidebarAbstractItem {
629
+ type: "divider";
630
+ fill?: true;
519
631
  }
520
- interface ConfirmDialogProps {
521
- options?: ConfirmDialogOptions;
522
- onConfirm: (confirmed: boolean) => void;
632
+ interface SidebarSearch extends SidebarAbstractItem {
633
+ type: "search";
523
634
  }
524
- interface PromptDialogProps {
525
- options?: PromptDialogOptions;
526
- onSubmit: (value: string | null) => void;
635
+ interface SidebarToggle extends SidebarAbstractItem {
636
+ type: "toggle";
527
637
  }
528
- interface DialogServiceOptions {
529
- default?: Partial<BaseDialogOptions>;
638
+ interface SidebarSection extends SidebarAbstractItem {
639
+ type: "section";
640
+ label: string;
641
+ icon?: ReactNode | ComponentType;
642
+ children?: SidebarNode[];
530
643
  }
531
- declare class DialogService {
532
- readonly options: DialogServiceOptions;
644
+ interface SidebarMenuItem extends SidebarAbstractItem {
645
+ label: string | ReactNode;
646
+ description?: string;
647
+ icon?: ReactNode | ComponentType;
648
+ href?: string;
649
+ target?: "_blank" | "_self" | "_parent" | "_top";
650
+ activeStartsWith?: boolean;
651
+ onClick?: () => void;
652
+ children?: SidebarMenuItem[];
653
+ rightSection?: ReactNode;
654
+ theme?: SidebarButtonTheme;
655
+ actionProps?: ActionProps;
656
+ can?: () => boolean;
657
+ }
658
+ interface SidebarButtonTheme {
659
+ radius?: MantineBreakpoint;
660
+ size?: MantineBreakpoint;
661
+ }
662
+ interface SidebarTheme {
663
+ button?: SidebarButtonTheme;
664
+ search?: SidebarButtonTheme;
665
+ }
666
+ //#endregion
667
+ //#region ../../src/core/components/layout/DashboardShell.d.ts
668
+ interface DashboardShellProps {
669
+ appShellProps?: Partial<AppShellProps>;
670
+ appShellMainProps?: Partial<AppShellMainProps>;
671
+ appShellHeaderProps?: Partial<AppShellHeaderProps>;
672
+ appShellNavbarProps?: Partial<AppShellNavbarProps>;
673
+ appShellFooterProps?: Partial<AppShellFooterProps>;
674
+ sidebarProps?: Partial<SidebarProps>;
675
+ appBarProps?: Partial<AppBarProps>;
676
+ header?: ReactNode;
677
+ footer?: ReactNode;
678
+ children?: ReactNode;
533
679
  /**
534
- * Show an alert dialog with a message
680
+ * AppShell layout mode.
681
+ * - "default": header/footer span full width, navbar below header.
682
+ * - "alt": navbar is full height, header/footer offset by navbar width.
535
683
  */
536
- alert(options?: AlertDialogOptions): Promise<void>;
684
+ layout?: "default" | "alt";
537
685
  /**
538
- * Show a confirmation dialog that returns a promise
686
+ * Content rendered above the Sidebar inside the navbar (e.g. logo).
539
687
  */
540
- confirm(options?: ConfirmDialogOptions): Promise<boolean>;
688
+ navbarHeader?: ReactNode;
541
689
  /**
542
- * Show a prompt dialog to get user input
690
+ * Content rendered below the Sidebar inside the navbar (e.g. toggle button).
543
691
  */
544
- prompt(options?: PromptDialogOptions): Promise<string | null>;
692
+ navbarFooter?: ReactNode;
545
693
  /**
546
- * Open a custom dialog with provided content
694
+ * Height of the header bar in pixels.
695
+ * @default 60
547
696
  */
548
- open(options?: BaseDialogOptions): string;
697
+ headerHeight?: number;
549
698
  /**
550
- * Close the currently open dialog or a specific dialog by ID
699
+ * Height of the footer bar in pixels.
700
+ * @default 24
551
701
  */
552
- close(modalId?: string): void;
702
+ footerHeight?: number;
703
+ noSidebarWhen?: {
704
+ /**
705
+ * Paths where the sidebar should be hidden.
706
+ */
707
+ paths?: string[];
708
+ };
709
+ /**
710
+ * Wrap AppBar and main content in a Mantine Container.
711
+ * Pass `true` for default Container, or ContainerProps to customize.
712
+ */
713
+ container?: boolean | ContainerProps$1;
714
+ }
715
+ declare const DashboardShell: (props: DashboardShellProps) => react_jsx_runtime0.JSX.Element;
716
+ //#endregion
717
+ //#region ../../src/core/components/Text.d.ts
718
+ interface TextProps extends TextProps$1 {
719
+ children?: ReactNode;
720
+ /**
721
+ * Semantic color intent for the text.
722
+ */
723
+ intent?: AlephaIntent;
724
+ /**
725
+ * Shorthand for fw={700}.
726
+ */
727
+ bold?: boolean;
728
+ /**
729
+ * Shorthand for fs="italic".
730
+ */
731
+ italic?: boolean;
732
+ /**
733
+ * Shorthand for fw={300}.
734
+ */
735
+ light?: boolean;
553
736
  /**
554
- * Show an error viewer dialog
737
+ * Shorthand for c="dimmed".
555
738
  */
556
- error(error: Error | unknown, options?: BaseDialogOptions & {
557
- showStack?: boolean;
558
- }): void;
739
+ muted?: boolean;
559
740
  /**
560
- * Show a form dialog for structured input
741
+ * Shorthand for size="sm".
561
742
  */
562
- form(options?: BaseDialogOptions): Promise<any>;
743
+ small?: boolean;
563
744
  /**
564
- * Show a loading/progress dialog with optional progress percentage
745
+ * Shorthand for tt="uppercase".
565
746
  */
566
- loading(options?: BaseDialogOptions & {
567
- progress?: number;
568
- }): void;
747
+ uppercase?: boolean;
569
748
  /**
570
- * Show an image viewer/gallery dialog
749
+ * Shorthand for tt="capitalize".
571
750
  */
572
- image(src: string | string[], options?: BaseDialogOptions): void;
751
+ capitalize?: boolean;
752
+ /**
753
+ * Shorthand for ta="center".
754
+ */
755
+ center?: boolean;
756
+ /**
757
+ * Shorthand for ff="monospace".
758
+ */
759
+ monospace?: boolean;
760
+ /**
761
+ * Text with title styles (larger font size, bolder weight).
762
+ */
763
+ title?: boolean;
573
764
  }
765
+ declare const Text: react.ForwardRefExoticComponent<TextProps & react.RefAttributes<HTMLParagraphElement>>;
574
766
  //#endregion
575
- //#region ../../src/core/components/dialogs/AlertDialog.d.ts
576
- declare const AlertDialog: ({
577
- options,
578
- onClose
579
- }: AlertDialogProps) => react_jsx_runtime0.JSX.Element;
767
+ //#region ../../src/core/constants/ui.d.ts
768
+ declare const ui: {
769
+ colors: {
770
+ transparent: string;
771
+ background: string;
772
+ surface: string;
773
+ elevated: string;
774
+ border: string;
775
+ };
776
+ sizes: {
777
+ icon: {
778
+ xs: number;
779
+ sm: number;
780
+ md: number;
781
+ lg: number;
782
+ xl: number;
783
+ };
784
+ };
785
+ };
580
786
  //#endregion
581
- //#region ../../src/core/components/dialogs/ConfirmDialog.d.ts
582
- declare const ConfirmDialog: ({
583
- options,
584
- onConfirm
585
- }: ConfirmDialogProps) => react_jsx_runtime0.JSX.Element;
787
+ //#region ../../src/core/form/utils/parseInput.d.ts
788
+ interface GenericControlProps {
789
+ input: BaseInputField;
790
+ title?: string;
791
+ description?: string;
792
+ icon?: ReactElement | ((props: {
793
+ size: number;
794
+ }) => ReactNode);
795
+ size?: "xs" | "sm" | "md" | "lg" | "xl";
796
+ }
586
797
  //#endregion
587
- //#region ../../src/core/components/dialogs/PromptDialog.d.ts
588
- declare const PromptDialog: ({
589
- options,
590
- onSubmit
591
- }: PromptDialogProps) => react_jsx_runtime0.JSX.Element;
798
+ //#region ../../src/core/form/components/ControlArray.d.ts
799
+ interface ControlArrayProps extends GenericControlProps {
800
+ /**
801
+ * Minimum number of items allowed.
802
+ * @default 0
803
+ */
804
+ min?: number;
805
+ /**
806
+ * Maximum number of items allowed.
807
+ * @default Infinity
808
+ */
809
+ max?: number;
810
+ /**
811
+ * Label for the add button.
812
+ * @default "Add item"
813
+ */
814
+ addLabel?: string;
815
+ /**
816
+ * Number of columns for object item fields.
817
+ * @default 1
818
+ */
819
+ columns?: number;
820
+ /**
821
+ * Variant for the container.
822
+ * - "fieldset": Uses Mantine Fieldset with legend
823
+ * - "plain": No container, just renders items
824
+ * @default "fieldset"
825
+ */
826
+ variant?: "fieldset" | "plain";
827
+ /**
828
+ * Per-field control props override for object items.
829
+ * Keys are field names from the item schema.
830
+ */
831
+ controlProps?: Record<string, Partial<Omit<ControlProps, "input">>>;
832
+ /**
833
+ * Control props for primitive items.
834
+ */
835
+ itemControlProps?: Partial<Omit<ControlProps, "input">>;
836
+ /**
837
+ * Show drag handle for reordering.
838
+ * @default false
839
+ */
840
+ sortable?: boolean;
841
+ }
842
+ /**
843
+ * ControlArray component for editing arrays of schema items.
844
+ *
845
+ * Features:
846
+ * - Dynamic add/remove of items
847
+ * - Supports arrays of objects with nested fields
848
+ * - Supports arrays of primitives
849
+ * - Grid layout for object items
850
+ * - Min/max constraints
851
+ * - Syncs with form state (handles external updates and resets)
852
+ *
853
+ * @example
854
+ * ```tsx
855
+ * // For a schema like:
856
+ * // t.object({
857
+ * // contacts: t.array(t.object({
858
+ * // name: t.text(),
859
+ * // email: t.text({ format: "email" }),
860
+ * // }))
861
+ * // })
862
+ *
863
+ * <ControlArray
864
+ * input={form.input.contacts}
865
+ * columns={2}
866
+ * addLabel="Add contact"
867
+ * controlProps={{
868
+ * email: { text: { placeholder: "email@example.com" } }
869
+ * }}
870
+ * />
871
+ * ```
872
+ */
873
+ declare const ControlArray: (props: ControlArrayProps) => react_jsx_runtime0.JSX.Element | null;
874
+ //#endregion
875
+ //#region ../../src/core/form/components/ControlNumber.d.ts
876
+ interface ControlNumberProps extends GenericControlProps {
877
+ numberInputProps?: Partial<NumberInputProps>;
878
+ sliderProps?: Partial<SliderProps>;
879
+ }
880
+ /**
881
+ *
882
+ */
883
+ declare const ControlNumber: (props: ControlNumberProps) => react_jsx_runtime0.JSX.Element | null;
884
+ //#endregion
885
+ //#region ../../src/core/form/components/ControlObject.d.ts
886
+ interface ControlObjectProps extends GenericControlProps {
887
+ /**
888
+ * Number of columns for the grid layout.
889
+ * @default 1
890
+ */
891
+ columns?: number;
892
+ /**
893
+ * Variant for the container.
894
+ * - "fieldset": Uses Mantine Fieldset with legend
895
+ * - "plain": No container, just renders fields
896
+ * @default "fieldset"
897
+ */
898
+ variant?: "fieldset" | "plain";
899
+ /**
900
+ * Per-field control props override.
901
+ * Keys are field names from the schema.
902
+ */
903
+ controlProps?: Record<string, Partial<Omit<ControlProps, "input">>>;
904
+ }
905
+ /**
906
+ * ControlObject component for editing nested object schemas.
907
+ *
908
+ * Features:
909
+ * - Renders all properties of an object schema
910
+ * - Supports grid layout with configurable columns
911
+ * - Per-field customization via controlProps
912
+ * - Recursive support for deeply nested objects
913
+ *
914
+ * The form system provides nested InputFields under the `.items` property.
915
+ * For example: form.input.address.items.street
916
+ *
917
+ * @example
918
+ * ```tsx
919
+ * // For a schema like:
920
+ * // t.object({
921
+ * // address: t.object({
922
+ * // street: t.text(),
923
+ * // city: t.text(),
924
+ * // zip: t.text(),
925
+ * // })
926
+ * // })
927
+ *
928
+ * <ControlObject
929
+ * input={form.input.address}
930
+ * columns={2}
931
+ * controlProps={{
932
+ * zip: { text: { maxLength: 10 } }
933
+ * }}
934
+ * />
935
+ * ```
936
+ */
937
+ declare const ControlObject: (props: ControlObjectProps) => react_jsx_runtime0.JSX.Element | null;
938
+ //#endregion
939
+ //#region ../../src/core/form/components/ControlSelect.d.ts
940
+ type SelectValueLabel = string | {
941
+ value: string;
942
+ label: string;
943
+ icon?: string;
944
+ };
945
+ interface ControlSelectProps extends GenericControlProps {
946
+ select?: boolean | SelectProps;
947
+ multi?: boolean | MultiSelectProps;
948
+ tags?: boolean | TagsInputProps;
949
+ autocomplete?: boolean | AutocompleteProps;
950
+ segmented?: boolean | Partial<SegmentedControlProps>;
951
+ loader?: () => Promise<SelectValueLabel[]>;
952
+ }
953
+ /**
954
+ * ControlSelect component for handling Select, MultiSelect, and TagsInput.
955
+ *
956
+ * Features:
957
+ * - Basic Select with enum support
958
+ * - MultiSelect for array of enums
959
+ * - TagsInput for array of strings (no enum)
960
+ * - Future: Lazy loading
961
+ * - Future: Searchable/filterable options
962
+ * - Future: Custom option rendering
963
+ *
964
+ * Automatically detects enum values and array types from schema.
965
+ */
966
+ declare const ControlSelect: (props: ControlSelectProps) => react_jsx_runtime0.JSX.Element | null;
967
+ //#endregion
968
+ //#region ../../src/core/form/components/Control.d.ts
969
+ interface ControlProps extends GenericControlProps {
970
+ text?: TextInputProps;
971
+ area?: boolean | TextareaProps;
972
+ select?: boolean | Partial<ControlSelectProps>;
973
+ password?: boolean | PasswordInputProps;
974
+ switch?: boolean | SwitchProps;
975
+ number?: boolean | Partial<ControlNumberProps>;
976
+ file?: boolean | FileInputProps;
977
+ color?: boolean | ColorInputProps;
978
+ date?: boolean | DateInputProps;
979
+ datetime?: boolean | DateTimePickerProps;
980
+ time?: boolean | TimeInputProps;
981
+ query?: any;
982
+ object?: boolean | Partial<Omit<ControlObjectProps, "input">>;
983
+ array?: boolean | Partial<Omit<ControlArrayProps, "input">>;
984
+ custom?: ComponentType<CustomControlProps>;
985
+ slider?: boolean;
986
+ segmented?: boolean;
987
+ }
988
+ /**
989
+ * Generic form control that renders the appropriate input based on the schema and props.
990
+ *
991
+ * Supports:
992
+ * - TextInput (with format detection: email, url, tel)
993
+ * - Textarea
994
+ * - NumberInput (for number/integer types)
995
+ * - FileInput
996
+ * - ColorInput (for color format)
997
+ * - Select (for enum types)
998
+ * - Autocomplete
999
+ * - PasswordInput
1000
+ * - Switch (for boolean types)
1001
+ * - SegmentedControl (for enum types)
1002
+ * - DateInput (for date format)
1003
+ * - DateTimePicker (for date-time format)
1004
+ * - TimeInput (for time format)
1005
+ * - QueryBuilder (for building type-safe queries with autocomplete)
1006
+ * - ControlObject (for nested object schemas)
1007
+ * - ControlArray (for arrays of objects)
1008
+ * - Custom component
1009
+ *
1010
+ * Automatically handles labels, descriptions, error messages, required state, and default icons.
1011
+ */
1012
+ declare const Control: (_props: ControlProps) => react_jsx_runtime0.JSX.Element | null;
1013
+ type CustomControlProps = {
1014
+ defaultValue: any;
1015
+ onChange: (value: any) => void;
1016
+ };
592
1017
  //#endregion
593
- //#region ../../src/core/components/form/ControlDate.d.ts
1018
+ //#region ../../src/core/form/components/ControlDate.d.ts
594
1019
  interface ControlDateProps extends GenericControlProps {
595
1020
  date?: boolean | DateInputProps;
596
1021
  datetime?: boolean | DateTimePickerProps;
@@ -608,7 +1033,7 @@ interface ControlDateProps extends GenericControlProps {
608
1033
  */
609
1034
  declare const ControlDate: (props: ControlDateProps) => react_jsx_runtime0.JSX.Element | null;
610
1035
  //#endregion
611
- //#region ../../src/core/components/form/ControlQueryBuilder.d.ts
1036
+ //#region ../../src/core/form/components/ControlQueryBuilder.d.ts
612
1037
  interface ControlQueryBuilderProps extends Omit<TextInputProps, "value" | "onChange"> {
613
1038
  schema?: TObject;
614
1039
  value?: string;
@@ -627,7 +1052,7 @@ declare const ControlQueryBuilder: ({
627
1052
  ...textInputProps
628
1053
  }: ControlQueryBuilderProps) => react_jsx_runtime0.JSX.Element;
629
1054
  //#endregion
630
- //#region ../../src/core/components/form/TypeForm.d.ts
1055
+ //#region ../../src/core/form/components/TypeForm.d.ts
631
1056
  interface TypeFormProps<T extends TObject> {
632
1057
  form: FormModel<T>;
633
1058
  columns?: number | {
@@ -654,7 +1079,7 @@ interface TypeFormProps<T extends TObject> {
654
1079
  submitButtonProps?: Partial<Omit<ActionSubmitButtonProps, "form">>;
655
1080
  resetButtonProps?: Partial<Omit<ActionSubmitButtonProps, "form">>;
656
1081
  fill?: boolean;
657
- flexProps?: FlexProps;
1082
+ flexProps?: FlexProps$1;
658
1083
  size?: "xs" | "sm" | "md" | "lg" | "xl";
659
1084
  }
660
1085
  /**
@@ -677,333 +1102,193 @@ interface TypeFormProps<T extends TObject> {
677
1102
  * const form = useForm({
678
1103
  * schema: t.object({
679
1104
  * username: t.text(),
680
- * email: t.text(),
681
- * age: t.integer(),
682
- * subscribe: t.boolean(),
683
- * address: t.object({
684
- * street: t.text(),
685
- * city: t.text(),
686
- * }),
687
- * tags: t.array(t.text()),
688
- * contacts: t.array(t.object({
689
- * name: t.text(),
690
- * email: t.text(),
691
- * })),
692
- * }),
693
- * handler: (values) => {
694
- * console.log(values);
695
- * },
696
- * });
697
- *
698
- * return <TypeForm form={form} columns={2} />;
699
- * ```
700
- */
701
- declare const TypeForm: <T extends TObject>(props: TypeFormProps<T>) => react_jsx_runtime0.JSX.Element | null;
702
- //#endregion
703
- //#region ../../src/core/components/layout/Omnibar.d.ts
704
- interface OmnibarProps {
705
- shortcut?: string | string[];
706
- searchPlaceholder?: string;
707
- nothingFound?: ReactNode;
708
- }
709
- declare const Omnibar: (props: OmnibarProps) => react_jsx_runtime0.JSX.Element;
710
- //#endregion
711
- //#region ../../src/core/components/layout/AlephaMantineProvider.d.ts
712
- interface AlephaMantineProviderProps {
713
- children?: ReactNode;
714
- mantine?: MantineProviderProps;
715
- colorSchemeScript?: ColorSchemeScriptProps;
716
- navigationProgress?: NavigationProgressProps;
717
- notifications?: NotificationsProps;
718
- modals?: ModalsProviderProps;
719
- omnibar?: OmnibarProps | false;
720
- }
721
- declare const AlephaMantineProvider: (props: AlephaMantineProviderProps) => react_jsx_runtime0.JSX.Element;
722
- //#endregion
723
- //#region ../../src/core/components/layout/AppBar.d.ts
724
- type AppBarItem = AppBarElement | AppBarBurger | AppBarDark | AppBarSearch | AppBarLang | AppBarSpacer | AppBarDivider | AppBarLogo | AppBarBack;
725
- interface AppBarAbstractItem {
726
- position: "left" | "center" | "right";
727
- /**
728
- * Visibility control: return true to show, false to hide.
729
- */
730
- can?: () => boolean;
731
- }
732
- interface AppBarElement extends AppBarAbstractItem {
733
- element: ReactNode;
734
- }
735
- interface AppBarBurger extends AppBarAbstractItem {
736
- type: "burger";
737
- }
738
- interface AppBarDark extends AppBarAbstractItem {
739
- type: "dark";
740
- props?: Partial<ActionProps>;
741
- }
742
- interface AppBarSearch extends AppBarAbstractItem {
743
- type: "search";
744
- props?: OmnibarButtonProps;
745
- }
746
- interface AppBarLang extends AppBarAbstractItem {
747
- type: "lang";
748
- props?: Partial<ActionProps>;
749
- }
750
- interface AppBarSpacer extends AppBarAbstractItem {
751
- type: "spacer";
752
- }
753
- interface AppBarDivider extends AppBarAbstractItem {
754
- type: "divider";
755
- }
756
- interface AppBarLogo extends AppBarAbstractItem {
757
- type: "logo";
758
- props?: {
759
- /**
760
- * Logo image source URL.
761
- */
762
- src?: string;
763
- /**
764
- * Logo text (used if no src provided).
765
- */
766
- text?: string;
767
- /**
768
- * Icon component (used if no src or text provided).
769
- */
770
- icon?: ReactNode | ComponentType;
771
- /**
772
- * Link href when logo is clicked.
773
- */
774
- href?: string;
775
- /**
776
- * Logo image height in pixels.
777
- * @default 32
778
- */
779
- height?: number;
780
- /**
781
- * Logo image width in pixels.
782
- */
783
- width?: number;
784
- /**
785
- * Font weight for text logo.
786
- * @default 700
787
- */
788
- fontWeight?: number;
789
- /**
790
- * Font size for text logo.
791
- * @default "lg"
792
- */
793
- fontSize?: string;
794
- };
795
- }
796
- interface AppBarBack extends AppBarAbstractItem {
797
- type: "back";
798
- props?: {
799
- /**
800
- * Custom label for back button.
801
- * @default "Back"
802
- */
803
- label?: string;
804
- /**
805
- * Show only icon without label.
806
- * @default true
807
- */
808
- iconOnly?: boolean;
809
- /**
810
- * Custom href to navigate to instead of history back.
811
- */
812
- href?: string;
813
- /**
814
- * Custom icon component.
815
- */
816
- icon?: ReactNode | ComponentType;
817
- };
818
- }
819
- interface AppBarProps {
820
- flexProps?: FlexProps;
821
- items?: AppBarItem[];
822
- /**
823
- * Wrap the AppBar content in a Mantine Container.
824
- * Pass `true` for default Container, or ContainerProps to customize.
825
- */
826
- container?: boolean | ContainerProps;
827
- }
828
- declare const AppBar: (props: AppBarProps) => react_jsx_runtime0.JSX.Element;
829
- //#endregion
830
- //#region ../../src/core/components/layout/Breadcrumb.d.ts
831
- interface BreadcrumbProps extends FlexProps {
832
- /**
833
- * Label for the home/root crumb. Set to `false` to hide the root crumb.
834
- *
835
- * @default "Home"
836
- */
837
- home?: string | false;
838
- /**
839
- * Custom separator between crumbs.
840
- *
841
- * @default IconChevronRight
842
- */
843
- separator?: ReactNode;
844
- /**
845
- * Size of text and separator icons.
846
- *
847
- * @default "xs"
848
- */
849
- size?: string;
850
- }
851
- /**
852
- * Automatic breadcrumb component that reads the current route hierarchy
853
- * from the Alepha router's layer stack.
854
- *
855
- * Pages should define a `label` in their `$page()` options for best results.
856
- * Falls back to the page name converted to Title Case.
857
- */
858
- declare const Breadcrumb: ({
859
- home,
860
- separator,
861
- size,
862
- ...groupProps
863
- }: BreadcrumbProps) => react_jsx_runtime0.JSX.Element | null;
864
- //#endregion
865
- //#region ../../src/core/components/layout/Sidebar.d.ts
866
- interface SidebarProps {
867
- items?: SidebarNode[];
868
- onItemClick?: (item: SidebarMenuItem) => void;
869
- onSearchClick?: () => void;
870
- theme?: SidebarTheme;
871
- flexProps?: Partial<FlexProps>;
872
- collapsed?: boolean;
873
- gap?: MantineBreakpoint | number;
874
- hide?: {
875
- paths?: string[];
876
- };
877
- /**
878
- * Whether the sidebar expands on hover when collapsed.
879
- * @default true
880
- */
881
- expandOnHover?: boolean;
882
- /**
883
- * Automatically populate the menu from the router's pages.
884
- */
885
- autoPopulateMenu?: boolean | {
886
- startsWith: string;
887
- };
888
- }
889
- declare const Sidebar: (props: SidebarProps) => react_jsx_runtime0.JSX.Element;
890
- interface SidebarItemProps {
891
- item: SidebarMenuItem;
892
- level: number;
893
- onItemClick?: (item: SidebarMenuItem) => void;
894
- theme: SidebarTheme;
895
- }
896
- interface SidebarItemProps {
897
- item: SidebarMenuItem;
898
- level: number;
899
- onItemClick?: (item: SidebarMenuItem) => void;
900
- theme: SidebarTheme;
901
- }
902
- type SidebarNode = SidebarMenuItem | SidebarSpacer | SidebarDivider | SidebarSearch | SidebarElement | SidebarSection | SidebarToggle;
903
- interface SidebarAbstractItem {
904
- position?: "top" | "bottom";
905
- }
906
- interface SidebarElement extends SidebarAbstractItem {
907
- element: ReactNode;
908
- }
909
- interface SidebarSpacer extends SidebarAbstractItem {
910
- type: "spacer";
911
- }
912
- interface SidebarDivider extends SidebarAbstractItem {
913
- type: "divider";
914
- fill?: true;
915
- }
916
- interface SidebarSearch extends SidebarAbstractItem {
917
- type: "search";
918
- }
919
- interface SidebarToggle extends SidebarAbstractItem {
920
- type: "toggle";
921
- }
922
- interface SidebarSection extends SidebarAbstractItem {
923
- type: "section";
924
- label: string;
925
- icon?: ReactNode | ComponentType;
926
- children?: SidebarNode[];
927
- }
928
- interface SidebarMenuItem extends SidebarAbstractItem {
929
- label: string | ReactNode;
930
- description?: string;
931
- icon?: ReactNode | ComponentType;
932
- href?: string;
933
- target?: "_blank" | "_self" | "_parent" | "_top";
934
- activeStartsWith?: boolean;
935
- onClick?: () => void;
936
- children?: SidebarMenuItem[];
937
- rightSection?: ReactNode;
938
- theme?: SidebarButtonTheme;
939
- actionProps?: ActionProps;
940
- can?: () => boolean;
1105
+ * email: t.text(),
1106
+ * age: t.integer(),
1107
+ * subscribe: t.boolean(),
1108
+ * address: t.object({
1109
+ * street: t.text(),
1110
+ * city: t.text(),
1111
+ * }),
1112
+ * tags: t.array(t.text()),
1113
+ * contacts: t.array(t.object({
1114
+ * name: t.text(),
1115
+ * email: t.text(),
1116
+ * })),
1117
+ * }),
1118
+ * handler: (values) => {
1119
+ * console.log(values);
1120
+ * },
1121
+ * });
1122
+ *
1123
+ * return <TypeForm form={form} columns={2} />;
1124
+ * ```
1125
+ */
1126
+ declare const TypeForm: <T extends TObject>(props: TypeFormProps<T>) => react_jsx_runtime0.JSX.Element | null;
1127
+ //#endregion
1128
+ //#region ../../src/core/form/factories/dialogForm.d.ts
1129
+ interface DialogFormOptions<T extends TObject> extends BaseDialogOptions {
1130
+ typeFormProps?: Partial<Omit<TypeFormProps<T>, "form">>;
941
1131
  }
942
- interface SidebarButtonTheme {
943
- radius?: MantineBreakpoint;
944
- size?: MantineBreakpoint;
1132
+ /**
1133
+ * Creates dialog options for a form dialog.
1134
+ *
1135
+ * @param form - The form model to render.
1136
+ * @param options - Additional dialog and TypeForm options.
1137
+ */
1138
+ declare const dialogForm: <T extends TObject>(form: FormModel<T>, options?: DialogFormOptions<T>) => BaseDialogOptions;
1139
+ //#endregion
1140
+ //#region ../../src/core/form/index.d.ts
1141
+ declare module "typebox" {
1142
+ interface TSchemaOptions {
1143
+ $control?: Omit<ControlProps, "input">;
1144
+ }
1145
+ } //# sourceMappingURL=index.d.ts.map
1146
+ //#endregion
1147
+ //#region ../../src/core/helpers/isComponentType.d.ts
1148
+ declare function isComponentType(param: any): param is ComponentType<any>;
1149
+ //#endregion
1150
+ //#region ../../src/core/helpers/renderIcon.d.ts
1151
+ declare const renderIcon: (icon: ReactNode | ComponentType, size?: number) => ReactNode;
1152
+ //#endregion
1153
+ //#region ../../src/core/hooks/useDialog.d.ts
1154
+ /**
1155
+ * Use this hook to access the Dialog Service for showing various dialog types.
1156
+ *
1157
+ * @example
1158
+ * ```tsx
1159
+ * const dialog = useDialog();
1160
+ * await dialog.alert({ title: "Alert", message: "This is an alert message" });
1161
+ * const confirmed = await dialog.confirm({ title: "Confirm", message: "Are you sure?" });
1162
+ * const input = await dialog.prompt({ title: "Input", message: "Enter your name:" });
1163
+ * ```
1164
+ */
1165
+ declare const useDialog: () => DialogService;
1166
+ //#endregion
1167
+ //#region ../../src/core/hooks/useTheme.d.ts
1168
+ /**
1169
+ * Hook to get and set the current theme.
1170
+ *
1171
+ * Returns a tuple with the current theme and a function to set the theme.
1172
+ *
1173
+ * ```tsx
1174
+ * const [theme, setTheme] = useTheme();
1175
+ * ```
1176
+ */
1177
+ declare const useTheme: () => [AlephaTheme, (theme: CurrentAlephaTheme) => void];
1178
+ //#endregion
1179
+ //#region ../../src/core/services/ToastService.d.ts
1180
+ interface ToastServiceOptions {
1181
+ default?: Partial<NotificationData>;
945
1182
  }
946
- interface SidebarTheme {
947
- button?: SidebarButtonTheme;
948
- search?: SidebarButtonTheme;
1183
+ declare class ToastService {
1184
+ protected readonly raw: {
1185
+ readonly show: typeof _mantine_notifications0.showNotification;
1186
+ readonly hide: typeof _mantine_notifications0.hideNotification;
1187
+ readonly update: typeof _mantine_notifications0.updateNotification;
1188
+ readonly clean: typeof _mantine_notifications0.cleanNotifications;
1189
+ readonly cleanQueue: typeof _mantine_notifications0.cleanNotificationsQueue;
1190
+ readonly updateState: typeof _mantine_notifications0.updateNotificationsState;
1191
+ };
1192
+ readonly options: ToastServiceOptions;
1193
+ show(options: NotificationData): void;
1194
+ info(options: Partial<NotificationData> | string): void;
1195
+ success(options: Partial<NotificationData> | string): void;
1196
+ warning(options: Partial<NotificationData> | string): void;
1197
+ danger(options: Partial<NotificationData> | string): void;
949
1198
  }
950
1199
  //#endregion
951
- //#region ../../src/core/components/layout/DashboardShell.d.ts
952
- interface DashboardShellProps {
953
- appShellProps?: Partial<AppShellProps>;
954
- appShellMainProps?: Partial<AppShellMainProps>;
955
- appShellHeaderProps?: Partial<AppShellHeaderProps>;
956
- appShellNavbarProps?: Partial<AppShellNavbarProps>;
957
- appShellFooterProps?: Partial<AppShellFooterProps>;
958
- sidebarProps?: Partial<SidebarProps>;
959
- appBarProps?: Partial<AppBarProps>;
960
- header?: ReactNode;
961
- footer?: ReactNode;
962
- children?: ReactNode;
963
- /**
964
- * AppShell layout mode.
965
- * - "default": header/footer span full width, navbar below header.
966
- * - "alt": navbar is full height, header/footer offset by navbar width.
967
- */
968
- layout?: "default" | "alt";
1200
+ //#region ../../src/core/hooks/useToast.d.ts
1201
+ /**
1202
+ * Use this hook to access the Toast Service for showing notifications.
1203
+ *
1204
+ * @example
1205
+ * ```tsx
1206
+ * const toast = useToast();
1207
+ * toast.success({ message: "Operation completed successfully!" });
1208
+ * toast.error({ title: "Error", message: "Something went wrong" });
1209
+ * ```
1210
+ */
1211
+ declare const useToast: () => ToastService;
1212
+ //#endregion
1213
+ //#region ../../src/core/json/components/JsonViewer.d.ts
1214
+ interface JsonViewerProps {
1215
+ data: any;
969
1216
  /**
970
- * Content rendered above the Sidebar inside the navbar (e.g. logo).
1217
+ * Depth level to expand by default (0 = collapsed, Infinity = all expanded)
971
1218
  */
972
- navbarHeader?: ReactNode;
1219
+ defaultExpandedDepth?: number;
973
1220
  /**
974
- * Content rendered below the Sidebar inside the navbar (e.g. toggle button).
1221
+ * Maximum nesting depth to render
975
1222
  */
976
- navbarFooter?: ReactNode;
1223
+ maxDepth?: number;
977
1224
  /**
978
- * Height of the header bar in pixels.
979
- * @default 60
1225
+ * Size variant
980
1226
  */
981
- headerHeight?: number;
1227
+ size?: MantineSize;
982
1228
  /**
983
- * Height of the footer bar in pixels.
984
- * @default 24
1229
+ * Whether to show quotes around keys and strings
985
1230
  */
986
- footerHeight?: number;
1231
+ showQuotes?: boolean;
987
1232
  /**
988
- * Enable drag-to-resize for the sidebar.
989
- * Width and constraints are configured in alephaSidebarAtom.
1233
+ * Show copy button on row hover
990
1234
  */
991
- sidebarResizable?: boolean;
992
- noSidebarWhen?: {
993
- /**
994
- * Paths where the sidebar should be hidden.
995
- */
996
- paths?: string[];
997
- };
1235
+ showCopyButton?: boolean;
998
1236
  /**
999
- * Wrap AppBar and main content in a Mantine Container.
1000
- * Pass `true` for default Container, or ContainerProps to customize.
1237
+ * Custom value formatter. Return formatted string or undefined to use default.
1001
1238
  */
1002
- container?: boolean | ContainerProps;
1239
+ formatValue?: (key: string | undefined, value: any, path: string[]) => string | number | undefined;
1240
+ }
1241
+ declare const JsonViewer: ({
1242
+ data,
1243
+ defaultExpandedDepth,
1244
+ maxDepth,
1245
+ size,
1246
+ showQuotes,
1247
+ showCopyButton,
1248
+ formatValue
1249
+ }: JsonViewerProps) => react_jsx_runtime0.JSX.Element;
1250
+ //#endregion
1251
+ //#region ../../src/core/json/factories/dialogJson.d.ts
1252
+ /**
1253
+ * Creates dialog options for a JSON viewer dialog.
1254
+ *
1255
+ * @param data - The JSON data to display.
1256
+ * @param options - Additional dialog options.
1257
+ */
1258
+ declare const dialogJson: (data?: any, options?: BaseDialogOptions) => BaseDialogOptions;
1259
+ //#endregion
1260
+ //#region ../../src/core/UiRouter.d.ts
1261
+ /**
1262
+ * UI Router defining the root page with AlephaMantineProvider.
1263
+ *
1264
+ * - Use UiRouter when you need Alepha's Mantine-based UI components and theming.
1265
+ * - Prefer to use $ui() for convenience. (Custom Factory of UiRouter)
1266
+ */
1267
+ declare class UiRouter {
1268
+ readonly root: alepha_react_router0.PagePrimitive<alepha_react_router0.PageConfigSchema, any, alepha_react_router0.TPropsParentDefault>;
1269
+ }
1270
+ //#endregion
1271
+ //#region ../../src/core/primitives/$ui.d.ts
1272
+ /**
1273
+ * Convenience function to configure and inject the UiRouter.
1274
+ */
1275
+ declare const $ui: (options?: {
1276
+ themes?: AlephaThemeListAtom;
1277
+ }) => UiRouter;
1278
+ //#endregion
1279
+ //#region ../../src/core/providers/ThemeProvider.d.ts
1280
+ declare class ThemeProvider {
1281
+ protected readonly alepha: Alepha;
1282
+ protected readonly cookie: alepha_server_cookies0.AbstractCookiePrimitive<alepha.TObject<{
1283
+ index: alepha.TInteger;
1284
+ }>>;
1285
+ protected readonly head: alepha_react_head0.HeadPrimitive;
1286
+ setTheme(index: number): void;
1287
+ getTheme(): AlephaTheme;
1288
+ protected getThemeIndex(): number;
1003
1289
  }
1004
- declare const DashboardShell: (props: DashboardShellProps) => react_jsx_runtime0.JSX.Element;
1005
1290
  //#endregion
1006
- //#region ../../src/core/components/table/types.d.ts
1291
+ //#region ../../src/core/table/interfaces/types.d.ts
1007
1292
  type DataTableRowAction = ActionProps & {
1008
1293
  visible?: boolean;
1009
1294
  };
@@ -1130,89 +1415,9 @@ interface DataTableProps<T extends object, Filters extends TObject> {
1130
1415
  tableTrProps?: (item: T) => TableTrProps;
1131
1416
  }
1132
1417
  //#endregion
1133
- //#region ../../src/core/components/table/DataTable.d.ts
1418
+ //#region ../../src/core/table/components/DataTable.d.ts
1134
1419
  declare const DataTable: <T extends object, Filters extends TObject>(props: DataTableProps<T, Filters>) => react_jsx_runtime0.JSX.Element;
1135
1420
  //#endregion
1136
- //#region ../../src/core/constants/ui.d.ts
1137
- declare const ui: {
1138
- colors: {
1139
- transparent: string;
1140
- background: string;
1141
- surface: string;
1142
- elevated: string;
1143
- border: string;
1144
- };
1145
- sizes: {
1146
- icon: {
1147
- xs: number;
1148
- sm: number;
1149
- md: number;
1150
- lg: number;
1151
- xl: number;
1152
- };
1153
- };
1154
- };
1155
- //#endregion
1156
- //#region ../../src/core/hooks/useDialog.d.ts
1157
- /**
1158
- * Use this hook to access the Dialog Service for showing various dialog types.
1159
- *
1160
- * @example
1161
- * ```tsx
1162
- * const dialog = useDialog();
1163
- * await dialog.alert({ title: "Alert", message: "This is an alert message" });
1164
- * const confirmed = await dialog.confirm({ title: "Confirm", message: "Are you sure?" });
1165
- * const input = await dialog.prompt({ title: "Input", message: "Enter your name:" });
1166
- * ```
1167
- */
1168
- declare const useDialog: () => DialogService;
1169
- //#endregion
1170
- //#region ../../src/core/services/ToastService.d.ts
1171
- interface ToastServiceOptions {
1172
- default?: Partial<NotificationData>;
1173
- }
1174
- declare class ToastService {
1175
- protected readonly raw: {
1176
- readonly show: typeof _mantine_notifications0.showNotification;
1177
- readonly hide: typeof _mantine_notifications0.hideNotification;
1178
- readonly update: typeof _mantine_notifications0.updateNotification;
1179
- readonly clean: typeof _mantine_notifications0.cleanNotifications;
1180
- readonly cleanQueue: typeof _mantine_notifications0.cleanNotificationsQueue;
1181
- readonly updateState: typeof _mantine_notifications0.updateNotificationsState;
1182
- };
1183
- readonly options: ToastServiceOptions;
1184
- show(options: NotificationData): void;
1185
- info(options: Partial<NotificationData> | string): void;
1186
- success(options: Partial<NotificationData> | string): void;
1187
- warning(options: Partial<NotificationData> | string): void;
1188
- danger(options: Partial<NotificationData> | string): void;
1189
- }
1190
- //#endregion
1191
- //#region ../../src/core/hooks/useToast.d.ts
1192
- /**
1193
- * Use this hook to access the Toast Service for showing notifications.
1194
- *
1195
- * @example
1196
- * ```tsx
1197
- * const toast = useToast();
1198
- * toast.success({ message: "Operation completed successfully!" });
1199
- * toast.error({ title: "Error", message: "Something went wrong" });
1200
- * ```
1201
- */
1202
- declare const useToast: () => ToastService;
1203
- //#endregion
1204
- //#region ../../src/core/providers/ThemeProvider.d.ts
1205
- declare class ThemeProvider {
1206
- protected readonly alepha: Alepha;
1207
- protected readonly cookie: alepha_server_cookies0.AbstractCookiePrimitive<alepha.TObject<{
1208
- index: alepha.TInteger;
1209
- }>>;
1210
- protected readonly head: alepha_react_head0.HeadPrimitive;
1211
- setTheme(index: number): void;
1212
- getTheme(): AlephaTheme;
1213
- protected getThemeIndex(): number;
1214
- }
1215
- //#endregion
1216
1421
  //#region ../../src/core/utils/extractSchemaFields.d.ts
1217
1422
  interface SchemaField {
1218
1423
  name: string;
@@ -1286,11 +1491,6 @@ declare const toTitleCase: (str: string) => string;
1286
1491
  declare const prettyName: (name: string) => string;
1287
1492
  //#endregion
1288
1493
  //#region ../../src/core/index.d.ts
1289
- declare module "typebox" {
1290
- interface TSchemaOptions {
1291
- $control?: Omit<ControlProps, "input">;
1292
- }
1293
- }
1294
1494
  declare module "alepha" {
1295
1495
  interface State {
1296
1496
  [alephaSidebarAtom.key]?: Static<typeof alephaSidebarAtom.schema>;
@@ -1319,10 +1519,6 @@ declare module "alepha/react/router" {
1319
1519
  }
1320
1520
  }
1321
1521
  /**
1322
- * | Stability | Since | Runtime |
1323
- * |-----------|-------|---------|
1324
- * | 2 - beta | 0.12.0 | node, bun, workerd, browser|
1325
- *
1326
1522
  * Core UI components based on Mantine UI v8.
1327
1523
  *
1328
1524
  * **Features:**
@@ -1342,12 +1538,6 @@ declare module "alepha/react/router" {
1342
1538
  * @module alepha.ui
1343
1539
  */
1344
1540
  declare const AlephaUI: alepha.Service<alepha.Module>;
1345
- /**
1346
- * Convenience function to configure and inject the UiRouter.
1347
- */
1348
- declare const $ui: (options?: {
1349
- themes?: AlephaThemeListAtom;
1350
- }) => UiRouter;
1351
1541
  //#endregion
1352
- export { $ui, ActionButton, type ActionClickButtonProps, type ActionCommonProps, type ActionMenuConfig, type ActionMenuItem, type ActionNavigationButtonProps, type ActionProps, type ActionSubmitButtonProps, DashboardShell as AdminShell, DashboardShell, type DashboardShellProps as AdminShellProps, type DashboardShellProps, AlephaMantineProvider, AlephaSidebarState, AlephaThemeListAtom, AlephaUI, AlertDialog, type AlertDialogOptions, type AlertDialogProps, AppBar, type AppBarBurger, type AppBarDark, type AppBarDivider, type AppBarElement, type AppBarItem, type AppBarLang, type AppBarProps, type AppBarSearch, type AppBarSpacer, type BaseDialogOptions, Breadcrumb, type BreadcrumbProps, BurgerButton, type CheckboxAction, type CheckboxActionContext, ClipboardButton, type ClipboardButtonProps, type ColumnVisibility, ConfirmDialog, type ConfirmDialogOptions, type ConfirmDialogProps, Control, ControlArray, ControlDate, ControlNumber, ControlObject, ControlQueryBuilder, ControlSelect, CurrentAlephaTheme, DarkModeButton, DataTable, type DataTableColumn, type DataTableColumnContext, type DataTableProps, type DataTableSubmitContext, DialogService, type FilterVisibility, Flex, IconSize, LanguageButton, type MaybePage, OPERATOR_INFO, Omnibar, OmnibarButton, PromptDialog, type PromptDialogOptions, type PromptDialogProps, SchemaField, Sidebar, type SidebarAbstractItem, type SidebarButtonTheme, type SidebarDivider, type SidebarElement, type SidebarItemProps, type SidebarMenuItem, type SidebarNode, type SidebarProps, type SidebarSearch, type SidebarSection, type SidebarSpacer, type SidebarTheme, Text, ThemeButton, ThemeProvider, ToastService, ToggleSidebarButton, TypeForm, UiRouter, alephaSidebarAtom, alephaThemeAtom, alephaThemeListAtom, capitalize, defaultTheme, extractSchemaFields, getDefaultIcon, getOperatorsForField, midnightTheme, prettyName, toTitleCase, ui, useDialog, useToast };
1542
+ export { $ui, ActionButton, type ActionClickButtonProps, type ActionCommonProps, type ActionMenuConfig, type ActionMenuItem, type ActionNavigationButtonProps, type ActionProps, type ActionSubmitButtonProps, DashboardShell as AdminShell, DashboardShell, type DashboardShellProps as AdminShellProps, type DashboardShellProps, AlephaIntent, AlephaMantineProvider, type AlephaMantineProviderProps, AlephaSidebarState, AlephaThemeListAtom, AlephaUI, AlertDialog, type AlertDialogOptions, type AlertDialogProps, AppBar, type AppBarBack, type AppBarBurger, type AppBarDark, type AppBarDivider, type AppBarElement, type AppBarItem, type AppBarLang, type AppBarLogo, type AppBarProps, type AppBarSearch, type AppBarSpacer, type BaseDialogOptions, type BreadcrumbProps, Breadcrumb as Breadcrumbs, BurgerButton, type CheckboxAction, type CheckboxActionContext, ClipboardButton, type ClipboardButtonProps, type ColumnVisibility, ConfirmDialog, type ConfirmDialogOptions, type ConfirmDialogProps, Container, type ContainerProps, Control, ControlArray, ControlDate, ControlNumber, ControlObject, type ControlProps, ControlQueryBuilder, ControlSelect, CurrentAlephaTheme, DarkModeButton, DataTable, type DataTableColumn, type DataTableColumnContext, type DataTableProps, type DataTableSubmitContext, DetailDrawer, type DetailDrawerProps, type DetailDrawerStatus, type DetailDrawerTab, DetailList, type DetailListItem, type DetailListProps, type DialogFormOptions, DialogService, type FilterVisibility, Flex, type FlexProps, Heading, IconSize, JsonViewer, LanguageButton, type MaybePage, OPERATOR_INFO, Omnibar, OmnibarButton, type OmnibarButtonProps, type OmnibarProps, PromptDialog, type PromptDialogOptions, type PromptDialogProps, SchemaField, Sidebar, type SidebarAbstractItem, type SidebarButtonTheme, ToggleSidebarButton as SidebarCollapseButton, type SidebarDivider, type SidebarElement, type SidebarItemProps, type SidebarMenuItem, type SidebarNode, type SidebarProps, type SidebarSearch, type SidebarSection, type SidebarSpacer, type SidebarTheme, type StatCardItem, StatCards, type StatCardsProps, Text, type TextProps, ThemeButton, ThemeProvider, ToastService, TypeForm, type TypeFormProps, UiRouter, alephaSidebarAtom, alephaThemeAtom, alephaThemeListAtom, capitalize, defaultTheme, dialogForm, dialogJson, extractSchemaFields, getDefaultIcon, getOperatorsForField, isComponentType, midnightTheme, prettyName, renderIcon, toTitleCase, ui, useDialog, useTheme, useToast };
1353
1543
  //# sourceMappingURL=index.d.ts.map