@alepha/ui 0.14.1 → 0.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/dist/admin/AdminAudits-B3EhKhN7.js +3 -0
  2. package/dist/admin/{AdminAudits-CwvH8e8c.js → AdminAudits-DIrCCPk3.js} +3 -2
  3. package/dist/admin/AdminAudits-DIrCCPk3.js.map +1 -0
  4. package/dist/admin/AdminFiles-C8OG4dtD.js +3 -0
  5. package/dist/admin/{AdminFiles-C_w1tb_x.js → AdminFiles-RsL178Ta.js} +2 -2
  6. package/dist/admin/{AdminFiles-C_w1tb_x.js.map → AdminFiles-RsL178Ta.js.map} +1 -1
  7. package/dist/admin/AdminNotifications-BSL4B2fQ.js +3 -0
  8. package/dist/admin/{AdminNotifications-DuYy74AN.js → AdminNotifications-cIbywWKi.js} +2 -2
  9. package/dist/admin/{AdminNotifications-DuYy74AN.js.map → AdminNotifications-cIbywWKi.js.map} +1 -1
  10. package/dist/admin/{AdminParameters-DYg48Jwe.js → AdminParameters-BKObzzpN.js} +1 -1
  11. package/dist/admin/{AdminParameters-YagqWTG3.js → AdminParameters-D-q3Qmhv.js} +2 -2
  12. package/dist/admin/{AdminParameters-YagqWTG3.js.map → AdminParameters-D-q3Qmhv.js.map} +1 -1
  13. package/dist/admin/AdminSessions-DHG9zPfr.js +3 -0
  14. package/dist/admin/{AdminSessions-BCjgJ-93.js → AdminSessions-vOgkrQ2U.js} +3 -2
  15. package/dist/admin/AdminSessions-vOgkrQ2U.js.map +1 -0
  16. package/dist/admin/{AdminUserAudits-B_PUXCKC.js → AdminUserAudits-CSsN1fIC.js} +3 -2
  17. package/dist/admin/AdminUserAudits-CSsN1fIC.js.map +1 -0
  18. package/dist/admin/{AdminUserAudits-D7cTcElL.js → AdminUserAudits-DmAnivo3.js} +1 -1
  19. package/dist/admin/{AdminUserCreate-DzfRbGZ4.js → AdminUserCreate-B72nu-3W.js} +3 -2
  20. package/dist/admin/AdminUserCreate-B72nu-3W.js.map +1 -0
  21. package/dist/admin/{AdminUserCreate-oUA1KDIl.js → AdminUserCreate-DpA13zwj.js} +1 -1
  22. package/dist/admin/{AdminUserDetails-DeTrJm-t.js → AdminUserDetails-BCt8Su-4.js} +3 -2
  23. package/dist/admin/AdminUserDetails-BCt8Su-4.js.map +1 -0
  24. package/dist/admin/{AdminUserDetails-y1H5DW8Y.js → AdminUserDetails-z1y8kJeB.js} +1 -1
  25. package/dist/admin/{AdminUserLayout-CsfrrZkD.js → AdminUserLayout-Ck0GLRE5.js} +3 -2
  26. package/dist/admin/AdminUserLayout-Ck0GLRE5.js.map +1 -0
  27. package/dist/admin/{AdminUserLayout-Dejnz13m.js → AdminUserLayout-DyQYacQQ.js} +1 -1
  28. package/dist/admin/AdminUserSessions-D9X2_HMA.js +3 -0
  29. package/dist/admin/{AdminUserSessions-DO9H85O-.js → AdminUserSessions-DEaGu6n6.js} +3 -2
  30. package/dist/admin/AdminUserSessions-DEaGu6n6.js.map +1 -0
  31. package/dist/admin/AdminUserSettings-CE66UTIP.js +3 -0
  32. package/dist/admin/{AdminUserSettings-B3jA8g3p.js → AdminUserSettings-CR7MxX_R.js} +3 -2
  33. package/dist/admin/AdminUserSettings-CR7MxX_R.js.map +1 -0
  34. package/dist/admin/{AdminUsers-ebbrJBT0.js → AdminUsers-BnGIRvmV.js} +3 -2
  35. package/dist/admin/AdminUsers-BnGIRvmV.js.map +1 -0
  36. package/dist/admin/AdminUsers-CG9-2Z8W.js +3 -0
  37. package/dist/admin/index.d.ts +16 -16
  38. package/dist/admin/index.d.ts.map +1 -1
  39. package/dist/admin/index.js +26 -25
  40. package/dist/admin/index.js.map +1 -1
  41. package/dist/auth/{AuthLayout-BAZJHzDG.js → AuthLayout-B1sUB8fB.js} +2 -2
  42. package/dist/auth/AuthLayout-B1sUB8fB.js.map +1 -0
  43. package/dist/auth/Login-BWi-pPbO.js +4 -0
  44. package/dist/auth/{Login-CeNZZjrr.js → Login-Cjxv3EDi.js} +2 -2
  45. package/dist/auth/Login-Cjxv3EDi.js.map +1 -0
  46. package/dist/auth/{Register-s4ENeyiE.js → Register-BKBIpHhW.js} +3 -2
  47. package/dist/auth/Register-BKBIpHhW.js.map +1 -0
  48. package/dist/auth/Register-CtdvihIM.js +4 -0
  49. package/dist/auth/ResetPassword-BUdM7T_R.js +3 -0
  50. package/dist/auth/{ResetPassword-GLIFkJT7.js → ResetPassword-DvqD_1SJ.js} +3 -2
  51. package/dist/auth/ResetPassword-DvqD_1SJ.js.map +1 -0
  52. package/dist/auth/VerifyEmail-BYmtnkEl.js +3 -0
  53. package/dist/auth/{VerifyEmail-R79sSej_.js → VerifyEmail-VaBruOnO.js} +3 -2
  54. package/dist/auth/VerifyEmail-VaBruOnO.js.map +1 -0
  55. package/dist/auth/index.d.ts +11 -11
  56. package/dist/auth/index.d.ts.map +1 -1
  57. package/dist/auth/index.js +10 -10
  58. package/dist/auth/index.js.map +1 -1
  59. package/dist/core/index.d.ts +36 -55
  60. package/dist/core/index.d.ts.map +1 -1
  61. package/dist/core/index.js +44 -345
  62. package/dist/core/index.js.map +1 -1
  63. package/dist/demo/DemoDataTable-2mzzf__a.js +150 -0
  64. package/dist/demo/DemoDataTable-2mzzf__a.js.map +1 -0
  65. package/dist/demo/DemoHome-CnuL5WV9.js +25 -0
  66. package/dist/demo/DemoHome-CnuL5WV9.js.map +1 -0
  67. package/dist/demo/DemoHome-D6Z7EE4V.js +3 -0
  68. package/dist/demo/DemoJsonViewer-CYUggLop.js +4 -0
  69. package/dist/demo/DemoJsonViewer-NUGst5wW.js +430 -0
  70. package/dist/demo/DemoJsonViewer-NUGst5wW.js.map +1 -0
  71. package/dist/demo/DemoLayout-ZFDzyvY3.js +3 -0
  72. package/dist/demo/DemoLayout-dvbeuBBf.js +47 -0
  73. package/dist/demo/DemoLayout-dvbeuBBf.js.map +1 -0
  74. package/dist/demo/DemoLogin--wE44i23.js +327 -0
  75. package/dist/demo/DemoLogin--wE44i23.js.map +1 -0
  76. package/dist/demo/DemoRegister-BtrMksx6.js +488 -0
  77. package/dist/demo/DemoRegister-BtrMksx6.js.map +1 -0
  78. package/dist/demo/DemoResetPassword-DVXiiiX7.js +341 -0
  79. package/dist/demo/DemoResetPassword-DVXiiiX7.js.map +1 -0
  80. package/dist/demo/DemoSidebar-DWnjYHoP.js +82 -0
  81. package/dist/demo/DemoSidebar-DWnjYHoP.js.map +1 -0
  82. package/dist/demo/DemoTypeForm-P5_VInW2.js +83 -0
  83. package/dist/demo/DemoTypeForm-P5_VInW2.js.map +1 -0
  84. package/dist/demo/DemoVerifyEmail-C_ooC5u8.js +152 -0
  85. package/dist/demo/DemoVerifyEmail-C_ooC5u8.js.map +1 -0
  86. package/dist/demo/IconGoogle-DvmFiEDB.js +58 -0
  87. package/dist/demo/IconGoogle-DvmFiEDB.js.map +1 -0
  88. package/dist/demo/Showcase-vemLuO2t.js +187 -0
  89. package/dist/demo/Showcase-vemLuO2t.js.map +1 -0
  90. package/dist/demo/index.d.ts +97 -0
  91. package/dist/demo/index.d.ts.map +1 -0
  92. package/dist/demo/index.js +121 -0
  93. package/dist/demo/index.js.map +1 -0
  94. package/dist/json/index.d.ts +58 -0
  95. package/dist/json/index.d.ts.map +1 -0
  96. package/dist/json/index.js +325 -0
  97. package/dist/json/index.js.map +1 -0
  98. package/package.json +17 -6
  99. package/src/admin/AdminRouter.ts +1 -1
  100. package/src/admin/MainRouter.ts +1 -1
  101. package/src/admin/components/audits/AdminAudits.tsx +2 -1
  102. package/src/admin/components/sessions/AdminSessions.tsx +2 -1
  103. package/src/admin/components/users/AdminUserAudits.tsx +2 -1
  104. package/src/admin/components/users/AdminUserCreate.tsx +2 -1
  105. package/src/admin/components/users/AdminUserDetails.tsx +2 -1
  106. package/src/admin/components/users/AdminUserLayout.tsx +2 -6
  107. package/src/admin/components/users/AdminUserSessions.tsx +2 -1
  108. package/src/admin/components/users/AdminUserSettings.tsx +2 -1
  109. package/src/admin/components/users/AdminUsers.tsx +2 -1
  110. package/src/auth/AuthRouter.ts +1 -1
  111. package/src/auth/components/AuthLayout.tsx +1 -1
  112. package/src/auth/components/Login.tsx +1 -1
  113. package/src/auth/components/Register.tsx +2 -1
  114. package/src/auth/components/ResetPassword.tsx +2 -1
  115. package/src/auth/components/VerifyEmail.tsx +2 -1
  116. package/src/auth/components/buttons/UserButton.tsx +1 -1
  117. package/src/core/RootRouter.ts +1 -1
  118. package/src/core/components/buttons/ActionButton.tsx +3 -4
  119. package/src/core/components/form/Control.tsx +12 -1
  120. package/src/core/components/form/ControlNumber.tsx +5 -0
  121. package/src/core/components/layout/AdminShell.tsx +2 -1
  122. package/src/core/components/layout/AlephaMantineProvider.tsx +2 -1
  123. package/src/core/components/layout/Omnibar.tsx +2 -1
  124. package/src/core/components/layout/Sidebar.tsx +10 -13
  125. package/src/core/index.ts +1 -2
  126. package/src/core/services/DialogService.tsx +0 -17
  127. package/{styles.css → src/core/styles.css} +1 -5
  128. package/src/demo/DemoRouter.ts +123 -0
  129. package/src/demo/components/DemoHome.tsx +29 -0
  130. package/src/demo/components/DemoLayout.tsx +52 -0
  131. package/src/demo/components/auth/DemoLogin.tsx +130 -0
  132. package/src/demo/components/auth/DemoRegister.tsx +144 -0
  133. package/src/demo/components/auth/DemoResetPassword.tsx +69 -0
  134. package/src/demo/components/auth/DemoVerifyEmail.tsx +28 -0
  135. package/src/demo/components/core/DemoDataTable.tsx +174 -0
  136. package/src/demo/components/core/DemoSidebar.tsx +85 -0
  137. package/src/demo/components/core/DemoTypeForm.tsx +69 -0
  138. package/src/demo/components/json/DemoJsonViewer.tsx +128 -0
  139. package/src/demo/components/shared/MacWindow.tsx +105 -0
  140. package/src/demo/components/shared/Showcase.tsx +112 -0
  141. package/src/demo/index.ts +30 -0
  142. package/src/demo/styles.css +0 -0
  143. package/src/json/components/JsonViewer.css +25 -0
  144. package/src/json/components/JsonViewer.tsx +526 -0
  145. package/src/json/extensions/DialogService.tsx +31 -0
  146. package/src/json/index.ts +5 -0
  147. package/src/json/styles.css +1 -0
  148. package/dist/admin/AdminAudits-CwvH8e8c.js.map +0 -1
  149. package/dist/admin/AdminAudits-Dv8Vk_6r.js +0 -3
  150. package/dist/admin/AdminFiles-5CPA3lQk.js +0 -3
  151. package/dist/admin/AdminNotifications-DLjmZWtf.js +0 -3
  152. package/dist/admin/AdminSessions-BCjgJ-93.js.map +0 -1
  153. package/dist/admin/AdminSessions-DEh2uN-4.js +0 -3
  154. package/dist/admin/AdminUserAudits-B_PUXCKC.js.map +0 -1
  155. package/dist/admin/AdminUserCreate-DzfRbGZ4.js.map +0 -1
  156. package/dist/admin/AdminUserDetails-DeTrJm-t.js.map +0 -1
  157. package/dist/admin/AdminUserLayout-CsfrrZkD.js.map +0 -1
  158. package/dist/admin/AdminUserSessions-Bbhcpz4k.js +0 -3
  159. package/dist/admin/AdminUserSessions-DO9H85O-.js.map +0 -1
  160. package/dist/admin/AdminUserSettings-B3jA8g3p.js.map +0 -1
  161. package/dist/admin/AdminUserSettings-CE0xpbQc.js +0 -3
  162. package/dist/admin/AdminUsers-CegGZDhW.js +0 -3
  163. package/dist/admin/AdminUsers-ebbrJBT0.js.map +0 -1
  164. package/dist/auth/AuthLayout-BAZJHzDG.js.map +0 -1
  165. package/dist/auth/Login-CeNZZjrr.js.map +0 -1
  166. package/dist/auth/Login-hQcu1nlu.js +0 -4
  167. package/dist/auth/Register-B6HBNVHS.js +0 -4
  168. package/dist/auth/Register-s4ENeyiE.js.map +0 -1
  169. package/dist/auth/ResetPassword-Cjd-W-Nu.js +0 -3
  170. package/dist/auth/ResetPassword-GLIFkJT7.js.map +0 -1
  171. package/dist/auth/VerifyEmail-Dc9ABKUw.js +0 -3
  172. package/dist/auth/VerifyEmail-R79sSej_.js.map +0 -1
  173. package/src/core/components/data/JsonViewer.tsx +0 -361
