@alepha/ui 0.18.2 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/dist/admin/{AdminApiKeys-BJhIwfD6.js → AdminApiKeys-Bt1PjO6o.js} +3 -4
  2. package/dist/admin/{AdminApiKeys-BJhIwfD6.js.map → AdminApiKeys-Bt1PjO6o.js.map} +1 -1
  3. package/dist/admin/{AdminAudits-DzD_4cDt.js → AdminAudits-C7c1CN4c.js} +3 -4
  4. package/dist/admin/{AdminAudits-DzD_4cDt.js.map → AdminAudits-C7c1CN4c.js.map} +1 -1
  5. package/dist/admin/{AdminDashboard-C92tIc6x.js → AdminDashboard-C3RXpTp6.js} +3 -4
  6. package/dist/admin/{AdminDashboard-C92tIc6x.js.map → AdminDashboard-C3RXpTp6.js.map} +1 -1
  7. package/dist/admin/{AdminFiles-DLpfhBkf.js → AdminFiles-31ivR6Wq.js} +3 -4
  8. package/dist/admin/{AdminFiles-DLpfhBkf.js.map → AdminFiles-31ivR6Wq.js.map} +1 -1
  9. package/dist/admin/{AdminJobDashboard-KIOkeMgE.js → AdminJobDashboard-BABLe7hL.js} +73 -25
  10. package/dist/admin/AdminJobDashboard-BABLe7hL.js.map +1 -0
  11. package/dist/admin/{AdminJobExecutions-D0Yo_PU0.js → AdminJobExecutions-D-G8RIlr.js} +3 -4
  12. package/dist/admin/{AdminJobExecutions-D0Yo_PU0.js.map → AdminJobExecutions-D-G8RIlr.js.map} +1 -1
  13. package/dist/admin/{AdminJobRegistry-PFajqaGK.js → AdminJobRegistry-oIS3K9NX.js} +3 -4
  14. package/dist/admin/{AdminJobRegistry-PFajqaGK.js.map → AdminJobRegistry-oIS3K9NX.js.map} +1 -1
  15. package/dist/admin/{AdminLayout-B1DXZHDn.js → AdminLayout-BmZ9mtXh.js} +8 -25
  16. package/dist/admin/AdminLayout-BmZ9mtXh.js.map +1 -0
  17. package/dist/admin/AdminNotifications-DHdzksww.js +541 -0
  18. package/dist/admin/AdminNotifications-DHdzksww.js.map +1 -0
  19. package/dist/admin/{AdminParameters-BspPeqp_.js → AdminParameters-CyZQSXnN.js} +118 -112
  20. package/dist/admin/AdminParameters-CyZQSXnN.js.map +1 -0
  21. package/dist/admin/{AdminSessions-BnH5CZQl.js → AdminSessions--xwELDSO.js} +3 -4
  22. package/dist/admin/{AdminSessions-BnH5CZQl.js.map → AdminSessions--xwELDSO.js.map} +1 -1
  23. package/dist/admin/{AdminUserLayout-DUbC6-BI.js → AdminUserLayout-DvBTG5gd.js} +82 -115
  24. package/dist/admin/AdminUserLayout-DvBTG5gd.js.map +1 -0
  25. package/dist/admin/{AdminUserProfile-DuTUnjdG.js → AdminUserProfile-CzsPBl6Z.js} +7 -6
  26. package/dist/admin/AdminUserProfile-CzsPBl6Z.js.map +1 -0
  27. package/dist/admin/{AdminUserSessions-DvZdAGpL.js → AdminUserSessions-C-aUnhVN.js} +3 -4
  28. package/dist/admin/{AdminUserSessions-DvZdAGpL.js.map → AdminUserSessions-C-aUnhVN.js.map} +1 -1
  29. package/dist/admin/{AdminUsers-CR9z0g_5.js → AdminUsers-BYwei5sj.js} +4 -4
  30. package/dist/admin/AdminUsers-BYwei5sj.js.map +1 -0
  31. package/dist/admin/{AuthLayout-DsUfp9RG.js → AuthLayout-CkPGLJku.js} +3 -4
  32. package/dist/admin/{AuthLayout-DsUfp9RG.js.map → AuthLayout-CkPGLJku.js.map} +1 -1
  33. package/dist/{demo/IconGoogle-CSQLPYwX.js → admin/IconGoogle-8Nkx6yax.js} +2 -4
  34. package/dist/admin/{IconGoogle-Ch1m3Uzl.js.map → IconGoogle-8Nkx6yax.js.map} +1 -1
  35. package/dist/admin/Login-DSBqNsZc.js +274 -0
  36. package/dist/admin/Login-DSBqNsZc.js.map +1 -0
  37. package/dist/admin/{Profile-B2EcIDB9.js → Profile-CDRjJo0P.js} +31 -29
  38. package/dist/admin/Profile-CDRjJo0P.js.map +1 -0
  39. package/dist/admin/{Register-Z3fxRbUF.js → Register-4QGFOnfh.js} +201 -146
  40. package/dist/admin/Register-4QGFOnfh.js.map +1 -0
  41. package/dist/admin/{ResetPassword-_Y1qTTKh.js → ResetPassword-Gxc9L_mY.js} +9 -10
  42. package/dist/admin/ResetPassword-Gxc9L_mY.js.map +1 -0
  43. package/dist/admin/{VerifyEmail-Bg22bwcC.js → VerifyEmail-D7G5NnaN.js} +25 -11
  44. package/dist/admin/VerifyEmail-D7G5NnaN.js.map +1 -0
  45. package/dist/admin/adminUserAtom-DCi4wf-v.js +11 -0
  46. package/dist/admin/adminUserAtom-DCi4wf-v.js.map +1 -0
  47. package/dist/admin/{core-BVO_TQxb.js → core-D1AbU50V.js} +662 -570
  48. package/dist/admin/core-D1AbU50V.js.map +1 -0
  49. package/dist/admin/index.d.ts +141 -53
  50. package/dist/admin/index.d.ts.map +1 -1
  51. package/dist/admin/index.js +67 -49
  52. package/dist/admin/index.js.map +1 -1
  53. package/dist/admin/rolldown-runtime-CiIaOW0V.js +13 -0
  54. package/dist/{demo/AuthLayout-DN-ClJQk.js → auth/AuthLayout-CfRKcTqP.js} +3 -4
  55. package/dist/auth/{AuthLayout-C161NeF6.js.map → AuthLayout-CfRKcTqP.js.map} +1 -1
  56. package/dist/{admin/IconGoogle-Ch1m3Uzl.js → auth/IconGoogle-8Nkx6yax.js} +2 -4
  57. package/dist/auth/{IconGoogle-Ch1m3Uzl.js.map → IconGoogle-8Nkx6yax.js.map} +1 -1
  58. package/dist/auth/Login-DJyweoPS.js +274 -0
  59. package/dist/auth/Login-DJyweoPS.js.map +1 -0
  60. package/dist/auth/{Profile-BMpXJ0oi.js → Profile-Cy93pNTw.js} +31 -29
  61. package/dist/auth/Profile-Cy93pNTw.js.map +1 -0
  62. package/dist/auth/{Register-2gx8qll-.js → Register-CSqzzitW.js} +201 -146
  63. package/dist/auth/Register-CSqzzitW.js.map +1 -0
  64. package/dist/{demo/ResetPassword-CAPj8MO3.js → auth/ResetPassword-B61QPlQi.js} +9 -10
  65. package/dist/auth/ResetPassword-B61QPlQi.js.map +1 -0
  66. package/dist/{demo/VerifyEmail-DFmdCdYs.js → auth/VerifyEmail-CqBJ11id.js} +25 -11
  67. package/dist/auth/VerifyEmail-CqBJ11id.js.map +1 -0
  68. package/dist/auth/{core-DyfeVr5c.js → core-C6D3pazL.js} +403 -343
  69. package/dist/auth/core-C6D3pazL.js.map +1 -0
  70. package/dist/auth/index.d.ts +93 -54
  71. package/dist/auth/index.d.ts.map +1 -1
  72. package/dist/auth/index.js +30 -31
  73. package/dist/auth/index.js.map +1 -1
  74. package/dist/auth/rolldown-runtime-CiIaOW0V.js +13 -0
  75. package/dist/core/index.d.ts +123 -62
  76. package/dist/core/index.d.ts.map +1 -1
  77. package/dist/core/index.js +878 -776
  78. package/dist/core/index.js.map +1 -1
  79. package/dist/{auth/AuthLayout-C161NeF6.js → demo/AuthLayout-Dq5tSLSc.js} +3 -4
  80. package/dist/demo/{AuthLayout-DN-ClJQk.js.map → AuthLayout-Dq5tSLSc.js.map} +1 -1
  81. package/dist/demo/DemoButton-_Ws2w-J0.js +181 -0
  82. package/dist/demo/DemoButton-_Ws2w-J0.js.map +1 -0
  83. package/dist/demo/DemoControlSelect-ChP4ZOpQ.js +304 -0
  84. package/dist/demo/DemoControlSelect-ChP4ZOpQ.js.map +1 -0
  85. package/dist/demo/DemoDataTable-Hwf_UUni.js +361 -0
  86. package/dist/demo/DemoDataTable-Hwf_UUni.js.map +1 -0
  87. package/dist/demo/{DemoDialog-DW8QEvD1.js → DemoDialog-B01OMVRd.js} +3 -4
  88. package/dist/demo/{DemoDialog-DW8QEvD1.js.map → DemoDialog-B01OMVRd.js.map} +1 -1
  89. package/dist/demo/{DemoFlex-CAhLUanT.js → DemoFlex-870PEl0V.js} +4 -5
  90. package/dist/demo/{DemoFlex-CAhLUanT.js.map → DemoFlex-870PEl0V.js.map} +1 -1
  91. package/dist/demo/{DemoHeading-yIFmNjHB.js → DemoHeading-C1YR27fz.js} +4 -5
  92. package/dist/demo/{DemoHeading-yIFmNjHB.js.map → DemoHeading-C1YR27fz.js.map} +1 -1
  93. package/dist/demo/{DemoHome-BSGuBHus.js → DemoHome-DRbL2eGf.js} +4 -5
  94. package/dist/demo/{DemoHome-BSGuBHus.js.map → DemoHome-DRbL2eGf.js.map} +1 -1
  95. package/dist/demo/{DemoJsonViewer-DsA2IpgV.js → DemoJsonViewer-DoABiqBW.js} +4 -5
  96. package/dist/demo/{DemoJsonViewer-DsA2IpgV.js.map → DemoJsonViewer-DoABiqBW.js.map} +1 -1
  97. package/dist/demo/{DemoLayout-Cy6xjn6P.js → DemoLayout-CN_PDCX2.js} +16 -8
  98. package/dist/demo/DemoLayout-CN_PDCX2.js.map +1 -0
  99. package/dist/demo/{DemoLogin-vqxgTu4P.js → DemoLogin-B5x-ug3Q.js} +51 -35
  100. package/dist/demo/DemoLogin-B5x-ug3Q.js.map +1 -0
  101. package/dist/demo/{DemoRegister-YHPvPg77.js → DemoRegister-Q6sg2xuV.js} +51 -53
  102. package/dist/demo/DemoRegister-Q6sg2xuV.js.map +1 -0
  103. package/dist/demo/{DemoResetPassword-mOW18Zlm.js → DemoResetPassword-DrqZfmEw.js} +14 -19
  104. package/dist/demo/DemoResetPassword-DrqZfmEw.js.map +1 -0
  105. package/dist/demo/{DemoSidebar-od7aLjP_.js → DemoSidebar-CfKS6w1o.js} +4 -5
  106. package/dist/demo/{DemoSidebar-od7aLjP_.js.map → DemoSidebar-CfKS6w1o.js.map} +1 -1
  107. package/dist/demo/{DemoText-DU3JeRS0.js → DemoText-pT6Gi5b5.js} +4 -5
  108. package/dist/demo/{DemoText-DU3JeRS0.js.map → DemoText-pT6Gi5b5.js.map} +1 -1
  109. package/dist/demo/{DemoToast-CUJEiPRa.js → DemoToast-I13NBzQQ.js} +3 -4
  110. package/dist/demo/{DemoToast-CUJEiPRa.js.map → DemoToast-I13NBzQQ.js.map} +1 -1
  111. package/dist/demo/{DemoTypeForm-C1dNkahD.js → DemoTypeForm-BqzcrtvN.js} +9 -6
  112. package/dist/demo/DemoTypeForm-BqzcrtvN.js.map +1 -0
  113. package/dist/demo/DemoVerifyEmail-HwD8xfQw.js +33 -0
  114. package/dist/demo/DemoVerifyEmail-HwD8xfQw.js.map +1 -0
  115. package/dist/{auth/IconGoogle-Ch1m3Uzl.js → demo/IconGoogle-CwQy4G9y.js} +2 -4
  116. package/dist/demo/{IconGoogle-CSQLPYwX.js.map → IconGoogle-CwQy4G9y.js.map} +1 -1
  117. package/dist/demo/Login-CqG1iJbn.js +274 -0
  118. package/dist/demo/Login-CqG1iJbn.js.map +1 -0
  119. package/dist/demo/{Profile-BE_Y3co2.js → Profile-C0ojJCaG.js} +31 -29
  120. package/dist/demo/Profile-C0ojJCaG.js.map +1 -0
  121. package/dist/demo/{Register-fXHmBpr3.js → Register-KKZwr_lL.js} +201 -146
  122. package/dist/demo/Register-KKZwr_lL.js.map +1 -0
  123. package/dist/{auth/ResetPassword-DBxt9hKk.js → demo/ResetPassword-DMrLFEtr.js} +9 -10
  124. package/dist/demo/ResetPassword-DMrLFEtr.js.map +1 -0
  125. package/dist/demo/{Showcase-BtEU0pY9.js → Showcase-D49Wud2v.js} +65 -68
  126. package/dist/demo/Showcase-D49Wud2v.js.map +1 -0
  127. package/dist/{auth/VerifyEmail-Z80Ubajk.js → demo/VerifyEmail-BFCAFz6T.js} +25 -11
  128. package/dist/demo/VerifyEmail-BFCAFz6T.js.map +1 -0
  129. package/dist/demo/{auth-Djd7SKiw.js → auth-D9qTZzCa.js} +18 -35
  130. package/dist/demo/{auth-Djd7SKiw.js.map → auth-D9qTZzCa.js.map} +1 -1
  131. package/dist/demo/{core-B7LNjM78.js → core-DRtQklr3.js} +752 -647
  132. package/dist/demo/core-DRtQklr3.js.map +1 -0
  133. package/dist/demo/index.d.ts +1 -0
  134. package/dist/demo/index.d.ts.map +1 -1
  135. package/dist/demo/index.js +25 -22
  136. package/dist/demo/index.js.map +1 -1
  137. package/dist/demo/rolldown-runtime-CiIaOW0V.js +13 -0
  138. package/package.json +19 -19
  139. package/src/admin/AdminRouter.tsx +42 -2
  140. package/src/admin/atoms/adminUserAtom.ts +7 -0
  141. package/src/admin/components/AdminLayout.tsx +2 -14
  142. package/src/admin/components/jobs/AdminJobDashboard.tsx +51 -20
  143. package/src/admin/components/notifications/AdminNotifications.tsx +519 -0
  144. package/src/admin/components/parameters/ParameterDetails.tsx +12 -270
  145. package/src/admin/components/parameters/ParameterDetailsConfigForm.tsx +238 -0
  146. package/src/admin/components/parameters/ParameterDetailsLoading.tsx +24 -0
  147. package/src/admin/components/parameters/ParameterHistory.tsx +10 -11
  148. package/src/admin/components/parameters/ParameterTree.tsx +28 -184
  149. package/src/admin/components/parameters/ParameterTreeNode.tsx +151 -0
  150. package/src/admin/components/shared/AdminResourceHeader.tsx +2 -25
  151. package/src/admin/components/shared/AdminResourceHeaderMenuItem.tsx +37 -0
  152. package/src/admin/components/shared/AdminResourceTabs.tsx +2 -26
  153. package/src/admin/components/shared/AdminResourceTabsItem.tsx +36 -0
  154. package/src/admin/components/users/AdminUserLayout.tsx +84 -127
  155. package/src/admin/components/users/AdminUserProfile.tsx +5 -2
  156. package/src/admin/components/users/AdminUsers.tsx +1 -1
  157. package/src/auth/components/Login.tsx +188 -121
  158. package/src/auth/components/Profile.tsx +1 -22
  159. package/src/auth/components/ProfileField.tsx +39 -0
  160. package/src/auth/components/Register.tsx +215 -158
  161. package/src/auth/components/ResetPassword.tsx +7 -11
  162. package/src/auth/components/VerifyEmail.tsx +35 -10
  163. package/src/auth/components/buttons/UserButton.tsx +19 -21
  164. package/src/auth/index.ts +1 -0
  165. package/src/core/components/Flex.tsx +34 -0
  166. package/src/core/components/buttons/ActionButton.tsx +105 -78
  167. package/src/core/components/data/DetailDrawer.tsx +102 -96
  168. package/src/core/components/data/DetailList.tsx +2 -1
  169. package/src/core/components/dialogs/PromptDialog.tsx +1 -1
  170. package/src/core/components/layout/Breadcrumb.tsx +4 -7
  171. package/src/core/components/layout/DashboardShell.tsx +18 -4
  172. package/src/core/components/layout/Sidebar.tsx +16 -241
  173. package/src/core/components/layout/SidebarCollapsedItem.tsx +91 -0
  174. package/src/core/components/layout/SidebarItem.tsx +146 -0
  175. package/src/core/components/layout/index.ts +3 -1
  176. package/src/core/form/components/Control.tsx +31 -29
  177. package/src/core/form/components/ControlArray.tsx +13 -39
  178. package/src/core/form/components/ControlDate.tsx +10 -21
  179. package/src/core/form/components/ControlNumber.tsx +4 -33
  180. package/src/core/form/components/ControlQueryBuilder.tsx +12 -175
  181. package/src/core/form/components/ControlQueryBuilderHelp.tsx +165 -0
  182. package/src/core/form/components/ControlSelect.browser.spec.tsx +343 -0
  183. package/src/core/form/components/ControlSelect.tsx +294 -92
  184. package/src/core/form/components/TypeForm.browser.spec.tsx +3 -3
  185. package/src/core/form/components/TypeForm.tsx +5 -2
  186. package/src/core/form/index.ts +8 -1
  187. package/src/core/form/utils/parseInput.ts +7 -3
  188. package/src/core/index.ts +3 -1
  189. package/src/core/json/components/JsonViewer.tsx +103 -319
  190. package/src/core/json/components/JsonViewerCopyButton.tsx +46 -0
  191. package/src/core/json/components/JsonViewerRowNode.tsx +120 -0
  192. package/src/core/json/components/JsonViewerShared.ts +76 -0
  193. package/src/core/services/DialogService.tsx +2 -2
  194. package/src/core/styles.css +13 -2
  195. package/src/core/table/components/ColumnPicker.tsx +3 -3
  196. package/src/core/table/components/DataTable.tsx +88 -29
  197. package/src/core/table/components/DataTableFilters.tsx +6 -11
  198. package/src/core/table/components/DataTablePagination.tsx +9 -3
  199. package/src/core/table/components/DataTableToolbar.tsx +7 -3
  200. package/src/core/table/components/FilterPicker.tsx +3 -3
  201. package/src/core/table/interfaces/types.ts +29 -0
  202. package/src/core/utils/icons.tsx +2 -2
  203. package/src/demo/DemoRouter.ts +8 -1
  204. package/src/demo/components/DemoLayout.tsx +12 -2
  205. package/src/demo/components/auth/DemoLogin.tsx +35 -28
  206. package/src/demo/components/auth/DemoRegister.tsx +35 -49
  207. package/src/demo/components/auth/DemoResetPassword.tsx +5 -9
  208. package/src/demo/components/auth/DemoVerifyEmail.tsx +7 -6
  209. package/src/demo/components/core/DemoButton.tsx +123 -103
  210. package/src/demo/components/core/DemoControlSelect.tsx +325 -0
  211. package/src/demo/components/core/DemoDataTable.tsx +255 -237
  212. package/src/demo/components/core/DemoTypeForm.tsx +7 -2
  213. package/src/demo/components/shared/MacWindow.tsx +5 -11
  214. package/src/demo/components/shared/Showcase.tsx +28 -42
  215. package/dist/admin/AdminJobDashboard-KIOkeMgE.js.map +0 -1
  216. package/dist/admin/AdminLayout-B1DXZHDn.js.map +0 -1
  217. package/dist/admin/AdminParameters-BspPeqp_.js.map +0 -1
  218. package/dist/admin/AdminUserLayout-DUbC6-BI.js.map +0 -1
  219. package/dist/admin/AdminUserProfile-DuTUnjdG.js.map +0 -1
  220. package/dist/admin/AdminUsers-CR9z0g_5.js.map +0 -1
  221. package/dist/admin/Login-DHbYJKwg.js +0 -219
  222. package/dist/admin/Login-DHbYJKwg.js.map +0 -1
  223. package/dist/admin/Profile-B2EcIDB9.js.map +0 -1
  224. package/dist/admin/Register-Z3fxRbUF.js.map +0 -1
  225. package/dist/admin/ResetPassword-_Y1qTTKh.js.map +0 -1
  226. package/dist/admin/VerifyEmail-Bg22bwcC.js.map +0 -1
  227. package/dist/admin/core-BVO_TQxb.js.map +0 -1
  228. package/dist/admin/rolldown-runtime-CjeV3_4I.js +0 -18
  229. package/dist/auth/Login-C7jIqf00.js +0 -219
  230. package/dist/auth/Login-C7jIqf00.js.map +0 -1
  231. package/dist/auth/Profile-BMpXJ0oi.js.map +0 -1
  232. package/dist/auth/Register-2gx8qll-.js.map +0 -1
  233. package/dist/auth/ResetPassword-DBxt9hKk.js.map +0 -1
  234. package/dist/auth/VerifyEmail-Z80Ubajk.js.map +0 -1
  235. package/dist/auth/core-DyfeVr5c.js.map +0 -1
  236. package/dist/auth/rolldown-runtime-CjeV3_4I.js +0 -18
  237. package/dist/demo/DemoButton-CGUyR9eM.js +0 -178
  238. package/dist/demo/DemoButton-CGUyR9eM.js.map +0 -1
  239. package/dist/demo/DemoDataTable-QFG-xXSx.js +0 -358
  240. package/dist/demo/DemoDataTable-QFG-xXSx.js.map +0 -1
  241. package/dist/demo/DemoLayout-Cy6xjn6P.js.map +0 -1
  242. package/dist/demo/DemoLogin-vqxgTu4P.js.map +0 -1
  243. package/dist/demo/DemoRegister-YHPvPg77.js.map +0 -1
  244. package/dist/demo/DemoResetPassword-mOW18Zlm.js.map +0 -1
  245. package/dist/demo/DemoTypeForm-C1dNkahD.js.map +0 -1
  246. package/dist/demo/DemoVerifyEmail-D9EcXZ38.js +0 -30
  247. package/dist/demo/DemoVerifyEmail-D9EcXZ38.js.map +0 -1
  248. package/dist/demo/Login-CoYf_P_F.js +0 -219
  249. package/dist/demo/Login-CoYf_P_F.js.map +0 -1
  250. package/dist/demo/Profile-BE_Y3co2.js.map +0 -1
  251. package/dist/demo/Register-fXHmBpr3.js.map +0 -1
  252. package/dist/demo/ResetPassword-CAPj8MO3.js.map +0 -1
  253. package/dist/demo/Showcase-BtEU0pY9.js.map +0 -1
  254. package/dist/demo/VerifyEmail-DFmdCdYs.js.map +0 -1
  255. package/dist/demo/core-B7LNjM78.js.map +0 -1
  256. package/dist/demo/rolldown-runtime-CjeV3_4I.js +0 -18
  257. package/src/demo/styles.css +0 -0
