@alepha/ui 0.16.1 → 0.16.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 (150) hide show
  1. package/dist/admin/{AdminApiKeys-GMORg-1l.js → AdminApiKeys-CoTOTfgU.js} +4 -3
  2. package/dist/admin/{AdminApiKeys-GMORg-1l.js.map → AdminApiKeys-CoTOTfgU.js.map} +1 -1
  3. package/dist/admin/{AdminAudits-pkWrjq1Z.js → AdminAudits-BmsxFbDa.js} +4 -3
  4. package/dist/admin/{AdminAudits-pkWrjq1Z.js.map → AdminAudits-BmsxFbDa.js.map} +1 -1
  5. package/dist/admin/{AdminFiles-WeQbsCsl.js → AdminFiles-BBB8knca.js} +4 -3
  6. package/dist/admin/{AdminFiles-WeQbsCsl.js.map → AdminFiles-BBB8knca.js.map} +1 -1
  7. package/dist/admin/{AdminJobs-B-q9iGO3.js → AdminJobs-C604joTz.js} +4 -3
  8. package/dist/admin/{AdminJobs-B-q9iGO3.js.map → AdminJobs-C604joTz.js.map} +1 -1
  9. package/dist/admin/{AdminLayout-BqZiXx4H.js → AdminLayout-CsjvpeD1.js} +6 -9
  10. package/dist/admin/AdminLayout-CsjvpeD1.js.map +1 -0
  11. package/dist/admin/{AdminNotifications-Ds5Un0NJ.js → AdminNotifications-LwR6RKrx.js} +4 -3
  12. package/dist/admin/{AdminNotifications-Ds5Un0NJ.js.map → AdminNotifications-LwR6RKrx.js.map} +1 -1
  13. package/dist/admin/AdminParameters-B_83Vie9.js +767 -0
  14. package/dist/admin/AdminParameters-B_83Vie9.js.map +1 -0
  15. package/dist/admin/{AdminSessions-DzIOxM3b.js → AdminSessions-CWnPosdd.js} +4 -3
  16. package/dist/admin/{AdminSessions-DzIOxM3b.js.map → AdminSessions-CWnPosdd.js.map} +1 -1
  17. package/dist/admin/{AdminUserAudits-CiUPN2BC.js → AdminUserAudits-nHv636E_.js} +4 -3
  18. package/dist/admin/{AdminUserAudits-CiUPN2BC.js.map → AdminUserAudits-nHv636E_.js.map} +1 -1
  19. package/dist/admin/{AdminUserCreate-BwQKr4xE.js → AdminUserCreate-CjYD3Kjc.js} +4 -3
  20. package/dist/admin/{AdminUserCreate-BwQKr4xE.js.map → AdminUserCreate-CjYD3Kjc.js.map} +1 -1
  21. package/dist/admin/{AdminUserDetails-uqtC5aJ1.js → AdminUserDetails-Ccq-LsZ0.js} +4 -3
  22. package/dist/admin/{AdminUserDetails-uqtC5aJ1.js.map → AdminUserDetails-Ccq-LsZ0.js.map} +1 -1
  23. package/dist/admin/{AdminUserLayout-CiPay35T.js → AdminUserLayout-7s41DiF_.js} +6 -7
  24. package/dist/admin/AdminUserLayout-7s41DiF_.js.map +1 -0
  25. package/dist/admin/{AdminUserSessions-DAE8Nf1F.js → AdminUserSessions-Ds3ODq_d.js} +4 -3
  26. package/dist/admin/{AdminUserSessions-DAE8Nf1F.js.map → AdminUserSessions-Ds3ODq_d.js.map} +1 -1
  27. package/dist/admin/{AdminUserSettings-EbahaV2a.js → AdminUserSettings-CGh4gROo.js} +4 -3
  28. package/dist/admin/{AdminUserSettings-EbahaV2a.js.map → AdminUserSettings-CGh4gROo.js.map} +1 -1
  29. package/dist/admin/{AdminUsers-Dcjh0KNW.js → AdminUsers-CvPiBzQK.js} +4 -3
  30. package/dist/admin/{AdminUsers-Dcjh0KNW.js.map → AdminUsers-CvPiBzQK.js.map} +1 -1
  31. package/dist/admin/index.d.ts +22 -10
  32. package/dist/admin/index.d.ts.map +1 -1
  33. package/dist/admin/index.js +47 -48
  34. package/dist/admin/index.js.map +1 -1
  35. package/dist/admin/rolldown-runtime-CjeV3_4I.js +18 -0
  36. package/dist/auth/{AuthLayout-Dj5K4SIN.js → AuthLayout-CdJcrPs4.js} +2 -3
  37. package/dist/auth/{AuthLayout-Dj5K4SIN.js.map → AuthLayout-CdJcrPs4.js.map} +1 -1
  38. package/dist/{demo/IconGoogle-CbBF8Hqq.js → auth/IconGoogle-Bm18QD2q.js} +2 -4
  39. package/dist/auth/{IconGoogle-DpSlPZ1u.js.map → IconGoogle-Bm18QD2q.js.map} +1 -1
  40. package/dist/auth/{Login-BBqTosqZ.js → Login-DS_OqA0G.js} +7 -6
  41. package/dist/auth/Login-DS_OqA0G.js.map +1 -0
  42. package/dist/auth/{Profile-Bxj8Nwom.js → Profile-Di7N7HZL.js} +2 -3
  43. package/dist/auth/{Profile-Bxj8Nwom.js.map → Profile-Di7N7HZL.js.map} +1 -1
  44. package/dist/auth/{Register-Ce675Crg.js → Register-BRR2_gux.js} +7 -6
  45. package/dist/auth/Register-BRR2_gux.js.map +1 -0
  46. package/dist/auth/{ResetPassword-DWdt7c40.js → ResetPassword-oQu72lod.js} +4 -3
  47. package/dist/auth/{ResetPassword-DWdt7c40.js.map → ResetPassword-oQu72lod.js.map} +1 -1
  48. package/dist/auth/{VerifyEmail-CI4JwByV.js → VerifyEmail-DC6HPZjd.js} +4 -3
  49. package/dist/auth/{VerifyEmail-CI4JwByV.js.map → VerifyEmail-DC6HPZjd.js.map} +1 -1
  50. package/dist/auth/index.d.ts +14 -14
  51. package/dist/auth/index.d.ts.map +1 -1
  52. package/dist/auth/index.js +13 -13
  53. package/dist/auth/index.js.map +1 -1
  54. package/dist/auth/rolldown-runtime-CjeV3_4I.js +18 -0
  55. package/dist/core/index.d.ts +147 -68
  56. package/dist/core/index.d.ts.map +1 -1
  57. package/dist/core/index.js +349 -287
  58. package/dist/core/index.js.map +1 -1
  59. package/dist/demo/{DemoDataTable-CguplbR7.js → DemoDataTable-DCsJq8v5.js} +4 -5
  60. package/dist/demo/DemoDataTable-DCsJq8v5.js.map +1 -0
  61. package/dist/demo/{DemoHome-Cce2bWmg.js → DemoHome-DpRrPlBC.js} +4 -3
  62. package/dist/demo/{DemoHome-Cce2bWmg.js.map → DemoHome-DpRrPlBC.js.map} +1 -1
  63. package/dist/demo/{DemoJsonViewer-Dgdk3Txb.js → DemoJsonViewer-zeucGKHV.js} +6 -5
  64. package/dist/demo/DemoJsonViewer-zeucGKHV.js.map +1 -0
  65. package/dist/demo/{DemoLayout-B20TEuhV.js → DemoLayout-PhgbAAiQ.js} +6 -5
  66. package/dist/demo/DemoLayout-PhgbAAiQ.js.map +1 -0
  67. package/dist/demo/{DemoLogin-CvCG2WVh.js → DemoLogin-DSzP0Lkv.js} +8 -10
  68. package/dist/demo/DemoLogin-DSzP0Lkv.js.map +1 -0
  69. package/dist/demo/{DemoRegister-CmeHbOAs.js → DemoRegister-DavFBsCz.js} +8 -10
  70. package/dist/demo/DemoRegister-DavFBsCz.js.map +1 -0
  71. package/dist/demo/{DemoResetPassword-CKO5iA_6.js → DemoResetPassword-BS2rIAQK.js} +5 -7
  72. package/dist/demo/DemoResetPassword-BS2rIAQK.js.map +1 -0
  73. package/dist/demo/{DemoSidebar-MVmQKfMt.js → DemoSidebar-zNkUmHRl.js} +4 -5
  74. package/dist/demo/DemoSidebar-zNkUmHRl.js.map +1 -0
  75. package/dist/demo/{DemoTypeForm-w-qtfRlC.js → DemoTypeForm-B9q7oT0b.js} +4 -5
  76. package/dist/demo/DemoTypeForm-B9q7oT0b.js.map +1 -0
  77. package/dist/demo/{DemoVerifyEmail-C8FFJT5A.js → DemoVerifyEmail-Bi4SdWz0.js} +5 -7
  78. package/dist/demo/DemoVerifyEmail-Bi4SdWz0.js.map +1 -0
  79. package/dist/{auth/IconGoogle-DpSlPZ1u.js → demo/IconGoogle-CTeZyrek.js} +2 -4
  80. package/dist/demo/{IconGoogle-CbBF8Hqq.js.map → IconGoogle-CTeZyrek.js.map} +1 -1
  81. package/dist/demo/{Showcase-CQrMWars.js → Showcase-C9btr_SJ.js} +3 -5
  82. package/dist/demo/Showcase-C9btr_SJ.js.map +1 -0
  83. package/dist/demo/index.d.ts +2 -2
  84. package/dist/demo/index.d.ts.map +1 -1
  85. package/dist/demo/index.js +15 -15
  86. package/dist/demo/rolldown-runtime-CjeV3_4I.js +18 -0
  87. package/package.json +5 -3
  88. package/src/admin/AdminRouter.ts +15 -24
  89. package/src/admin/components/AdminLayout.tsx +6 -9
  90. package/src/admin/components/parameters/AdminParameters.tsx +154 -76
  91. package/src/admin/components/parameters/ParameterDetails.tsx +153 -93
  92. package/src/admin/components/parameters/ParameterEmptyState.tsx +27 -0
  93. package/src/admin/components/parameters/ParameterHistory.tsx +15 -20
  94. package/src/admin/components/parameters/ParameterTree.tsx +280 -104
  95. package/src/admin/components/parameters/types.ts +3 -3
  96. package/src/admin/primitives/$uiAdmin.ts +2 -2
  97. package/src/auth/AuthRouter.ts +1 -0
  98. package/src/core/components/buttons/ActionButton.tsx +4 -15
  99. package/src/core/components/buttons/DarkModeButton.tsx +8 -4
  100. package/src/core/components/buttons/ToggleSidebarButton.tsx +3 -5
  101. package/src/core/components/form/Control.tsx +10 -32
  102. package/src/core/components/form/ControlArray.tsx +200 -89
  103. package/src/core/components/form/TypeForm.browser.spec.tsx +727 -0
  104. package/src/core/components/layout/AlephaMantineProvider.tsx +1 -0
  105. package/src/core/components/layout/Breadcrumb.tsx +91 -0
  106. package/src/core/components/layout/{AdminShell.tsx → DashboardShell.tsx} +77 -32
  107. package/src/core/components/layout/Sidebar.tsx +58 -18
  108. package/src/core/constants/ui.ts +1 -1
  109. package/src/core/helpers/renderIcon.tsx +5 -2
  110. package/src/core/index.ts +9 -5
  111. package/src/core/styles.css +7 -7
  112. package/src/core/utils/string.ts +28 -4
  113. package/src/demo/components/DemoLayout.tsx +6 -2
  114. package/dist/admin/AdminApiKeys-DsmGnHNh.js +0 -3
  115. package/dist/admin/AdminAudits-8SM96viT.js +0 -3
  116. package/dist/admin/AdminFiles-B56ocq4H.js +0 -3
  117. package/dist/admin/AdminJobs-CED1syCn.js +0 -3
  118. package/dist/admin/AdminLayout-BqZiXx4H.js.map +0 -1
  119. package/dist/admin/AdminNotifications-B0B1rdc4.js +0 -3
  120. package/dist/admin/AdminParameters-BU3lATdJ.js +0 -3
  121. package/dist/admin/AdminParameters-CfDUpc78.js +0 -575
  122. package/dist/admin/AdminParameters-CfDUpc78.js.map +0 -1
  123. package/dist/admin/AdminSessions-BDGK2MS6.js +0 -3
  124. package/dist/admin/AdminUserAudits-Cj79gENT.js +0 -3
  125. package/dist/admin/AdminUserCreate-Cq-mUmBs.js +0 -3
  126. package/dist/admin/AdminUserDetails-DRjVAPFd.js +0 -3
  127. package/dist/admin/AdminUserLayout-CGzmHHby.js +0 -3
  128. package/dist/admin/AdminUserLayout-CiPay35T.js.map +0 -1
  129. package/dist/admin/AdminUserSessions-DcdzuNZ9.js +0 -3
  130. package/dist/admin/AdminUserSettings-D7V6-ceX.js +0 -3
  131. package/dist/admin/AdminUsers-D9nyzGqQ.js +0 -3
  132. package/dist/auth/Login-BBqTosqZ.js.map +0 -1
  133. package/dist/auth/Login-CoU63mMR.js +0 -4
  134. package/dist/auth/Register-BV_oa_AK.js +0 -4
  135. package/dist/auth/Register-Ce675Crg.js.map +0 -1
  136. package/dist/auth/ResetPassword-D5wC8GAA.js +0 -3
  137. package/dist/auth/VerifyEmail-DAfqVm5s.js +0 -3
  138. package/dist/demo/DemoDataTable-CguplbR7.js.map +0 -1
  139. package/dist/demo/DemoHome-DC9qkMNe.js +0 -3
  140. package/dist/demo/DemoJsonViewer-DIssGVlJ.js +0 -4
  141. package/dist/demo/DemoJsonViewer-Dgdk3Txb.js.map +0 -1
  142. package/dist/demo/DemoLayout-B20TEuhV.js.map +0 -1
  143. package/dist/demo/DemoLayout-DSRyf4qJ.js +0 -3
  144. package/dist/demo/DemoLogin-CvCG2WVh.js.map +0 -1
  145. package/dist/demo/DemoRegister-CmeHbOAs.js.map +0 -1
  146. package/dist/demo/DemoResetPassword-CKO5iA_6.js.map +0 -1
  147. package/dist/demo/DemoSidebar-MVmQKfMt.js.map +0 -1
  148. package/dist/demo/DemoTypeForm-w-qtfRlC.js.map +0 -1
  149. package/dist/demo/DemoVerifyEmail-C8FFJT5A.js.map +0 -1
  150. package/dist/demo/Showcase-CQrMWars.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DemoVerifyEmail-Bi4SdWz0.js","names":[],"sources":["../../src/auth/components/VerifyEmail.tsx","../../src/demo/components/auth/DemoVerifyEmail.tsx"],"sourcesContent":["import { ActionButton } from \"@alepha/ui\";\nimport { Alert, Card, Flex, Loader, Stack, Text } from \"@mantine/core\";\nimport { IconAlertCircle, IconCheck, IconMailCheck } from \"@tabler/icons-react\";\nimport type { UserController } from \"alepha/api/users\";\nimport { useClient } from \"alepha/react\";\nimport { useI18n } from \"alepha/react/i18n\";\nimport { useRouter, useRouterState } from \"alepha/react/router\";\nimport { useEffect, useState } from \"react\";\nimport type { AuthI18n } from \"../AuthI18n.ts\";\nimport type { AuthRouter } from \"../AuthRouter.ts\";\n\nexport type VerifyEmailProps = {};\n\ntype Step = \"verifying\" | \"success\" | \"error\";\n\nconst VerifyEmail = (_props: VerifyEmailProps) => {\n const router = useRouter<AuthRouter>();\n const state = useRouterState();\n const userCtrl = useClient<UserController>();\n const { tr } = useI18n<AuthI18n, \"en\">();\n\n const [step, setStep] = useState<Step>(\"verifying\");\n const [error, setError] = useState<string | null>(null);\n\n const email = state.query.email as string | undefined;\n const token = state.query.token as string | undefined;\n\n useEffect(() => {\n const verify = async () => {\n if (!email || !token) {\n setError(tr(\"verifyEmailMissingParams\"));\n setStep(\"error\");\n return;\n }\n\n try {\n await userCtrl.verifyEmail({\n body: { email, token },\n });\n setStep(\"success\");\n } catch (err) {\n setError(err instanceof Error ? err.message : tr(\"verifyEmailFailed\"));\n setStep(\"error\");\n }\n };\n\n verify();\n }, [email, token]);\n\n return (\n <Flex flex={1} justify=\"center\" align=\"center\">\n <Stack gap=\"sm\" w={400}>\n <Card withBorder p=\"lg\" bg=\"var(--alepha-elevated)\">\n <Stack gap=\"md\" align=\"center\">\n {step === \"verifying\" && (\n <>\n <Loader size=\"lg\" />\n <Text size=\"lg\" fw={500} ta=\"center\">\n {tr(\"verifyEmailVerifying\")}\n </Text>\n <Text size=\"sm\" c=\"dimmed\" ta=\"center\">\n {tr(\"verifyEmailPleaseWait\")}\n </Text>\n </>\n )}\n\n {step === \"success\" && (\n <>\n <IconMailCheck size={48} color=\"var(--mantine-color-green-6)\" />\n <Text size=\"lg\" fw={500} ta=\"center\">\n {tr(\"verifyEmailTitle\")}\n </Text>\n <Alert variant=\"light\" color=\"green\" icon={<IconCheck />}>\n <Text size=\"sm\">{tr(\"verifyEmailSuccess\")}</Text>\n </Alert>\n <ActionButton href={router.path(\"login\")} fullWidth>\n {tr(\"verifyEmailSignIn\")}\n </ActionButton>\n </>\n )}\n\n {step === \"error\" && (\n <>\n <IconAlertCircle size={48} color=\"var(--mantine-color-red-6)\" />\n <Text size=\"lg\" fw={500} ta=\"center\">\n {tr(\"verifyEmailTitle\")}\n </Text>\n <Alert variant=\"light\" color=\"red\" icon={<IconAlertCircle />}>\n <Text size=\"sm\">{error || tr(\"verifyEmailFailed\")}</Text>\n </Alert>\n <ActionButton href={router.path(\"login\")} fullWidth>\n {tr(\"verifyEmailBackToSignIn\")}\n </ActionButton>\n </>\n )}\n </Stack>\n </Card>\n </Stack>\n </Flex>\n );\n};\n\nexport default VerifyEmail;\n","import { t } from \"alepha\";\nimport VerifyEmail from \"../../../auth/components/VerifyEmail.tsx\";\nimport Showcase from \"../shared/Showcase.tsx\";\n\nconst showcaseSchema = t.object({\n placeholder: t.boolean({\n title: \"Demo Mode\",\n default: true,\n $control: { switch: true },\n }),\n});\n\nconst DemoVerifyEmail = () => {\n return (\n <Showcase\n title=\"VerifyEmail\"\n schema={showcaseSchema}\n initialValues={{\n placeholder: true,\n }}\n columns={1}\n >\n {() => <VerifyEmail />}\n </Showcase>\n );\n};\n\nexport default DemoVerifyEmail;\n"],"mappings":";;;;;;;;;;;;AAeA,MAAM,eAAe,WAA6B;CAChD,MAAM,SAAS,WAAuB;CACtC,MAAM,QAAQ,gBAAgB;CAC9B,MAAM,WAAW,WAA2B;CAC5C,MAAM,EAAE,OAAO,SAAyB;CAExC,MAAM,CAAC,MAAM,WAAW,SAAe,YAAY;CACnD,MAAM,CAAC,OAAO,YAAY,SAAwB,KAAK;CAEvD,MAAM,QAAQ,MAAM,MAAM;CAC1B,MAAM,QAAQ,MAAM,MAAM;AAE1B,iBAAgB;EACd,MAAM,SAAS,YAAY;AACzB,OAAI,CAAC,SAAS,CAAC,OAAO;AACpB,aAAS,GAAG,2BAA2B,CAAC;AACxC,YAAQ,QAAQ;AAChB;;AAGF,OAAI;AACF,UAAM,SAAS,YAAY,EACzB,MAAM;KAAE;KAAO;KAAO,EACvB,CAAC;AACF,YAAQ,UAAU;YACX,KAAK;AACZ,aAAS,eAAe,QAAQ,IAAI,UAAU,GAAG,oBAAoB,CAAC;AACtE,YAAQ,QAAQ;;;AAIpB,UAAQ;IACP,CAAC,OAAO,MAAM,CAAC;AAElB,QACE,oBAAC;EAAK,MAAM;EAAG,SAAQ;EAAS,OAAM;YACpC,oBAAC;GAAM,KAAI;GAAK,GAAG;aACjB,oBAAC;IAAK;IAAW,GAAE;IAAK,IAAG;cACzB,qBAAC;KAAM,KAAI;KAAK,OAAM;;MACnB,SAAS,eACR;OACE,oBAAC,UAAO,MAAK,OAAO;OACpB,oBAAC;QAAK,MAAK;QAAK,IAAI;QAAK,IAAG;kBACzB,GAAG,uBAAuB;SACtB;OACP,oBAAC;QAAK,MAAK;QAAK,GAAE;QAAS,IAAG;kBAC3B,GAAG,wBAAwB;SACvB;UACN;MAGJ,SAAS,aACR;OACE,oBAAC;QAAc,MAAM;QAAI,OAAM;SAAiC;OAChE,oBAAC;QAAK,MAAK;QAAK,IAAI;QAAK,IAAG;kBACzB,GAAG,mBAAmB;SAClB;OACP,oBAAC;QAAM,SAAQ;QAAQ,OAAM;QAAQ,MAAM,oBAAC,cAAY;kBACtD,oBAAC;SAAK,MAAK;mBAAM,GAAG,qBAAqB;UAAQ;SAC3C;OACR,oBAAC;QAAa,MAAM,OAAO,KAAK,QAAQ;QAAE;kBACvC,GAAG,oBAAoB;SACX;UACd;MAGJ,SAAS,WACR;OACE,oBAAC;QAAgB,MAAM;QAAI,OAAM;SAA+B;OAChE,oBAAC;QAAK,MAAK;QAAK,IAAI;QAAK,IAAG;kBACzB,GAAG,mBAAmB;SAClB;OACP,oBAAC;QAAM,SAAQ;QAAQ,OAAM;QAAM,MAAM,oBAAC,oBAAkB;kBAC1D,oBAAC;SAAK,MAAK;mBAAM,SAAS,GAAG,oBAAoB;UAAQ;SACnD;OACR,oBAAC;QAAa,MAAM,OAAO,KAAK,QAAQ;QAAE;kBACvC,GAAG,0BAA0B;SACjB;UACd;;MAEC;KACH;IACD;GACH;;;;;AC9FX,MAAM,iBAAiB,EAAE,OAAO,EAC9B,aAAa,EAAE,QAAQ;CACrB,OAAO;CACP,SAAS;CACT,UAAU,EAAE,QAAQ,MAAM;CAC3B,CAAC,EACH,CAAC;AAEF,MAAM,wBAAwB;AAC5B,QACE,oBAAC;EACC,OAAM;EACN,QAAQ;EACR,eAAe,EACb,aAAa,MACd;EACD,SAAS;kBAEF,oBAAC,gBAAc;GACb"}
