@alepha/ui 0.14.1 → 0.14.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/AdminAudits-B3EhKhN7.js +3 -0
- package/dist/admin/{AdminAudits-CwvH8e8c.js → AdminAudits-DIrCCPk3.js} +3 -2
- package/dist/admin/AdminAudits-DIrCCPk3.js.map +1 -0
- package/dist/admin/AdminFiles-C8OG4dtD.js +3 -0
- package/dist/admin/{AdminFiles-C_w1tb_x.js → AdminFiles-RsL178Ta.js} +2 -2
- package/dist/admin/{AdminFiles-C_w1tb_x.js.map → AdminFiles-RsL178Ta.js.map} +1 -1
- package/dist/admin/AdminNotifications-BSL4B2fQ.js +3 -0
- package/dist/admin/{AdminNotifications-DuYy74AN.js → AdminNotifications-cIbywWKi.js} +2 -2
- package/dist/admin/AdminNotifications-cIbywWKi.js.map +1 -0
- package/dist/admin/{AdminParameters-DYg48Jwe.js → AdminParameters-BKObzzpN.js} +1 -1
- package/dist/admin/{AdminParameters-YagqWTG3.js → AdminParameters-D-q3Qmhv.js} +2 -2
- package/dist/admin/{AdminParameters-YagqWTG3.js.map → AdminParameters-D-q3Qmhv.js.map} +1 -1
- package/dist/admin/AdminSessions-DHG9zPfr.js +3 -0
- package/dist/admin/{AdminSessions-BCjgJ-93.js → AdminSessions-vOgkrQ2U.js} +3 -2
- package/dist/admin/AdminSessions-vOgkrQ2U.js.map +1 -0
- package/dist/admin/{AdminUserAudits-B_PUXCKC.js → AdminUserAudits-CSsN1fIC.js} +3 -2
- package/dist/admin/AdminUserAudits-CSsN1fIC.js.map +1 -0
- package/dist/admin/{AdminUserAudits-D7cTcElL.js → AdminUserAudits-DmAnivo3.js} +1 -1
- package/dist/admin/{AdminUserCreate-DzfRbGZ4.js → AdminUserCreate-B72nu-3W.js} +3 -2
- package/dist/admin/AdminUserCreate-B72nu-3W.js.map +1 -0
- package/dist/admin/{AdminUserCreate-oUA1KDIl.js → AdminUserCreate-DpA13zwj.js} +1 -1
- package/dist/admin/AdminUserDetails-CKM2IEMr.js +475 -0
- package/dist/admin/AdminUserDetails-CKM2IEMr.js.map +1 -0
- package/dist/admin/{AdminUserDetails-y1H5DW8Y.js → AdminUserDetails-Zib_B6Al.js} +1 -1
- package/dist/admin/{AdminUserLayout-Dejnz13m.js → AdminUserLayout-BNBOEiAO.js} +1 -1
- package/dist/admin/AdminUserLayout-D7En9UBq.js +334 -0
- package/dist/admin/AdminUserLayout-D7En9UBq.js.map +1 -0
- package/dist/admin/AdminUserSessions-D9X2_HMA.js +3 -0
- package/dist/admin/{AdminUserSessions-DO9H85O-.js → AdminUserSessions-DEaGu6n6.js} +3 -2
- package/dist/admin/AdminUserSessions-DEaGu6n6.js.map +1 -0
- package/dist/admin/{AdminUserSettings-B3jA8g3p.js → AdminUserSettings-Di73D7g2.js} +8 -6
- package/dist/admin/AdminUserSettings-Di73D7g2.js.map +1 -0
- package/dist/admin/AdminUserSettings-yI-JECf5.js +3 -0
- package/dist/admin/{AdminUsers-ebbrJBT0.js → AdminUsers-BnGIRvmV.js} +3 -2
- package/dist/admin/AdminUsers-BnGIRvmV.js.map +1 -0
- package/dist/admin/AdminUsers-CG9-2Z8W.js +3 -0
- package/dist/admin/index.d.ts +25 -25
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +37 -36
- package/dist/admin/index.js.map +1 -1
- package/dist/auth/{AuthLayout-BAZJHzDG.js → AuthLayout-B1sUB8fB.js} +2 -2
- package/dist/auth/AuthLayout-B1sUB8fB.js.map +1 -0
- package/dist/auth/Login-BWi-pPbO.js +4 -0
- package/dist/auth/{Login-CeNZZjrr.js → Login-Cjxv3EDi.js} +2 -2
- package/dist/auth/Login-Cjxv3EDi.js.map +1 -0
- package/dist/auth/{Register-s4ENeyiE.js → Register-BKBIpHhW.js} +3 -2
- package/dist/auth/Register-BKBIpHhW.js.map +1 -0
- package/dist/auth/Register-CtdvihIM.js +4 -0
- package/dist/auth/ResetPassword-BUdM7T_R.js +3 -0
- package/dist/auth/{ResetPassword-GLIFkJT7.js → ResetPassword-DvqD_1SJ.js} +3 -2
- package/dist/auth/ResetPassword-DvqD_1SJ.js.map +1 -0
- package/dist/auth/VerifyEmail-BYmtnkEl.js +3 -0
- package/dist/auth/{VerifyEmail-R79sSej_.js → VerifyEmail-VaBruOnO.js} +3 -2
- package/dist/auth/VerifyEmail-VaBruOnO.js.map +1 -0
- package/dist/auth/index.d.ts +11 -11
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +10 -10
- package/dist/auth/index.js.map +1 -1
- package/dist/core/index.d.ts +36 -55
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +50 -350
- package/dist/core/index.js.map +1 -1
- package/dist/demo/DemoDataTable-2mzzf__a.js +150 -0
- package/dist/demo/DemoDataTable-2mzzf__a.js.map +1 -0
- package/dist/demo/DemoHome-CnuL5WV9.js +25 -0
- package/dist/demo/DemoHome-CnuL5WV9.js.map +1 -0
- package/dist/demo/DemoHome-D6Z7EE4V.js +3 -0
- package/dist/demo/DemoJsonViewer-CYUggLop.js +4 -0
- package/dist/demo/DemoJsonViewer-NUGst5wW.js +430 -0
- package/dist/demo/DemoJsonViewer-NUGst5wW.js.map +1 -0
- package/dist/demo/DemoLayout-ZFDzyvY3.js +3 -0
- package/dist/demo/DemoLayout-dvbeuBBf.js +47 -0
- package/dist/demo/DemoLayout-dvbeuBBf.js.map +1 -0
- package/dist/demo/DemoLogin--wE44i23.js +327 -0
- package/dist/demo/DemoLogin--wE44i23.js.map +1 -0
- package/dist/demo/DemoRegister-BtrMksx6.js +488 -0
- package/dist/demo/DemoRegister-BtrMksx6.js.map +1 -0
- package/dist/demo/DemoResetPassword-DVXiiiX7.js +341 -0
- package/dist/demo/DemoResetPassword-DVXiiiX7.js.map +1 -0
- package/dist/demo/DemoSidebar-DWnjYHoP.js +82 -0
- package/dist/demo/DemoSidebar-DWnjYHoP.js.map +1 -0
- package/dist/demo/DemoTypeForm-P5_VInW2.js +83 -0
- package/dist/demo/DemoTypeForm-P5_VInW2.js.map +1 -0
- package/dist/demo/DemoVerifyEmail-C_ooC5u8.js +152 -0
- package/dist/demo/DemoVerifyEmail-C_ooC5u8.js.map +1 -0
- package/dist/demo/IconGoogle-DvmFiEDB.js +58 -0
- package/dist/demo/IconGoogle-DvmFiEDB.js.map +1 -0
- package/dist/demo/Showcase-vemLuO2t.js +187 -0
- package/dist/demo/Showcase-vemLuO2t.js.map +1 -0
- package/dist/demo/index.d.ts +97 -0
- package/dist/demo/index.d.ts.map +1 -0
- package/dist/demo/index.js +121 -0
- package/dist/demo/index.js.map +1 -0
- package/dist/json/index.d.ts +58 -0
- package/dist/json/index.d.ts.map +1 -0
- package/dist/json/index.js +325 -0
- package/dist/json/index.js.map +1 -0
- package/package.json +25 -14
- package/src/admin/AdminRouter.ts +23 -20
- package/src/admin/MainRouter.ts +2 -2
- package/src/admin/components/audits/AdminAudits.tsx +4 -3
- package/src/admin/components/jobs/AdminJobs.tsx +2 -2
- package/src/admin/components/notifications/AdminNotifications.tsx +2 -2
- package/src/admin/components/parameters/AdminParameters.tsx +2 -2
- package/src/admin/components/sessions/AdminSessions.tsx +4 -3
- package/src/admin/components/shared/AdminResourceHeader.tsx +281 -0
- package/src/admin/components/shared/AdminResourceTabs.tsx +94 -0
- package/src/admin/components/shared/index.ts +10 -0
- package/src/admin/components/users/AdminUserAudits.tsx +4 -3
- package/src/admin/components/users/AdminUserCreate.tsx +4 -3
- package/src/admin/components/users/AdminUserDetails.tsx +339 -86
- package/src/admin/components/users/AdminUserLayout.tsx +165 -113
- package/src/admin/components/users/AdminUserSessions.tsx +4 -3
- package/src/admin/components/users/AdminUserSettings.tsx +12 -6
- package/src/admin/components/users/AdminUsers.tsx +8 -3
- package/src/auth/AuthRouter.ts +1 -1
- package/src/auth/components/AuthLayout.tsx +1 -1
- package/src/auth/components/Login.tsx +1 -1
- package/src/auth/components/Register.tsx +2 -1
- package/src/auth/components/ResetPassword.tsx +2 -1
- package/src/auth/components/VerifyEmail.tsx +2 -1
- package/src/auth/components/buttons/UserButton.tsx +1 -1
- package/src/core/RootRouter.ts +1 -1
- package/src/core/components/buttons/ActionButton.tsx +3 -4
- package/src/core/components/form/Control.tsx +12 -1
- package/src/core/components/form/ControlNumber.tsx +5 -0
- package/src/core/components/form/TypeForm.tsx +3 -2
- package/src/core/components/layout/AdminShell.tsx +2 -1
- package/src/core/components/layout/AlephaMantineProvider.tsx +7 -2
- package/src/core/components/layout/Omnibar.tsx +2 -1
- package/src/core/components/layout/Sidebar.tsx +18 -18
- package/src/core/index.ts +1 -2
- package/src/core/services/DialogService.tsx +0 -17
- package/{styles.css → src/core/styles.css} +1 -5
- package/src/demo/DemoRouter.ts +123 -0
- package/src/demo/components/DemoHome.tsx +29 -0
- package/src/demo/components/DemoLayout.tsx +52 -0
- package/src/demo/components/auth/DemoLogin.tsx +130 -0
- package/src/demo/components/auth/DemoRegister.tsx +144 -0
- package/src/demo/components/auth/DemoResetPassword.tsx +69 -0
- package/src/demo/components/auth/DemoVerifyEmail.tsx +28 -0
- package/src/demo/components/core/DemoDataTable.tsx +174 -0
- package/src/demo/components/core/DemoSidebar.tsx +85 -0
- package/src/demo/components/core/DemoTypeForm.tsx +69 -0
- package/src/demo/components/json/DemoJsonViewer.tsx +128 -0
- package/src/demo/components/shared/MacWindow.tsx +105 -0
- package/src/demo/components/shared/Showcase.tsx +112 -0
- package/src/demo/index.ts +30 -0
- package/src/demo/styles.css +0 -0
- package/src/json/components/JsonViewer.css +25 -0
- package/src/json/components/JsonViewer.tsx +526 -0
- package/src/json/extensions/DialogService.tsx +31 -0
- package/src/json/index.ts +5 -0
- package/src/json/styles.css +1 -0
- package/dist/admin/AdminAudits-CwvH8e8c.js.map +0 -1
- package/dist/admin/AdminAudits-Dv8Vk_6r.js +0 -3
- package/dist/admin/AdminFiles-5CPA3lQk.js +0 -3
- package/dist/admin/AdminNotifications-DLjmZWtf.js +0 -3
- package/dist/admin/AdminNotifications-DuYy74AN.js.map +0 -1
- package/dist/admin/AdminSessions-BCjgJ-93.js.map +0 -1
- package/dist/admin/AdminSessions-DEh2uN-4.js +0 -3
- package/dist/admin/AdminUserAudits-B_PUXCKC.js.map +0 -1
- package/dist/admin/AdminUserCreate-DzfRbGZ4.js.map +0 -1
- package/dist/admin/AdminUserDetails-DeTrJm-t.js +0 -221
- package/dist/admin/AdminUserDetails-DeTrJm-t.js.map +0 -1
- package/dist/admin/AdminUserLayout-CsfrrZkD.js +0 -150
- package/dist/admin/AdminUserLayout-CsfrrZkD.js.map +0 -1
- package/dist/admin/AdminUserSessions-Bbhcpz4k.js +0 -3
- package/dist/admin/AdminUserSessions-DO9H85O-.js.map +0 -1
- package/dist/admin/AdminUserSettings-B3jA8g3p.js.map +0 -1
- package/dist/admin/AdminUserSettings-CE0xpbQc.js +0 -3
- package/dist/admin/AdminUsers-CegGZDhW.js +0 -3
- package/dist/admin/AdminUsers-ebbrJBT0.js.map +0 -1
- package/dist/auth/AuthLayout-BAZJHzDG.js.map +0 -1
- package/dist/auth/Login-CeNZZjrr.js.map +0 -1
- package/dist/auth/Login-hQcu1nlu.js +0 -4
- package/dist/auth/Register-B6HBNVHS.js +0 -4
- package/dist/auth/Register-s4ENeyiE.js.map +0 -1
- package/dist/auth/ResetPassword-Cjd-W-Nu.js +0 -3
- package/dist/auth/ResetPassword-GLIFkJT7.js.map +0 -1
- package/dist/auth/VerifyEmail-Dc9ABKUw.js +0 -3
- package/dist/auth/VerifyEmail-R79sSej_.js.map +0 -1
- package/src/core/components/data/JsonViewer.tsx +0 -361
package/dist/core/index.js
CHANGED
|
@@ -3,7 +3,8 @@ import { $head, AlephaReactHead } from "@alepha/react/head";
|
|
|
3
3
|
import { AlephaReactI18n, useI18n } from "@alepha/react/i18n";
|
|
4
4
|
import { $atom, $inject, $module, Alepha, AlephaError, TypeBoxError, t } from "alepha";
|
|
5
5
|
import { $cookie } from "alepha/server/cookies";
|
|
6
|
-
import { $page, NestedView,
|
|
6
|
+
import { $page, NestedView, useActive, useRouter } from "@alepha/react/router";
|
|
7
|
+
import { useAction, useEvents, useInject, useStore } from "@alepha/react";
|
|
7
8
|
import { ActionIcon, Anchor, AppShell, Autocomplete, Badge, Box, Burger, Button, Card, Checkbox, Collapse, ColorInput, ColorSchemeScript, CopyButton, Divider, Fieldset, FileInput, Flex, Flex as Flex$1, Grid, Group, Input, Kbd, MantineProvider, Menu, MultiSelect, NumberInput, Pagination, PasswordInput, Popover, ScrollArea, SegmentedControl, Select, Slider, Stack, Switch, Table, TagsInput, Text, Text as Text$1, TextInput, Textarea, ThemeIcon, Tooltip, UnstyledButton, useComputedColorScheme, useMantineColorScheme, useMantineTheme } from "@mantine/core";
|
|
8
9
|
import { ModalsProvider, modals } from "@mantine/modals";
|
|
9
10
|
import { Notifications, notifications } from "@mantine/notifications";
|
|
@@ -369,7 +370,7 @@ const AlephaMantineProvider = (props) => {
|
|
|
369
370
|
nprogress.complete();
|
|
370
371
|
},
|
|
371
372
|
"react:action:error": ({ error }) => {
|
|
372
|
-
if (error instanceof FormValidationError) return;
|
|
373
|
+
if (error instanceof FormValidationError || error instanceof TypeBoxError) return;
|
|
373
374
|
toast.danger({
|
|
374
375
|
title: error.name || "Error",
|
|
375
376
|
message: error.message ?? "An error occurred while processing your action."
|
|
@@ -410,7 +411,7 @@ var RootRouter = class {
|
|
|
410
411
|
|
|
411
412
|
//#endregion
|
|
412
413
|
//#region ../../src/core/components/data/ErrorViewer.tsx
|
|
413
|
-
const getSizeConfig
|
|
414
|
+
const getSizeConfig = (size = "sm") => {
|
|
414
415
|
const configs = {
|
|
415
416
|
xs: {
|
|
416
417
|
text: "xs",
|
|
@@ -445,7 +446,7 @@ const parseStackTrace = (stack) => {
|
|
|
445
446
|
};
|
|
446
447
|
const ErrorViewer = ({ error, showStack = true, copyable = true, size = "sm" }) => {
|
|
447
448
|
const [stackExpanded, setStackExpanded] = useState(false);
|
|
448
|
-
const sizeConfig = getSizeConfig
|
|
449
|
+
const sizeConfig = getSizeConfig(size);
|
|
449
450
|
const copyIconSize = sizeConfig.icon + 2;
|
|
450
451
|
const isError = error instanceof Error;
|
|
451
452
|
const errorName = isError ? error.name : "Error";
|
|
@@ -548,297 +549,6 @@ const ErrorViewer = ({ error, showStack = true, copyable = true, size = "sm" })
|
|
|
548
549
|
};
|
|
549
550
|
var ErrorViewer_default = ErrorViewer;
|
|
550
551
|
|
|
551
|
-
//#endregion
|
|
552
|
-
//#region ../../src/core/components/data/JsonViewer.tsx
|
|
553
|
-
const getSizeConfig = (size = "sm") => {
|
|
554
|
-
const configs = {
|
|
555
|
-
xs: {
|
|
556
|
-
text: "xs",
|
|
557
|
-
icon: 12,
|
|
558
|
-
indent: 16,
|
|
559
|
-
gap: 4,
|
|
560
|
-
iconWidth: 18
|
|
561
|
-
},
|
|
562
|
-
sm: {
|
|
563
|
-
text: "sm",
|
|
564
|
-
icon: 14,
|
|
565
|
-
indent: 20,
|
|
566
|
-
gap: 6,
|
|
567
|
-
iconWidth: 20
|
|
568
|
-
},
|
|
569
|
-
md: {
|
|
570
|
-
text: "md",
|
|
571
|
-
icon: 16,
|
|
572
|
-
indent: 24,
|
|
573
|
-
gap: 8,
|
|
574
|
-
iconWidth: 22
|
|
575
|
-
},
|
|
576
|
-
lg: {
|
|
577
|
-
text: "lg",
|
|
578
|
-
icon: 18,
|
|
579
|
-
indent: 28,
|
|
580
|
-
gap: 10,
|
|
581
|
-
iconWidth: 24
|
|
582
|
-
},
|
|
583
|
-
xl: {
|
|
584
|
-
text: "xl",
|
|
585
|
-
icon: 20,
|
|
586
|
-
indent: 32,
|
|
587
|
-
gap: 12,
|
|
588
|
-
iconWidth: 26
|
|
589
|
-
}
|
|
590
|
-
};
|
|
591
|
-
return configs[size] || configs.sm;
|
|
592
|
-
};
|
|
593
|
-
const JsonNode = ({ name, value, depth, maxDepth, isLast = false, isArrayItem = false, size = "sm", iconWidth }) => {
|
|
594
|
-
const [expanded, setExpanded] = useState(depth < 2);
|
|
595
|
-
const sizeConfig = getSizeConfig(size);
|
|
596
|
-
const getValueType = (val) => {
|
|
597
|
-
if (val === null) return "null";
|
|
598
|
-
if (val === void 0) return "undefined";
|
|
599
|
-
if (Array.isArray(val)) return "array";
|
|
600
|
-
return typeof val;
|
|
601
|
-
};
|
|
602
|
-
const valueType = getValueType(value);
|
|
603
|
-
const renderPrimitive = (val) => {
|
|
604
|
-
const type = getValueType(val);
|
|
605
|
-
const textProps = {
|
|
606
|
-
component: "span",
|
|
607
|
-
ff: "monospace",
|
|
608
|
-
size: sizeConfig.text
|
|
609
|
-
};
|
|
610
|
-
switch (type) {
|
|
611
|
-
case "string": return /* @__PURE__ */ jsxs(Text$1, {
|
|
612
|
-
...textProps,
|
|
613
|
-
c: "teal",
|
|
614
|
-
children: [
|
|
615
|
-
"\"",
|
|
616
|
-
val,
|
|
617
|
-
"\""
|
|
618
|
-
]
|
|
619
|
-
});
|
|
620
|
-
case "number": return /* @__PURE__ */ jsx(Text$1, {
|
|
621
|
-
...textProps,
|
|
622
|
-
c: "blue",
|
|
623
|
-
children: val
|
|
624
|
-
});
|
|
625
|
-
case "boolean": return /* @__PURE__ */ jsx(Text$1, {
|
|
626
|
-
...textProps,
|
|
627
|
-
c: "violet",
|
|
628
|
-
children: String(val)
|
|
629
|
-
});
|
|
630
|
-
case "null": return /* @__PURE__ */ jsx(Text$1, {
|
|
631
|
-
...textProps,
|
|
632
|
-
c: "dimmed",
|
|
633
|
-
children: "null"
|
|
634
|
-
});
|
|
635
|
-
case "undefined": return /* @__PURE__ */ jsx(Text$1, {
|
|
636
|
-
...textProps,
|
|
637
|
-
c: "dimmed",
|
|
638
|
-
children: "undefined"
|
|
639
|
-
});
|
|
640
|
-
default: return /* @__PURE__ */ jsx(Text$1, {
|
|
641
|
-
...textProps,
|
|
642
|
-
children: String(val)
|
|
643
|
-
});
|
|
644
|
-
}
|
|
645
|
-
};
|
|
646
|
-
const renderKey = () => {
|
|
647
|
-
if (name === void 0) return null;
|
|
648
|
-
return /* @__PURE__ */ jsx(Text$1, {
|
|
649
|
-
component: "span",
|
|
650
|
-
c: "cyan",
|
|
651
|
-
ff: "monospace",
|
|
652
|
-
fw: 500,
|
|
653
|
-
size: sizeConfig.text,
|
|
654
|
-
children: isArrayItem ? `[${name}]` : `"${name}"`
|
|
655
|
-
});
|
|
656
|
-
};
|
|
657
|
-
const comma = !isLast && /* @__PURE__ */ jsx(Text$1, {
|
|
658
|
-
component: "span",
|
|
659
|
-
c: "dimmed",
|
|
660
|
-
ff: "monospace",
|
|
661
|
-
size: sizeConfig.text,
|
|
662
|
-
children: ","
|
|
663
|
-
});
|
|
664
|
-
if (valueType === "object" || valueType === "array") {
|
|
665
|
-
const isObject = valueType === "object";
|
|
666
|
-
const entries = isObject ? Object.entries(value) : value.map((v, i) => [i, v]);
|
|
667
|
-
const isEmpty = entries.length === 0;
|
|
668
|
-
const canExpand = depth < maxDepth && !isEmpty;
|
|
669
|
-
const preview = isObject ? "{...}" : "[...]";
|
|
670
|
-
const brackets = isObject ? ["{", "}"] : ["[", "]"];
|
|
671
|
-
return /* @__PURE__ */ jsxs(Box, { children: [/* @__PURE__ */ jsxs(Box, {
|
|
672
|
-
style: {
|
|
673
|
-
display: "grid",
|
|
674
|
-
gridTemplateColumns: `${iconWidth}px auto`,
|
|
675
|
-
alignItems: "center"
|
|
676
|
-
},
|
|
677
|
-
children: [/* @__PURE__ */ jsx(Box, {
|
|
678
|
-
style: {
|
|
679
|
-
display: "flex",
|
|
680
|
-
justifyContent: "center",
|
|
681
|
-
alignItems: "center"
|
|
682
|
-
},
|
|
683
|
-
children: canExpand && /* @__PURE__ */ jsx(ActionIcon, {
|
|
684
|
-
size: "xs",
|
|
685
|
-
variant: "transparent",
|
|
686
|
-
c: "dimmed",
|
|
687
|
-
onClick: () => setExpanded(!expanded),
|
|
688
|
-
style: { cursor: "pointer" },
|
|
689
|
-
children: expanded ? /* @__PURE__ */ jsx(IconChevronDown, { size: sizeConfig.icon }) : /* @__PURE__ */ jsx(IconChevronRight, { size: sizeConfig.icon })
|
|
690
|
-
})
|
|
691
|
-
}), /* @__PURE__ */ jsxs(Box, {
|
|
692
|
-
style: {
|
|
693
|
-
display: "flex",
|
|
694
|
-
alignItems: "center",
|
|
695
|
-
gap: sizeConfig.gap
|
|
696
|
-
},
|
|
697
|
-
children: [
|
|
698
|
-
renderKey(),
|
|
699
|
-
name !== void 0 && /* @__PURE__ */ jsx(Text$1, {
|
|
700
|
-
component: "span",
|
|
701
|
-
c: "dimmed",
|
|
702
|
-
ff: "monospace",
|
|
703
|
-
size: sizeConfig.text,
|
|
704
|
-
children: ":"
|
|
705
|
-
}),
|
|
706
|
-
/* @__PURE__ */ jsx(Text$1, {
|
|
707
|
-
component: "span",
|
|
708
|
-
c: "dimmed",
|
|
709
|
-
ff: "monospace",
|
|
710
|
-
size: sizeConfig.text,
|
|
711
|
-
children: brackets[0]
|
|
712
|
-
}),
|
|
713
|
-
!expanded && !isEmpty && /* @__PURE__ */ jsx(Text$1, {
|
|
714
|
-
component: "span",
|
|
715
|
-
c: "dimmed",
|
|
716
|
-
ff: "monospace",
|
|
717
|
-
fs: "italic",
|
|
718
|
-
size: sizeConfig.text,
|
|
719
|
-
children: preview
|
|
720
|
-
}),
|
|
721
|
-
(isEmpty || !expanded) && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Text$1, {
|
|
722
|
-
component: "span",
|
|
723
|
-
c: "dimmed",
|
|
724
|
-
ff: "monospace",
|
|
725
|
-
size: sizeConfig.text,
|
|
726
|
-
children: brackets[1]
|
|
727
|
-
}), comma] }),
|
|
728
|
-
!isEmpty && !expanded && /* @__PURE__ */ jsxs(Text$1, {
|
|
729
|
-
component: "span",
|
|
730
|
-
c: "dimmed",
|
|
731
|
-
size: sizeConfig.text,
|
|
732
|
-
children: [
|
|
733
|
-
entries.length,
|
|
734
|
-
" ",
|
|
735
|
-
entries.length === 1 ? "item" : "items"
|
|
736
|
-
]
|
|
737
|
-
})
|
|
738
|
-
]
|
|
739
|
-
})]
|
|
740
|
-
}), /* @__PURE__ */ jsxs(Collapse, {
|
|
741
|
-
in: expanded && canExpand,
|
|
742
|
-
children: [/* @__PURE__ */ jsx(Box, {
|
|
743
|
-
pl: sizeConfig.indent,
|
|
744
|
-
ml: iconWidth / 2,
|
|
745
|
-
style: { borderLeft: "1px solid var(--mantine-color-default-border)" },
|
|
746
|
-
children: entries.map(([key, val], index) => /* @__PURE__ */ jsx(JsonNode, {
|
|
747
|
-
name: String(key),
|
|
748
|
-
value: val,
|
|
749
|
-
depth: depth + 1,
|
|
750
|
-
maxDepth,
|
|
751
|
-
isLast: index === entries.length - 1,
|
|
752
|
-
isArrayItem: !isObject,
|
|
753
|
-
size,
|
|
754
|
-
iconWidth
|
|
755
|
-
}, String(key)))
|
|
756
|
-
}), /* @__PURE__ */ jsxs(Box, {
|
|
757
|
-
style: {
|
|
758
|
-
display: "grid",
|
|
759
|
-
gridTemplateColumns: `${iconWidth}px auto`
|
|
760
|
-
},
|
|
761
|
-
children: [/* @__PURE__ */ jsx(Box, {}), /* @__PURE__ */ jsxs(Box, {
|
|
762
|
-
style: {
|
|
763
|
-
display: "flex",
|
|
764
|
-
gap: sizeConfig.gap
|
|
765
|
-
},
|
|
766
|
-
children: [/* @__PURE__ */ jsx(Text$1, {
|
|
767
|
-
c: "dimmed",
|
|
768
|
-
ff: "monospace",
|
|
769
|
-
size: sizeConfig.text,
|
|
770
|
-
children: brackets[1]
|
|
771
|
-
}), comma]
|
|
772
|
-
})]
|
|
773
|
-
})]
|
|
774
|
-
})] });
|
|
775
|
-
}
|
|
776
|
-
return /* @__PURE__ */ jsxs(Box, {
|
|
777
|
-
style: {
|
|
778
|
-
display: "grid",
|
|
779
|
-
gridTemplateColumns: `${iconWidth}px auto`,
|
|
780
|
-
alignItems: "center"
|
|
781
|
-
},
|
|
782
|
-
children: [/* @__PURE__ */ jsx(Box, {}), /* @__PURE__ */ jsxs(Box, {
|
|
783
|
-
style: {
|
|
784
|
-
display: "flex",
|
|
785
|
-
alignItems: "center",
|
|
786
|
-
gap: sizeConfig.gap
|
|
787
|
-
},
|
|
788
|
-
children: [
|
|
789
|
-
renderKey(),
|
|
790
|
-
name !== void 0 && /* @__PURE__ */ jsx(Text$1, {
|
|
791
|
-
component: "span",
|
|
792
|
-
c: "dimmed",
|
|
793
|
-
ff: "monospace",
|
|
794
|
-
size: sizeConfig.text,
|
|
795
|
-
children: ":"
|
|
796
|
-
}),
|
|
797
|
-
renderPrimitive(value),
|
|
798
|
-
comma
|
|
799
|
-
]
|
|
800
|
-
})]
|
|
801
|
-
});
|
|
802
|
-
};
|
|
803
|
-
const JsonViewer = ({ data, defaultExpanded = true, maxDepth = 10, copyable = true, size = "sm" }) => {
|
|
804
|
-
const sizeConfig = getSizeConfig(size);
|
|
805
|
-
const copyIconSize = sizeConfig.icon + 2;
|
|
806
|
-
return /* @__PURE__ */ jsxs(Box, {
|
|
807
|
-
pos: "relative",
|
|
808
|
-
w: "100%",
|
|
809
|
-
children: [copyable && /* @__PURE__ */ jsx(Box, {
|
|
810
|
-
pos: "absolute",
|
|
811
|
-
top: 0,
|
|
812
|
-
right: 0,
|
|
813
|
-
style: { zIndex: 1 },
|
|
814
|
-
children: /* @__PURE__ */ jsx(CopyButton, {
|
|
815
|
-
value: JSON.stringify(data, null, 2),
|
|
816
|
-
children: ({ copied, copy }) => /* @__PURE__ */ jsx(Tooltip, {
|
|
817
|
-
label: copied ? "Copied" : "Copy JSON",
|
|
818
|
-
children: /* @__PURE__ */ jsx(ActionIcon, {
|
|
819
|
-
color: copied ? "teal" : "gray",
|
|
820
|
-
variant: "subtle",
|
|
821
|
-
onClick: copy,
|
|
822
|
-
size,
|
|
823
|
-
children: copied ? /* @__PURE__ */ jsx(IconCheck, { size: copyIconSize }) : /* @__PURE__ */ jsx(IconCopy, { size: copyIconSize })
|
|
824
|
-
})
|
|
825
|
-
})
|
|
826
|
-
})
|
|
827
|
-
}), /* @__PURE__ */ jsx(Box, {
|
|
828
|
-
pt: copyable ? 30 : 0,
|
|
829
|
-
style: { overflowX: "auto" },
|
|
830
|
-
children: /* @__PURE__ */ jsx(JsonNode, {
|
|
831
|
-
value: data,
|
|
832
|
-
depth: 0,
|
|
833
|
-
maxDepth,
|
|
834
|
-
size,
|
|
835
|
-
iconWidth: sizeConfig.iconWidth
|
|
836
|
-
})
|
|
837
|
-
})]
|
|
838
|
-
});
|
|
839
|
-
};
|
|
840
|
-
var JsonViewer_default = JsonViewer;
|
|
841
|
-
|
|
842
552
|
//#endregion
|
|
843
553
|
//#region ../../src/core/components/dialogs/AlertDialog.tsx
|
|
844
554
|
const AlertDialog = ({ options, onClose }) => /* @__PURE__ */ jsxs(Fragment, { children: [options?.message && /* @__PURE__ */ jsx(Text$1, {
|
|
@@ -1009,27 +719,6 @@ var DialogService = class {
|
|
|
1009
719
|
else modals.closeAll();
|
|
1010
720
|
}
|
|
1011
721
|
/**
|
|
1012
|
-
* Show a JSON editor/viewer dialog
|
|
1013
|
-
*/
|
|
1014
|
-
json(data, options) {
|
|
1015
|
-
this.open({
|
|
1016
|
-
size: "lg",
|
|
1017
|
-
title: options?.title || "Json Viewer",
|
|
1018
|
-
...options,
|
|
1019
|
-
content: /* @__PURE__ */ jsx(Flex$1, {
|
|
1020
|
-
bdrs: "md",
|
|
1021
|
-
w: "100%",
|
|
1022
|
-
flex: 1,
|
|
1023
|
-
p: "sm",
|
|
1024
|
-
bg: ui.colors.surface,
|
|
1025
|
-
children: /* @__PURE__ */ jsx(JsonViewer_default, {
|
|
1026
|
-
size: "xs",
|
|
1027
|
-
data
|
|
1028
|
-
})
|
|
1029
|
-
})
|
|
1030
|
-
});
|
|
1031
|
-
}
|
|
1032
|
-
/**
|
|
1033
722
|
* Show an error viewer dialog
|
|
1034
723
|
*/
|
|
1035
724
|
error(error, options) {
|
|
@@ -1937,27 +1626,34 @@ const ControlNumber = (props) => {
|
|
|
1937
1626
|
} }, [props.input]);
|
|
1938
1627
|
if (!props.input?.props) return null;
|
|
1939
1628
|
const { type, ...inputPropsWithoutType } = props.input.props;
|
|
1940
|
-
if (props.sliderProps)
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1629
|
+
if (props.sliderProps) {
|
|
1630
|
+
const min = props.sliderProps.min ?? inputProps.minimum ?? 0;
|
|
1631
|
+
const max = props.sliderProps.max ?? inputProps.maximum ?? 100;
|
|
1632
|
+
return /* @__PURE__ */ jsx(Input.Wrapper, {
|
|
1633
|
+
...inputProps,
|
|
1634
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
1635
|
+
style: {
|
|
1636
|
+
height: 32,
|
|
1637
|
+
padding: 8
|
|
1638
|
+
},
|
|
1639
|
+
children: /* @__PURE__ */ jsx(Slider, {
|
|
1640
|
+
...inputProps,
|
|
1641
|
+
ref,
|
|
1642
|
+
id,
|
|
1643
|
+
...inputPropsWithoutType,
|
|
1644
|
+
...props.sliderProps,
|
|
1645
|
+
value,
|
|
1646
|
+
min,
|
|
1647
|
+
max,
|
|
1648
|
+
label: () => value,
|
|
1649
|
+
onChange: (val) => {
|
|
1650
|
+
setValue(val);
|
|
1651
|
+
props.input.set(val);
|
|
1652
|
+
}
|
|
1653
|
+
})
|
|
1958
1654
|
})
|
|
1959
|
-
})
|
|
1960
|
-
}
|
|
1655
|
+
});
|
|
1656
|
+
}
|
|
1961
1657
|
return /* @__PURE__ */ jsx(NumberInput, {
|
|
1962
1658
|
...inputProps,
|
|
1963
1659
|
ref,
|
|
@@ -2599,6 +2295,7 @@ const Control = (_props) => {
|
|
|
2599
2295
|
}
|
|
2600
2296
|
if (props.number || props.input.schema && "type" in props.input.schema && (props.input.schema.type === "number" || props.input.schema.type === "integer")) {
|
|
2601
2297
|
const controlNumberProps = typeof props.number === "object" ? props.number : {};
|
|
2298
|
+
if (props.slider) controlNumberProps.sliderProps ??= {};
|
|
2602
2299
|
return /* @__PURE__ */ jsx(ControlNumber_default, {
|
|
2603
2300
|
input: props.input,
|
|
2604
2301
|
title: props.title,
|
|
@@ -2631,6 +2328,7 @@ const Control = (_props) => {
|
|
|
2631
2328
|
}
|
|
2632
2329
|
if (props.input.schema && "enum" in props.input.schema && props.input.schema.enum || isArray && !isArrayOfObjects || props.select) {
|
|
2633
2330
|
const opts = typeof props.select === "object" ? props.select : {};
|
|
2331
|
+
if (props.segmented) opts.segmented ??= {};
|
|
2634
2332
|
return /* @__PURE__ */ jsx(ControlSelect_default, {
|
|
2635
2333
|
input: props.input,
|
|
2636
2334
|
title: props.title,
|
|
@@ -2647,7 +2345,9 @@ const Control = (_props) => {
|
|
|
2647
2345
|
id,
|
|
2648
2346
|
color: "blue",
|
|
2649
2347
|
defaultChecked: props.input.props.defaultValue,
|
|
2650
|
-
|
|
2348
|
+
onChange: (event) => {
|
|
2349
|
+
props.input.set(event.currentTarget.checked);
|
|
2350
|
+
},
|
|
2651
2351
|
...switchProps
|
|
2652
2352
|
});
|
|
2653
2353
|
}
|
|
@@ -2777,7 +2477,7 @@ var Control_default = Control;
|
|
|
2777
2477
|
* ```
|
|
2778
2478
|
*/
|
|
2779
2479
|
const TypeForm = (props) => {
|
|
2780
|
-
const { form, columns = 3, children, controlProps, fieldControlProps, skipFormElement = false, skipSubmitButton = false, submitButtonProps } = props;
|
|
2480
|
+
const { form, columns = 3, children, controlProps, fieldControlProps, skipFormElement = false, skipSubmitButton = false, submitButtonProps, fill = true } = props;
|
|
2781
2481
|
const schema = props.schema || form.options.schema;
|
|
2782
2482
|
if (!schema?.properties) return null;
|
|
2783
2483
|
const supportedFields = Object.keys(schema.properties);
|
|
@@ -2818,7 +2518,7 @@ const TypeForm = (props) => {
|
|
|
2818
2518
|
const content = /* @__PURE__ */ jsxs(Flex$1, {
|
|
2819
2519
|
direction: "column",
|
|
2820
2520
|
gap: "sm",
|
|
2821
|
-
flex:
|
|
2521
|
+
flex: fill ? 1 : void 0,
|
|
2822
2522
|
...props.flexProps,
|
|
2823
2523
|
children: [/* @__PURE__ */ jsx(Flex$1, {
|
|
2824
2524
|
direction: "column",
|
|
@@ -2854,7 +2554,7 @@ const TypeForm = (props) => {
|
|
|
2854
2554
|
if (skipFormElement) return content;
|
|
2855
2555
|
return /* @__PURE__ */ jsx(Flex$1, {
|
|
2856
2556
|
component: "form",
|
|
2857
|
-
flex:
|
|
2557
|
+
flex: fill ? 1 : void 0,
|
|
2858
2558
|
...form.props,
|
|
2859
2559
|
...props.flexProps,
|
|
2860
2560
|
children: content
|
|
@@ -2937,7 +2637,7 @@ var ToggleSidebarButton_default = ToggleSidebarButton;
|
|
|
2937
2637
|
//#region ../../src/core/components/layout/Sidebar.tsx
|
|
2938
2638
|
const Sidebar = (props) => {
|
|
2939
2639
|
const router = useRouter();
|
|
2940
|
-
const {
|
|
2640
|
+
const { onItemClick } = props;
|
|
2941
2641
|
const renderNode = (item, key) => {
|
|
2942
2642
|
if ("type" in item) {
|
|
2943
2643
|
if (item.type === "spacer") return /* @__PURE__ */ jsx(Flex$1, { h: 16 }, key);
|
|
@@ -2982,11 +2682,10 @@ const Sidebar = (props) => {
|
|
|
2982
2682
|
}, key);
|
|
2983
2683
|
};
|
|
2984
2684
|
const getSidebarNodes = () => {
|
|
2985
|
-
if (props.
|
|
2685
|
+
if (props.items) return props.items;
|
|
2986
2686
|
if (props.autoPopulateMenu) {
|
|
2987
|
-
const items = router.concretePages.map((page) => ({
|
|
2687
|
+
const items = router.concretePages.filter((page) => !page.can || page.can()).map((page) => ({
|
|
2988
2688
|
label: page.label ?? page.name,
|
|
2989
|
-
description: page.description?.slice(0, 32),
|
|
2990
2689
|
icon: renderIcon(page.icon),
|
|
2991
2690
|
href: router.path(page.name)
|
|
2992
2691
|
}));
|
|
@@ -2994,11 +2693,12 @@ const Sidebar = (props) => {
|
|
|
2994
2693
|
const startsWith = props.autoPopulateMenu.startsWith;
|
|
2995
2694
|
return items.filter((item) => item.href?.startsWith(startsWith));
|
|
2996
2695
|
}
|
|
2696
|
+
return items;
|
|
2997
2697
|
}
|
|
2998
2698
|
return [];
|
|
2999
2699
|
};
|
|
3000
2700
|
const padding = "md";
|
|
3001
|
-
const gap = props.
|
|
2701
|
+
const gap = props.items ? props.gap : "xs";
|
|
3002
2702
|
const menu = useMemo(() => getSidebarNodes(), []);
|
|
3003
2703
|
return /* @__PURE__ */ jsxs(Flex$1, {
|
|
3004
2704
|
flex: 1,
|
|
@@ -3007,11 +2707,11 @@ const Sidebar = (props) => {
|
|
|
3007
2707
|
className: "overflow-auto",
|
|
3008
2708
|
...props.flexProps,
|
|
3009
2709
|
children: [
|
|
3010
|
-
/* @__PURE__ */
|
|
2710
|
+
/* @__PURE__ */ jsx(Flex$1, {
|
|
3011
2711
|
gap,
|
|
3012
2712
|
px: padding,
|
|
3013
2713
|
direction: "column",
|
|
3014
|
-
children:
|
|
2714
|
+
children: menu.filter((it) => it.position === "top").map((item, index) => renderNode(item, index))
|
|
3015
2715
|
}),
|
|
3016
2716
|
/* @__PURE__ */ jsx(Flex$1, {
|
|
3017
2717
|
gap,
|
|
@@ -3021,11 +2721,11 @@ const Sidebar = (props) => {
|
|
|
3021
2721
|
className: "overflow-auto",
|
|
3022
2722
|
children: menu.filter((it) => !it.position).map((item, index) => renderNode(item, index))
|
|
3023
2723
|
}),
|
|
3024
|
-
/* @__PURE__ */
|
|
2724
|
+
/* @__PURE__ */ jsx(Flex$1, {
|
|
3025
2725
|
gap,
|
|
3026
2726
|
px: padding,
|
|
3027
2727
|
direction: "column",
|
|
3028
|
-
children:
|
|
2728
|
+
children: menu.filter((it) => it.position === "bottom").map((item, index) => renderNode(item, index))
|
|
3029
2729
|
})
|
|
3030
2730
|
]
|
|
3031
2731
|
});
|
|
@@ -3941,5 +3641,5 @@ const AlephaUI = $module({
|
|
|
3941
3641
|
});
|
|
3942
3642
|
|
|
3943
3643
|
//#endregion
|
|
3944
|
-
export { ActionButton_default as ActionButton, AdminShell_default as AdminShell, AlephaMantineProvider_default as AlephaMantineProvider, AlephaUI, AlertDialog_default as AlertDialog, AppBar_default as AppBar, BurgerButton_default as BurgerButton, ClipboardButton_default as ClipboardButton, ConfirmDialog_default as ConfirmDialog, Control_default as Control, ControlArray_default as ControlArray, ControlDate_default as ControlDate, ControlNumber_default as ControlNumber, ControlObject_default as ControlObject, ControlQueryBuilder_default as ControlQueryBuilder, ControlSelect_default as ControlSelect, DarkModeButton_default as DarkModeButton, DataTable_default as DataTable, DialogService, Flex,
|
|
3644
|
+
export { ActionButton_default as ActionButton, AdminShell_default as AdminShell, AlephaMantineProvider_default as AlephaMantineProvider, AlephaUI, AlertDialog_default as AlertDialog, AppBar_default as AppBar, BurgerButton_default as BurgerButton, ClipboardButton_default as ClipboardButton, ConfirmDialog_default as ConfirmDialog, Control_default as Control, ControlArray_default as ControlArray, ControlDate_default as ControlDate, ControlNumber_default as ControlNumber, ControlObject_default as ControlObject, ControlQueryBuilder_default as ControlQueryBuilder, ControlSelect_default as ControlSelect, DarkModeButton_default as DarkModeButton, DataTable_default as DataTable, DialogService, Flex, LanguageButton_default as LanguageButton, OPERATOR_INFO, Omnibar_default as Omnibar, OmnibarButton_default as OmnibarButton, PromptDialog_default as PromptDialog, RootRouter, Sidebar, Text, ThemeButton_default as ThemeButton, ThemeProvider, ToastService, TypeForm_default as TypeForm, alephaThemeAtom, alephaThemeListAtom, capitalize, defaultTheme, extractSchemaFields, getDefaultIcon, getOperatorsForField, midnightTheme, prettyName, ui, useDialog, useToast };
|
|
3945
3645
|
//# sourceMappingURL=index.js.map
|