@@ -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, useAction, useActive, useEvents, useInject, useRouter, useStore } from "@alepha/react";
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";
@@ -410,7 +411,7 @@ var RootRouter = class {
410
411
 
411
412
  //#endregion
412
413
  //#region ../../src/core/components/data/ErrorViewer.tsx
413
- const getSizeConfig$1 = (size = "sm") => {
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$1(size);
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) return /* @__PURE__ */ jsx(Input.Wrapper, {
1941
- ...inputProps,
1942
- children: /* @__PURE__ */ jsx("div", {
1943
- style: {
1944
- height: 32,
1945
- padding: 8
1946
- },
1947
- children: /* @__PURE__ */ jsx(Slider, {
1948
- ...inputProps,
1949
- ref,
1950
- id,
1951
- ...inputPropsWithoutType,
1952
- ...props.sliderProps,
1953
- value,
1954
- onChange: (val) => {
1955
- setValue(val);
1956
- props.input.set(val);
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
- ...props.input.props,
2348
+ onChange: (event) => {
2349
+ props.input.set(event.currentTarget.checked);
2350
+ },
2651
2351
  ...switchProps
2652
2352
  });
2653
2353
  }
@@ -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 { top = [], bottom = [], onItemClick } = props;
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.menu) return props.menu;
2685
+ if (props.items) return props.items;
2986
2686
  if (props.autoPopulateMenu) {
2987
2687
  const items = router.concretePages.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
  }));
@@ -2998,7 +2697,7 @@ const Sidebar = (props) => {
2998
2697
  return [];
2999
2698
  };
3000
2699
  const padding = "md";
3001
- const gap = props.menu ? props.gap : "xs";
2700
+ const gap = props.items ? props.gap : "xs";
3002
2701
  const menu = useMemo(() => getSidebarNodes(), []);
3003
2702
  return /* @__PURE__ */ jsxs(Flex$1, {
3004
2703
  flex: 1,
@@ -3007,11 +2706,11 @@ const Sidebar = (props) => {
3007
2706
  className: "overflow-auto",
3008
2707
  ...props.flexProps,
3009
2708
  children: [
3010
- /* @__PURE__ */ jsxs(Flex$1, {
2709
+ /* @__PURE__ */ jsx(Flex$1, {
3011
2710
  gap,
3012
2711
  px: padding,
3013
2712
  direction: "column",
3014
- children: [top.map((item, index) => renderNode(item, index)), menu.filter((it) => it.position === "top").map((item, index) => renderNode(item, index + top.length))]
2713
+ children: menu.filter((it) => it.position === "top").map((item, index) => renderNode(item, index))
3015
2714
  }),
3016
2715
  /* @__PURE__ */ jsx(Flex$1, {
3017
2716
  gap,
@@ -3021,11 +2720,11 @@ const Sidebar = (props) => {
3021
2720
  className: "overflow-auto",
3022
2721
  children: menu.filter((it) => !it.position).map((item, index) => renderNode(item, index))
3023
2722
  }),
3024
- /* @__PURE__ */ jsxs(Flex$1, {
2723
+ /* @__PURE__ */ jsx(Flex$1, {
3025
2724
  gap,
3026
2725
  px: padding,
3027
2726
  direction: "column",
3028
- children: [bottom.map((item, index) => renderNode(item, index)), menu.filter((it) => it.position === "bottom").map((item, index) => renderNode(item, index + bottom.length))]
2727
+ children: menu.filter((it) => it.position === "bottom").map((item, index) => renderNode(item, index))
3029
2728
  })
3030
2729
  ]
3031
2730
  });
@@ -3941,5 +3640,5 @@ const AlephaUI = $module({
3941
3640
  });
3942
3641
 
3943
3642
  //#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, JsonViewer_default as JsonViewer, 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 };
3643
+ 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
3644
  //# sourceMappingURL=index.js.map