@@ -17,7 +17,6 @@ const IconGithub = () => {
17
17
  })
18
18
  });
19
19
  };
20
- var IconGithub_default = IconGithub;
21
20
 
22
21
  //#endregion
23
22
  //#region ../../src/auth/components/icons/IconGoogle.tsx
@@ -51,8 +50,7 @@ const IconGoogle = () => {
51
50
  ]
52
51
  });
53
52
  };
54
- var IconGoogle_default = IconGoogle;
55
53
 
56
54
  //#endregion
57
- export { IconGithub_default as n, IconGoogle_default as t };
58
- //# sourceMappingURL=IconGoogle-DpSlPZ1u.js.map
55
+ export { IconGithub as n, IconGoogle as t };
56
+ //# sourceMappingURL=IconGoogle-CTeZyrek.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IconGoogle-CbBF8Hqq.js","names":[],"sources":["../../src/auth/components/icons/IconGithub.tsx","../../src/auth/components/icons/IconGoogle.tsx"],"sourcesContent":["const IconGithub = () => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 1024 1024\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8 0C3.58 0 0 3.58 0 8C0 11.54 2.29 14.53 5.47 15.59C5.87 15.66 6.02 15.42 6.02 15.21C6.02 15.02 6.01 14.39 6.01 13.72C4 14.09 3.48 13.23 3.32 12.78C3.23 12.55 2.84 11.84 2.5 11.65C2.22 11.5 1.82 11.13 2.49 11.12C3.12 11.11 3.57 11.7 3.72 11.94C4.44 13.15 5.59 12.81 6.05 12.6C6.12 12.08 6.33 11.73 6.56 11.53C4.78 11.33 2.92 10.64 2.92 7.58C2.92 6.71 3.23 5.99 3.74 5.43C3.66 5.23 3.38 4.41 3.82 3.31C3.82 3.31 4.49 3.1 6.02 4.13C6.66 3.95 7.34 3.86 8.02 3.86C8.7 3.86 9.38 3.95 10.02 4.13C11.55 3.09 12.22 3.31 12.22 3.31C12.66 4.41 12.38 5.23 12.3 5.43C12.81 5.99 13.12 6.7 13.12 7.58C13.12 10.65 11.25 11.33 9.47 11.53C9.76 11.78 10.01 12.26 10.01 13.01C10.01 14.08 10 14.94 10 15.21C10 15.42 10.15 15.67 10.55 15.59C13.71 14.53 16 11.53 16 8C16 3.58 12.42 0 8 0Z\"\n transform=\"scale(64)\"\n fill={\"var(--alepha-text)\"}\n />\n </svg>\n );\n};\n\nexport default IconGithub;\n","const IconGoogle = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n >\n <path\n d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"\n fill=\"#4285F4\"\n />\n <path\n d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\n fill=\"#34A853\"\n />\n <path\n d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\"\n fill=\"#FBBC05\"\n />\n <path\n d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\"\n fill=\"#EA4335\"\n />\n <path d=\"M1 1h22v22H1z\" fill=\"none\" />\n </svg>\n );\n};\n\nexport default IconGoogle;\n"],"mappings":";;;AAAA,MAAM,mBAAmB;AACvB,QACE,oBAAC;EACC,OAAM;EACN,QAAO;EACP,SAAQ;EACR,MAAK;EACL,OAAM;YAEN,oBAAC;GACC,UAAS;GACT,UAAS;GACT,GAAE;GACF,WAAU;GACV,MAAM;IACN;GACE;;AAIV,yBAAe;;;;ACpBf,MAAM,mBAAmB;AACvB,QACE,qBAAC;EACC,OAAM;EACN,QAAO;EACP,SAAQ;EACR,OAAM;;GAEN,oBAAC;IACC,GAAE;IACF,MAAK;KACL;GACF,oBAAC;IACC,GAAE;IACF,MAAK;KACL;GACF,oBAAC;IACC,GAAE;IACF,MAAK;KACL;GACF,oBAAC;IACC,GAAE;IACF,MAAK;KACL;GACF,oBAAC;IAAK,GAAE;IAAgB,MAAK;KAAS;;GAClC;;AAIV,yBAAe"}
1
+ {"version":3,"file":"IconGoogle-CTeZyrek.js","names":[],"sources":["../../src/auth/components/icons/IconGithub.tsx","../../src/auth/components/icons/IconGoogle.tsx"],"sourcesContent":["const IconGithub = () => {\n return (\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 1024 1024\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8 0C3.58 0 0 3.58 0 8C0 11.54 2.29 14.53 5.47 15.59C5.87 15.66 6.02 15.42 6.02 15.21C6.02 15.02 6.01 14.39 6.01 13.72C4 14.09 3.48 13.23 3.32 12.78C3.23 12.55 2.84 11.84 2.5 11.65C2.22 11.5 1.82 11.13 2.49 11.12C3.12 11.11 3.57 11.7 3.72 11.94C4.44 13.15 5.59 12.81 6.05 12.6C6.12 12.08 6.33 11.73 6.56 11.53C4.78 11.33 2.92 10.64 2.92 7.58C2.92 6.71 3.23 5.99 3.74 5.43C3.66 5.23 3.38 4.41 3.82 3.31C3.82 3.31 4.49 3.1 6.02 4.13C6.66 3.95 7.34 3.86 8.02 3.86C8.7 3.86 9.38 3.95 10.02 4.13C11.55 3.09 12.22 3.31 12.22 3.31C12.66 4.41 12.38 5.23 12.3 5.43C12.81 5.99 13.12 6.7 13.12 7.58C13.12 10.65 11.25 11.33 9.47 11.53C9.76 11.78 10.01 12.26 10.01 13.01C10.01 14.08 10 14.94 10 15.21C10 15.42 10.15 15.67 10.55 15.59C13.71 14.53 16 11.53 16 8C16 3.58 12.42 0 8 0Z\"\n transform=\"scale(64)\"\n fill={\"var(--alepha-text)\"}\n />\n </svg>\n );\n};\n\nexport default IconGithub;\n","const IconGoogle = () => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n >\n <path\n d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z\"\n fill=\"#4285F4\"\n />\n <path\n d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\"\n fill=\"#34A853\"\n />\n <path\n d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z\"\n fill=\"#FBBC05\"\n />\n <path\n d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\"\n fill=\"#EA4335\"\n />\n <path d=\"M1 1h22v22H1z\" fill=\"none\" />\n </svg>\n );\n};\n\nexport default IconGoogle;\n"],"mappings":";;;AAAA,MAAM,mBAAmB;AACvB,QACE,oBAAC;EACC,OAAM;EACN,QAAO;EACP,SAAQ;EACR,MAAK;EACL,OAAM;YAEN,oBAAC;GACC,UAAS;GACT,UAAS;GACT,GAAE;GACF,WAAU;GACV,MAAM;IACN;GACE;;;;;AChBV,MAAM,mBAAmB;AACvB,QACE,qBAAC;EACC,OAAM;EACN,QAAO;EACP,SAAQ;EACR,OAAM;;GAEN,oBAAC;IACC,GAAE;IACF,MAAK;KACL;GACF,oBAAC;IACC,GAAE;IACF,MAAK;KACL;GACF,oBAAC;IACC,GAAE;IACF,MAAK;KACL;GACF,oBAAC;IACC,GAAE;IACF,MAAK;KACL;GACF,oBAAC;IAAK,GAAE;IAAgB,MAAK;KAAS;;GAClC"}
@@ -104,7 +104,6 @@ const MacWindow = ({ children, title, containerProps, fill }) => {
104
104
  })]