@@ -1,8 +1,7 @@
1
- import { o as AlephaMantineProvider } from "./core-DyfeVr5c.js";
1
+ import { _ as AlephaMantineProvider } from "./core-DRtQklr3.js";
2
2
  import { Flex } from "@mantine/core";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import { NestedView } from "alepha/react/router";
5
-
6
5
  //#region ../../src/auth/components/AuthLayout.tsx
7
6
  const AuthLayout = () => {
8
7
  return /* @__PURE__ */ jsx(AlephaMantineProvider, {
@@ -16,7 +15,7 @@ const AuthLayout = () => {
16
15
  })
17
16
  });
18
17
  };
19
-
20
18
  //#endregion
21
19
  export { AuthLayout as default };
22
- //# sourceMappingURL=AuthLayout-C161NeF6.js.map
20
+
21
+ //# sourceMappingURL=AuthLayout-Dq5tSLSc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthLayout-DN-ClJQk.js","names":[],"sources":["../../src/auth/components/AuthLayout.tsx"],"sourcesContent":["import { AlephaMantineProvider } from \"@alepha/ui\";\nimport { Flex } from \"@mantine/core\";\nimport { NestedView } from \"alepha/react/router\";\n\nconst AuthLayout = () => {\n return (\n <AlephaMantineProvider omnibar={false}>\n <Flex flex={1} align={\"center\"} h={\"100vh\"} justify={\"center\"}>\n <NestedView />\n </Flex>\n </AlephaMantineProvider>\n );\n};\n\nexport default AuthLayout;\n"],"mappings":";;;;;;AAIA,MAAM,mBAAmB;AACvB,QACE,oBAAC;EAAsB,SAAS;YAC9B,oBAAC;GAAK,MAAM;GAAG,OAAO;GAAU,GAAG;GAAS,SAAS;aACnD,oBAAC,eAAa;IACT;GACe"}
1
+ {"version":3,"file":"AuthLayout-Dq5tSLSc.js","names":[],"sources":["../../src/auth/components/AuthLayout.tsx"],"sourcesContent":["import { AlephaMantineProvider } from \"@alepha/ui\";\nimport { Flex } from \"@mantine/core\";\nimport { NestedView } from \"alepha/react/router\";\n\nconst AuthLayout = () => {\n return (\n <AlephaMantineProvider omnibar={false}>\n <Flex flex={1} align={\"center\"} h={\"100vh\"} justify={\"center\"}>\n <NestedView />\n </Flex>\n </AlephaMantineProvider>\n );\n};\n\nexport default AuthLayout;\n"],"mappings":";;;;;AAIA,MAAM,mBAAmB;AACvB,QACE,oBAAC,uBAAD;EAAuB,SAAS;YAC9B,oBAAC,MAAD;GAAM,MAAM;GAAG,OAAO;GAAU,GAAG;GAAS,SAAS;aACnD,oBAAC,YAAD,EAAc,CAAA;GACT,CAAA;EACe,CAAA"}
@@ -0,0 +1,181 @@
1
+ import { f as Flex, h as ActionButton, m as useDialog } from "./core-DRtQklr3.js";
2
+ import { t as Showcase } from "./Showcase-D49Wud2v.js";
3
+ import { t } from "alepha";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { IconCheck, IconDownload, IconPlus, IconSettings, IconTrash } from "@tabler/icons-react";
6
+ //#region ../../src/demo/components/core/DemoButton.tsx
7
+ const showcaseSchema = t.object({
8
+ variant: t.enum([
9
+ "filled",
10
+ "light",
11
+ "outline",
12
+ "subtle",
13
+ "default",
14
+ "transparent"
15
+ ], {
16
+ title: "variant",
17
+ default: "filled"
18
+ }),
19
+ size: t.enum([
20
+ "xs",
21
+ "sm",
22
+ "md",
23
+ "lg",
24
+ "xl"
25
+ ], {
26
+ title: "size",
27
+ default: "md"
28
+ }),
29
+ intent: t.enum([
30
+ "none",
31
+ "primary",
32
+ "success",
33
+ "danger",
34
+ "warning",
35
+ "info"
36
+ ], {
37
+ title: "intent",
38
+ default: "none"
39
+ }),
40
+ disabled: t.boolean({
41
+ title: "disabled",
42
+ default: false,
43
+ $control: { switch: true }
44
+ }),
45
+ loading: t.boolean({
46
+ title: "loading",
47
+ default: false,
48
+ $control: { switch: true }
49
+ })
50
+ });
51
+ const ButtonPreview = (props) => {
52
+ const dialog = useDialog();
53
+ return /* @__PURE__ */ jsxs(Flex, {
54
+ col: true,
55
+ gap: "xl",
56
+ p: "md",
57
+ children: [
58
+ /* @__PURE__ */ jsxs(Flex, {
59
+ gap: "md",
60
+ wrap: "wrap",
61
+ centerY: true,
62
+ children: [
63
+ /* @__PURE__ */ jsx(ActionButton, {
64
+ variant: props.variant,
65
+ size: props.size,
66
+ intent: props.intent,
67
+ disabled: props.disabled,
68
+ loading: props.loading,
69
+ onClick: () => dialog.alert({ message: "Clicked" }),
70
+ children: "Default"
71
+ }),
72
+ /* @__PURE__ */ jsx(ActionButton, {
73
+ variant: props.variant,
74
+ size: props.size,
75
+ intent: props.intent,
76
+ disabled: props.disabled,
77
+ loading: props.loading,
78
+ icon: IconPlus,
79
+ onClick: () => dialog.alert({ message: "Create" }),
80
+ children: "Create"
81
+ }),
82
+ /* @__PURE__ */ jsx(ActionButton, {
83
+ variant: props.variant,
84
+ size: props.size,
85
+ intent: props.intent,
86
+ disabled: props.disabled,
87
+ loading: props.loading,
88
+ icon: IconTrash,
89
+ onClick: () => dialog.alert({ message: "Delete" })
90
+ })
91
+ ]
92
+ }),
93
+ /* @__PURE__ */ jsxs(Flex, {
94
+ gap: "md",
95
+ wrap: "wrap",
96
+ centerY: true,
97
+ children: [
98
+ /* @__PURE__ */ jsx(ActionButton, {
99
+ variant: "filled",
100
+ size: props.size,
101
+ intent: "primary",
102
+ icon: IconCheck,
103
+ onClick: () => {},
104
+ children: "Save"
105
+ }),
106
+ /* @__PURE__ */ jsx(ActionButton, {
107
+ variant: "filled",
108
+ size: props.size,
109
+ intent: "danger",
110
+ icon: IconTrash,
111
+ confirm: "Are you sure?",
112
+ onClick: () => dialog.alert({ message: "Deleted" }),
113
+ children: "Delete"
114
+ }),
115
+ /* @__PURE__ */ jsx(ActionButton, {
116
+ variant: "light",
117
+ size: props.size,
118
+ icon: IconDownload,
119
+ onClick: () => {},
120
+ children: "Export"
121
+ }),
122
+ /* @__PURE__ */ jsx(ActionButton, {
123
+ variant: "subtle",
124
+ size: props.size,
125
+ icon: IconSettings,
126
+ onClick: () => {}
127
+ })
128
+ ]
129
+ }),
130
+ /* @__PURE__ */ jsxs(Flex, {
131
+ gap: "md",
132
+ wrap: "wrap",
133
+ centerY: true,
134
+ children: [/* @__PURE__ */ jsx(ActionButton, {
135
+ variant: props.variant,
136
+ size: props.size,
137
+ menu: { items: [
138
+ {
139
+ label: "Edit",
140
+ icon: /* @__PURE__ */ jsx(IconSettings, { size: 14 })
141
+ },
142
+ { type: "divider" },
143
+ {
144
+ label: "Delete",
145
+ icon: /* @__PURE__ */ jsx(IconTrash, { size: 14 }),
146
+ color: "red"
147
+ }
148
+ ] },
149
+ onClick: () => {},
150
+ children: "With Menu"
151
+ }), /* @__PURE__ */ jsx(ActionButton, {
152
+ variant: props.variant,
153
+ size: props.size,
154
+ tooltip: "This button has a tooltip",
155
+ icon: IconSettings,
156
+ onClick: () => {},
157
+ children: "With Tooltip"
158
+ })]
159
+ })
160
+ ]
161
+ });
162
+ };
163
+ const DemoActionButton = () => {
164
+ return /* @__PURE__ */ jsx(Showcase, {
165
+ title: "ActionButton",
166
+ schema: showcaseSchema,
167
+ initialValues: {
168
+ variant: "filled",
169
+ size: "md",
170
+ intent: "none",
171
+ disabled: false,
172
+ loading: false
173
+ },
174
+ columns: 1,
175
+ children: (props) => /* @__PURE__ */ jsx(ButtonPreview, { ...props })
176
+ });
177
+ };
178
+ //#endregion
179
+ export { DemoActionButton as default };
180
+
181
+ //# sourceMappingURL=DemoButton-_Ws2w-J0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DemoButton-_Ws2w-J0.js","names":[],"sources":["../../src/demo/components/core/DemoButton.tsx"],"sourcesContent":["import { ActionButton, Flex, useDialog } from \"@alepha/ui\";\nimport {\n IconCheck,\n IconDownload,\n IconPlus,\n IconSettings,\n IconTrash,\n} from \"@tabler/icons-react\";\nimport { t } from \"alepha\";\nimport Showcase from \"../shared/Showcase.tsx\";\n\nconst showcaseSchema = t.object({\n variant: t.enum(\n [\"filled\", \"light\", \"outline\", \"subtle\", \"default\", \"transparent\"],\n {\n title: \"variant\",\n default: \"filled\",\n },\n ),\n size: t.enum([\"xs\", \"sm\", \"md\", \"lg\", \"xl\"], {\n title: \"size\",\n default: \"md\",\n }),\n intent: t.enum([\"none\", \"primary\", \"success\", \"danger\", \"warning\", \"info\"], {\n title: \"intent\",\n default: \"none\",\n }),\n disabled: t.boolean({\n title: \"disabled\",\n default: false,\n $control: { switch: true },\n }),\n loading: t.boolean({\n title: \"loading\",\n default: false,\n $control: { switch: true },\n }),\n});\n\ninterface ButtonPreviewProps {\n variant:\n | \"filled\"\n | \"light\"\n | \"outline\"\n | \"subtle\"\n | \"default\"\n | \"transparent\";\n size: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n intent: \"none\" | \"primary\" | \"success\" | \"danger\" | \"warning\" | \"info\";\n disabled: boolean;\n loading: boolean;\n}\n\nconst ButtonPreview = (props: ButtonPreviewProps) => {\n const dialog = useDialog();\n\n return (\n <Flex col gap=\"xl\" p=\"md\">\n <Flex gap=\"md\" wrap=\"wrap\" centerY>\n <ActionButton\n variant={props.variant}\n size={props.size}\n intent={props.intent}\n disabled={props.disabled}\n loading={props.loading}\n onClick={() => dialog.alert({ message: \"Clicked\" })}\n >\n Default\n </ActionButton>\n <ActionButton\n variant={props.variant}\n size={props.size}\n intent={props.intent}\n disabled={props.disabled}\n loading={props.loading}\n icon={IconPlus}\n onClick={() => dialog.alert({ message: \"Create\" })}\n >\n Create\n </ActionButton>\n <ActionButton\n variant={props.variant}\n size={props.size}\n intent={props.intent}\n disabled={props.disabled}\n loading={props.loading}\n icon={IconTrash}\n onClick={() => dialog.alert({ message: \"Delete\" })}\n />\n </Flex>\n\n <Flex gap=\"md\" wrap=\"wrap\" centerY>\n <ActionButton\n variant=\"filled\"\n size={props.size}\n intent=\"primary\"\n icon={IconCheck}\n onClick={() => {}}\n >\n Save\n </ActionButton>\n <ActionButton\n variant=\"filled\"\n size={props.size}\n intent=\"danger\"\n icon={IconTrash}\n confirm=\"Are you sure?\"\n onClick={() => dialog.alert({ message: \"Deleted\" })}\n >\n Delete\n </ActionButton>\n <ActionButton\n variant=\"light\"\n size={props.size}\n icon={IconDownload}\n onClick={() => {}}\n >\n Export\n </ActionButton>\n <ActionButton\n variant=\"subtle\"\n size={props.size}\n icon={IconSettings}\n onClick={() => {}}\n />\n </Flex>\n\n <Flex gap=\"md\" wrap=\"wrap\" centerY>\n <ActionButton\n variant={props.variant}\n size={props.size}\n menu={{\n items: [\n { label: \"Edit\", icon: <IconSettings size={14} /> },\n { type: \"divider\" },\n {\n label: \"Delete\",\n icon: <IconTrash size={14} />,\n color: \"red\",\n },\n ],\n }}\n onClick={() => {}}\n >\n With Menu\n </ActionButton>\n <ActionButton\n variant={props.variant}\n size={props.size}\n tooltip=\"This button has a tooltip\"\n icon={IconSettings}\n onClick={() => {}}\n >\n With Tooltip\n </ActionButton>\n </Flex>\n </Flex>\n );\n};\n\nconst DemoActionButton = () => {\n return (\n <Showcase\n title=\"ActionButton\"\n schema={showcaseSchema}\n initialValues={{\n variant: \"filled\",\n size: \"md\",\n intent: \"none\",\n disabled: false,\n loading: false,\n }}\n columns={1}\n >\n {(props) => <ButtonPreview {...(props as ButtonPreviewProps)} />}\n </Showcase>\n );\n};\n\nexport default DemoActionButton;\n"],"mappings":";;;;;;AAWA,MAAM,iBAAiB,EAAE,OAAO;CAC9B,SAAS,EAAE,KACT;EAAC;EAAU;EAAS;EAAW;EAAU;EAAW;EAAc,EAClE;EACE,OAAO;EACP,SAAS;EACV,CACF;CACD,MAAM,EAAE,KAAK;EAAC;EAAM;EAAM;EAAM;EAAM;EAAK,EAAE;EAC3C,OAAO;EACP,SAAS;EACV,CAAC;CACF,QAAQ,EAAE,KAAK;EAAC;EAAQ;EAAW;EAAW;EAAU;EAAW;EAAO,EAAE;EAC1E,OAAO;EACP,SAAS;EACV,CAAC;CACF,UAAU,EAAE,QAAQ;EAClB,OAAO;EACP,SAAS;EACT,UAAU,EAAE,QAAQ,MAAM;EAC3B,CAAC;CACF,SAAS,EAAE,QAAQ;EACjB,OAAO;EACP,SAAS;EACT,UAAU,EAAE,QAAQ,MAAM;EAC3B,CAAC;CACH,CAAC;AAgBF,MAAM,iBAAiB,UAA8B;CACnD,MAAM,SAAS,WAAW;AAE1B,QACE,qBAAC,MAAD;EAAM,KAAA;EAAI,KAAI;EAAK,GAAE;YAArB;GACE,qBAAC,MAAD;IAAM,KAAI;IAAK,MAAK;IAAO,SAAA;cAA3B;KACE,oBAAC,cAAD;MACE,SAAS,MAAM;MACf,MAAM,MAAM;MACZ,QAAQ,MAAM;MACd,UAAU,MAAM;MAChB,SAAS,MAAM;MACf,eAAe,OAAO,MAAM,EAAE,SAAS,WAAW,CAAC;gBACpD;MAEc,CAAA;KACf,oBAAC,cAAD;MACE,SAAS,MAAM;MACf,MAAM,MAAM;MACZ,QAAQ,MAAM;MACd,UAAU,MAAM;MAChB,SAAS,MAAM;MACf,MAAM;MACN,eAAe,OAAO,MAAM,EAAE,SAAS,UAAU,CAAC;gBACnD;MAEc,CAAA;KACf,oBAAC,cAAD;MACE,SAAS,MAAM;MACf,MAAM,MAAM;MACZ,QAAQ,MAAM;MACd,UAAU,MAAM;MAChB,SAAS,MAAM;MACf,MAAM;MACN,eAAe,OAAO,MAAM,EAAE,SAAS,UAAU,CAAC;MAClD,CAAA;KACG;;GAEP,qBAAC,MAAD;IAAM,KAAI;IAAK,MAAK;IAAO,SAAA;cAA3B;KACE,oBAAC,cAAD;MACE,SAAQ;MACR,MAAM,MAAM;MACZ,QAAO;MACP,MAAM;MACN,eAAe;gBAChB;MAEc,CAAA;KACf,oBAAC,cAAD;MACE,SAAQ;MACR,MAAM,MAAM;MACZ,QAAO;MACP,MAAM;MACN,SAAQ;MACR,eAAe,OAAO,MAAM,EAAE,SAAS,WAAW,CAAC;gBACpD;MAEc,CAAA;KACf,oBAAC,cAAD;MACE,SAAQ;MACR,MAAM,MAAM;MACZ,MAAM;MACN,eAAe;gBAChB;MAEc,CAAA;KACf,oBAAC,cAAD;MACE,SAAQ;MACR,MAAM,MAAM;MACZ,MAAM;MACN,eAAe;MACf,CAAA;KACG;;GAEP,qBAAC,MAAD;IAAM,KAAI;IAAK,MAAK;IAAO,SAAA;cAA3B,CACE,oBAAC,cAAD;KACE,SAAS,MAAM;KACf,MAAM,MAAM;KACZ,MAAM,EACJ,OAAO;MACL;OAAE,OAAO;OAAQ,MAAM,oBAAC,cAAD,EAAc,MAAM,IAAM,CAAA;OAAE;MACnD,EAAE,MAAM,WAAW;MACnB;OACE,OAAO;OACP,MAAM,oBAAC,WAAD,EAAW,MAAM,IAAM,CAAA;OAC7B,OAAO;OACR;MACF,EACF;KACD,eAAe;eAChB;KAEc,CAAA,EACf,oBAAC,cAAD;KACE,SAAS,MAAM;KACf,MAAM,MAAM;KACZ,SAAQ;KACR,MAAM;KACN,eAAe;eAChB;KAEc,CAAA,CACV;;GACF;;;AAIX,MAAM,yBAAyB;AAC7B,QACE,oBAAC,UAAD;EACE,OAAM;EACN,QAAQ;EACR,eAAe;GACb,SAAS;GACT,MAAM;GACN,QAAQ;GACR,UAAU;GACV,SAAS;GACV;EACD,SAAS;aAEP,UAAU,oBAAC,eAAD,EAAe,GAAK,OAAgC,CAAA;EACvD,CAAA"}
@@ -0,0 +1,304 @@
1
+ import { a as TypeForm, f as Flex, l as Text, m as useDialog, o as Control } from "./core-DRtQklr3.js";
2
+ import { t as Showcase } from "./Showcase-D49Wud2v.js";
3
+ import { t } from "alepha";
4
+ import { useForm } from "alepha/react/form";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region ../../src/demo/components/core/DemoControlSelect.tsx
7
+ const selectSchema = t.object({
8
+ status: t.enum([
9
+ "active",
10
+ "inactive",
11
+ "pending"
12
+ ], {
13
+ title: "Status",
14
+ default: "active"
15
+ }),
16
+ priority: t.enum([
17
+ "low",
18
+ "medium",
19
+ "high",
20
+ "critical"
21
+ ], { title: "Priority" })
22
+ });
23
+ const multiSelectSchema = t.object({ roles: t.array(t.enum([
24
+ "admin",
25
+ "editor",
26
+ "viewer",
27
+ "moderator"
28
+ ]), {
29
+ title: "Roles",
30
+ default: ["editor"]
31
+ }) });
32
+ const autocompleteSchema = t.object({ city: t.enum([
33
+ "Paris",
34
+ "London",
35
+ "Tokyo",
36
+ "New York",
37
+ "Berlin",
38
+ "Sydney"
39
+ ], {
40
+ title: "City",
41
+ default: "Paris"
42
+ }) });
43
+ const tagsSchema = t.object({ tags: t.array(t.text(), {
44
+ title: "Tags",
45
+ default: ["typescript", "react"]
46
+ }) });
47
+ const segmentedSchema = t.object({ theme: t.enum([
48
+ "light",
49
+ "dark",
50
+ "auto"
51
+ ], {
52
+ title: "Theme",
53
+ default: "auto"
54
+ }) });
55
+ const booleanSchema = t.object({ enabled: t.boolean({
56
+ title: "Enabled",
57
+ default: true
58
+ }) });
59
+ const numericSchema = t.object({ rating: t.integer({
60
+ title: "Rating",
61
+ enum: [
62
+ 1,
63
+ 2,
64
+ 3,
65
+ 4,
66
+ 5
67
+ ]
68
+ }) });
69
+ const allCities = Array.from({ length: 200 }, (_, i) => ({
70
+ value: `city-${i}`,
71
+ label: `City ${i} - ${[
72
+ "Alpha",
73
+ "Beta",
74
+ "Gamma",
75
+ "Delta",
76
+ "Epsilon"
77
+ ][i % 5]}`
78
+ }));
79
+ const cityLoader = async (search, resolve) => {
80
+ await new Promise((r) => setTimeout(r, 300));
81
+ if (resolve) return allCities.filter((c) => resolve.includes(c.value));
82
+ if (!search) return allCities;
83
+ return allCities.filter((c) => c.label.toLowerCase().includes(search.toLowerCase()));
84
+ };
85
+ const shortCities = allCities.slice(0, 20);
86
+ const shortCityLoader = async () => {
87
+ await new Promise((r) => setTimeout(r, 300));
88
+ return shortCities;
89
+ };
90
+ const useAlertValues = () => {
91
+ const dialog = useDialog();
92
+ return (values) => {
93
+ dialog.alert({
94
+ title: "Submitted",
95
+ message: JSON.stringify(values, null, 2)
96
+ });
97
+ };
98
+ };
99
+ const SelectVariant = () => {
100
+ return /* @__PURE__ */ jsx(TypeForm, {
101
+ fill: true,
102
+ form: useForm({
103
+ schema: selectSchema,
104
+ handler: useAlertValues()
105
+ }, []),
106
+ submitButtonProps: { children: "Submit" }
107
+ });
108
+ };
109
+ const MultiSelectVariant = () => {
110
+ return /* @__PURE__ */ jsx(TypeForm, {
111
+ fill: true,
112
+ form: useForm({
113
+ schema: multiSelectSchema,
114
+ handler: useAlertValues()
115
+ }, []),
116
+ submitButtonProps: { children: "Submit" }
117
+ });
118
+ };
119
+ const AutocompleteVariant = () => {
120
+ return /* @__PURE__ */ jsx(TypeForm, {
121
+ fill: true,
122
+ form: useForm({
123
+ schema: autocompleteSchema,
124
+ handler: useAlertValues()
125
+ }, []),
126
+ fieldControlProps: { city: { select: { creatable: true } } },
127
+ submitButtonProps: { children: "Submit" }
128
+ });
129
+ };
130
+ const TagsVariant = () => {
131
+ return /* @__PURE__ */ jsx(TypeForm, {
132
+ fill: true,
133
+ form: useForm({
134
+ schema: tagsSchema,
135
+ handler: useAlertValues()
136
+ }, []),
137
+ fieldControlProps: { tags: { select: { creatable: true } } },
138
+ submitButtonProps: { children: "Submit" }
139
+ });
140
+ };
141
+ const SegmentedVariant = () => {
142
+ return /* @__PURE__ */ jsx(TypeForm, {
143
+ fill: true,
144
+ form: useForm({
145
+ schema: segmentedSchema,
146
+ handler: useAlertValues()
147
+ }, []),
148
+ fieldControlProps: { theme: { segmented: true } },
149
+ submitButtonProps: { children: "Submit" }
150
+ });
151
+ };
152
+ const BooleanVariant = () => {
153
+ return /* @__PURE__ */ jsx(TypeForm, {
154
+ fill: true,
155
+ form: useForm({
156
+ schema: booleanSchema,
157
+ handler: useAlertValues()
158
+ }, []),
159
+ submitButtonProps: { children: "Submit" }
160
+ });
161
+ };
162
+ const NumericVariant = () => {
163
+ return /* @__PURE__ */ jsx(TypeForm, {
164
+ fill: true,
165
+ form: useForm({
166
+ schema: numericSchema,
167
+ handler: useAlertValues()
168
+ }, []),
169
+ fieldControlProps: { rating: { select: { selectProps: { data: [
170
+ {
171
+ value: "1",
172
+ label: "1 - Poor"
173
+ },
174
+ {
175
+ value: "2",
176
+ label: "2 - Fair"
177
+ },
178
+ {
179
+ value: "3",
180
+ label: "3 - Good"
181
+ },
182
+ {
183
+ value: "4",
184
+ label: "4 - Great"
185
+ },
186
+ {
187
+ value: "5",
188
+ label: "5 - Excellent"
189
+ }
190
+ ] } } } },
191
+ submitButtonProps: { children: "Submit" }
192
+ });
193
+ };
194
+ const AsyncShortVariant = () => {
195
+ const handler = useAlertValues();
196
+ return /* @__PURE__ */ jsx(Control, {
197
+ input: useForm({
198
+ schema: t.object({ city: t.text({ title: "City" }) }),
199
+ handler
200
+ }, []).input.city,
201
+ select: { loader: shortCityLoader }
202
+ });
203
+ };
204
+ const AsyncLongVariant = () => {
205
+ const handler = useAlertValues();
206
+ return /* @__PURE__ */ jsx(Control, {
207
+ input: useForm({
208
+ schema: t.object({ city: t.text({ title: "City" }) }),
209
+ handler
210
+ }, []).input.city,
211
+ select: {
212
+ loader: cityLoader,
213
+ selectProps: { defaultValue: "city-42" }
214
+ }
215
+ });
216
+ };
217
+ const variants = [
218
+ {
219
+ title: "Select",
220
+ description: "Single enum value with dropdown",
221
+ component: SelectVariant
222
+ },
223
+ {
224
+ title: "Multi Select",
225
+ description: "Array of enum values with multi-select dropdown",
226
+ component: MultiSelectVariant
227
+ },
228
+ {
229
+ title: "Autocomplete",
230
+ description: "Single value with freeform text input — type any value or pick from suggestions",
231
+ component: AutocompleteVariant
232
+ },
233
+ {
234
+ title: "Tags",
235
+ description: "Array of freeform values — type and press Enter to add tags",
236
+ component: TagsVariant
237
+ },
238
+ {
239
+ title: "Segmented",
240
+ description: "Enum rendered as segmented toggle buttons",
241
+ component: SegmentedVariant
242
+ },
243
+ {
244
+ title: "Boolean",
245
+ description: "Boolean value — select value is coerced to true/false on submit",
246
+ component: BooleanVariant
247
+ },
248
+ {
249
+ title: "Numeric",
250
+ description: "Integer enum — select value is coerced to number on submit",
251
+ component: NumericVariant
252
+ },
253
+ {
254
+ title: "Async (Short)",
255
+ description: "Loader returns <= 100 items — client-side filtering, single network call",
256
+ component: AsyncShortVariant
257
+ },
258
+ {
259
+ title: "Async (Long)",
260
+ description: "Loader returns > 100 items — server-side filtering with debounced search",
261
+ component: AsyncLongVariant
262
+ }
263
+ ];
264
+ const showcaseSchema = t.object({});
265
+ const DemoControlSelect = () => {
266
+ return /* @__PURE__ */ jsx(Showcase, {
267
+ title: "ControlSelect",
268
+ schema: showcaseSchema,
269
+ children: () => /* @__PURE__ */ jsx(Flex, {
270
+ direction: "column",
271
+ gap: "xl",
272
+ children: variants.map((variant) => /* @__PURE__ */ jsxs(Flex, {
273
+ rounded: true,
274
+ shadowed: "sm",
275
+ bordered: true,
276
+ direction: "column",
277
+ children: [/* @__PURE__ */ jsxs(Flex, {
278
+ elevated: true,
279
+ rounded: true,
280
+ col: true,
281
+ borderedBottom: true,
282
+ p: "sm",
283
+ children: [/* @__PURE__ */ jsx(Text, {
284
+ fw: 600,
285
+ children: variant.title
286
+ }), /* @__PURE__ */ jsx(Text, {
287
+ size: "sm",
288
+ c: "dimmed",
289
+ children: variant.description
290
+ })]
291
+ }), /* @__PURE__ */ jsx(Flex, {
292
+ rounded: true,
293
+ surface: true,
294
+ p: "xs",
295
+ children: /* @__PURE__ */ jsx(variant.component, {})
296
+ })]
297
+ }, variant.title))
298
+ })
299
+ });
300
+ };
301
+ //#endregion
302
+ export { DemoControlSelect as default };
303
+
304
+ //# sourceMappingURL=DemoControlSelect-ChP4ZOpQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DemoControlSelect-ChP4ZOpQ.js","names":[],"sources":["../../src/demo/components/core/DemoControlSelect.tsx"],"sourcesContent":["import {\n Control,\n Flex,\n type SelectValueLabel,\n Text,\n TypeForm,\n useDialog,\n} from \"@alepha/ui\";\nimport { t } from \"alepha\";\nimport { useForm } from \"alepha/react/form\";\nimport Showcase from \"../shared/Showcase.tsx\";\n\n// region schemas\n\nconst selectSchema = t.object({\n status: t.enum([\"active\", \"inactive\", \"pending\"], {\n title: \"Status\",\n default: \"active\",\n }),\n priority: t.enum([\"low\", \"medium\", \"high\", \"critical\"], {\n title: \"Priority\",\n }),\n});\n\nconst multiSelectSchema = t.object({\n roles: t.array(t.enum([\"admin\", \"editor\", \"viewer\", \"moderator\"]), {\n title: \"Roles\",\n default: [\"editor\"],\n }),\n});\n\nconst autocompleteSchema = t.object({\n city: t.enum([\"Paris\", \"London\", \"Tokyo\", \"New York\", \"Berlin\", \"Sydney\"], {\n title: \"City\",\n default: \"Paris\",\n }),\n});\n\nconst tagsSchema = t.object({\n tags: t.array(t.text(), {\n title: \"Tags\",\n default: [\"typescript\", \"react\"],\n }),\n});\n\nconst segmentedSchema = t.object({\n theme: t.enum([\"light\", \"dark\", \"auto\"], {\n title: \"Theme\",\n default: \"auto\",\n }),\n});\n\nconst booleanSchema = t.object({\n enabled: t.boolean({\n title: \"Enabled\",\n default: true,\n }),\n});\n\nconst numericSchema = t.object({\n rating: t.integer({\n title: \"Rating\",\n enum: [1, 2, 3, 4, 5] as any,\n }),\n});\n\n// endregion\n\n// region async loader\n\nconst allCities = Array.from({ length: 200 }, (_, i) => ({\n value: `city-${i}`,\n label: `City ${i} - ${[\"Alpha\", \"Beta\", \"Gamma\", \"Delta\", \"Epsilon\"][i % 5]}`,\n}));\n\nconst cityLoader = async (\n search: string,\n resolve?: string[],\n): Promise<SelectValueLabel[]> => {\n await new Promise((r) => setTimeout(r, 300));\n\n if (resolve) {\n return allCities.filter((c) => resolve.includes(c.value));\n }\n\n if (!search) return allCities;\n return allCities.filter((c) =>\n c.label.toLowerCase().includes(search.toLowerCase()),\n );\n};\n\nconst shortCities = allCities.slice(0, 20);\nconst shortCityLoader = async (): Promise<SelectValueLabel[]> => {\n await new Promise((r) => setTimeout(r, 300));\n return shortCities;\n};\n\n// endregion\n\n// region shared hook\n\nconst useAlertValues = () => {\n const dialog = useDialog();\n return (values: any) => {\n dialog.alert({\n title: \"Submitted\",\n message: JSON.stringify(values, null, 2),\n });\n };\n};\n\n// endregion\n\n// region variant components\n\nconst SelectVariant = () => {\n const handler = useAlertValues();\n const form = useForm({ schema: selectSchema, handler }, []);\n return (\n <TypeForm fill form={form} submitButtonProps={{ children: \"Submit\" }} />\n );\n};\n\nconst MultiSelectVariant = () => {\n const handler = useAlertValues();\n const form = useForm({ schema: multiSelectSchema, handler }, []);\n return (\n <TypeForm fill form={form} submitButtonProps={{ children: \"Submit\" }} />\n );\n};\n\nconst AutocompleteVariant = () => {\n const handler = useAlertValues();\n const form = useForm({ schema: autocompleteSchema, handler }, []);\n return (\n <TypeForm\n fill\n form={form}\n fieldControlProps={{ city: { select: { creatable: true } } }}\n submitButtonProps={{ children: \"Submit\" }}\n />\n );\n};\n\nconst TagsVariant = () => {\n const handler = useAlertValues();\n const form = useForm({ schema: tagsSchema, handler }, []);\n return (\n <TypeForm\n fill\n form={form}\n fieldControlProps={{ tags: { select: { creatable: true } } }}\n submitButtonProps={{ children: \"Submit\" }}\n />\n );\n};\n\nconst SegmentedVariant = () => {\n const handler = useAlertValues();\n const form = useForm({ schema: segmentedSchema, handler }, []);\n return (\n <TypeForm\n fill\n form={form}\n fieldControlProps={{ theme: { segmented: true } }}\n submitButtonProps={{ children: \"Submit\" }}\n />\n );\n};\n\nconst BooleanVariant = () => {\n const handler = useAlertValues();\n const form = useForm({ schema: booleanSchema, handler }, []);\n return (\n <TypeForm fill form={form} submitButtonProps={{ children: \"Submit\" }} />\n );\n};\n\nconst NumericVariant = () => {\n const handler = useAlertValues();\n const form = useForm({ schema: numericSchema, handler }, []);\n return (\n <TypeForm\n fill\n form={form}\n fieldControlProps={{\n rating: {\n select: {\n selectProps: {\n data: [\n { value: \"1\", label: \"1 - Poor\" },\n { value: \"2\", label: \"2 - Fair\" },\n { value: \"3\", label: \"3 - Good\" },\n { value: \"4\", label: \"4 - Great\" },\n { value: \"5\", label: \"5 - Excellent\" },\n ],\n },\n },\n },\n }}\n submitButtonProps={{ children: \"Submit\" }}\n />\n );\n};\n\nconst AsyncShortVariant = () => {\n const handler = useAlertValues();\n const asyncSchema = t.object({ city: t.text({ title: \"City\" }) });\n const form = useForm({ schema: asyncSchema, handler }, []);\n return (\n <Control\n input={form.input.city}\n select={{\n loader: shortCityLoader,\n }}\n />\n );\n};\n\nconst AsyncLongVariant = () => {\n const handler = useAlertValues();\n const asyncSchema = t.object({ city: t.text({ title: \"City\" }) });\n const form = useForm({ schema: asyncSchema, handler }, []);\n return (\n <Control\n input={form.input.city}\n select={{\n loader: cityLoader,\n selectProps: { defaultValue: \"city-42\" },\n }}\n />\n );\n};\n\n// endregion\n\nconst variants: {\n title: string;\n description: string;\n component: () => React.ReactNode;\n}[] = [\n {\n title: \"Select\",\n description: \"Single enum value with dropdown\",\n component: SelectVariant,\n },\n {\n title: \"Multi Select\",\n description: \"Array of enum values with multi-select dropdown\",\n component: MultiSelectVariant,\n },\n {\n title: \"Autocomplete\",\n description:\n \"Single value with freeform text input — type any value or pick from suggestions\",\n component: AutocompleteVariant,\n },\n {\n title: \"Tags\",\n description: \"Array of freeform values — type and press Enter to add tags\",\n component: TagsVariant,\n },\n {\n title: \"Segmented\",\n description: \"Enum rendered as segmented toggle buttons\",\n component: SegmentedVariant,\n },\n {\n title: \"Boolean\",\n description:\n \"Boolean value — select value is coerced to true/false on submit\",\n component: BooleanVariant,\n },\n {\n title: \"Numeric\",\n description: \"Integer enum — select value is coerced to number on submit\",\n component: NumericVariant,\n },\n {\n title: \"Async (Short)\",\n description:\n \"Loader returns <= 100 items — client-side filtering, single network call\",\n component: AsyncShortVariant,\n },\n {\n title: \"Async (Long)\",\n description:\n \"Loader returns > 100 items — server-side filtering with debounced search\",\n component: AsyncLongVariant,\n },\n];\n\nconst showcaseSchema = t.object({});\n\nconst DemoControlSelect = () => {\n return (\n <Showcase title=\"ControlSelect\" schema={showcaseSchema}>\n {() => (\n <Flex direction=\"column\" gap=\"xl\">\n {variants.map((variant) => (\n <Flex\n rounded\n shadowed={\"sm\"}\n bordered\n key={variant.title}\n direction=\"column\"\n >\n <Flex elevated rounded col borderedBottom p={\"sm\"}>\n <Text fw={600}>{variant.title}</Text>\n <Text size=\"sm\" c=\"dimmed\">\n {variant.description}\n </Text>\n </Flex>\n <Flex rounded surface p={\"xs\"}>\n <variant.component />\n </Flex>\n </Flex>\n ))}\n </Flex>\n )}\n </Showcase>\n );\n};\n\nexport default DemoControlSelect;\n"],"mappings":"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"}