@alepha/ui 0.14.0 → 0.14.2

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 (174) hide show
  1. package/README.md +1 -1
  2. package/dist/admin/AdminAudits-B3EhKhN7.js +3 -0
  3. package/dist/admin/{AdminAudits-CwvH8e8c.js → AdminAudits-DIrCCPk3.js} +3 -2
  4. package/dist/admin/AdminAudits-DIrCCPk3.js.map +1 -0
  5. package/dist/admin/AdminFiles-C8OG4dtD.js +3 -0
  6. package/dist/admin/{AdminFiles-C_w1tb_x.js → AdminFiles-RsL178Ta.js} +2 -2
  7. package/dist/admin/{AdminFiles-C_w1tb_x.js.map → AdminFiles-RsL178Ta.js.map} +1 -1
  8. package/dist/admin/AdminNotifications-BSL4B2fQ.js +3 -0
  9. package/dist/admin/{AdminNotifications-DuYy74AN.js → AdminNotifications-cIbywWKi.js} +2 -2
  10. package/dist/admin/{AdminNotifications-DuYy74AN.js.map → AdminNotifications-cIbywWKi.js.map} +1 -1
  11. package/dist/admin/{AdminParameters-DYg48Jwe.js → AdminParameters-BKObzzpN.js} +1 -1
  12. package/dist/admin/{AdminParameters-YagqWTG3.js → AdminParameters-D-q3Qmhv.js} +2 -2
  13. package/dist/admin/{AdminParameters-YagqWTG3.js.map → AdminParameters-D-q3Qmhv.js.map} +1 -1
  14. package/dist/admin/AdminSessions-DHG9zPfr.js +3 -0
  15. package/dist/admin/{AdminSessions-BCjgJ-93.js → AdminSessions-vOgkrQ2U.js} +3 -2
  16. package/dist/admin/AdminSessions-vOgkrQ2U.js.map +1 -0
  17. package/dist/admin/{AdminUserAudits-B_PUXCKC.js → AdminUserAudits-CSsN1fIC.js} +3 -2
  18. package/dist/admin/AdminUserAudits-CSsN1fIC.js.map +1 -0
  19. package/dist/admin/{AdminUserAudits-D7cTcElL.js → AdminUserAudits-DmAnivo3.js} +1 -1
  20. package/dist/admin/{AdminUserCreate-DzfRbGZ4.js → AdminUserCreate-B72nu-3W.js} +3 -2
  21. package/dist/admin/AdminUserCreate-B72nu-3W.js.map +1 -0
  22. package/dist/admin/{AdminUserCreate-oUA1KDIl.js → AdminUserCreate-DpA13zwj.js} +1 -1
  23. package/dist/admin/{AdminUserDetails-DeTrJm-t.js → AdminUserDetails-BCt8Su-4.js} +3 -2
  24. package/dist/admin/AdminUserDetails-BCt8Su-4.js.map +1 -0
  25. package/dist/admin/{AdminUserDetails-y1H5DW8Y.js → AdminUserDetails-z1y8kJeB.js} +1 -1
  26. package/dist/admin/{AdminUserLayout-CsfrrZkD.js → AdminUserLayout-Ck0GLRE5.js} +3 -2
  27. package/dist/admin/AdminUserLayout-Ck0GLRE5.js.map +1 -0
  28. package/dist/admin/{AdminUserLayout-Dejnz13m.js → AdminUserLayout-DyQYacQQ.js} +1 -1
  29. package/dist/admin/AdminUserSessions-D9X2_HMA.js +3 -0
  30. package/dist/admin/{AdminUserSessions-DO9H85O-.js → AdminUserSessions-DEaGu6n6.js} +3 -2
  31. package/dist/admin/AdminUserSessions-DEaGu6n6.js.map +1 -0
  32. package/dist/admin/AdminUserSettings-CE66UTIP.js +3 -0
  33. package/dist/admin/{AdminUserSettings-B3jA8g3p.js → AdminUserSettings-CR7MxX_R.js} +3 -2
  34. package/dist/admin/AdminUserSettings-CR7MxX_R.js.map +1 -0
  35. package/dist/admin/{AdminUsers-ebbrJBT0.js → AdminUsers-BnGIRvmV.js} +3 -2
  36. package/dist/admin/AdminUsers-BnGIRvmV.js.map +1 -0
  37. package/dist/admin/AdminUsers-CG9-2Z8W.js +3 -0
  38. package/dist/admin/index.d.ts +16 -16
  39. package/dist/admin/index.d.ts.map +1 -1
  40. package/dist/admin/index.js +26 -25
  41. package/dist/admin/index.js.map +1 -1
  42. package/dist/auth/{AuthLayout-BAZJHzDG.js → AuthLayout-B1sUB8fB.js} +2 -2
  43. package/dist/auth/AuthLayout-B1sUB8fB.js.map +1 -0
  44. package/dist/auth/Login-BWi-pPbO.js +4 -0
  45. package/dist/auth/{Login-CeNZZjrr.js → Login-Cjxv3EDi.js} +2 -2
  46. package/dist/auth/Login-Cjxv3EDi.js.map +1 -0
  47. package/dist/auth/{Register-s4ENeyiE.js → Register-BKBIpHhW.js} +3 -2
  48. package/dist/auth/Register-BKBIpHhW.js.map +1 -0
  49. package/dist/auth/Register-CtdvihIM.js +4 -0
  50. package/dist/auth/ResetPassword-BUdM7T_R.js +3 -0
  51. package/dist/auth/{ResetPassword-GLIFkJT7.js → ResetPassword-DvqD_1SJ.js} +3 -2
  52. package/dist/auth/ResetPassword-DvqD_1SJ.js.map +1 -0
  53. package/dist/auth/VerifyEmail-BYmtnkEl.js +3 -0
  54. package/dist/auth/{VerifyEmail-R79sSej_.js → VerifyEmail-VaBruOnO.js} +3 -2
  55. package/dist/auth/VerifyEmail-VaBruOnO.js.map +1 -0
  56. package/dist/auth/index.d.ts +11 -11
  57. package/dist/auth/index.d.ts.map +1 -1
  58. package/dist/auth/index.js +10 -10
  59. package/dist/auth/index.js.map +1 -1
  60. package/dist/core/index.d.ts +36 -55
  61. package/dist/core/index.d.ts.map +1 -1
  62. package/dist/core/index.js +44 -345
  63. package/dist/core/index.js.map +1 -1
  64. package/dist/demo/DemoDataTable-2mzzf__a.js +150 -0
  65. package/dist/demo/DemoDataTable-2mzzf__a.js.map +1 -0
  66. package/dist/demo/DemoHome-CnuL5WV9.js +25 -0
  67. package/dist/demo/DemoHome-CnuL5WV9.js.map +1 -0
  68. package/dist/demo/DemoHome-D6Z7EE4V.js +3 -0
  69. package/dist/demo/DemoJsonViewer-CYUggLop.js +4 -0
  70. package/dist/demo/DemoJsonViewer-NUGst5wW.js +430 -0
  71. package/dist/demo/DemoJsonViewer-NUGst5wW.js.map +1 -0
  72. package/dist/demo/DemoLayout-ZFDzyvY3.js +3 -0
  73. package/dist/demo/DemoLayout-dvbeuBBf.js +47 -0
  74. package/dist/demo/DemoLayout-dvbeuBBf.js.map +1 -0
  75. package/dist/demo/DemoLogin--wE44i23.js +327 -0
  76. package/dist/demo/DemoLogin--wE44i23.js.map +1 -0
  77. package/dist/demo/DemoRegister-BtrMksx6.js +488 -0
  78. package/dist/demo/DemoRegister-BtrMksx6.js.map +1 -0
  79. package/dist/demo/DemoResetPassword-DVXiiiX7.js +341 -0
  80. package/dist/demo/DemoResetPassword-DVXiiiX7.js.map +1 -0
  81. package/dist/demo/DemoSidebar-DWnjYHoP.js +82 -0
  82. package/dist/demo/DemoSidebar-DWnjYHoP.js.map +1 -0
  83. package/dist/demo/DemoTypeForm-P5_VInW2.js +83 -0
  84. package/dist/demo/DemoTypeForm-P5_VInW2.js.map +1 -0
  85. package/dist/demo/DemoVerifyEmail-C_ooC5u8.js +152 -0
  86. package/dist/demo/DemoVerifyEmail-C_ooC5u8.js.map +1 -0
  87. package/dist/demo/IconGoogle-DvmFiEDB.js +58 -0
  88. package/dist/demo/IconGoogle-DvmFiEDB.js.map +1 -0
  89. package/dist/demo/Showcase-vemLuO2t.js +187 -0
  90. package/dist/demo/Showcase-vemLuO2t.js.map +1 -0
  91. package/dist/demo/index.d.ts +97 -0
  92. package/dist/demo/index.d.ts.map +1 -0
  93. package/dist/demo/index.js +121 -0
  94. package/dist/demo/index.js.map +1 -0
  95. package/dist/json/index.d.ts +58 -0
  96. package/dist/json/index.d.ts.map +1 -0
  97. package/dist/json/index.js +325 -0
  98. package/dist/json/index.js.map +1 -0
  99. package/package.json +17 -6
  100. package/src/admin/AdminRouter.ts +1 -1
  101. package/src/admin/MainRouter.ts +1 -1
  102. package/src/admin/components/audits/AdminAudits.tsx +2 -1
  103. package/src/admin/components/sessions/AdminSessions.tsx +2 -1
  104. package/src/admin/components/users/AdminUserAudits.tsx +2 -1
  105. package/src/admin/components/users/AdminUserCreate.tsx +2 -1
  106. package/src/admin/components/users/AdminUserDetails.tsx +2 -1
  107. package/src/admin/components/users/AdminUserLayout.tsx +2 -6
  108. package/src/admin/components/users/AdminUserSessions.tsx +2 -1
  109. package/src/admin/components/users/AdminUserSettings.tsx +2 -1
  110. package/src/admin/components/users/AdminUsers.tsx +2 -1
  111. package/src/auth/AuthRouter.ts +1 -1
  112. package/src/auth/components/AuthLayout.tsx +1 -1
  113. package/src/auth/components/Login.tsx +1 -1
  114. package/src/auth/components/Register.tsx +2 -1
  115. package/src/auth/components/ResetPassword.tsx +2 -1
  116. package/src/auth/components/VerifyEmail.tsx +2 -1
  117. package/src/auth/components/buttons/UserButton.tsx +1 -1
  118. package/src/core/RootRouter.ts +1 -1
  119. package/src/core/components/buttons/ActionButton.tsx +3 -4
  120. package/src/core/components/form/Control.tsx +12 -1
  121. package/src/core/components/form/ControlNumber.tsx +5 -0
  122. package/src/core/components/layout/AdminShell.tsx +2 -1
  123. package/src/core/components/layout/AlephaMantineProvider.tsx +2 -1
  124. package/src/core/components/layout/Omnibar.tsx +2 -1
  125. package/src/core/components/layout/Sidebar.tsx +10 -13
  126. package/src/core/index.ts +1 -2
  127. package/src/core/services/DialogService.tsx +0 -17
  128. package/{styles.css → src/core/styles.css} +1 -5
  129. package/src/demo/DemoRouter.ts +123 -0
  130. package/src/demo/components/DemoHome.tsx +29 -0
  131. package/src/demo/components/DemoLayout.tsx +52 -0
  132. package/src/demo/components/auth/DemoLogin.tsx +130 -0
  133. package/src/demo/components/auth/DemoRegister.tsx +144 -0
  134. package/src/demo/components/auth/DemoResetPassword.tsx +69 -0
  135. package/src/demo/components/auth/DemoVerifyEmail.tsx +28 -0
  136. package/src/demo/components/core/DemoDataTable.tsx +174 -0
  137. package/src/demo/components/core/DemoSidebar.tsx +85 -0
  138. package/src/demo/components/core/DemoTypeForm.tsx +69 -0
  139. package/src/demo/components/json/DemoJsonViewer.tsx +128 -0
  140. package/src/demo/components/shared/MacWindow.tsx +105 -0
  141. package/src/demo/components/shared/Showcase.tsx +112 -0
  142. package/src/demo/index.ts +30 -0
  143. package/src/demo/styles.css +0 -0
  144. package/src/json/components/JsonViewer.css +25 -0
  145. package/src/json/components/JsonViewer.tsx +526 -0
  146. package/src/json/extensions/DialogService.tsx +31 -0
  147. package/src/json/index.ts +5 -0
  148. package/src/json/styles.css +1 -0
  149. package/dist/admin/AdminAudits-CwvH8e8c.js.map +0 -1
  150. package/dist/admin/AdminAudits-Dv8Vk_6r.js +0 -3
  151. package/dist/admin/AdminFiles-5CPA3lQk.js +0 -3
  152. package/dist/admin/AdminNotifications-DLjmZWtf.js +0 -3
  153. package/dist/admin/AdminSessions-BCjgJ-93.js.map +0 -1
  154. package/dist/admin/AdminSessions-DEh2uN-4.js +0 -3
  155. package/dist/admin/AdminUserAudits-B_PUXCKC.js.map +0 -1
  156. package/dist/admin/AdminUserCreate-DzfRbGZ4.js.map +0 -1
  157. package/dist/admin/AdminUserDetails-DeTrJm-t.js.map +0 -1
  158. package/dist/admin/AdminUserLayout-CsfrrZkD.js.map +0 -1
  159. package/dist/admin/AdminUserSessions-Bbhcpz4k.js +0 -3
  160. package/dist/admin/AdminUserSessions-DO9H85O-.js.map +0 -1
  161. package/dist/admin/AdminUserSettings-B3jA8g3p.js.map +0 -1
  162. package/dist/admin/AdminUserSettings-CE0xpbQc.js +0 -3
  163. package/dist/admin/AdminUsers-CegGZDhW.js +0 -3
  164. package/dist/admin/AdminUsers-ebbrJBT0.js.map +0 -1
  165. package/dist/auth/AuthLayout-BAZJHzDG.js.map +0 -1
  166. package/dist/auth/Login-CeNZZjrr.js.map +0 -1
  167. package/dist/auth/Login-hQcu1nlu.js +0 -4
  168. package/dist/auth/Register-B6HBNVHS.js +0 -4
  169. package/dist/auth/Register-s4ENeyiE.js.map +0 -1
  170. package/dist/auth/ResetPassword-Cjd-W-Nu.js +0 -3
  171. package/dist/auth/ResetPassword-GLIFkJT7.js.map +0 -1
  172. package/dist/auth/VerifyEmail-Dc9ABKUw.js +0 -3
  173. package/dist/auth/VerifyEmail-R79sSej_.js.map +0 -1
  174. package/src/core/components/data/JsonViewer.tsx +0 -361
