@alepha/ui 0.18.1 → 0.18.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/{AdminApiKeys-C-6_Q-lH.js → AdminApiKeys-Dy_k-4Vd.js} +17 -38
- package/dist/admin/AdminApiKeys-Dy_k-4Vd.js.map +1 -0
- package/dist/admin/{AdminAudits-Bgbf04hO.js → AdminAudits-CKiFMSSU.js} +23 -19
- package/dist/admin/AdminAudits-CKiFMSSU.js.map +1 -0
- package/dist/admin/AdminDashboard-PhC_dZqo.js +67 -0
- package/dist/admin/AdminDashboard-PhC_dZqo.js.map +1 -0
- package/dist/admin/{AdminFiles-B9a7G3cY.js → AdminFiles-DFTjijGp.js} +3 -7
- package/dist/admin/AdminFiles-DFTjijGp.js.map +1 -0
- package/dist/admin/{AdminJobDashboard-DaTwf5OY.js → AdminJobDashboard-BL8gGPDp.js} +2 -2
- package/dist/admin/{AdminJobDashboard-DaTwf5OY.js.map → AdminJobDashboard-BL8gGPDp.js.map} +1 -1
- package/dist/admin/{AdminJobExecutions-B9cek5dl.js → AdminJobExecutions-D9E-CS-U.js} +24 -36
- package/dist/admin/AdminJobExecutions-D9E-CS-U.js.map +1 -0
- package/dist/admin/{AdminJobRegistry-DFgV3oqx.js → AdminJobRegistry-Ci9ue1zC.js} +10 -18
- package/dist/admin/AdminJobRegistry-Ci9ue1zC.js.map +1 -0
- package/dist/admin/AdminLayout-I6TlUMPc.js +61 -0
- package/dist/admin/AdminLayout-I6TlUMPc.js.map +1 -0
- package/dist/admin/AdminNotifications-ZPHCYrv7.js +542 -0
- package/dist/admin/AdminNotifications-ZPHCYrv7.js.map +1 -0
- package/dist/admin/{AdminParameters-DHw9ATgl.js → AdminParameters-CqgvhRsb.js} +120 -105
- package/dist/admin/AdminParameters-CqgvhRsb.js.map +1 -0
- package/dist/admin/{AdminSessions-BhGJPI3z.js → AdminSessions-Bz5NRuoW.js} +48 -53
- package/dist/admin/AdminSessions-Bz5NRuoW.js.map +1 -0
- package/dist/admin/{AdminUserLayout-BdC4Te8m.js → AdminUserLayout-lXT6I0Qq.js} +14 -8
- package/dist/admin/AdminUserLayout-lXT6I0Qq.js.map +1 -0
- package/dist/admin/{AdminUserProfile-DAt23fqY.js → AdminUserProfile-vFBLoJ3h.js} +3 -3
- package/dist/admin/{AdminUserProfile-DAt23fqY.js.map → AdminUserProfile-vFBLoJ3h.js.map} +1 -1
- package/dist/admin/{AdminUserSessions-1uzcx02z.js → AdminUserSessions-CT_YDim0.js} +33 -35
- package/dist/admin/AdminUserSessions-CT_YDim0.js.map +1 -0
- package/dist/admin/AdminUsers-D1UfGya9.js +206 -0
- package/dist/admin/AdminUsers-D1UfGya9.js.map +1 -0
- package/dist/admin/{AuthLayout-DFJvCvzw.js → AuthLayout-_frhdgOO.js} +2 -2
- package/dist/admin/{AuthLayout-DFJvCvzw.js.map → AuthLayout-_frhdgOO.js.map} +1 -1
- package/dist/admin/{IconGoogle-CSQLPYwX.js → IconGoogle-Ch1m3Uzl.js} +1 -1
- package/dist/admin/{IconGoogle-CSQLPYwX.js.map → IconGoogle-Ch1m3Uzl.js.map} +1 -1
- package/dist/admin/Login-xtNmQtGh.js +275 -0
- package/dist/admin/Login-xtNmQtGh.js.map +1 -0
- package/dist/{auth/Profile-BMX_Ar_s.js → admin/Profile-_AtPUwAP.js} +31 -27
- package/dist/admin/Profile-_AtPUwAP.js.map +1 -0
- package/dist/admin/{Register-Cs10l8vX.js → Register-JcCjHUUn.js} +199 -143
- package/dist/admin/Register-JcCjHUUn.js.map +1 -0
- package/dist/admin/{ResetPassword-BwDdfkGH.js → ResetPassword-CwGBPLJO.js} +7 -7
- package/dist/admin/ResetPassword-CwGBPLJO.js.map +1 -0
- package/dist/admin/{VerifyEmail-DfXHAiQl.js → VerifyEmail-hNxWejWf.js} +23 -8
- package/dist/admin/VerifyEmail-hNxWejWf.js.map +1 -0
- package/dist/admin/{core-2xoLiT0o.js → core-CYaRQ8O-.js} +2082 -688
- package/dist/admin/core-CYaRQ8O-.js.map +1 -0
- package/dist/admin/index.d.ts +112 -48
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +467 -69
- package/dist/admin/index.js.map +1 -1
- package/dist/auth/{AuthLayout-CAE1pX9s.js → AuthLayout-AvLlcLjS.js} +2 -2
- package/dist/auth/{AuthLayout-CAE1pX9s.js.map → AuthLayout-AvLlcLjS.js.map} +1 -1
- package/dist/auth/Login-BA1E8IZl.js +275 -0
- package/dist/auth/Login-BA1E8IZl.js.map +1 -0
- package/dist/{admin/Profile-B-c9pCPf.js → auth/Profile-YcWdeuFz.js} +31 -27
- package/dist/auth/Profile-YcWdeuFz.js.map +1 -0
- package/dist/auth/{Register-6hi_cpfF.js → Register-CPhEO5MG.js} +198 -142
- package/dist/auth/Register-CPhEO5MG.js.map +1 -0
- package/dist/{demo/ResetPassword-DWN0lzr5.js → auth/ResetPassword-DCtGcneA.js} +7 -7
- package/dist/auth/ResetPassword-DCtGcneA.js.map +1 -0
- package/dist/{demo/VerifyEmail-DZWL72K4.js → auth/VerifyEmail-DkH7NBfn.js} +23 -8
- package/dist/auth/VerifyEmail-DkH7NBfn.js.map +1 -0
- package/dist/auth/{core-niW0sFLv.js → core-D5jIAVF2.js} +1385 -329
- package/dist/auth/core-D5jIAVF2.js.map +1 -0
- package/dist/auth/index.d.ts +105 -49
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +29 -26
- package/dist/auth/index.js.map +1 -1
- package/dist/core/index.d.ts +210 -74
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +2247 -834
- package/dist/core/index.js.map +1 -1
- package/dist/demo/{AuthLayout-jLa0aKsI.js → AuthLayout-Brri4A-L.js} +2 -2
- package/dist/demo/{AuthLayout-jLa0aKsI.js.map → AuthLayout-Brri4A-L.js.map} +1 -1
- package/dist/demo/DemoButton-wiCxZZ_L.js +182 -0
- package/dist/demo/DemoButton-wiCxZZ_L.js.map +1 -0
- package/dist/demo/DemoControlSelect-D7ILObVg.js +305 -0
- package/dist/demo/DemoControlSelect-D7ILObVg.js.map +1 -0
- package/dist/demo/DemoDataTable-DZ5Y8pFX.js +362 -0
- package/dist/demo/DemoDataTable-DZ5Y8pFX.js.map +1 -0
- package/dist/demo/{DemoDialog-4ItHLf9t.js → DemoDialog-CUWdLHim.js} +2 -2
- package/dist/demo/{DemoDialog-4ItHLf9t.js.map → DemoDialog-CUWdLHim.js.map} +1 -1
- package/dist/demo/{DemoFlex-EtVq8QfX.js → DemoFlex-a8OhMMvq.js} +3 -3
- package/dist/demo/{DemoFlex-EtVq8QfX.js.map → DemoFlex-a8OhMMvq.js.map} +1 -1
- package/dist/demo/{DemoHeading-BS-vGfkI.js → DemoHeading-C13OVDfS.js} +3 -3
- package/dist/demo/{DemoHeading-BS-vGfkI.js.map → DemoHeading-C13OVDfS.js.map} +1 -1
- package/dist/demo/{DemoHome-Clbn8AmS.js → DemoHome-D_De3UiT.js} +2 -2
- package/dist/demo/{DemoHome-Clbn8AmS.js.map → DemoHome-D_De3UiT.js.map} +1 -1
- package/dist/demo/{DemoJsonViewer-DkIX_ky2.js → DemoJsonViewer-B50s9aGM.js} +3 -3
- package/dist/demo/{DemoJsonViewer-DkIX_ky2.js.map → DemoJsonViewer-B50s9aGM.js.map} +1 -1
- package/dist/demo/{DemoLayout-C56xb5EE.js → DemoLayout-CHU8WTwO.js} +14 -5
- package/dist/demo/DemoLayout-CHU8WTwO.js.map +1 -0
- package/dist/demo/{DemoLogin-BZwpicOS.js → DemoLogin-BBlrWpml.js} +49 -32
- package/dist/demo/DemoLogin-BBlrWpml.js.map +1 -0
- package/dist/demo/{DemoRegister-C7_qc4MJ.js → DemoRegister-BuNE3_-f.js} +49 -50
- package/dist/demo/DemoRegister-BuNE3_-f.js.map +1 -0
- package/dist/demo/{DemoResetPassword-BI1Ct4Dw.js → DemoResetPassword-D_IjjjOJ.js} +12 -16
- package/dist/demo/DemoResetPassword-D_IjjjOJ.js.map +1 -0
- package/dist/demo/{DemoSidebar-CcBo4ltC.js → DemoSidebar-Giy2HRBD.js} +3 -3
- package/dist/demo/{DemoSidebar-CcBo4ltC.js.map → DemoSidebar-Giy2HRBD.js.map} +1 -1
- package/dist/demo/{DemoText-CzXuUn3g.js → DemoText-ubcw-vog.js} +3 -3
- package/dist/demo/{DemoText-CzXuUn3g.js.map → DemoText-ubcw-vog.js.map} +1 -1
- package/dist/demo/{DemoToast-BgHDhWrX.js → DemoToast-9die_dYT.js} +2 -2
- package/dist/demo/{DemoToast-BgHDhWrX.js.map → DemoToast-9die_dYT.js.map} +1 -1
- package/dist/demo/{DemoTypeForm-DDzWoMSV.js → DemoTypeForm-D_d6OVKL.js} +8 -4
- package/dist/demo/DemoTypeForm-D_d6OVKL.js.map +1 -0
- package/dist/demo/DemoVerifyEmail-B43KlF4F.js +34 -0
- package/dist/demo/DemoVerifyEmail-B43KlF4F.js.map +1 -0
- package/dist/demo/Login-C12N4oGs.js +275 -0
- package/dist/demo/Login-C12N4oGs.js.map +1 -0
- package/dist/demo/{Profile-CWqti7FB.js → Profile-DS5q4vOh.js} +31 -27
- package/dist/demo/Profile-DS5q4vOh.js.map +1 -0
- package/dist/demo/{Register-a70LPgs2.js → Register-B4hLBeEv.js} +198 -142
- package/dist/demo/Register-B4hLBeEv.js.map +1 -0
- package/dist/{auth/ResetPassword-CqfTk1FI.js → demo/ResetPassword-D8g9ha1N.js} +7 -7
- package/dist/demo/ResetPassword-D8g9ha1N.js.map +1 -0
- package/dist/demo/{Showcase-Dq3MISpd.js → Showcase-D6Fxt4X4.js} +64 -65
- package/dist/demo/Showcase-D6Fxt4X4.js.map +1 -0
- package/dist/{auth/VerifyEmail-nWiSTMjF.js → demo/VerifyEmail-BjDo0cZA.js} +23 -8
- package/dist/demo/VerifyEmail-BjDo0cZA.js.map +1 -0
- package/dist/demo/{auth-d6n3xbug.js → auth-ByVTreDl.js} +8 -8
- package/dist/demo/{auth-d6n3xbug.js.map → auth-ByVTreDl.js.map} +1 -1
- package/dist/demo/{core-RCUw1Q-a.js → core-DFgB3yU4.js} +2182 -756
- package/dist/demo/core-DFgB3yU4.js.map +1 -0
- package/dist/demo/index.d.ts +1 -0
- package/dist/demo/index.d.ts.map +1 -1
- package/dist/demo/index.js +24 -18
- package/dist/demo/index.js.map +1 -1
- package/package.json +7 -7
- package/src/admin/{AdminRouter.ts → AdminRouter.tsx} +150 -18
- package/src/admin/components/AdminDashboard.tsx +52 -0
- package/src/admin/components/AdminLayout.tsx +32 -40
- package/src/admin/components/audits/AdminAudits.tsx +22 -16
- package/src/admin/components/files/AdminFiles.tsx +1 -6
- package/src/admin/components/jobs/AdminJobExecutions.tsx +33 -39
- package/src/admin/components/jobs/AdminJobRegistry.tsx +9 -18
- package/src/admin/components/keys/AdminApiKeys.tsx +23 -41
- package/src/admin/components/notifications/AdminNotifications.tsx +519 -0
- package/src/admin/components/parameters/ParameterDetails.tsx +12 -270
- package/src/admin/components/parameters/ParameterDetailsConfigForm.tsx +238 -0
- package/src/admin/components/parameters/ParameterDetailsLoading.tsx +24 -0
- package/src/admin/components/parameters/ParameterHistory.tsx +10 -11
- package/src/admin/components/parameters/ParameterTree.tsx +28 -184
- package/src/admin/components/parameters/ParameterTreeNode.tsx +151 -0
- package/src/admin/components/sessions/AdminSessions.tsx +71 -71
- package/src/admin/components/shared/AdminResourceHeader.tsx +2 -25
- package/src/admin/components/shared/AdminResourceHeaderMenuItem.tsx +37 -0
- package/src/admin/components/shared/AdminResourceTabs.tsx +2 -26
- package/src/admin/components/shared/AdminResourceTabsItem.tsx +36 -0
- package/src/admin/components/users/AdminUserSessions.tsx +33 -31
- package/src/admin/components/users/AdminUsers.tsx +184 -72
- package/src/admin/index.ts +2 -2
- package/src/admin/primitives/$uiAdmin.ts +1 -1
- package/src/auth/components/Login.tsx +188 -121
- package/src/auth/components/Profile.tsx +1 -22
- package/src/auth/components/ProfileField.tsx +39 -0
- package/src/auth/components/Register.tsx +215 -158
- package/src/auth/components/ResetPassword.tsx +7 -11
- package/src/auth/components/VerifyEmail.tsx +35 -10
- package/src/auth/components/buttons/UserButton.tsx +20 -24
- package/src/auth/index.ts +1 -0
- package/src/core/atoms/alephaSidebarAtom.ts +1 -1
- package/src/core/atoms/alephaThemeListAtom.ts +14 -1
- package/src/core/atoms/alephaThemeOverridesAtom.ts +17 -0
- package/src/core/atoms/themes/editorial.ts +184 -0
- package/src/core/atoms/themes/monochrome.ts +197 -0
- package/src/core/atoms/themes/rosePine.ts +208 -0
- package/src/core/atoms/themes/softBrutalism.ts +221 -0
- package/src/core/atoms/themes/terminal.ts +186 -0
- package/src/core/components/Flex.tsx +101 -1
- package/src/core/components/Text.tsx +1 -1
- package/src/core/components/buttons/ActionButton.tsx +109 -87
- package/src/core/components/buttons/DarkModeButton.tsx +3 -3
- package/src/core/components/buttons/LanguageButton.tsx +1 -1
- package/src/core/components/buttons/OmnibarButton.tsx +1 -2
- package/src/core/components/buttons/ThemeButton.tsx +40 -11
- package/src/core/components/buttons/ThemeExpertModal.tsx +184 -0
- package/src/core/components/buttons/ToggleSidebarButton.tsx +1 -2
- package/src/core/components/data/DetailDrawer.tsx +102 -96
- package/src/core/components/data/DetailList.tsx +2 -1
- package/src/core/components/layout/AppBar.tsx +10 -0
- package/src/core/components/layout/Breadcrumb.tsx +3 -6
- package/src/core/components/layout/DashboardShell.tsx +28 -11
- package/src/core/components/layout/Sidebar.tsx +18 -235
- package/src/core/components/layout/SidebarCollapsedItem.tsx +91 -0
- package/src/core/components/layout/SidebarItem.tsx +146 -0
- package/src/core/components/layout/index.ts +3 -1
- package/src/core/constants/ui.ts +5 -5
- package/src/core/form/components/Control.tsx +31 -29
- package/src/core/form/components/ControlArray.tsx +13 -39
- package/src/core/form/components/ControlDate.tsx +10 -21
- package/src/core/form/components/ControlNumber.tsx +4 -33
- package/src/core/form/components/ControlQueryBuilder.tsx +12 -175
- package/src/core/form/components/ControlQueryBuilderHelp.tsx +165 -0
- package/src/core/form/components/ControlSelect.browser.spec.tsx +343 -0
- package/src/core/form/components/ControlSelect.tsx +294 -92
- package/src/core/form/components/TypeForm.browser.spec.tsx +3 -3
- package/src/core/form/components/TypeForm.tsx +5 -2
- package/src/core/form/index.ts +8 -1
- package/src/core/form/utils/parseInput.ts +7 -3
- package/src/core/hooks/useTheme.ts +26 -3
- package/src/core/index.ts +9 -2
- package/src/core/interfaces/AlephaTheme.ts +2 -0
- package/src/core/json/components/JsonViewer.tsx +103 -319
- package/src/core/json/components/JsonViewerCopyButton.tsx +46 -0
- package/src/core/json/components/JsonViewerRowNode.tsx +120 -0
- package/src/core/json/components/JsonViewerShared.ts +76 -0
- package/src/core/providers/ThemeProvider.ts +108 -8
- package/src/core/services/DialogService.tsx +24 -3
- package/src/core/styles.css +33 -20
- package/src/core/table/components/ColumnPicker.tsx +3 -3
- package/src/core/table/components/DataTable.tsx +233 -143
- package/src/core/table/components/DataTableFilters.tsx +6 -16
- package/src/core/table/components/DataTablePagination.tsx +58 -29
- package/src/core/table/components/DataTableToolbar.tsx +16 -7
- package/src/core/table/components/FilterPicker.tsx +3 -3
- package/src/core/table/index.ts +1 -0
- package/src/core/table/interfaces/types.ts +42 -9
- package/src/core/utils/icons.tsx +2 -2
- package/src/demo/DemoRouter.ts +8 -1
- package/src/demo/components/DemoLayout.tsx +12 -2
- package/src/demo/components/auth/DemoLogin.tsx +35 -28
- package/src/demo/components/auth/DemoRegister.tsx +35 -49
- package/src/demo/components/auth/DemoResetPassword.tsx +5 -9
- package/src/demo/components/auth/DemoVerifyEmail.tsx +7 -6
- package/src/demo/components/core/DemoButton.tsx +123 -103
- package/src/demo/components/core/DemoControlSelect.tsx +325 -0
- package/src/demo/components/core/DemoDataTable.tsx +255 -241
- package/src/demo/components/core/DemoTypeForm.tsx +7 -2
- package/src/demo/components/shared/MacWindow.tsx +5 -11
- package/src/demo/components/shared/Showcase.tsx +28 -42
- package/dist/admin/AdminApiKeys-C-6_Q-lH.js.map +0 -1
- package/dist/admin/AdminAudits-Bgbf04hO.js.map +0 -1
- package/dist/admin/AdminFiles-B9a7G3cY.js.map +0 -1
- package/dist/admin/AdminJobExecutions-B9cek5dl.js.map +0 -1
- package/dist/admin/AdminJobRegistry-DFgV3oqx.js.map +0 -1
- package/dist/admin/AdminLayout-DHsvWxVB.js +0 -70
- package/dist/admin/AdminLayout-DHsvWxVB.js.map +0 -1
- package/dist/admin/AdminParameters-DHw9ATgl.js.map +0 -1
- package/dist/admin/AdminSessions-BhGJPI3z.js.map +0 -1
- package/dist/admin/AdminUserLayout-BdC4Te8m.js.map +0 -1
- package/dist/admin/AdminUserSessions-1uzcx02z.js.map +0 -1
- package/dist/admin/AdminUsers-C85c3eiQ.js +0 -121
- package/dist/admin/AdminUsers-C85c3eiQ.js.map +0 -1
- package/dist/admin/Login-BGheURrg.js +0 -219
- package/dist/admin/Login-BGheURrg.js.map +0 -1
- package/dist/admin/Profile-B-c9pCPf.js.map +0 -1
- package/dist/admin/Register-Cs10l8vX.js.map +0 -1
- package/dist/admin/ResetPassword-BwDdfkGH.js.map +0 -1
- package/dist/admin/VerifyEmail-DfXHAiQl.js.map +0 -1
- package/dist/admin/auth-Dr0Cf8I7.js +0 -319
- package/dist/admin/auth-Dr0Cf8I7.js.map +0 -1
- package/dist/admin/core-2xoLiT0o.js.map +0 -1
- package/dist/auth/Login-Denw_UGy.js +0 -219
- package/dist/auth/Login-Denw_UGy.js.map +0 -1
- package/dist/auth/Profile-BMX_Ar_s.js.map +0 -1
- package/dist/auth/Register-6hi_cpfF.js.map +0 -1
- package/dist/auth/ResetPassword-CqfTk1FI.js.map +0 -1
- package/dist/auth/VerifyEmail-nWiSTMjF.js.map +0 -1
- package/dist/auth/core-niW0sFLv.js.map +0 -1
- package/dist/demo/DemoButton-BmaWZVwf.js +0 -178
- package/dist/demo/DemoButton-BmaWZVwf.js.map +0 -1
- package/dist/demo/DemoDataTable-Z9xyV221.js +0 -362
- package/dist/demo/DemoDataTable-Z9xyV221.js.map +0 -1
- package/dist/demo/DemoLayout-C56xb5EE.js.map +0 -1
- package/dist/demo/DemoLogin-BZwpicOS.js.map +0 -1
- package/dist/demo/DemoRegister-C7_qc4MJ.js.map +0 -1
- package/dist/demo/DemoResetPassword-BI1Ct4Dw.js.map +0 -1
- package/dist/demo/DemoTypeForm-DDzWoMSV.js.map +0 -1
- package/dist/demo/DemoVerifyEmail-C_Irdnov.js +0 -30
- package/dist/demo/DemoVerifyEmail-C_Irdnov.js.map +0 -1
- package/dist/demo/Login-hSOU3jZc.js +0 -219
- package/dist/demo/Login-hSOU3jZc.js.map +0 -1
- package/dist/demo/Profile-CWqti7FB.js.map +0 -1
- package/dist/demo/Register-a70LPgs2.js.map +0 -1
- package/dist/demo/ResetPassword-DWN0lzr5.js.map +0 -1
- package/dist/demo/Showcase-Dq3MISpd.js.map +0 -1
- package/dist/demo/VerifyEmail-DZWL72K4.js.map +0 -1
- package/dist/demo/core-RCUw1Q-a.js.map +0 -1
- package/src/demo/styles.css +0 -0
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
ActionButton,
|
|
3
|
+
type ActionProps,
|
|
4
|
+
Flex,
|
|
5
|
+
isComponentType,
|
|
6
|
+
} from "@alepha/ui";
|
|
7
|
+
import { Badge, Divider } from "@mantine/core";
|
|
3
8
|
import {
|
|
4
9
|
IconClipboard,
|
|
5
10
|
IconDownload,
|
|
@@ -78,7 +83,7 @@ const DataTableToolbar = <T extends object, Filters extends TObject>({
|
|
|
78
83
|
|
|
79
84
|
const exportableColumns = useCallback(() => {
|
|
80
85
|
return Object.entries(columns).filter(
|
|
81
|
-
([key
|
|
86
|
+
([key]) => columnVisibility[key] !== false,
|
|
82
87
|
);
|
|
83
88
|
}, [columns, columnVisibility]);
|
|
84
89
|
|
|
@@ -130,7 +135,7 @@ const DataTableToolbar = <T extends object, Filters extends TObject>({
|
|
|
130
135
|
};
|
|
131
136
|
|
|
132
137
|
return (
|
|
133
|
-
<Flex p="xs"
|
|
138
|
+
<Flex p="xs">
|
|
134
139
|
<Flex gap={4} align="center">
|
|
135
140
|
{filters && (
|
|
136
141
|
<FilterPicker
|
|
@@ -146,7 +151,7 @@ const DataTableToolbar = <T extends object, Filters extends TObject>({
|
|
|
146
151
|
/>
|
|
147
152
|
{withExport && (
|
|
148
153
|
<ActionButton
|
|
149
|
-
variant="
|
|
154
|
+
variant={"minimal"}
|
|
150
155
|
icon={IconDownload}
|
|
151
156
|
menu={{
|
|
152
157
|
items: [
|
|
@@ -172,7 +177,7 @@ const DataTableToolbar = <T extends object, Filters extends TObject>({
|
|
|
172
177
|
{selectedItems.length} selected
|
|
173
178
|
</Badge>
|
|
174
179
|
<ActionButton
|
|
175
|
-
variant="
|
|
180
|
+
variant={"minimal"}
|
|
176
181
|
size="compact-sm"
|
|
177
182
|
icon={IconX}
|
|
178
183
|
onClick={onClearSelection}
|
|
@@ -209,7 +214,11 @@ const DataTableToolbar = <T extends object, Filters extends TObject>({
|
|
|
209
214
|
props
|
|
210
215
|
),
|
|
211
216
|
)}
|
|
212
|
-
<ActionButton
|
|
217
|
+
<ActionButton
|
|
218
|
+
variant={"minimal"}
|
|
219
|
+
icon={IconRefresh}
|
|
220
|
+
onClick={onRefresh}
|
|
221
|
+
/>
|
|
213
222
|
</Flex>
|
|
214
223
|
</Flex>
|
|
215
224
|
);
|
|
@@ -74,7 +74,7 @@ const FilterPicker = ({
|
|
|
74
74
|
<Popover.Target>
|
|
75
75
|
<div>
|
|
76
76
|
<ActionButton
|
|
77
|
-
variant="
|
|
77
|
+
variant={"minimal"}
|
|
78
78
|
icon={IconFilter}
|
|
79
79
|
onClick={() => setOpened((o) => !o)}
|
|
80
80
|
/>
|
|
@@ -102,14 +102,14 @@ const FilterPicker = ({
|
|
|
102
102
|
<Flex gap={4}>
|
|
103
103
|
<ActionButton
|
|
104
104
|
size="compact-xs"
|
|
105
|
-
variant="
|
|
105
|
+
variant={"minimal"}
|
|
106
106
|
onClick={handleShowAll}
|
|
107
107
|
>
|
|
108
108
|
All
|
|
109
109
|
</ActionButton>
|
|
110
110
|
<ActionButton
|
|
111
111
|
size="compact-xs"
|
|
112
|
-
variant="
|
|
112
|
+
variant={"minimal"}
|
|
113
113
|
onClick={handleHideAll}
|
|
114
114
|
>
|
|
115
115
|
None
|
package/src/core/table/index.ts
CHANGED
|
@@ -24,7 +24,16 @@ export const DEFAULT_MAX_VISIBLE_COLUMNS = 8;
|
|
|
24
24
|
// -----------------------------------------------------------------------------
|
|
25
25
|
|
|
26
26
|
export type DataTableRowAction = ActionProps & {
|
|
27
|
+
/**
|
|
28
|
+
* Label for the action shown in the row menu.
|
|
29
|
+
*/
|
|
30
|
+
label?: string;
|
|
27
31
|
visible?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* When true, skip the automatic table refresh after a successful onClick.
|
|
34
|
+
* By default, the table re-fetches data after every row action completes.
|
|
35
|
+
*/
|
|
36
|
+
skipRefresh?: boolean;
|
|
28
37
|
};
|
|
29
38
|
|
|
30
39
|
// -----------------------------------------------------------------------------
|
|
@@ -62,19 +71,15 @@ export interface DataTableColumn<T extends object, Filters extends TObject> {
|
|
|
62
71
|
* Follows Alepha sort convention: 'field' for ASC, '-field' for DESC.
|
|
63
72
|
*/
|
|
64
73
|
sortKey?: string;
|
|
65
|
-
/**
|
|
66
|
-
* Row-level actions rendered as ActionButtons.
|
|
67
|
-
* Defaults: variant="subtle", size="xs", preventDefault=true.
|
|
68
|
-
* Use `visible` on each action to conditionally show/hide.
|
|
69
|
-
*/
|
|
70
|
-
actions?: (
|
|
71
|
-
item: T,
|
|
72
|
-
ctx: DataTableColumnContext<Filters>,
|
|
73
|
-
) => DataTableRowAction[];
|
|
74
74
|
/**
|
|
75
75
|
* Hide this column by default. Users can show it via the column picker.
|
|
76
76
|
*/
|
|
77
77
|
defaultHidden?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Wrap the cell content with an ActionButton. Defaults to `variant="unstyled"`.
|
|
80
|
+
* Receives the row item to generate per-row action props (e.g., dynamic href).
|
|
81
|
+
*/
|
|
82
|
+
action?: (item: T) => ActionProps;
|
|
78
83
|
}
|
|
79
84
|
|
|
80
85
|
// -----------------------------------------------------------------------------
|
|
@@ -141,6 +146,20 @@ export interface DataTableProps<T extends object, Filters extends TObject> {
|
|
|
141
146
|
form: FormModel<Filters>,
|
|
142
147
|
) => void;
|
|
143
148
|
|
|
149
|
+
/**
|
|
150
|
+
* Skip auto-submit when filter values change.
|
|
151
|
+
* When true, filters update form state but do not trigger a refetch.
|
|
152
|
+
* The user must manually refresh (e.g. via the toolbar refresh button).
|
|
153
|
+
*/
|
|
154
|
+
skipSubmitOnChange?: boolean;
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Debounce delay in milliseconds for filter auto-submit.
|
|
158
|
+
* Defaults to 300ms. Set to 0 to disable debounce.
|
|
159
|
+
* Ignored when skipSubmitOnChange is true.
|
|
160
|
+
*/
|
|
161
|
+
debounce?: number;
|
|
162
|
+
|
|
144
163
|
/**
|
|
145
164
|
* Optional filters to apply to the data.
|
|
146
165
|
*/
|
|
@@ -188,6 +207,15 @@ export interface DataTableProps<T extends object, Filters extends TObject> {
|
|
|
188
207
|
|
|
189
208
|
actions?: Array<ActionProps & { label?: ReactNode }>;
|
|
190
209
|
|
|
210
|
+
/**
|
|
211
|
+
* Row-level actions rendered as a 3-dot menu on each row.
|
|
212
|
+
* Use `visible` on each action to conditionally show/hide.
|
|
213
|
+
*/
|
|
214
|
+
rowActions?: (
|
|
215
|
+
item: T,
|
|
216
|
+
ctx: DataTableColumnContext<Filters>,
|
|
217
|
+
) => DataTableRowAction[];
|
|
218
|
+
|
|
191
219
|
/**
|
|
192
220
|
* Enable infinity scroll mode. When true, pagination controls are hidden and new items are loaded automatically when scrolling to the bottom.
|
|
193
221
|
*/
|
|
@@ -202,6 +230,11 @@ export interface DataTableProps<T extends object, Filters extends TObject> {
|
|
|
202
230
|
// Mantine Props
|
|
203
231
|
// -------------------------------------------------------------------------------------------------------------------
|
|
204
232
|
|
|
233
|
+
/**
|
|
234
|
+
* Label shown when the table has no results. Defaults to "No results".
|
|
235
|
+
*/
|
|
236
|
+
emptyLabel?: string;
|
|
237
|
+
|
|
205
238
|
/**
|
|
206
239
|
* Props to pass to the Mantine Table component.
|
|
207
240
|
*/
|
package/src/core/utils/icons.tsx
CHANGED
|
@@ -31,8 +31,8 @@ export const getDefaultIcon = (params: {
|
|
|
31
31
|
isArray?: boolean;
|
|
32
32
|
size?: IconSize;
|
|
33
33
|
}): ReactElement => {
|
|
34
|
-
const { type, format, name, isEnum, isArray, size = "
|
|
35
|
-
const iconSize = ui.sizes.icon[size];
|
|
34
|
+
const { type, format, name, isEnum, isArray, size = "xs" } = params;
|
|
35
|
+
const iconSize = ui.sizes.icon[size] - 4; // TODO: better mapping
|
|
36
36
|
|
|
37
37
|
// Format-based icons (highest priority)
|
|
38
38
|
if (format) {
|
package/src/demo/DemoRouter.ts
CHANGED
|
@@ -121,7 +121,7 @@ export class DemoRouter {
|
|
|
121
121
|
icon: IconForms,
|
|
122
122
|
path: "/form",
|
|
123
123
|
label: "Form",
|
|
124
|
-
children: () => [this.demoTypeForm],
|
|
124
|
+
children: () => [this.demoTypeForm, this.demoControlSelect],
|
|
125
125
|
});
|
|
126
126
|
|
|
127
127
|
demoTypeForm = $page({
|
|
@@ -131,6 +131,13 @@ export class DemoRouter {
|
|
|
131
131
|
lazy: () => import("./components/core/DemoTypeForm.tsx"),
|
|
132
132
|
});
|
|
133
133
|
|
|
134
|
+
demoControlSelect = $page({
|
|
135
|
+
icon: IconForms,
|
|
136
|
+
path: "/control-select",
|
|
137
|
+
label: "ControlSelect",
|
|
138
|
+
lazy: () => import("./components/core/DemoControlSelect.tsx"),
|
|
139
|
+
});
|
|
140
|
+
|
|
134
141
|
// Table Components
|
|
135
142
|
demoTable = $page({
|
|
136
143
|
icon: IconTable,
|
|
@@ -13,12 +13,14 @@ const DemoLayout = () => {
|
|
|
13
13
|
return (
|
|
14
14
|
<AlephaMantineProvider>
|
|
15
15
|
<DashboardShell
|
|
16
|
+
fill
|
|
16
17
|
appShellProps={{
|
|
17
18
|
withBorder: false,
|
|
18
19
|
bg: ui.colors.background,
|
|
19
20
|
}}
|
|
20
21
|
appShellHeaderProps={{
|
|
21
22
|
bg: "transparent",
|
|
23
|
+
style: { backdropFilter: "blur(10px)" },
|
|
22
24
|
}}
|
|
23
25
|
appBarProps={{
|
|
24
26
|
items: [
|
|
@@ -58,7 +60,10 @@ const DemoLayout = () => {
|
|
|
58
60
|
},
|
|
59
61
|
{
|
|
60
62
|
...router.node("demoForm"),
|
|
61
|
-
children: [
|
|
63
|
+
children: [
|
|
64
|
+
router.node("demoTypeForm"),
|
|
65
|
+
router.node("demoControlSelect"),
|
|
66
|
+
],
|
|
62
67
|
},
|
|
63
68
|
{
|
|
64
69
|
...router.node("demoTable"),
|
|
@@ -70,7 +75,12 @@ const DemoLayout = () => {
|
|
|
70
75
|
},
|
|
71
76
|
{
|
|
72
77
|
...router.node("demoAuth"),
|
|
73
|
-
children: [
|
|
78
|
+
children: [
|
|
79
|
+
router.node("demoLogin"),
|
|
80
|
+
router.node("demoRegister"),
|
|
81
|
+
router.node("demoResetPassword"),
|
|
82
|
+
router.node("demoVerifyEmail"),
|
|
83
|
+
],
|
|
74
84
|
},
|
|
75
85
|
{
|
|
76
86
|
position: "bottom",
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { Login } from "@alepha/ui/auth";
|
|
2
2
|
import { t } from "alepha";
|
|
3
|
-
import type { RealmConfig } from "alepha/api/users";
|
|
3
|
+
import type { FieldRequirement, RealmConfig } from "alepha/api/users";
|
|
4
4
|
import Showcase from "../shared/Showcase.tsx";
|
|
5
5
|
|
|
6
6
|
const showcaseSchema = t.object({
|
|
7
|
+
variant: t.string({
|
|
8
|
+
title: "Variant",
|
|
9
|
+
default: "card",
|
|
10
|
+
enum: ["card", "split"],
|
|
11
|
+
}),
|
|
7
12
|
showCredentials: t.boolean({
|
|
8
13
|
title: "Credentials",
|
|
9
14
|
default: true,
|
|
@@ -19,20 +24,20 @@ const showcaseSchema = t.object({
|
|
|
19
24
|
default: false,
|
|
20
25
|
$control: { switch: true },
|
|
21
26
|
}),
|
|
22
|
-
|
|
23
|
-
title: "Username
|
|
24
|
-
default:
|
|
25
|
-
|
|
27
|
+
username: t.string({
|
|
28
|
+
title: "Username",
|
|
29
|
+
default: "optional",
|
|
30
|
+
enum: ["none", "optional", "required"],
|
|
26
31
|
}),
|
|
27
|
-
|
|
28
|
-
title: "Email
|
|
29
|
-
default:
|
|
30
|
-
|
|
32
|
+
email: t.string({
|
|
33
|
+
title: "Email",
|
|
34
|
+
default: "optional",
|
|
35
|
+
enum: ["none", "optional", "required"],
|
|
31
36
|
}),
|
|
32
|
-
|
|
33
|
-
title: "Phone
|
|
34
|
-
default:
|
|
35
|
-
|
|
37
|
+
phoneNumber: t.string({
|
|
38
|
+
title: "Phone Number",
|
|
39
|
+
default: "none",
|
|
40
|
+
enum: ["none", "optional", "required"],
|
|
36
41
|
}),
|
|
37
42
|
registrationAllowed: t.boolean({
|
|
38
43
|
title: "Show Sign Up",
|
|
@@ -55,9 +60,9 @@ const buildRealmConfig = (props: {
|
|
|
55
60
|
showCredentials: boolean;
|
|
56
61
|
showGoogleOAuth: boolean;
|
|
57
62
|
showGithubOAuth: boolean;
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
63
|
+
username: string;
|
|
64
|
+
email: string;
|
|
65
|
+
phoneNumber: string;
|
|
61
66
|
registrationAllowed: boolean;
|
|
62
67
|
resetPasswordAllowed: boolean;
|
|
63
68
|
showBranding: boolean;
|
|
@@ -82,17 +87,13 @@ const buildRealmConfig = (props: {
|
|
|
82
87
|
description: props.showBranding ? "Sign in to continue" : undefined,
|
|
83
88
|
logoUrl: undefined,
|
|
84
89
|
registrationAllowed: props.registrationAllowed,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
usernameEnabled: props.usernameEnabled,
|
|
90
|
+
email: props.email as FieldRequirement,
|
|
91
|
+
username: props.username as FieldRequirement,
|
|
88
92
|
usernameRegExp: "^[a-zA-Z0-9_]{3,30}$",
|
|
89
|
-
|
|
90
|
-
phoneEnabled: props.phoneEnabled,
|
|
91
|
-
phoneRequired: false,
|
|
93
|
+
phoneNumber: props.phoneNumber as FieldRequirement,
|
|
92
94
|
verifyEmailRequired: false,
|
|
93
95
|
verifyPhoneRequired: false,
|
|
94
|
-
|
|
95
|
-
firstNameLastNameRequired: false,
|
|
96
|
+
firstNameLastName: "none" as FieldRequirement,
|
|
96
97
|
resetPasswordAllowed: props.resetPasswordAllowed,
|
|
97
98
|
adminEmails: [],
|
|
98
99
|
adminUsernames: [],
|
|
@@ -113,19 +114,25 @@ const DemoLogin = () => {
|
|
|
113
114
|
title="Login"
|
|
114
115
|
schema={showcaseSchema}
|
|
115
116
|
initialValues={{
|
|
117
|
+
variant: "card",
|
|
116
118
|
showCredentials: true,
|
|
117
119
|
showGoogleOAuth: true,
|
|
118
120
|
showGithubOAuth: false,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
121
|
+
username: "optional",
|
|
122
|
+
email: "optional",
|
|
123
|
+
phoneNumber: "none",
|
|
122
124
|
registrationAllowed: true,
|
|
123
125
|
resetPasswordAllowed: true,
|
|
124
126
|
showBranding: true,
|
|
125
127
|
}}
|
|
126
128
|
columns={1}
|
|
127
129
|
>
|
|
128
|
-
{(props) =>
|
|
130
|
+
{(props) => (
|
|
131
|
+
<Login
|
|
132
|
+
realmConfig={buildRealmConfig(props)}
|
|
133
|
+
variant={props.variant as "card" | "split"}
|
|
134
|
+
/>
|
|
135
|
+
)}
|
|
129
136
|
</Showcase>
|
|
130
137
|
);
|
|
131
138
|
};
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { Register } from "@alepha/ui/auth";
|
|
2
2
|
import { t } from "alepha";
|
|
3
|
-
import type { RealmConfig } from "alepha/api/users";
|
|
3
|
+
import type { FieldRequirement, RealmConfig } from "alepha/api/users";
|
|
4
4
|
import Showcase from "../shared/Showcase.tsx";
|
|
5
5
|
|
|
6
6
|
const showcaseSchema = t.object({
|
|
7
|
+
variant: t.string({
|
|
8
|
+
title: "Variant",
|
|
9
|
+
default: "card",
|
|
10
|
+
enum: ["card", "split"],
|
|
11
|
+
}),
|
|
7
12
|
showCredentials: t.boolean({
|
|
8
13
|
title: "Credentials",
|
|
9
14
|
default: true,
|
|
@@ -19,35 +24,20 @@ const showcaseSchema = t.object({
|
|
|
19
24
|
default: false,
|
|
20
25
|
$control: { switch: true },
|
|
21
26
|
}),
|
|
22
|
-
|
|
23
|
-
title: "Username
|
|
24
|
-
default:
|
|
25
|
-
|
|
26
|
-
}),
|
|
27
|
-
usernameRequired: t.boolean({
|
|
28
|
-
title: "Username Required",
|
|
29
|
-
default: false,
|
|
30
|
-
$control: { switch: true },
|
|
31
|
-
}),
|
|
32
|
-
emailEnabled: t.boolean({
|
|
33
|
-
title: "Email Field",
|
|
34
|
-
default: true,
|
|
35
|
-
$control: { switch: true },
|
|
36
|
-
}),
|
|
37
|
-
emailRequired: t.boolean({
|
|
38
|
-
title: "Email Required",
|
|
39
|
-
default: true,
|
|
40
|
-
$control: { switch: true },
|
|
27
|
+
username: t.string({
|
|
28
|
+
title: "Username",
|
|
29
|
+
default: "none",
|
|
30
|
+
enum: ["none", "optional", "required"],
|
|
41
31
|
}),
|
|
42
|
-
|
|
43
|
-
title: "
|
|
44
|
-
default:
|
|
45
|
-
|
|
32
|
+
email: t.string({
|
|
33
|
+
title: "Email",
|
|
34
|
+
default: "required",
|
|
35
|
+
enum: ["none", "optional", "required"],
|
|
46
36
|
}),
|
|
47
|
-
|
|
48
|
-
title: "Phone
|
|
49
|
-
default:
|
|
50
|
-
|
|
37
|
+
phoneNumber: t.string({
|
|
38
|
+
title: "Phone Number",
|
|
39
|
+
default: "none",
|
|
40
|
+
enum: ["none", "optional", "required"],
|
|
51
41
|
}),
|
|
52
42
|
registrationAllowed: t.boolean({
|
|
53
43
|
title: "Registration Allowed",
|
|
@@ -65,12 +55,9 @@ const buildRealmConfig = (props: {
|
|
|
65
55
|
showCredentials: boolean;
|
|
66
56
|
showGoogleOAuth: boolean;
|
|
67
57
|
showGithubOAuth: boolean;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
emailRequired: boolean;
|
|
72
|
-
phoneEnabled: boolean;
|
|
73
|
-
phoneRequired: boolean;
|
|
58
|
+
username: string;
|
|
59
|
+
email: string;
|
|
60
|
+
phoneNumber: string;
|
|
74
61
|
registrationAllowed: boolean;
|
|
75
62
|
showBranding: boolean;
|
|
76
63
|
}): RealmConfig => {
|
|
@@ -94,17 +81,13 @@ const buildRealmConfig = (props: {
|
|
|
94
81
|
description: props.showBranding ? "Create your account" : undefined,
|
|
95
82
|
logoUrl: undefined,
|
|
96
83
|
registrationAllowed: props.registrationAllowed,
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
usernameEnabled: props.usernameEnabled,
|
|
100
|
-
usernameRequired: props.usernameRequired,
|
|
84
|
+
email: props.email as FieldRequirement,
|
|
85
|
+
username: props.username as FieldRequirement,
|
|
101
86
|
usernameRegExp: "^[a-zA-Z0-9_]{3,30}$",
|
|
102
|
-
|
|
103
|
-
phoneRequired: props.phoneRequired,
|
|
87
|
+
phoneNumber: props.phoneNumber as FieldRequirement,
|
|
104
88
|
verifyEmailRequired: false,
|
|
105
89
|
verifyPhoneRequired: false,
|
|
106
|
-
|
|
107
|
-
firstNameLastNameRequired: false,
|
|
90
|
+
firstNameLastName: "none" as FieldRequirement,
|
|
108
91
|
resetPasswordAllowed: true,
|
|
109
92
|
adminEmails: [],
|
|
110
93
|
adminUsernames: [],
|
|
@@ -125,21 +108,24 @@ const DemoRegister = () => {
|
|
|
125
108
|
title="Register"
|
|
126
109
|
schema={showcaseSchema}
|
|
127
110
|
initialValues={{
|
|
111
|
+
variant: "card",
|
|
128
112
|
showCredentials: true,
|
|
129
113
|
showGoogleOAuth: true,
|
|
130
114
|
showGithubOAuth: false,
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
emailRequired: true,
|
|
135
|
-
phoneEnabled: false,
|
|
136
|
-
phoneRequired: false,
|
|
115
|
+
username: "none",
|
|
116
|
+
email: "required",
|
|
117
|
+
phoneNumber: "none",
|
|
137
118
|
registrationAllowed: true,
|
|
138
119
|
showBranding: true,
|
|
139
120
|
}}
|
|
140
121
|
columns={1}
|
|
141
122
|
>
|
|
142
|
-
{(props) =>
|
|
123
|
+
{(props) => (
|
|
124
|
+
<Register
|
|
125
|
+
realmConfig={buildRealmConfig(props)}
|
|
126
|
+
variant={props.variant as "card" | "split"}
|
|
127
|
+
/>
|
|
128
|
+
)}
|
|
143
129
|
</Showcase>
|
|
144
130
|
);
|
|
145
131
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ResetPassword } from "@alepha/ui/auth";
|
|
2
2
|
import { t } from "alepha";
|
|
3
|
-
import type { RealmConfig } from "alepha/api/users";
|
|
3
|
+
import type { FieldRequirement, RealmConfig } from "alepha/api/users";
|
|
4
4
|
import Showcase from "../shared/Showcase.tsx";
|
|
5
5
|
|
|
6
6
|
const showcaseSchema = t.object({
|
|
@@ -28,17 +28,13 @@ const buildRealmConfig = (props: {
|
|
|
28
28
|
description: props.showBranding ? "Reset your password" : undefined,
|
|
29
29
|
logoUrl: undefined,
|
|
30
30
|
registrationAllowed: true,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
usernameEnabled: false,
|
|
34
|
-
usernameRequired: false,
|
|
31
|
+
email: "required" as FieldRequirement,
|
|
32
|
+
username: "none" as FieldRequirement,
|
|
35
33
|
usernameRegExp: "^[a-zA-Z0-9_]{3,30}$",
|
|
36
|
-
|
|
37
|
-
phoneRequired: false,
|
|
34
|
+
phoneNumber: "none" as FieldRequirement,
|
|
38
35
|
verifyEmailRequired: false,
|
|
39
36
|
verifyPhoneRequired: false,
|
|
40
|
-
|
|
41
|
-
firstNameLastNameRequired: false,
|
|
37
|
+
firstNameLastName: "none" as FieldRequirement,
|
|
42
38
|
resetPasswordAllowed: props.resetPasswordAllowed,
|
|
43
39
|
adminEmails: [],
|
|
44
40
|
adminUsernames: [],
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import type { VerifyEmailStep } from "@alepha/ui/auth";
|
|
1
2
|
import { VerifyEmail } from "@alepha/ui/auth";
|
|
2
3
|
import { t } from "alepha";
|
|
3
4
|
import Showcase from "../shared/Showcase.tsx";
|
|
4
5
|
|
|
5
6
|
const showcaseSchema = t.object({
|
|
6
|
-
|
|
7
|
-
title: "
|
|
8
|
-
default:
|
|
9
|
-
|
|
7
|
+
step: t.string({
|
|
8
|
+
title: "Step",
|
|
9
|
+
default: "success",
|
|
10
|
+
enum: ["verifying", "success", "error"],
|
|
10
11
|
}),
|
|
11
12
|
});
|
|
12
13
|
|
|
@@ -16,11 +17,11 @@ const DemoVerifyEmail = () => {
|
|
|
16
17
|
title="VerifyEmail"
|
|
17
18
|
schema={showcaseSchema}
|
|
18
19
|
initialValues={{
|
|
19
|
-
|
|
20
|
+
step: "success",
|
|
20
21
|
}}
|
|
21
22
|
columns={1}
|
|
22
23
|
>
|
|
23
|
-
{() => <VerifyEmail />}
|
|
24
|
+
{(values) => <VerifyEmail step={values.step as VerifyEmailStep} />}
|
|
24
25
|
</Showcase>
|
|
25
26
|
);
|
|
26
27
|
};
|