105
105
  });
106
106
  };
107
- var MacWindow_default = MacWindow;
108
107
 
109
108
  //#endregion
110
109
  //#region ../../src/demo/components/shared/Showcase.tsx
@@ -140,7 +139,7 @@ const Showcase = ({ title, schema, initialValues, columns = 3, children, windowP
140
139
  minWidth: 0,
141
140
  overflow: "auto"
142
141
  },
143
- children: /* @__PURE__ */ jsx(MacWindow_default, {
142
+ children: /* @__PURE__ */ jsx(MacWindow, {
144
143
  title,
145
144
  ...windowProps,
146
145
  children: children(values)
@@ -180,8 +179,7 @@ const Showcase = ({ title, schema, initialValues, columns = 3, children, windowP
180
179
  })]
181
180
  });
182
181
  };
183
- var Showcase_default = Showcase;
184
182
 
185
183
  //#endregion
186
- export { MacWindow_default as n, Showcase_default as t };
187
- //# sourceMappingURL=Showcase-CQrMWars.js.map
184
+ export { MacWindow as n, Showcase as t };
185
+ //# sourceMappingURL=Showcase-C9btr_SJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Showcase-C9btr_SJ.js","names":[],"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 { TypeForm, ui } from \"@alepha/ui\";\nimport { Box, Card, Flex, Text } from \"@mantine/core\";\nimport type { Static, TObject } from \"alepha\";\nimport { useForm } from \"alepha/react/form\";\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;;;;;;;;;AC9DX,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,WAAW;AACnB,aAAU,OAA8B;;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,oBAAC;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"}
@@ -1,4 +1,4 @@
1
- import * as alepha0 from "alepha";
1
+ import * as alepha from "alepha";
2
2
  import { Static, TObject } from "alepha";
3
3
  import * as alepha_react_router0 from "alepha/react/router";
4
4
  import { BoxProps } from "@mantine/core";
@@ -101,7 +101,7 @@ declare class DemoRouter {
101
101
  *
102
102
  * @module alepha.ui.demo
103
103
  */
104
- declare const AlephaUIDemo: alepha0.Service<alepha0.Module>;
104
+ declare const AlephaUIDemo: alepha.Service<alepha.Module>;
105
105
  //#endregion
106
106
  export { AlephaUIDemo, DemoHome, DemoJsonViewer, DemoLayout, DemoRouter, MacWindow, type MacWindowProps, Showcase, type ShowcaseProps };
107
107
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/demo/components/DemoHome.tsx","../../src/demo/components/DemoLayout.tsx","../../src/demo/components/json/DemoJsonViewer.tsx","../../src/demo/components/shared/MacWindow.tsx","../../src/demo/components/shared/Showcase.tsx","../../src/demo/DemoRouter.ts","../../src/demo/index.ts"],"mappings":";;;;;;;;cAaM,QAAA,QAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;;;cCRR,UAAA,QAAU,kBAAA,CAAA,GAAA,CAAA,OAAA;;;cC6EV,cAAA,QAAc,kBAAA,CAAA,GAAA,CAAA,OAAA;;;UC/EH,cAAA;EACf,QAAA,EAAU,SAAA;EACV,KAAA;EACA,cAAA,GAAiB,QAAA;EACjB,IAAA;AAAA;AAAA,cAKI,SAAA;EAAa,QAAA;EAAA,KAAA;EAAA,cAAA;EAAA;AAAA,GAKhB,cAAA,KAAc,kBAAA,CAAA,GAAA,CAAA,OAAA;;;UCVA,aAAA,WAAwB,OAAA;;;;EAIvC,KAAA;EJEI;;;EIEJ,MAAA,EAAQ,CAAA;EJWT;;;EIPC,aAAA,GAAgB,OAAA,CAAQ,MAAA,CAAO,CAAA;EHd3B;;;EGkBJ,OAAA;EH0BD;;;EGtBC,QAAA,GAAW,KAAA,EAAO,MAAA,CAAO,CAAA,MAAO,SAAA;EFuD5B;;;EEnDJ,WAAA,GAAc,OAAA,CAAQ,cAAA;AAAA;;;;AD5BxB;cCmCM,QAAA,aAAsB,OAAA;EAAS,KAAA;EAAA,MAAA;EAAA,aAAA;EAAA,OAAA;EAAA,QAAA;EAAA;AAAA,GAOlC,aAAA,CAAc,CAAA,MAAE,kBAAA,CAAA,GAAA,CAAA,OAAA;;;cC5BN,UAAA;EACX,UAAA,EAAU,oBAAA,CAAA,aAAA,CADW,oBAAA,CACX,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAaV,QAAA,EAAQ,oBAAA,CAAA,aAAA,CAbE,oBAAA,CAaF,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAQR,QAAA,EAAQ,oBAAA,CAAA,aAAA,CARA,oBAAA,CAQA,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAOR,YAAA,EAAY,oBAAA,CAAA,aAAA,CAPJ,oBAAA,CAOI,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAOZ,WAAA,EAAW,oBAAA,CAAA,aAAA,CAPC,oBAAA,CAOD,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAOX,aAAA,EAAa,oBAAA,CAAA,aAAA,CAPF,oBAAA,CAOE,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAQb,QAAA,EAAQ,oBAAA,CAAA,aAAA,CARK,oBAAA,CAQL,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAOR,cAAA,EAAc,oBAAA,CAAA,aAAA,CAPN,oBAAA,CAOM,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAQd,QAAA,EAAQ,oBAAA,CAAA,aAAA,CARM,oBAAA,CAQN,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAYR,SAAA,EAAS,oBAAA,CAAA,aAAA,CAZD,oBAAA,CAYC,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAOT,YAAA,EAAY,oBAAA,CAAA,aAAA,CAPH,oBAAA,CAOG,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAOZ,iBAAA,EAAiB,oBAAA,CAAA,aAAA,CAPL,oBAAA,CAOK,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAOjB,eAAA,EAAe,oBAAA,CAAA,aAAA,CAPE,oBAAA,CAOF,gBAAA,OAAA,oBAAA,CAAA,mBAAA;AAAA;;;;;ALvGH;;;;;;;;ACRE;;;;;cK+BH,YAAA,EAAY,OAAA,CAAA,OAAA,CAGvB,OAAA,CAHuB,MAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/demo/components/DemoHome.tsx","../../src/demo/components/DemoLayout.tsx","../../src/demo/components/json/DemoJsonViewer.tsx","../../src/demo/components/shared/MacWindow.tsx","../../src/demo/components/shared/Showcase.tsx","../../src/demo/DemoRouter.ts","../../src/demo/index.ts"],"mappings":";;;;;;;;cAaM,QAAA,QAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;;;cCJR,UAAA,QAAU,kBAAA,CAAA,GAAA,CAAA,OAAA;;;cCyEV,cAAA,QAAc,kBAAA,CAAA,GAAA,CAAA,OAAA;;;UC/EH,cAAA;EACf,QAAA,EAAU,SAAA;EACV,KAAA;EACA,cAAA,GAAiB,QAAA;EACjB,IAAA;AAAA;AAAA,cAKI,SAAA;EAAa,QAAA;EAAA,KAAA;EAAA,cAAA;EAAA;AAAA,GAKhB,cAAA,KAAc,kBAAA,CAAA,GAAA,CAAA,OAAA;;;UCVA,aAAA,WAAwB,OAAA;;;;EAIvC,KAAA;EJEI;;;EIEJ,MAAA,EAAQ,CAAA;EJWT;;;EIPC,aAAA,GAAgB,OAAA,CAAQ,MAAA,CAAO,CAAA;EHV3B;;;EGcJ,OAAA;EH8BD;;;EG1BC,QAAA,GAAW,KAAA,EAAO,MAAA,CAAO,CAAA,MAAO,SAAA;EFuD5B;;;EEnDJ,WAAA,GAAc,OAAA,CAAQ,cAAA;AAAA;;;;AD5BxB;cCmCM,QAAA,aAAsB,OAAA;EAAS,KAAA;EAAA,MAAA;EAAA,aAAA;EAAA,OAAA;EAAA,QAAA;EAAA;AAAA,GAOlC,aAAA,CAAc,CAAA,MAAE,kBAAA,CAAA,GAAA,CAAA,OAAA;;;cC5BN,UAAA;EACX,UAAA,EAAU,oBAAA,CAAA,aAAA,CADW,oBAAA,CACX,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAaV,QAAA,EAAQ,oBAAA,CAAA,aAAA,CAbE,oBAAA,CAaF,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAQR,QAAA,EAAQ,oBAAA,CAAA,aAAA,CARA,oBAAA,CAQA,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAOR,YAAA,EAAY,oBAAA,CAAA,aAAA,CAPJ,oBAAA,CAOI,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAOZ,WAAA,EAAW,oBAAA,CAAA,aAAA,CAPC,oBAAA,CAOD,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAOX,aAAA,EAAa,oBAAA,CAAA,aAAA,CAPF,oBAAA,CAOE,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAQb,QAAA,EAAQ,oBAAA,CAAA,aAAA,CARK,oBAAA,CAQL,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAOR,cAAA,EAAc,oBAAA,CAAA,aAAA,CAPN,oBAAA,CAOM,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAQd,QAAA,EAAQ,oBAAA,CAAA,aAAA,CARM,oBAAA,CAQN,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAYR,SAAA,EAAS,oBAAA,CAAA,aAAA,CAZD,oBAAA,CAYC,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAOT,YAAA,EAAY,oBAAA,CAAA,aAAA,CAPH,oBAAA,CAOG,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAOZ,iBAAA,EAAiB,oBAAA,CAAA,aAAA,CAPL,oBAAA,CAOK,gBAAA,OAAA,oBAAA,CAAA,mBAAA;EAOjB,eAAA,EAAe,oBAAA,CAAA,aAAA,CAPE,oBAAA,CAOF,gBAAA,OAAA,oBAAA,CAAA,mBAAA;AAAA;;;;;ALvGH;;;;;;;;ACJE;;;;;cK2BH,YAAA,EAAY,MAAA,CAAA,OAAA,CAGvB,MAAA,CAHuB,MAAA"}
@@ -1,7 +1,7 @@
1
- import { t as DemoHome_default } from "./DemoHome-Cce2bWmg.js";
2
- import { t as DemoLayout_default } from "./DemoLayout-B20TEuhV.js";
3
- import { t as DemoJsonViewer_default } from "./DemoJsonViewer-Dgdk3Txb.js";
4
- import { n as MacWindow_default, t as Showcase_default } from "./Showcase-CQrMWars.js";
1
+ import { t as DemoHome } from "./DemoHome-DpRrPlBC.js";
2
+ import { t as DemoLayout } from "./DemoLayout-PhgbAAiQ.js";
3
+ import { t as DemoJsonViewer } from "./DemoJsonViewer-zeucGKHV.js";
4
+ import { n as MacWindow, t as Showcase } from "./Showcase-C9btr_SJ.js";
5
5
  import { AlephaUI } from "@alepha/ui";
6
6
  import { $module } from "alepha";
7
7
  import { IconBinaryTree, IconBraces, IconForms, IconHome, IconKey, IconLayoutSidebar, IconLockQuestion, IconLogin, IconMailCheck, IconPackages, IconTable, IconUserPlus, IconWall } from "@tabler/icons-react";
@@ -13,7 +13,7 @@ var DemoRouter = class {
13
13
  icon: IconPackages,
14
14
  path: "/demo",
15
15
  label: "Demo",
16
- lazy: () => import("./DemoLayout-DSRyf4qJ.js"),
16
+ lazy: () => import("./DemoLayout-PhgbAAiQ.js").then((n) => n.n),
17
17
  children: () => [
18
18
  this.demoHome,
19
19
  this.demoCore,
@@ -25,7 +25,7 @@ var DemoRouter = class {
25
25
  icon: IconHome,
26
26
  path: "/",
27
27
  label: "Home",
28
- lazy: () => import("./DemoHome-DC9qkMNe.js")
28
+ lazy: () => import("./DemoHome-DpRrPlBC.js").then((n) => n.n)
29
29
  });
30
30
  demoCore = $page({
31
31
  icon: IconWall,
@@ -41,19 +41,19 @@ var DemoRouter = class {
41
41
  icon: IconForms,
42
42
  path: "/type-form",
43
43
  label: "TypeForm",
44
- lazy: () => import("./DemoTypeForm-w-qtfRlC.js")
44
+ lazy: () => import("./DemoTypeForm-B9q7oT0b.js")
45
45
  });
46
46
  demoSidebar = $page({
47
47
  icon: IconLayoutSidebar,
48
48
  path: "/sidebar",
49
49
  label: "Sidebar",
50
- lazy: () => import("./DemoSidebar-MVmQKfMt.js")
50
+ lazy: () => import("./DemoSidebar-zNkUmHRl.js")
51
51
  });
52
52
  demoDataTable = $page({
53
53
  icon: IconTable,
54
54
  path: "/data-table",
55
55
  label: "DataTable",
56
- lazy: () => import("./DemoDataTable-CguplbR7.js")
56
+ lazy: () => import("./DemoDataTable-DCsJq8v5.js")
57
57
  });
58
58
  demoJson = $page({
59
59
  icon: IconBraces,
@@ -65,7 +65,7 @@ var DemoRouter = class {
65
65
  icon: IconBinaryTree,
66
66
  path: "/viewer",
67
67
  label: "JsonViewer",
68
- lazy: () => import("./DemoJsonViewer-DIssGVlJ.js")
68
+ lazy: () => import("./DemoJsonViewer-zeucGKHV.js").then((n) => n.n)
69
69
  });
70
70
  demoAuth = $page({
71
71
  icon: IconKey,
@@ -82,25 +82,25 @@ var DemoRouter = class {
82
82
  icon: IconLogin,
83
83
  path: "/login",
84
84
  label: "Login",
85
- lazy: () => import("./DemoLogin-CvCG2WVh.js")
85
+ lazy: () => import("./DemoLogin-DSzP0Lkv.js")
86
86
  });
87
87
  demoRegister = $page({
88
88
  icon: IconUserPlus,
89
89
  path: "/register",
90
90
  label: "Register",
91
- lazy: () => import("./DemoRegister-CmeHbOAs.js")
91
+ lazy: () => import("./DemoRegister-DavFBsCz.js")
92
92
  });
93
93
  demoResetPassword = $page({
94
94
  icon: IconLockQuestion,
95
95
  path: "/reset-password",
96
96
  label: "ResetPassword",
97
- lazy: () => import("./DemoResetPassword-CKO5iA_6.js")
97
+ lazy: () => import("./DemoResetPassword-BS2rIAQK.js")
98
98
  });
99
99
  demoVerifyEmail = $page({
100
100
  icon: IconMailCheck,
101
101
  path: "/verify-email",
102
102
  label: "VerifyEmail",
103
- lazy: () => import("./DemoVerifyEmail-C8FFJT5A.js")
103
+ lazy: () => import("./DemoVerifyEmail-Bi4SdWz0.js")
104
104
  });
105
105
  };
106
106
 
@@ -127,5 +127,5 @@ const AlephaUIDemo = $module({
127
127
  });
128
128
 
129
129
  //#endregion
130
- export { AlephaUIDemo, DemoHome_default as DemoHome, DemoJsonViewer_default as DemoJsonViewer, DemoLayout_default as DemoLayout, DemoRouter, MacWindow_default as MacWindow, Showcase_default as Showcase };
130
+ export { AlephaUIDemo, DemoHome, DemoJsonViewer, DemoLayout, DemoRouter, MacWindow, Showcase };
131
131
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,18 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __defProp = Object.defineProperty;
3
+ var __exportAll = (all, no_symbols) => {
4
+ let target = {};
5
+ for (var name in all) {
6
+ __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ }
11
+ if (!no_symbols) {
12
+ __defProp(target, Symbol.toStringTag, { value: "Module" });
13
+ }
14
+ return target;
15
+ };
16
+
17
+ //#endregion
18
+ export { __exportAll as t };
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "mantine"
8
8
  ],
9
9
  "author": "Nicolas Foures",
10
- "version": "0.16.1",
10
+ "version": "0.16.2",
11
11
  "type": "module",
12
12
  "engines": {
13
13
  "node": ">=22.0.0"
@@ -34,7 +34,9 @@
34
34
  },
35
35
  "devDependencies": {
36
36
  "@biomejs/biome": "^2.3.14",
37
- "alepha": "0.16.1",
37
+ "@testing-library/dom": "^10.4.1",
38
+ "@testing-library/react": "^16.3.2",
39
+ "alepha": "0.16.2",
38
40
  "react": "^19.2.4",
39
41
  "react-dom": "^19.2.4",
40
42
  "typescript": "^5.9.3",
@@ -42,7 +44,7 @@
42
44
  "vitest": "^4.0.18"
43
45
  },
44
46
  "peerDependencies": {
45
- "alepha": "0.16.1",
47
+ "alepha": "0.16.2",
46
48
  "react": "*",
47
49
  "react-dom": "*"
48
50
  },
@@ -1,4 +1,4 @@
1
- import type { AdminShellProps, SidebarNode } from "@alepha/ui";
1
+ import type { DashboardShellProps, SidebarNode } from "@alepha/ui";
2
2
  import { AuthRouter } from "@alepha/ui/auth";
3
3
  import {
4
4
  IconBell,
@@ -18,7 +18,7 @@ import type { FileController } from "alepha/api/files";
18
18
  import type { AdminJobController } from "alepha/api/jobs";
19
19
  import type { AdminApiKeyController } from "alepha/api/keys";
20
20
  import type { AdminNotificationController } from "alepha/api/notifications";
21
- import type { AdminConfigController } from "alepha/api/parameters";
21
+ import type { AdminParameterController } from "alepha/api/parameters";
22
22
  import type {
23
23
  AdminSessionController,
24
24
  AdminUserController,
@@ -35,12 +35,12 @@ export class AdminRouter {
35
35
  protected readonly sessionCtrl = $client<AdminSessionController>();
36
36
  protected readonly notificationCtrl = $client<AdminNotificationController>();
37
37
  protected readonly fileCtrl = $client<FileController>();
38
- protected readonly configCtrl = $client<AdminConfigController>();
38
+ protected readonly paramCtrl = $client<AdminParameterController>();
39
39
  protected readonly auditCtrl = $client<AdminAuditController>();
40
40
  protected readonly jobCtrl = $client<AdminJobController>();
41
41
  protected readonly apiKeyCtrl = $client<AdminApiKeyController>();
42
42
 
43
- public configFn?: (adminRouter: AdminRouter) => AdminShellProps = () => {
43
+ public configFn?: (adminRouter: AdminRouter) => DashboardShellProps = () => {
44
44
  return {
45
45
  sidebarResizable: true,
46
46
  sidebarProps: {
@@ -51,10 +51,9 @@ export class AdminRouter {
51
51
 
52
52
  public getDefaultSidebarItems(): SidebarNode[] {
53
53
  return [
54
- // Identity & Access
55
54
  {
55
+ type: "section",
56
56
  label: "Identity",
57
- icon: IconUsers,
58
57
  children: [
59
58
  {
60
59
  ...this.router.node(this.adminUsers.name),
@@ -70,11 +69,9 @@ export class AdminRouter {
70
69
  },
71
70
  ],
72
71
  },
73
-
74
- // Content & Storage
75
72
  {
76
- label: "Content",
77
- icon: IconFile,
73
+ type: "section",
74
+ label: "System",
78
75
  children: [
79
76
  {
80
77
  ...this.router.node(this.adminFiles.name),
@@ -84,14 +81,6 @@ export class AdminRouter {
84
81
  ...this.router.node(this.adminNotifications.name),
85
82
  can: () => this.notificationCtrl.findNotifications.can(),
86
83
  },
87
- ],
88
- },
89
-
90
- // System
91
- {
92
- label: "System",
93
- icon: IconSettings,
94
- children: [
95
84
  {
96
85
  ...this.router.node(this.adminJobs.name),
97
86
  can: () => this.jobCtrl.getJobs.can(),
@@ -102,17 +91,15 @@ export class AdminRouter {
102
91
  },
103
92
  {
104
93
  ...this.router.node(this.adminParameters.name),
105
- can: () => this.configCtrl.getConfigTree.can(),
94
+ can: () => this.paramCtrl.getParameterTree.can(),
106
95
  },
107
96
  ],
108
97
  },
109
-
110
- // Bottom
111
98
  { type: "toggle", position: "bottom" },
112
99
  ];
113
100
  }
114
101
 
115
- protected adminShellProps(): AdminShellProps {
102
+ protected adminShellProps(): DashboardShellProps {
116
103
  if (this.configFn) {
117
104
  return this.configFn(this);
118
105
  }
@@ -276,9 +263,13 @@ export class AdminRouter {
276
263
  parent: this.adminLayout,
277
264
  path: "/parameters",
278
265
  label: "Parameters",
279
- description: "View and manage application configuration parameters.",
266
+ description: "View and manage application parameters.",
280
267
  lazy: () => import("./components/parameters/AdminParameters.tsx"),
281
- can: () => this.configCtrl.getConfigTree.can(),
268
+ can: () => this.paramCtrl.getParameterTree.can(),
269
+ loader: async () => {
270
+ const treeData = await this.paramCtrl.getParameterTree({});
271
+ return { treeData };
272
+ },
282
273
  });
283
274
 
284
275
  // ─────────────────────────────────────────────────────────────────────────────
@@ -1,21 +1,22 @@
1
1
  import {
2
2
  ActionButton,
3
- AdminShell,
4
- type AdminShellProps,
5
3
  AlephaMantineProvider,
6
- OmnibarButton,
4
+ DashboardShell,
5
+ type DashboardShellProps,
7
6
  } from "@alepha/ui";
8
7
  import { UserButton } from "@alepha/ui/auth";
8
+ import { Flex } from "@mantine/core";
9
9
  import { IconArrowLeft } from "@tabler/icons-react";
10
10
 
11
11
  export interface AdminLayoutProps {
12
- adminShellProps?: AdminShellProps;
12
+ adminShellProps?: DashboardShellProps;
13
13
  }
14
14
 
15
15
  const AdminLayout = (props: AdminLayoutProps) => {
16
16
  return (
17
17
  <AlephaMantineProvider>
18
- <AdminShell
18
+ <DashboardShell
19
+ footer={<Flex h={24} />}
19
20
  appBarProps={{
20
21
  items: [
21
22
  {
@@ -28,10 +29,6 @@ const AdminLayout = (props: AdminLayoutProps) => {
28
29
  ),
29
30
  position: "left",
30
31
  },
31
- {
32
- element: <OmnibarButton />,
33
- position: "center",
34
- },
35
32
  {
36
33
  element: <UserButton />,
37
34
  position: "right",