@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.
- package/dist/admin/{AdminApiKeys-GMORg-1l.js → AdminApiKeys-CoTOTfgU.js} +4 -3
- package/dist/admin/{AdminApiKeys-GMORg-1l.js.map → AdminApiKeys-CoTOTfgU.js.map} +1 -1
- package/dist/admin/{AdminAudits-pkWrjq1Z.js → AdminAudits-BmsxFbDa.js} +4 -3
- package/dist/admin/{AdminAudits-pkWrjq1Z.js.map → AdminAudits-BmsxFbDa.js.map} +1 -1
- package/dist/admin/{AdminFiles-WeQbsCsl.js → AdminFiles-BBB8knca.js} +4 -3
- package/dist/admin/{AdminFiles-WeQbsCsl.js.map → AdminFiles-BBB8knca.js.map} +1 -1
- package/dist/admin/{AdminJobs-B-q9iGO3.js → AdminJobs-C604joTz.js} +4 -3
- package/dist/admin/{AdminJobs-B-q9iGO3.js.map → AdminJobs-C604joTz.js.map} +1 -1
- package/dist/admin/{AdminLayout-BqZiXx4H.js → AdminLayout-CsjvpeD1.js} +6 -9
- package/dist/admin/AdminLayout-CsjvpeD1.js.map +1 -0
- package/dist/admin/{AdminNotifications-Ds5Un0NJ.js → AdminNotifications-LwR6RKrx.js} +4 -3
- package/dist/admin/{AdminNotifications-Ds5Un0NJ.js.map → AdminNotifications-LwR6RKrx.js.map} +1 -1
- package/dist/admin/AdminParameters-B_83Vie9.js +767 -0
- package/dist/admin/AdminParameters-B_83Vie9.js.map +1 -0
- package/dist/admin/{AdminSessions-DzIOxM3b.js → AdminSessions-CWnPosdd.js} +4 -3
- package/dist/admin/{AdminSessions-DzIOxM3b.js.map → AdminSessions-CWnPosdd.js.map} +1 -1
- package/dist/admin/{AdminUserAudits-CiUPN2BC.js → AdminUserAudits-nHv636E_.js} +4 -3
- package/dist/admin/{AdminUserAudits-CiUPN2BC.js.map → AdminUserAudits-nHv636E_.js.map} +1 -1
- package/dist/admin/{AdminUserCreate-BwQKr4xE.js → AdminUserCreate-CjYD3Kjc.js} +4 -3
- package/dist/admin/{AdminUserCreate-BwQKr4xE.js.map → AdminUserCreate-CjYD3Kjc.js.map} +1 -1
- package/dist/admin/{AdminUserDetails-uqtC5aJ1.js → AdminUserDetails-Ccq-LsZ0.js} +4 -3
- package/dist/admin/{AdminUserDetails-uqtC5aJ1.js.map → AdminUserDetails-Ccq-LsZ0.js.map} +1 -1
- package/dist/admin/{AdminUserLayout-CiPay35T.js → AdminUserLayout-7s41DiF_.js} +6 -7
- package/dist/admin/AdminUserLayout-7s41DiF_.js.map +1 -0
- package/dist/admin/{AdminUserSessions-DAE8Nf1F.js → AdminUserSessions-Ds3ODq_d.js} +4 -3
- package/dist/admin/{AdminUserSessions-DAE8Nf1F.js.map → AdminUserSessions-Ds3ODq_d.js.map} +1 -1
- package/dist/admin/{AdminUserSettings-EbahaV2a.js → AdminUserSettings-CGh4gROo.js} +4 -3
- package/dist/admin/{AdminUserSettings-EbahaV2a.js.map → AdminUserSettings-CGh4gROo.js.map} +1 -1
- package/dist/admin/{AdminUsers-Dcjh0KNW.js → AdminUsers-CvPiBzQK.js} +4 -3
- package/dist/admin/{AdminUsers-Dcjh0KNW.js.map → AdminUsers-CvPiBzQK.js.map} +1 -1
- package/dist/admin/index.d.ts +22 -10
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +47 -48
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/rolldown-runtime-CjeV3_4I.js +18 -0
- package/dist/auth/{AuthLayout-Dj5K4SIN.js → AuthLayout-CdJcrPs4.js} +2 -3
- package/dist/auth/{AuthLayout-Dj5K4SIN.js.map → AuthLayout-CdJcrPs4.js.map} +1 -1
- package/dist/{demo/IconGoogle-CbBF8Hqq.js → auth/IconGoogle-Bm18QD2q.js} +2 -4
- package/dist/auth/{IconGoogle-DpSlPZ1u.js.map → IconGoogle-Bm18QD2q.js.map} +1 -1
- package/dist/auth/{Login-BBqTosqZ.js → Login-DS_OqA0G.js} +7 -6
- package/dist/auth/Login-DS_OqA0G.js.map +1 -0
- package/dist/auth/{Profile-Bxj8Nwom.js → Profile-Di7N7HZL.js} +2 -3
- package/dist/auth/{Profile-Bxj8Nwom.js.map → Profile-Di7N7HZL.js.map} +1 -1
- package/dist/auth/{Register-Ce675Crg.js → Register-BRR2_gux.js} +7 -6
- package/dist/auth/Register-BRR2_gux.js.map +1 -0
- package/dist/auth/{ResetPassword-DWdt7c40.js → ResetPassword-oQu72lod.js} +4 -3
- package/dist/auth/{ResetPassword-DWdt7c40.js.map → ResetPassword-oQu72lod.js.map} +1 -1
- package/dist/auth/{VerifyEmail-CI4JwByV.js → VerifyEmail-DC6HPZjd.js} +4 -3
- package/dist/auth/{VerifyEmail-CI4JwByV.js.map → VerifyEmail-DC6HPZjd.js.map} +1 -1
- package/dist/auth/index.d.ts +14 -14
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +13 -13
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/rolldown-runtime-CjeV3_4I.js +18 -0
- package/dist/core/index.d.ts +147 -68
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +349 -287
- package/dist/core/index.js.map +1 -1
- package/dist/demo/{DemoDataTable-CguplbR7.js → DemoDataTable-DCsJq8v5.js} +4 -5
- package/dist/demo/DemoDataTable-DCsJq8v5.js.map +1 -0
- package/dist/demo/{DemoHome-Cce2bWmg.js → DemoHome-DpRrPlBC.js} +4 -3
- package/dist/demo/{DemoHome-Cce2bWmg.js.map → DemoHome-DpRrPlBC.js.map} +1 -1
- package/dist/demo/{DemoJsonViewer-Dgdk3Txb.js → DemoJsonViewer-zeucGKHV.js} +6 -5
- package/dist/demo/DemoJsonViewer-zeucGKHV.js.map +1 -0
- package/dist/demo/{DemoLayout-B20TEuhV.js → DemoLayout-PhgbAAiQ.js} +6 -5
- package/dist/demo/DemoLayout-PhgbAAiQ.js.map +1 -0
- package/dist/demo/{DemoLogin-CvCG2WVh.js → DemoLogin-DSzP0Lkv.js} +8 -10
- package/dist/demo/DemoLogin-DSzP0Lkv.js.map +1 -0
- package/dist/demo/{DemoRegister-CmeHbOAs.js → DemoRegister-DavFBsCz.js} +8 -10
- package/dist/demo/DemoRegister-DavFBsCz.js.map +1 -0
- package/dist/demo/{DemoResetPassword-CKO5iA_6.js → DemoResetPassword-BS2rIAQK.js} +5 -7
- package/dist/demo/DemoResetPassword-BS2rIAQK.js.map +1 -0
- package/dist/demo/{DemoSidebar-MVmQKfMt.js → DemoSidebar-zNkUmHRl.js} +4 -5
- package/dist/demo/DemoSidebar-zNkUmHRl.js.map +1 -0
- package/dist/demo/{DemoTypeForm-w-qtfRlC.js → DemoTypeForm-B9q7oT0b.js} +4 -5
- package/dist/demo/DemoTypeForm-B9q7oT0b.js.map +1 -0
- package/dist/demo/{DemoVerifyEmail-C8FFJT5A.js → DemoVerifyEmail-Bi4SdWz0.js} +5 -7
- package/dist/demo/DemoVerifyEmail-Bi4SdWz0.js.map +1 -0
- package/dist/{auth/IconGoogle-DpSlPZ1u.js → demo/IconGoogle-CTeZyrek.js} +2 -4
- package/dist/demo/{IconGoogle-CbBF8Hqq.js.map → IconGoogle-CTeZyrek.js.map} +1 -1
- package/dist/demo/{Showcase-CQrMWars.js → Showcase-C9btr_SJ.js} +3 -5
- package/dist/demo/Showcase-C9btr_SJ.js.map +1 -0
- package/dist/demo/index.d.ts +2 -2
- package/dist/demo/index.d.ts.map +1 -1
- package/dist/demo/index.js +15 -15
- package/dist/demo/rolldown-runtime-CjeV3_4I.js +18 -0
- package/package.json +5 -3
- package/src/admin/AdminRouter.ts +15 -24
- package/src/admin/components/AdminLayout.tsx +6 -9
- package/src/admin/components/parameters/AdminParameters.tsx +154 -76
- package/src/admin/components/parameters/ParameterDetails.tsx +153 -93
- package/src/admin/components/parameters/ParameterEmptyState.tsx +27 -0
- package/src/admin/components/parameters/ParameterHistory.tsx +15 -20
- package/src/admin/components/parameters/ParameterTree.tsx +280 -104
- package/src/admin/components/parameters/types.ts +3 -3
- package/src/admin/primitives/$uiAdmin.ts +2 -2
- package/src/auth/AuthRouter.ts +1 -0
- package/src/core/components/buttons/ActionButton.tsx +4 -15
- package/src/core/components/buttons/DarkModeButton.tsx +8 -4
- package/src/core/components/buttons/ToggleSidebarButton.tsx +3 -5
- package/src/core/components/form/Control.tsx +10 -32
- package/src/core/components/form/ControlArray.tsx +200 -89
- package/src/core/components/form/TypeForm.browser.spec.tsx +727 -0
- package/src/core/components/layout/AlephaMantineProvider.tsx +1 -0
- package/src/core/components/layout/Breadcrumb.tsx +91 -0
- package/src/core/components/layout/{AdminShell.tsx → DashboardShell.tsx} +77 -32
- package/src/core/components/layout/Sidebar.tsx +58 -18
- package/src/core/constants/ui.ts +1 -1
- package/src/core/helpers/renderIcon.tsx +5 -2
- package/src/core/index.ts +9 -5
- package/src/core/styles.css +7 -7
- package/src/core/utils/string.ts +28 -4
- package/src/demo/components/DemoLayout.tsx +6 -2
- package/dist/admin/AdminApiKeys-DsmGnHNh.js +0 -3
- package/dist/admin/AdminAudits-8SM96viT.js +0 -3
- package/dist/admin/AdminFiles-B56ocq4H.js +0 -3
- package/dist/admin/AdminJobs-CED1syCn.js +0 -3
- package/dist/admin/AdminLayout-BqZiXx4H.js.map +0 -1
- package/dist/admin/AdminNotifications-B0B1rdc4.js +0 -3
- package/dist/admin/AdminParameters-BU3lATdJ.js +0 -3
- package/dist/admin/AdminParameters-CfDUpc78.js +0 -575
- package/dist/admin/AdminParameters-CfDUpc78.js.map +0 -1
- package/dist/admin/AdminSessions-BDGK2MS6.js +0 -3
- package/dist/admin/AdminUserAudits-Cj79gENT.js +0 -3
- package/dist/admin/AdminUserCreate-Cq-mUmBs.js +0 -3
- package/dist/admin/AdminUserDetails-DRjVAPFd.js +0 -3
- package/dist/admin/AdminUserLayout-CGzmHHby.js +0 -3
- package/dist/admin/AdminUserLayout-CiPay35T.js.map +0 -1
- package/dist/admin/AdminUserSessions-DcdzuNZ9.js +0 -3
- package/dist/admin/AdminUserSettings-D7V6-ceX.js +0 -3
- package/dist/admin/AdminUsers-D9nyzGqQ.js +0 -3
- package/dist/auth/Login-BBqTosqZ.js.map +0 -1
- package/dist/auth/Login-CoU63mMR.js +0 -4
- package/dist/auth/Register-BV_oa_AK.js +0 -4
- package/dist/auth/Register-Ce675Crg.js.map +0 -1
- package/dist/auth/ResetPassword-D5wC8GAA.js +0 -3
- package/dist/auth/VerifyEmail-DAfqVm5s.js +0 -3
- package/dist/demo/DemoDataTable-CguplbR7.js.map +0 -1
- package/dist/demo/DemoHome-DC9qkMNe.js +0 -3
- package/dist/demo/DemoJsonViewer-DIssGVlJ.js +0 -4
- package/dist/demo/DemoJsonViewer-Dgdk3Txb.js.map +0 -1
- package/dist/demo/DemoLayout-B20TEuhV.js.map +0 -1
- package/dist/demo/DemoLayout-DSRyf4qJ.js +0 -3
- package/dist/demo/DemoLogin-CvCG2WVh.js.map +0 -1
- package/dist/demo/DemoRegister-CmeHbOAs.js.map +0 -1
- package/dist/demo/DemoResetPassword-CKO5iA_6.js.map +0 -1
- package/dist/demo/DemoSidebar-MVmQKfMt.js.map +0 -1
- package/dist/demo/DemoTypeForm-w-qtfRlC.js.map +0 -1
- package/dist/demo/DemoVerifyEmail-C8FFJT5A.js.map +0 -1
- 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 {
|
|
58
|
-
//# sourceMappingURL=IconGoogle-
|
|
55
|
+
export { IconGithub as n, IconGoogle as t };
|
|
56
|
+
//# sourceMappingURL=IconGoogle-CTeZyrek.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconGoogle-
|
|
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(
|
|
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 {
|
|
187
|
-
//# sourceMappingURL=Showcase-
|
|
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"}
|
package/dist/demo/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
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:
|
|
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
|
package/dist/demo/index.d.ts.map
CHANGED
|
@@ -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;;;
|
|
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"}
|
package/dist/demo/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
import { t as
|
|
3
|
-
import { t as
|
|
4
|
-
import { n as
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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,
|
|
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.
|
|
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
|
-
"
|
|
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.
|
|
47
|
+
"alepha": "0.16.2",
|
|
46
48
|
"react": "*",
|
|
47
49
|
"react-dom": "*"
|
|
48
50
|
},
|
package/src/admin/AdminRouter.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
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 {
|
|
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
|
|
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) =>
|
|
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
|
-
|
|
77
|
-
|
|
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.
|
|
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():
|
|
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
|
|
266
|
+
description: "View and manage application parameters.",
|
|
280
267
|
lazy: () => import("./components/parameters/AdminParameters.tsx"),
|
|
281
|
-
can: () => this.
|
|
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
|
-
|
|
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?:
|
|
12
|
+
adminShellProps?: DashboardShellProps;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
const AdminLayout = (props: AdminLayoutProps) => {
|
|
16
16
|
return (
|
|
17
17
|
<AlephaMantineProvider>
|
|
18
|
-
<
|
|
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",
|