@@ -0,0 +1,105 @@
1
+ import { Box, type BoxProps, Flex, SegmentedControl } from "@mantine/core";
2
+ import { type ReactNode, useState } from "react";
3
+
4
+ export interface MacWindowProps {
5
+ children: ReactNode;
6
+ title?: string;
7
+ containerProps?: BoxProps;
8
+ fill?: boolean;
9
+ }
10
+
11
+ type WindowSize = "25" | "50" | "75" | "100";
12
+
13
+ const MacWindow = ({
14
+ children,
15
+ title,
16
+ containerProps,
17
+ fill,
18
+ }: MacWindowProps) => {
19
+ const [size, setSize] = useState<WindowSize>("100");
20
+
21
+ const getWidth = () => {
22
+ return `${size}%`;
23
+ };
24
+
25
+ return (
26
+ <Flex
27
+ direction="column"
28
+ flex={fill ? 1 : undefined}
29
+ h={fill ? "100%" : undefined}
30
+ bdrs={"md"}
31
+ style={{
32
+ width: getWidth(),
33
+ border: "1px solid var(--mantine-color-default-border)",
34
+ overflow: "hidden",
35
+ background: "var(--mantine-color-body)",
36
+ boxShadow: "0 4px 12px rgba(0, 0, 0, 0.15)",
37
+ transition: "width 0.3s ease",
38
+ }}
39
+ >
40
+ <Flex
41
+ h={36}
42
+ px="sm"
43
+ align="center"
44
+ gap={8}
45
+ style={{
46
+ background: "var(--mantine-color-default)",
47
+ borderBottom: "1px solid var(--mantine-color-default-border)",
48
+ }}
49
+ >
50
+ <Flex gap={6}>
51
+ <Box
52
+ w={12}
53
+ h={12}
54
+ style={{ borderRadius: "50%", background: "#ff5f57" }}
55
+ />
56
+ <Box
57
+ w={12}
58
+ h={12}
59
+ style={{ borderRadius: "50%", background: "#febc2e" }}
60
+ />
61
+ <Box
62
+ w={12}
63
+ h={12}
64
+ style={{ borderRadius: "50%", background: "#28c840" }}
65
+ />
66
+ </Flex>
67
+
68
+ <Box
69
+ style={{
70
+ flex: 1,
71
+ textAlign: "center",
72
+ fontSize: 13,
73
+ color: "var(--mantine-color-dimmed)",
74
+ }}
75
+ >
76
+ {title}
77
+ </Box>
78
+
79
+ {fill ? undefined : (
80
+ <SegmentedControl
81
+ size="xs"
82
+ value={size}
83
+ onChange={(v) => setSize(v as WindowSize)}
84
+ data={[
85
+ { label: "25", value: "25" },
86
+ { label: "50", value: "50" },
87
+ { label: "75", value: "75" },
88
+ { label: "100", value: "100" },
89
+ ]}
90
+ />
91
+ )}
92
+ </Flex>
93
+ <Flex
94
+ direction={"column"}
95
+ flex={fill ? 1 : undefined}
96
+ p="md"
97
+ {...containerProps}
98
+ >
99
+ {children}
100
+ </Flex>
101
+ </Flex>
102
+ );
103
+ };
104
+
105
+ export default MacWindow;
@@ -0,0 +1,112 @@
1
+ import { useForm } from "@alepha/react/form";
2
+ import { TypeForm, ui } from "@alepha/ui";
3
+ import { Box, Card, Flex, Text } from "@mantine/core";
4
+ import type { Static, TObject } from "alepha";
5
+ import { type ReactNode, useState } from "react";
6
+ import MacWindow, { type MacWindowProps } from "./MacWindow.tsx";
7
+
8
+ export interface ShowcaseProps<T extends TObject> {
9
+ /**
10
+ * Component title
11
+ */
12
+ title: string;
13
+ /**
14
+ * Schema for the props configuration
15
+ */
16
+ schema: T;
17
+ /**
18
+ * Initial values for the props
19
+ */
20
+ initialValues?: Partial<Static<T>>;
21
+ /**
22
+ * Number of columns for the props form
23
+ */
24
+ columns?: number;
25
+ /**
26
+ * Render function that receives the current props values
27
+ */
28
+ children: (props: Static<T>) => ReactNode;
29
+ /**
30
+ * Additional props for the MacWindow container
31
+ */
32
+ windowProps?: Partial<MacWindowProps>;
33
+ }
34
+
35
+ /**
36
+ * Showcase component for demonstrating UI components with interactive props configuration.
37
+ * Uses TypeForm to render a form based on the props schema and displays the component preview.
38
+ */
39
+ const Showcase = <T extends TObject>({
40
+ title,
41
+ schema,
42
+ initialValues,
43
+ columns = 3,
44
+ children,
45
+ windowProps,
46
+ }: ShowcaseProps<T>) => {
47
+ const [values, setValues] = useState<Record<string, any>>(
48
+ initialValues ?? {},
49
+ );
50
+
51
+ const form = useForm(
52
+ {
53
+ schema,
54
+ initialValues,
55
+ handler: (values) => {
56
+ setValues(values as Record<string, any>);
57
+ },
58
+ onChange: (key, value) => {
59
+ console.log("onChange", key, value);
60
+ form.submit();
61
+ },
62
+ },
63
+ [schema],
64
+ );
65
+
66
+ return (
67
+ <Flex flex={1} h={"100%"}>
68
+ <Flex
69
+ flex={1}
70
+ bg={ui.colors.background}
71
+ h={"100%"}
72
+ p="xl"
73
+ justify="center"
74
+ align="flex-start"
75
+ style={{ flex: 1, minWidth: 0, overflow: "auto" }}
76
+ >
77
+ <MacWindow title={title} {...windowProps}>
78
+ {children(values as Static<T>)}
79
+ </MacWindow>
80
+ </Flex>
81
+
82
+ <Box
83
+ bg={ui.colors.surface}
84
+ h={"100%"}
85
+ p={"md"}
86
+ style={{
87
+ flex: "0 0 300px",
88
+ overflow: "auto",
89
+ }}
90
+ >
91
+ <Card withBorder shadow="sm" radius="md" bg={ui.colors.elevated}>
92
+ <Card.Section withBorder py={"xs"} inheritPadding>
93
+ <Text size={"xs"} fw={500}>
94
+ {title} Props
95
+ </Text>
96
+ </Card.Section>
97
+
98
+ <Card.Section p={"sm"}>
99
+ <TypeForm
100
+ form={form}
101
+ columns={columns}
102
+ skipSubmitButton
103
+ skipFormElement
104
+ />
105
+ </Card.Section>
106
+ </Card>
107
+ </Box>
108
+ </Flex>
109
+ );
110
+ };
111
+
112
+ export default Showcase;
@@ -0,0 +1,30 @@
1
+ import { AlephaUI } from "@alepha/ui";
2
+ import { $module } from "alepha";
3
+ import { DemoRouter } from "./DemoRouter.ts";
4
+
5
+ // ---------------------------------------------------------------------------------------------------------------------
6
+
7
+ export { default as DemoHome } from "./components/DemoHome.tsx";
8
+ export { default as DemoLayout } from "./components/DemoLayout.tsx";
9
+ export { default as DemoJsonViewer } from "./components/json/DemoJsonViewer.tsx";
10
+ export {
11
+ default as MacWindow,
12
+ type MacWindowProps,
13
+ } from "./components/shared/MacWindow.tsx";
14
+ export {
15
+ default as Showcase,
16
+ type ShowcaseProps,
17
+ } from "./components/shared/Showcase.tsx";
18
+ export { DemoRouter } from "./DemoRouter.ts";
19
+
20
+ // ---------------------------------------------------------------------------------------------------------------------
21
+
22
+ /**
23
+ * Demo UI Module - Component showcase and documentation
24
+ *
25
+ * @module alepha.ui.demo
26
+ */
27
+ export const AlephaUIDemo = $module({
28
+ name: "alepha.ui.demo",
29
+ services: [AlephaUI, DemoRouter],
30
+ });
File without changes
@@ -0,0 +1,25 @@
1
+ .alepha-json-viewer-row {
2
+ cursor: pointer;
3
+ user-select: text;
4
+ min-width: 0;
5
+ }
6
+
7
+ .alepha-json-viewer-value {
8
+ overflow: hidden;
9
+ text-overflow: ellipsis;
10
+ white-space: nowrap;
11
+ min-width: 0;
12
+ }
13
+
14
+ .alepha-json-viewer-row:hover {
15
+ background-color: var(--mantine-color-default-hover);
16
+ }
17
+
18
+ .alepha-json-viewer-copy {
19
+ opacity: 0;
20
+ transition: opacity 100ms;
21
+ }
22
+
23
+ .alepha-json-viewer-row:hover .alepha-json-viewer-copy {
24
+ opacity: 1;
25
+ }