@alepha/ui 0.15.0 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/dist/admin/AdminAudits-ColpiP4T.js +3 -0
  2. package/dist/admin/{AdminAudits-DIrCCPk3.js → AdminAudits-DClGEVBj.js} +1 -1
  3. package/dist/admin/{AdminAudits-DIrCCPk3.js.map → AdminAudits-DClGEVBj.js.map} +1 -1
  4. package/dist/admin/AdminFiles-C5pqXN5B.js +3 -0
  5. package/dist/admin/{AdminFiles-RsL178Ta.js → AdminFiles-C76r1_Xz.js} +3 -3
  6. package/dist/admin/AdminFiles-C76r1_Xz.js.map +1 -0
  7. package/dist/admin/AdminLayout-BfeFXiul.js +3 -0
  8. package/dist/admin/{AdminLayout-XiSivwWH.js → AdminLayout-QJLIesuG.js} +1 -1
  9. package/dist/admin/{AdminLayout-XiSivwWH.js.map → AdminLayout-QJLIesuG.js.map} +1 -1
  10. package/dist/admin/AdminNotifications-BXixCBu9.js +3 -0
  11. package/dist/admin/{AdminNotifications-cIbywWKi.js → AdminNotifications-Bsalygm5.js} +3 -3
  12. package/dist/admin/AdminNotifications-Bsalygm5.js.map +1 -0
  13. package/dist/admin/{AdminParameters-D-q3Qmhv.js → AdminParameters-Bmxtnpv-.js} +1 -1
  14. package/dist/admin/{AdminParameters-D-q3Qmhv.js.map → AdminParameters-Bmxtnpv-.js.map} +1 -1
  15. package/dist/admin/{AdminParameters-BKObzzpN.js → AdminParameters-CpmAWwqN.js} +1 -1
  16. package/dist/admin/AdminSessions-CrkRvey3.js +3 -0
  17. package/dist/admin/{AdminSessions-vOgkrQ2U.js → AdminSessions-DmK3R6pP.js} +3 -3
  18. package/dist/admin/AdminSessions-DmK3R6pP.js.map +1 -0
  19. package/dist/admin/{AdminUserAudits-CSsN1fIC.js → AdminUserAudits-BPMP1Qd2.js} +1 -1
  20. package/dist/admin/{AdminUserAudits-CSsN1fIC.js.map → AdminUserAudits-BPMP1Qd2.js.map} +1 -1
  21. package/dist/admin/{AdminUserAudits-DmAnivo3.js → AdminUserAudits-Brcenss9.js} +1 -1
  22. package/dist/admin/{AdminUserCreate-B72nu-3W.js → AdminUserCreate-CZjB6NKc.js} +1 -1
  23. package/dist/admin/{AdminUserCreate-B72nu-3W.js.map → AdminUserCreate-CZjB6NKc.js.map} +1 -1
  24. package/dist/admin/{AdminUserCreate-DpA13zwj.js → AdminUserCreate-Cx8bkYC2.js} +1 -1
  25. package/dist/admin/{AdminUserDetails-Zib_B6Al.js → AdminUserDetails-8TYsqQBy.js} +1 -1
  26. package/dist/admin/{AdminUserDetails-CKM2IEMr.js → AdminUserDetails-DuqCOBJK.js} +1 -1
  27. package/dist/admin/{AdminUserDetails-CKM2IEMr.js.map → AdminUserDetails-DuqCOBJK.js.map} +1 -1
  28. package/dist/admin/{AdminUserLayout-BNBOEiAO.js → AdminUserLayout-Bz2u_zQ4.js} +1 -1
  29. package/dist/admin/{AdminUserLayout-D7En9UBq.js → AdminUserLayout-Dgk8s7Cd.js} +1 -1
  30. package/dist/admin/{AdminUserLayout-D7En9UBq.js.map → AdminUserLayout-Dgk8s7Cd.js.map} +1 -1
  31. package/dist/admin/{AdminUserSessions-DEaGu6n6.js → AdminUserSessions-DCpe8_T6.js} +1 -1
  32. package/dist/admin/{AdminUserSessions-DEaGu6n6.js.map → AdminUserSessions-DCpe8_T6.js.map} +1 -1
  33. package/dist/admin/AdminUserSessions-beiJqY2D.js +3 -0
  34. package/dist/admin/AdminUserSettings-CxlInVnu.js +3 -0
  35. package/dist/admin/{AdminUserSettings-Di73D7g2.js → AdminUserSettings-qxDfowqh.js} +1 -1
  36. package/dist/admin/{AdminUserSettings-Di73D7g2.js.map → AdminUserSettings-qxDfowqh.js.map} +1 -1
  37. package/dist/admin/AdminUsers-Bd0wMP8v.js +3 -0
  38. package/dist/admin/{AdminUsers-BnGIRvmV.js → AdminUsers-ZlPsDz0T.js} +3 -3
  39. package/dist/admin/AdminUsers-ZlPsDz0T.js.map +1 -0
  40. package/dist/admin/index.d.ts.map +1 -1
  41. package/dist/admin/index.js +28 -28
  42. package/dist/admin/index.js.map +1 -1
  43. package/dist/auth/{AuthLayout-B1sUB8fB.js → AuthLayout-CWzQ8rCe.js} +1 -1
  44. package/dist/auth/{AuthLayout-B1sUB8fB.js.map → AuthLayout-CWzQ8rCe.js.map} +1 -1
  45. package/dist/{demo/IconGoogle-DvmFiEDB.js → auth/IconGoogle-DpSlPZ1u.js} +1 -1
  46. package/dist/auth/{IconGoogle-Cm5d8J3f.js.map → IconGoogle-DpSlPZ1u.js.map} +1 -1
  47. package/dist/auth/Login-CxOPyNFP.js +4 -0
  48. package/dist/auth/{Login-Cjxv3EDi.js → Login-CyvKwy5e.js} +2 -2
  49. package/dist/auth/{Login-Cjxv3EDi.js.map → Login-CyvKwy5e.js.map} +1 -1
  50. package/dist/auth/{Register-CGlbQ50l.js → Register-C7Zp09Ks.js} +2 -2
  51. package/dist/auth/{Register-CGlbQ50l.js.map → Register-C7Zp09Ks.js.map} +1 -1
  52. package/dist/auth/Register-Cacr7YbA.js +4 -0
  53. package/dist/auth/ResetPassword-CMkx8Ibf.js +3 -0
  54. package/dist/auth/{ResetPassword-DvqD_1SJ.js → ResetPassword-DYJSUC6B.js} +1 -1
  55. package/dist/auth/{ResetPassword-DvqD_1SJ.js.map → ResetPassword-DYJSUC6B.js.map} +1 -1
  56. package/dist/auth/{VerifyEmail-VaBruOnO.js → VerifyEmail-CNXFIwWW.js} +1 -1
  57. package/dist/auth/{VerifyEmail-VaBruOnO.js.map → VerifyEmail-CNXFIwWW.js.map} +1 -1
  58. package/dist/auth/VerifyEmail-DKyDlz96.js +3 -0
  59. package/dist/auth/index.d.ts +16 -16
  60. package/dist/auth/index.d.ts.map +1 -1
  61. package/dist/auth/index.js +10 -10
  62. package/dist/core/index.d.ts +186 -186
  63. package/dist/core/index.d.ts.map +1 -1
  64. package/dist/core/index.js +15 -15
  65. package/dist/core/index.js.map +1 -1
  66. package/dist/demo/{DemoDataTable-2mzzf__a.js → DemoDataTable-DYbDYbs5.js} +2 -2
  67. package/dist/demo/{DemoDataTable-2mzzf__a.js.map → DemoDataTable-DYbDYbs5.js.map} +1 -1
  68. package/dist/demo/{DemoHome-CnuL5WV9.js → DemoHome-Cce2bWmg.js} +1 -1
  69. package/dist/demo/{DemoHome-CnuL5WV9.js.map → DemoHome-Cce2bWmg.js.map} +1 -1
  70. package/dist/demo/DemoHome-DC9qkMNe.js +3 -0
  71. package/dist/demo/{DemoJsonViewer-NUGst5wW.js → DemoJsonViewer-D_Hff1Q2.js} +2 -2
  72. package/dist/demo/{DemoJsonViewer-NUGst5wW.js.map → DemoJsonViewer-D_Hff1Q2.js.map} +1 -1
  73. package/dist/demo/DemoJsonViewer-DbWVDdz_.js +4 -0
  74. package/dist/demo/{DemoLayout-dvbeuBBf.js → DemoLayout-DjIDm93B.js} +1 -1
  75. package/dist/demo/{DemoLayout-dvbeuBBf.js.map → DemoLayout-DjIDm93B.js.map} +1 -1
  76. package/dist/demo/DemoLayout-nNMajP_9.js +3 -0
  77. package/dist/demo/{DemoLogin-DvltFTER.js → DemoLogin-BA_HiIRZ.js} +3 -3
  78. package/dist/demo/{DemoLogin-DvltFTER.js.map → DemoLogin-BA_HiIRZ.js.map} +1 -1
  79. package/dist/demo/{DemoRegister-Vu6ZPWib.js → DemoRegister-B6syaxP9.js} +3 -3
  80. package/dist/demo/{DemoRegister-Vu6ZPWib.js.map → DemoRegister-B6syaxP9.js.map} +1 -1
  81. package/dist/demo/{DemoResetPassword-BFwmqwec.js → DemoResetPassword-BOcLG4GF.js} +2 -2
  82. package/dist/demo/{DemoResetPassword-BFwmqwec.js.map → DemoResetPassword-BOcLG4GF.js.map} +1 -1
  83. package/dist/demo/{DemoSidebar-DWnjYHoP.js → DemoSidebar-DpZXf7GO.js} +2 -2
  84. package/dist/demo/{DemoSidebar-DWnjYHoP.js.map → DemoSidebar-DpZXf7GO.js.map} +1 -1
  85. package/dist/demo/{DemoTypeForm-P5_VInW2.js → DemoTypeForm-BlLAcQqZ.js} +2 -2
  86. package/dist/demo/{DemoTypeForm-P5_VInW2.js.map → DemoTypeForm-BlLAcQqZ.js.map} +1 -1
  87. package/dist/demo/{DemoVerifyEmail-C_ooC5u8.js → DemoVerifyEmail-C-J7bXUQ.js} +2 -2
  88. package/dist/demo/{DemoVerifyEmail-C_ooC5u8.js.map → DemoVerifyEmail-C-J7bXUQ.js.map} +1 -1
  89. package/dist/{auth/IconGoogle-Cm5d8J3f.js → demo/IconGoogle-CbBF8Hqq.js} +1 -1
  90. package/dist/demo/{IconGoogle-DvmFiEDB.js.map → IconGoogle-CbBF8Hqq.js.map} +1 -1
  91. package/dist/demo/{Showcase-vemLuO2t.js → Showcase-HchhcsHV.js} +3 -3
  92. package/dist/demo/Showcase-HchhcsHV.js.map +1 -0
  93. package/dist/demo/index.d.ts +12 -12
  94. package/dist/demo/index.d.ts.map +1 -1
  95. package/dist/demo/index.js +14 -14
  96. package/dist/json/index.d.ts +17 -17
  97. package/dist/json/index.d.ts.map +1 -1
  98. package/package.json +12 -12
  99. package/dist/admin/AdminAudits-B3EhKhN7.js +0 -3
  100. package/dist/admin/AdminFiles-C8OG4dtD.js +0 -3
  101. package/dist/admin/AdminFiles-RsL178Ta.js.map +0 -1
  102. package/dist/admin/AdminLayout-BnSmtA4x.js +0 -3
  103. package/dist/admin/AdminNotifications-BSL4B2fQ.js +0 -3
  104. package/dist/admin/AdminNotifications-cIbywWKi.js.map +0 -1
  105. package/dist/admin/AdminSessions-DHG9zPfr.js +0 -3
  106. package/dist/admin/AdminSessions-vOgkrQ2U.js.map +0 -1
  107. package/dist/admin/AdminUserSessions-D9X2_HMA.js +0 -3
  108. package/dist/admin/AdminUserSettings-yI-JECf5.js +0 -3
  109. package/dist/admin/AdminUsers-BnGIRvmV.js.map +0 -1
  110. package/dist/admin/AdminUsers-CG9-2Z8W.js +0 -3
  111. package/dist/auth/Login-BWi-pPbO.js +0 -4
  112. package/dist/auth/Register-CWdkXWkc.js +0 -4
  113. package/dist/auth/ResetPassword-BUdM7T_R.js +0 -3
  114. package/dist/auth/VerifyEmail-BYmtnkEl.js +0 -3
  115. package/dist/demo/DemoHome-D6Z7EE4V.js +0 -3
  116. package/dist/demo/DemoJsonViewer-CYUggLop.js +0 -4
  117. package/dist/demo/DemoLayout-ZFDzyvY3.js +0 -3
  118. package/dist/demo/Showcase-vemLuO2t.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"AdminSessions-vOgkrQ2U.js","names":["filters"],"sources":["../../src/admin/components/sessions/AdminSessions.tsx"],"sourcesContent":["import { useClient } from \"@alepha/react\";\nimport { useI18n } from \"@alepha/react/i18n\";\nimport { useRouter } from \"@alepha/react/router\";\nimport { ActionButton, DataTable, Flex, Text } from \"@alepha/ui\";\nimport { Badge, Group } from \"@mantine/core\";\nimport {\n IconDeviceDesktop,\n IconDeviceMobile,\n IconDeviceTablet,\n IconTrash,\n} from \"@tabler/icons-react\";\nimport { type Page, t } from \"alepha\";\nimport {\n type AdminSessionController,\n type SessionEntity,\n sessions,\n} from \"alepha/api/users\";\nimport { useState } from \"react\";\nimport type { AdminRouter } from \"../../AdminRouter.ts\";\n\nexport interface AdminSessionsProps {\n userRealmName?: string;\n}\n\nconst AdminSessions = (props: AdminSessionsProps) => {\n const client = useClient<AdminSessionController>();\n const router = useRouter<AdminRouter>();\n const { l } = useI18n();\n const [refreshKey, setRefreshKey] = useState(0);\n\n const filters = t.object({\n userId: t.optional(\n t.uuid({\n $control: {\n query: t.pick(sessions.schema, [\"userId\"]),\n },\n }),\n ),\n });\n\n const getDeviceIcon = (device?: string) => {\n switch (device) {\n case \"MOBILE\":\n return <IconDeviceMobile size={14} />;\n case \"TABLET\":\n return <IconDeviceTablet size={14} />;\n default:\n return <IconDeviceDesktop size={14} />;\n }\n };\n\n const isExpired = (expiresAt: Date | string) => {\n return new Date(expiresAt) < new Date();\n };\n\n const handleDelete = async (sessionId: string) => {\n await client.deleteSession({\n params: { id: sessionId },\n query: { userRealmName: props.userRealmName },\n });\n setRefreshKey((k) => k + 1);\n };\n\n return (\n <Flex flex={1} direction=\"column\">\n <DataTable<SessionEntity, typeof filters>\n key={refreshKey}\n submitOnInit\n defaultSize={10}\n typeFormProps={{\n skipSubmitButton: true,\n columns: 3,\n }}\n tableProps={{\n horizontalSpacing: \"xs\",\n verticalSpacing: \"xs\",\n }}\n onFilterChange={(key, _value, form) => {\n if (key === \"userId\") {\n return form.submit();\n }\n }}\n filters={filters}\n tableTrProps={(item) => {\n if (isExpired(item.expiresAt)) {\n return {\n opacity: 0.5,\n };\n }\n return {};\n }}\n items={async (filters) => {\n const response = await client.findSessions({\n query: {\n ...filters,\n userRealmName: props.userRealmName,\n },\n });\n\n return response as Page<SessionEntity>;\n }}\n columns={{\n userId: {\n label: \"User\",\n value: (item) => (\n <ActionButton\n variant=\"subtle\"\n size=\"xs\"\n href={router.path(\"adminUserDetails\", {\n params: { userId: item.userId },\n })}\n >\n <Text size=\"xs\" ff=\"monospace\">\n {item.userId.slice(0, 8)}...\n </Text>\n </ActionButton>\n ),\n },\n userAgent: {\n label: \"Device\",\n fit: true,\n value: (item) => (\n <Group gap={4}>\n {item.userAgent ? (\n <>\n <Badge\n size=\"xs\"\n variant=\"light\"\n leftSection={getDeviceIcon(item.userAgent.device)}\n >\n {item.userAgent.device}\n </Badge>\n <Text size=\"xs\" c=\"dimmed\">\n {item.userAgent.browser} / {item.userAgent.os}\n </Text>\n </>\n ) : (\n <Text size=\"xs\" c=\"dimmed\">\n -\n </Text>\n )}\n </Group>\n ),\n },\n ip: {\n label: \"IP\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" ff=\"monospace\" c=\"dimmed\">\n {item.ip || \"-\"}\n </Text>\n ),\n },\n expiresAt: {\n label: \"Status\",\n fit: true,\n value: (item) => (\n <Badge\n size=\"sm\"\n variant=\"light\"\n color={isExpired(item.expiresAt) ? \"red\" : \"green\"}\n >\n {isExpired(item.expiresAt) ? \"Expired\" : \"Active\"}\n </Badge>\n ),\n },\n createdAt: {\n label: \"Created\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" c=\"dimmed\">\n {l(item.createdAt, { date: \"fromNow\" })}\n </Text>\n ),\n },\n actions: {\n label: \"\",\n fit: true,\n value: (item) => (\n <ActionButton\n size=\"xs\"\n variant=\"subtle\"\n color=\"red\"\n onClick={() => handleDelete(item.id)}\n >\n <IconTrash size={14} />\n </ActionButton>\n ),\n },\n }}\n />\n </Flex>\n );\n};\n\nexport default AdminSessions;\n"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { t as AdminUserSessions_default } from "./AdminUserSessions-DEaGu6n6.js";
2
-
3
- export { AdminUserSessions_default as default };
@@ -1,3 +0,0 @@
1
- import { t as AdminUserSettings_default } from "./AdminUserSettings-Di73D7g2.js";
2
-
3
- export { AdminUserSettings_default as default };
@@ -1 +0,0 @@
1
- {"version":3,"file":"AdminUsers-BnGIRvmV.js","names":["Flex","filters"],"sources":["../../src/admin/components/users/AdminUsers.tsx"],"sourcesContent":["import { useClient } from \"@alepha/react\";\nimport { useI18n } from \"@alepha/react/i18n\";\nimport { useRouter } from \"@alepha/react/router\";\nimport { DataTable, Text } from \"@alepha/ui\";\nimport { Badge, Flex, Group } from \"@mantine/core\";\nimport { IconCheck, IconUsersPlus, IconX } from \"@tabler/icons-react\";\nimport { type Page, t } from \"alepha\";\nimport {\n type AdminUserController,\n type UserEntity,\n users,\n} from \"alepha/api/users\";\nimport type { AdminRouter } from \"../../AdminRouter.ts\";\n\nexport interface AdminUsersProps {\n userRealmName?: string;\n}\n\nconst AdminUsers = (props: AdminUsersProps) => {\n const client = useClient<AdminUserController>();\n const router = useRouter<AdminRouter>();\n const { l } = useI18n();\n\n const filters = t.object({\n query: t.optional(\n t.string({\n $control: {\n query: t.omit(users.schema, [\"id\", \"version\"]),\n },\n }),\n ),\n });\n\n return (\n <Flex flex={1} direction=\"column\">\n <DataTable<UserEntity, typeof filters>\n submitOnInit\n actions={[\n {\n icon: IconUsersPlus,\n href: router.path(\"adminUserCreate\"),\n label: \"Create User\",\n },\n ]}\n defaultSize={10}\n typeFormProps={{\n skipSubmitButton: true,\n columns: 3,\n }}\n tableProps={{\n horizontalSpacing: \"xs\",\n verticalSpacing: \"xs\",\n striped: false,\n highlightOnHover: true,\n }}\n onFilterChange={(key, value, form) => {\n if (key === \"query\") {\n return form.submit();\n }\n }}\n filters={filters}\n tableTrProps={(item) => {\n const baseProps: Record<string, any> = {\n style: { cursor: \"pointer\" },\n onClick: () =>\n router.go(\"adminUserDetails\", {\n params: { userId: item.id },\n }),\n };\n\n if (!item.enabled) {\n baseProps.opacity = 0.5;\n }\n\n return baseProps;\n }}\n items={async (filters) => {\n const response = await client.findUsers({\n query: {\n ...filters,\n userRealmName: props.userRealmName,\n },\n });\n\n return response as Page<UserEntity>;\n }}\n columns={{\n username: {\n label: \"Username\",\n value: (item) => (\n <Text size=\"sm\" fw={500}>\n {item.username || \"-\"}\n </Text>\n ),\n },\n email: {\n label: \"Email\",\n value: (item) => (\n <Group gap=\"xs\">\n <Text size=\"sm\">{item.email || \"-\"}</Text>\n {item.email && (\n <Badge\n size=\"xs\"\n variant=\"light\"\n color={item.emailVerified ? \"green\" : \"gray\"}\n leftSection={\n item.emailVerified ? (\n <IconCheck size={10} />\n ) : (\n <IconX size={10} />\n )\n }\n >\n {item.emailVerified ? \"Verified\" : \"Unverified\"}\n </Badge>\n )}\n </Group>\n ),\n },\n roles: {\n label: \"Roles\",\n value: (item) => (\n <Group gap={4}>\n {item.roles.map((role: string) => (\n <Badge key={role} size=\"xs\" variant=\"outline\">\n {role}\n </Badge>\n ))}\n </Group>\n ),\n },\n enabled: {\n label: \"Status\",\n fit: true,\n value: (item) => (\n <Badge\n size=\"sm\"\n variant=\"light\"\n color={item.enabled ? \"green\" : \"red\"}\n >\n {item.enabled ? \"Active\" : \"Disabled\"}\n </Badge>\n ),\n },\n createdAt: {\n label: \"Created\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" c=\"dimmed\">\n {l(item.createdAt, { date: \"fromNow\" })}\n </Text>\n ),\n },\n }}\n />\n </Flex>\n );\n};\n\nexport default AdminUsers;\n"],"mappings":";;;;;;;;;;;AAkBA,MAAM,cAAc,UAA2B;CAC7C,MAAM,SAAS,WAAgC;CAC/C,MAAM,SAAS,WAAwB;CACvC,MAAM,EAAE,MAAM,SAAS;CAEvB,MAAM,UAAU,EAAE,OAAO,EACvB,OAAO,EAAE,SACP,EAAE,OAAO,EACP,UAAU,EACR,OAAO,EAAE,KAAK,MAAM,QAAQ,CAAC,MAAM,UAAU,CAAC,EAC/C,EACF,CAAC,CACH,EACF,CAAC;AAEF,QACE,oBAACA;EAAK,MAAM;EAAG,WAAU;YACvB,oBAAC;GACC;GACA,SAAS,CACP;IACE,MAAM;IACN,MAAM,OAAO,KAAK,kBAAkB;IACpC,OAAO;IACR,CACF;GACD,aAAa;GACb,eAAe;IACb,kBAAkB;IAClB,SAAS;IACV;GACD,YAAY;IACV,mBAAmB;IACnB,iBAAiB;IACjB,SAAS;IACT,kBAAkB;IACnB;GACD,iBAAiB,KAAK,OAAO,SAAS;AACpC,QAAI,QAAQ,QACV,QAAO,KAAK,QAAQ;;GAGf;GACT,eAAe,SAAS;IACtB,MAAM,YAAiC;KACrC,OAAO,EAAE,QAAQ,WAAW;KAC5B,eACE,OAAO,GAAG,oBAAoB,EAC5B,QAAQ,EAAE,QAAQ,KAAK,IAAI,EAC5B,CAAC;KACL;AAED,QAAI,CAAC,KAAK,QACR,WAAU,UAAU;AAGtB,WAAO;;GAET,OAAO,OAAO,cAAY;AAQxB,WAPiB,MAAM,OAAO,UAAU,EACtC,OAAO;KACL,GAAGC;KACH,eAAe,MAAM;KACtB,EACF,CAAC;;GAIJ,SAAS;IACP,UAAU;KACR,OAAO;KACP,QAAQ,SACN,oBAAC;MAAK,MAAK;MAAK,IAAI;gBACjB,KAAK,YAAY;OACb;KAEV;IACD,OAAO;KACL,OAAO;KACP,QAAQ,SACN,qBAAC;MAAM,KAAI;iBACT,oBAAC;OAAK,MAAK;iBAAM,KAAK,SAAS;QAAW,EACzC,KAAK,SACJ,oBAAC;OACC,MAAK;OACL,SAAQ;OACR,OAAO,KAAK,gBAAgB,UAAU;OACtC,aACE,KAAK,gBACH,oBAAC,aAAU,MAAM,KAAM,GAEvB,oBAAC,SAAM,MAAM,KAAM;iBAItB,KAAK,gBAAgB,aAAa;QAC7B;OAEJ;KAEX;IACD,OAAO;KACL,OAAO;KACP,QAAQ,SACN,oBAAC;MAAM,KAAK;gBACT,KAAK,MAAM,KAAK,SACf,oBAAC;OAAiB,MAAK;OAAK,SAAQ;iBACjC;SADS,KAEJ,CACR;OACI;KAEX;IACD,SAAS;KACP,OAAO;KACP,KAAK;KACL,QAAQ,SACN,oBAAC;MACC,MAAK;MACL,SAAQ;MACR,OAAO,KAAK,UAAU,UAAU;gBAE/B,KAAK,UAAU,WAAW;OACrB;KAEX;IACD,WAAW;KACT,OAAO;KACP,KAAK;KACL,QAAQ,SACN,oBAAC;MAAK,MAAK;MAAK,GAAE;gBACf,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;OAClC;KAEV;IACF;IACD;GACG;;AAIX,yBAAe"}
@@ -1,3 +0,0 @@
1
- import { t as AdminUsers_default } from "./AdminUsers-BnGIRvmV.js";
2
-
3
- export { AdminUsers_default as default };
@@ -1,4 +0,0 @@
1
- import "./IconGoogle-Cm5d8J3f.js";
2
- import { t as Login_default } from "./Login-Cjxv3EDi.js";
3
-
4
- export { Login_default as default };
@@ -1,4 +0,0 @@
1
- import "./IconGoogle-Cm5d8J3f.js";
2
- import { t as Register_default } from "./Register-CGlbQ50l.js";
3
-
4
- export { Register_default as default };
@@ -1,3 +0,0 @@
1
- import { t as ResetPassword_default } from "./ResetPassword-DvqD_1SJ.js";
2
-
3
- export { ResetPassword_default as default };
@@ -1,3 +0,0 @@
1
- import { t as VerifyEmail_default } from "./VerifyEmail-VaBruOnO.js";
2
-
3
- export { VerifyEmail_default as default };
@@ -1,3 +0,0 @@
1
- import { t as DemoHome_default } from "./DemoHome-CnuL5WV9.js";
2
-
3
- export { DemoHome_default as default };
@@ -1,4 +0,0 @@
1
- import { t as DemoJsonViewer_default } from "./DemoJsonViewer-NUGst5wW.js";
2
- import "./Showcase-vemLuO2t.js";
3
-
4
- export { DemoJsonViewer_default as default };
@@ -1,3 +0,0 @@
1
- import { t as DemoLayout_default } from "./DemoLayout-dvbeuBBf.js";
2
-
3
- export { DemoLayout_default as default };
@@ -1 +0,0 @@
1
- {"version":3,"file":"Showcase-vemLuO2t.js","names":["values","MacWindow"],"sources":["../../src/demo/components/shared/MacWindow.tsx","../../src/demo/components/shared/Showcase.tsx"],"sourcesContent":["import { Box, type BoxProps, Flex, SegmentedControl } from \"@mantine/core\";\nimport { type ReactNode, useState } from \"react\";\n\nexport interface MacWindowProps {\n children: ReactNode;\n title?: string;\n containerProps?: BoxProps;\n fill?: boolean;\n}\n\ntype WindowSize = \"25\" | \"50\" | \"75\" | \"100\";\n\nconst MacWindow = ({\n children,\n title,\n containerProps,\n fill,\n}: MacWindowProps) => {\n const [size, setSize] = useState<WindowSize>(\"100\");\n\n const getWidth = () => {\n return `${size}%`;\n };\n\n return (\n <Flex\n direction=\"column\"\n flex={fill ? 1 : undefined}\n h={fill ? \"100%\" : undefined}\n bdrs={\"md\"}\n style={{\n width: getWidth(),\n border: \"1px solid var(--mantine-color-default-border)\",\n overflow: \"hidden\",\n background: \"var(--mantine-color-body)\",\n boxShadow: \"0 4px 12px rgba(0, 0, 0, 0.15)\",\n transition: \"width 0.3s ease\",\n }}\n >\n <Flex\n h={36}\n px=\"sm\"\n align=\"center\"\n gap={8}\n style={{\n background: \"var(--mantine-color-default)\",\n borderBottom: \"1px solid var(--mantine-color-default-border)\",\n }}\n >\n <Flex gap={6}>\n <Box\n w={12}\n h={12}\n style={{ borderRadius: \"50%\", background: \"#ff5f57\" }}\n />\n <Box\n w={12}\n h={12}\n style={{ borderRadius: \"50%\", background: \"#febc2e\" }}\n />\n <Box\n w={12}\n h={12}\n style={{ borderRadius: \"50%\", background: \"#28c840\" }}\n />\n </Flex>\n\n <Box\n style={{\n flex: 1,\n textAlign: \"center\",\n fontSize: 13,\n color: \"var(--mantine-color-dimmed)\",\n }}\n >\n {title}\n </Box>\n\n {fill ? undefined : (\n <SegmentedControl\n size=\"xs\"\n value={size}\n onChange={(v) => setSize(v as WindowSize)}\n data={[\n { label: \"25\", value: \"25\" },\n { label: \"50\", value: \"50\" },\n { label: \"75\", value: \"75\" },\n { label: \"100\", value: \"100\" },\n ]}\n />\n )}\n </Flex>\n <Flex\n direction={\"column\"}\n flex={fill ? 1 : undefined}\n p=\"md\"\n {...containerProps}\n >\n {children}\n </Flex>\n </Flex>\n );\n};\n\nexport default MacWindow;\n","import { useForm } from \"@alepha/react/form\";\nimport { TypeForm, ui } from \"@alepha/ui\";\nimport { Box, Card, Flex, Text } from \"@mantine/core\";\nimport type { Static, TObject } from \"alepha\";\nimport { type ReactNode, useState } from \"react\";\nimport MacWindow, { type MacWindowProps } from \"./MacWindow.tsx\";\n\nexport interface ShowcaseProps<T extends TObject> {\n /**\n * Component title\n */\n title: string;\n /**\n * Schema for the props configuration\n */\n schema: T;\n /**\n * Initial values for the props\n */\n initialValues?: Partial<Static<T>>;\n /**\n * Number of columns for the props form\n */\n columns?: number;\n /**\n * Render function that receives the current props values\n */\n children: (props: Static<T>) => ReactNode;\n /**\n * Additional props for the MacWindow container\n */\n windowProps?: Partial<MacWindowProps>;\n}\n\n/**\n * Showcase component for demonstrating UI components with interactive props configuration.\n * Uses TypeForm to render a form based on the props schema and displays the component preview.\n */\nconst Showcase = <T extends TObject>({\n title,\n schema,\n initialValues,\n columns = 3,\n children,\n windowProps,\n}: ShowcaseProps<T>) => {\n const [values, setValues] = useState<Record<string, any>>(\n initialValues ?? {},\n );\n\n const form = useForm(\n {\n schema,\n initialValues,\n handler: (values) => {\n setValues(values as Record<string, any>);\n },\n onChange: (key, value) => {\n console.log(\"onChange\", key, value);\n form.submit();\n },\n },\n [schema],\n );\n\n return (\n <Flex flex={1} h={\"100%\"}>\n <Flex\n flex={1}\n bg={ui.colors.background}\n h={\"100%\"}\n p=\"xl\"\n justify=\"center\"\n align=\"flex-start\"\n style={{ flex: 1, minWidth: 0, overflow: \"auto\" }}\n >\n <MacWindow title={title} {...windowProps}>\n {children(values as Static<T>)}\n </MacWindow>\n </Flex>\n\n <Box\n bg={ui.colors.surface}\n h={\"100%\"}\n p={\"md\"}\n style={{\n flex: \"0 0 300px\",\n overflow: \"auto\",\n }}\n >\n <Card withBorder shadow=\"sm\" radius=\"md\" bg={ui.colors.elevated}>\n <Card.Section withBorder py={\"xs\"} inheritPadding>\n <Text size={\"xs\"} fw={500}>\n {title} Props\n </Text>\n </Card.Section>\n\n <Card.Section p={\"sm\"}>\n <TypeForm\n form={form}\n columns={columns}\n skipSubmitButton\n skipFormElement\n />\n </Card.Section>\n </Card>\n </Box>\n </Flex>\n );\n};\n\nexport default Showcase;\n"],"mappings":";;;;;;;AAYA,MAAM,aAAa,EACjB,UACA,OACA,gBACA,WACoB;CACpB,MAAM,CAAC,MAAM,WAAW,SAAqB,MAAM;CAEnD,MAAM,iBAAiB;AACrB,SAAO,GAAG,KAAK;;AAGjB,QACE,qBAAC;EACC,WAAU;EACV,MAAM,OAAO,IAAI;EACjB,GAAG,OAAO,SAAS;EACnB,MAAM;EACN,OAAO;GACL,OAAO,UAAU;GACjB,QAAQ;GACR,UAAU;GACV,YAAY;GACZ,WAAW;GACX,YAAY;GACb;aAED,qBAAC;GACC,GAAG;GACH,IAAG;GACH,OAAM;GACN,KAAK;GACL,OAAO;IACL,YAAY;IACZ,cAAc;IACf;;IAED,qBAAC;KAAK,KAAK;;MACT,oBAAC;OACC,GAAG;OACH,GAAG;OACH,OAAO;QAAE,cAAc;QAAO,YAAY;QAAW;QACrD;MACF,oBAAC;OACC,GAAG;OACH,GAAG;OACH,OAAO;QAAE,cAAc;QAAO,YAAY;QAAW;QACrD;MACF,oBAAC;OACC,GAAG;OACH,GAAG;OACH,OAAO;QAAE,cAAc;QAAO,YAAY;QAAW;QACrD;;MACG;IAEP,oBAAC;KACC,OAAO;MACL,MAAM;MACN,WAAW;MACX,UAAU;MACV,OAAO;MACR;eAEA;MACG;IAEL,OAAO,SACN,oBAAC;KACC,MAAK;KACL,OAAO;KACP,WAAW,MAAM,QAAQ,EAAgB;KACzC,MAAM;MACJ;OAAE,OAAO;OAAM,OAAO;OAAM;MAC5B;OAAE,OAAO;OAAM,OAAO;OAAM;MAC5B;OAAE,OAAO;OAAM,OAAO;OAAM;MAC5B;OAAE,OAAO;OAAO,OAAO;OAAO;MAC/B;MACD;;IAEC,EACP,oBAAC;GACC,WAAW;GACX,MAAM,OAAO,IAAI;GACjB,GAAE;GACF,GAAI;GAEH;IACI;GACF;;AAIX,wBAAe;;;;;;;;AClEf,MAAM,YAA+B,EACnC,OACA,QACA,eACA,UAAU,GACV,UACA,kBACsB;CACtB,MAAM,CAAC,QAAQ,aAAa,SAC1B,iBAAiB,EAAE,CACpB;CAED,MAAM,OAAO,QACX;EACE;EACA;EACA,UAAU,aAAW;AACnB,aAAUA,SAA8B;;EAE1C,WAAW,KAAK,UAAU;AACxB,WAAQ,IAAI,YAAY,KAAK,MAAM;AACnC,QAAK,QAAQ;;EAEhB,EACD,CAAC,OAAO,CACT;AAED,QACE,qBAAC;EAAK,MAAM;EAAG,GAAG;aAChB,oBAAC;GACC,MAAM;GACN,IAAI,GAAG,OAAO;GACd,GAAG;GACH,GAAE;GACF,SAAQ;GACR,OAAM;GACN,OAAO;IAAE,MAAM;IAAG,UAAU;IAAG,UAAU;IAAQ;aAEjD,oBAACC;IAAiB;IAAO,GAAI;cAC1B,SAAS,OAAoB;KACpB;IACP,EAEP,oBAAC;GACC,IAAI,GAAG,OAAO;GACd,GAAG;GACH,GAAG;GACH,OAAO;IACL,MAAM;IACN,UAAU;IACX;aAED,qBAAC;IAAK;IAAW,QAAO;IAAK,QAAO;IAAK,IAAI,GAAG,OAAO;eACrD,oBAAC,KAAK;KAAQ;KAAW,IAAI;KAAM;eACjC,qBAAC;MAAK,MAAM;MAAM,IAAI;iBACnB,OAAM;OACF;MACM,EAEf,oBAAC,KAAK;KAAQ,GAAG;eACf,oBAAC;MACO;MACG;MACT;MACA;OACA;MACW;KACV;IACH;GACD;;AAIX,uBAAe"}