@geomak/ui 1.3.0 → 1.4.0
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/{chunk-DNQSZOYD.js → chunk-OSWZRIGC.js} +8 -8
- package/dist/{chunk-DNQSZOYD.js.map → chunk-OSWZRIGC.js.map} +1 -1
- package/dist/{chunk-ZS3HB5YJ.cjs → chunk-RLL7ES4F.cjs} +8 -8
- package/dist/{chunk-ZS3HB5YJ.cjs.map → chunk-RLL7ES4F.cjs.map} +1 -1
- package/dist/{index-CPCiQllz.d.cts → index-DLGzTj3K.d.cts} +5 -5
- package/dist/{index-CPCiQllz.d.ts → index-DLGzTj3K.d.ts} +5 -5
- package/dist/index.cjs +440 -102
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +193 -49
- package/dist/index.d.ts +193 -49
- package/dist/index.js +409 -77
- package/dist/index.js.map +1 -1
- package/dist/tokens/index.cjs +4 -4
- package/dist/tokens/index.d.cts +1 -1
- package/dist/tokens/index.d.ts +1 -1
- package/dist/tokens/index.js +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkRLL7ES4F_cjs = require('./chunk-RLL7ES4F.cjs');
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
var React9 = require('react');
|
|
6
6
|
var Dialog = require('@radix-ui/react-dialog');
|
|
@@ -467,23 +467,49 @@ function Drawer({
|
|
|
467
467
|
) }) })
|
|
468
468
|
] }) });
|
|
469
469
|
}
|
|
470
|
+
var ANIMATION = {
|
|
471
|
+
top: "data-[state=delayed-open]:animate-tooltip-in-top",
|
|
472
|
+
bottom: "data-[state=delayed-open]:animate-tooltip-in-bottom",
|
|
473
|
+
left: "data-[state=delayed-open]:animate-tooltip-in-left",
|
|
474
|
+
right: "data-[state=delayed-open]:animate-tooltip-in-right"
|
|
475
|
+
};
|
|
470
476
|
function Tooltip({
|
|
471
477
|
children,
|
|
472
478
|
title,
|
|
473
|
-
placement = "
|
|
474
|
-
delayDuration =
|
|
479
|
+
placement = "top",
|
|
480
|
+
delayDuration = 300,
|
|
481
|
+
sideOffset = 8
|
|
475
482
|
}) {
|
|
476
483
|
return /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Provider, { delayDuration, children: /* @__PURE__ */ jsxRuntime.jsxs(TooltipPrimitive__namespace.Root, { children: [
|
|
477
|
-
/* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Trigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "
|
|
484
|
+
/* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Trigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex", children }) }),
|
|
478
485
|
/* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
479
486
|
TooltipPrimitive__namespace.Content,
|
|
480
487
|
{
|
|
481
488
|
side: placement,
|
|
482
|
-
sideOffset
|
|
483
|
-
className:
|
|
489
|
+
sideOffset,
|
|
490
|
+
className: [
|
|
491
|
+
// Layout + typography
|
|
492
|
+
"pointer-events-none z-[500000] max-w-[220px] px-2.5 py-1.5",
|
|
493
|
+
"text-xs font-medium leading-snug text-white",
|
|
494
|
+
// Background + border — slightly translucent for depth
|
|
495
|
+
"bg-foreground/95 rounded-md border border-white/5",
|
|
496
|
+
// Shadow
|
|
497
|
+
"shadow-md",
|
|
498
|
+
// Out animation (always the same — just fade)
|
|
499
|
+
"data-[state=closed]:animate-tooltip-out",
|
|
500
|
+
// In animation — direction-aware
|
|
501
|
+
ANIMATION[placement]
|
|
502
|
+
].join(" "),
|
|
484
503
|
children: [
|
|
485
504
|
title,
|
|
486
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
505
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
506
|
+
TooltipPrimitive__namespace.Arrow,
|
|
507
|
+
{
|
|
508
|
+
width: 10,
|
|
509
|
+
height: 5,
|
|
510
|
+
className: "fill-foreground/95"
|
|
511
|
+
}
|
|
512
|
+
)
|
|
487
513
|
]
|
|
488
514
|
}
|
|
489
515
|
) })
|
|
@@ -542,7 +568,7 @@ function Tabs({
|
|
|
542
568
|
onClick: toPreviousTab,
|
|
543
569
|
"aria-label": "Previous tab",
|
|
544
570
|
className: "cursor-pointer rounded-lg transition-all duration-300 hover:bg-ice-dark dark:hover:bg-independence rotate-180 flex-shrink-0",
|
|
545
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke:
|
|
571
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"], strokeWidth: 2, className: "h-6 w-6 dark:stroke-white", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" }) })
|
|
546
572
|
}
|
|
547
573
|
),
|
|
548
574
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -567,7 +593,7 @@ function Tabs({
|
|
|
567
593
|
onTabClose?.(tab.key);
|
|
568
594
|
},
|
|
569
595
|
className: "flex-shrink-0 rounded hover:bg-ice-dark dark:hover:bg-independence p-0.5 transition-colors",
|
|
570
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15 5L5 15M5 5l10 10", stroke:
|
|
596
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15 5L5 15M5 5l10 10", stroke: chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"], strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", className: "dark:stroke-white" }) })
|
|
571
597
|
}
|
|
572
598
|
)
|
|
573
599
|
]
|
|
@@ -583,7 +609,7 @@ function Tabs({
|
|
|
583
609
|
onClick: toNextTab,
|
|
584
610
|
"aria-label": "Next tab",
|
|
585
611
|
className: "cursor-pointer rounded-lg transition-all duration-300 hover:bg-ice-dark dark:hover:bg-independence flex-shrink-0",
|
|
586
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke:
|
|
612
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"], strokeWidth: 2, className: "h-6 w-6 dark:stroke-white", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" }) })
|
|
587
613
|
}
|
|
588
614
|
)
|
|
589
615
|
] }),
|
|
@@ -741,44 +767,74 @@ var TYPE_BG = {
|
|
|
741
767
|
warning: "bg-status-warning",
|
|
742
768
|
danger: "bg-status-error"
|
|
743
769
|
};
|
|
770
|
+
var VIEWPORT_CLASSES = {
|
|
771
|
+
"top-right": "fixed top-14 right-0 flex flex-col items-end",
|
|
772
|
+
"top-left": "fixed top-14 left-0 flex flex-col items-start",
|
|
773
|
+
"top-center": "fixed top-14 left-1/2 flex flex-col items-center -translate-x-1/2",
|
|
774
|
+
"bottom-right": "fixed bottom-4 right-0 flex flex-col-reverse items-end",
|
|
775
|
+
"bottom-left": "fixed bottom-4 left-0 flex flex-col-reverse items-start",
|
|
776
|
+
"bottom-center": "fixed bottom-4 left-1/2 flex flex-col-reverse items-center -translate-x-1/2"
|
|
777
|
+
};
|
|
778
|
+
function getInitialMotion(pos, reduced) {
|
|
779
|
+
if (reduced) return { opacity: 0, x: 0, y: 0, scale: 1 };
|
|
780
|
+
const right = pos.endsWith("right");
|
|
781
|
+
const left = pos.endsWith("left");
|
|
782
|
+
const center = pos.endsWith("center");
|
|
783
|
+
const bottom = pos.startsWith("bottom");
|
|
784
|
+
return {
|
|
785
|
+
opacity: 0,
|
|
786
|
+
x: right ? 40 : left ? -40 : 0,
|
|
787
|
+
y: center ? bottom ? 12 : -12 : 0,
|
|
788
|
+
scale: center ? 0.96 : 1
|
|
789
|
+
};
|
|
790
|
+
}
|
|
744
791
|
function TypeIcon({ type }) {
|
|
745
792
|
if (type === "success") {
|
|
746
|
-
return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "
|
|
747
|
-
"path",
|
|
748
|
-
{
|
|
749
|
-
fillRule: "evenodd",
|
|
750
|
-
clipRule: "evenodd",
|
|
751
|
-
d: "M14 0.25C6.40625 0.25 0.25 6.40625 0.25 14C0.25 21.5937 6.40625 27.75 14 27.75C21.5937 27.75 27.75 21.5937 27.75 14C27.75 6.40625 21.5937 0.25 14 0.25ZM19.96 11.675C20.0697 11.5496 20.1533 11.4034 20.2057 11.2452C20.2582 11.087 20.2784 10.9199 20.2653 10.7537C20.2522 10.5876 20.206 10.4257 20.1295 10.2777C20.0529 10.1296 19.9475 9.99838 19.8194 9.89168C19.6914 9.78497 19.5433 9.70495 19.3839 9.65633C19.2244 9.6077 19.0569 9.59145 18.8911 9.60853C18.7253 9.62562 18.5646 9.67568 18.4184 9.75579C18.2723 9.8359 18.1436 9.94443 18.04 10.075L12.665 16.5237L9.88375 13.7412C9.648 13.5136 9.33224 13.3876 9.0045 13.3904C8.67675 13.3933 8.36324 13.5247 8.13148 13.7565C7.89972 13.9882 7.76825 14.3018 7.76541 14.6295C7.76256 14.9572 7.88855 15.273 8.11625 15.5087L11.8662 19.2587C11.9891 19.3815 12.1361 19.4773 12.298 19.5401C12.4599 19.6028 12.6331 19.6312 12.8066 19.6233C12.98 19.6154 13.15 19.5715 13.3055 19.4943C13.4611 19.4171 13.5988 19.3084 13.71 19.175L19.96 11.675Z",
|
|
752
|
-
fill: "#fff"
|
|
753
|
-
}
|
|
754
|
-
) });
|
|
793
|
+
return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("polyline", { points: "20 6 9 17 4 12" }) });
|
|
755
794
|
}
|
|
756
795
|
if (type === "info") {
|
|
757
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
796
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
797
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
|
|
798
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "16", x2: "12", y2: "12" }),
|
|
799
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })
|
|
800
|
+
] });
|
|
758
801
|
}
|
|
759
802
|
if (type === "warning") {
|
|
760
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
803
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
804
|
+
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z" }),
|
|
805
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "9", x2: "12", y2: "13" }),
|
|
806
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })
|
|
807
|
+
] });
|
|
761
808
|
}
|
|
762
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
809
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [
|
|
810
|
+
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "12", cy: "12", r: "10" }),
|
|
811
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "8", x2: "12", y2: "12" }),
|
|
812
|
+
/* @__PURE__ */ jsxRuntime.jsx("line", { x1: "12", y1: "16", x2: "12.01", y2: "16" })
|
|
813
|
+
] });
|
|
763
814
|
}
|
|
764
815
|
function NotificationItem({
|
|
765
816
|
n,
|
|
817
|
+
pos,
|
|
766
818
|
onClose,
|
|
767
819
|
reduced
|
|
768
820
|
}) {
|
|
821
|
+
const initial = getInitialMotion(pos, reduced);
|
|
822
|
+
const center = pos.endsWith("center");
|
|
769
823
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
770
824
|
framerMotion.motion.div,
|
|
771
825
|
{
|
|
772
826
|
layout: true,
|
|
773
|
-
initial
|
|
774
|
-
animate: { opacity: 1, x: 0, scale: 1 },
|
|
775
|
-
exit: {
|
|
827
|
+
initial,
|
|
828
|
+
animate: { opacity: 1, x: 0, y: 0, scale: 1 },
|
|
829
|
+
exit: { ...initial, opacity: 0 },
|
|
776
830
|
transition: reduced ? { duration: 0 } : {
|
|
777
|
-
opacity: { duration: 0.
|
|
831
|
+
opacity: { duration: 0.14 },
|
|
778
832
|
x: { type: "tween", duration: 0.22, ease: [0.16, 1, 0.3, 1] },
|
|
779
|
-
|
|
833
|
+
y: { type: "tween", duration: 0.22, ease: [0.16, 1, 0.3, 1] },
|
|
834
|
+
scale: { type: "tween", duration: 0.22, ease: [0.16, 1, 0.3, 1] },
|
|
835
|
+
layout: { duration: 0.18 }
|
|
780
836
|
},
|
|
781
|
-
children: /* @__PURE__ */ jsxRuntime.
|
|
837
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
782
838
|
Toast__namespace.Root,
|
|
783
839
|
{
|
|
784
840
|
open: true,
|
|
@@ -787,32 +843,36 @@ function NotificationItem({
|
|
|
787
843
|
if (!o) onClose(n.id);
|
|
788
844
|
},
|
|
789
845
|
className: [
|
|
790
|
-
"
|
|
791
|
-
"
|
|
846
|
+
"w-[300px] rounded-md shadow-lg overflow-hidden",
|
|
847
|
+
center ? "mx-auto" : "",
|
|
848
|
+
"focus:outline-none",
|
|
792
849
|
TYPE_BG[n.type ?? "info"]
|
|
793
850
|
].join(" "),
|
|
794
|
-
children: [
|
|
795
|
-
/* @__PURE__ */ jsxRuntime.
|
|
796
|
-
|
|
797
|
-
/* @__PURE__ */ jsxRuntime.jsx(Toast__namespace.Title, { className: "font-semibold text-
|
|
798
|
-
/* @__PURE__ */ jsxRuntime.jsx(Toast__namespace.
|
|
799
|
-
"button",
|
|
800
|
-
{
|
|
801
|
-
"aria-label": "Close notification",
|
|
802
|
-
onClick: () => onClose(n.id),
|
|
803
|
-
className: "flex-shrink-0 rounded-md p-1 hover:bg-white/20 transition-colors duration-150 focus:outline-none focus-visible:ring-1 focus-visible:ring-white/60",
|
|
804
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15 5L5 15M5 5l10 10", stroke: "#fff", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) })
|
|
805
|
-
}
|
|
806
|
-
) })
|
|
851
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-3 p-3 pr-2.5", children: [
|
|
852
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-0.5 flex-shrink-0 text-white/90", children: /* @__PURE__ */ jsxRuntime.jsx(TypeIcon, { type: n.type ?? "info" }) }),
|
|
853
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 min-w-0", children: [
|
|
854
|
+
/* @__PURE__ */ jsxRuntime.jsx(Toast__namespace.Title, { className: "text-sm font-semibold text-white leading-snug", children: n.title }),
|
|
855
|
+
n.description && /* @__PURE__ */ jsxRuntime.jsx(Toast__namespace.Description, { className: "mt-0.5 text-xs text-white/75 leading-relaxed", children: n.description })
|
|
807
856
|
] }),
|
|
808
|
-
|
|
809
|
-
|
|
857
|
+
/* @__PURE__ */ jsxRuntime.jsx(Toast__namespace.Action, { asChild: true, altText: "Close", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
858
|
+
"button",
|
|
859
|
+
{
|
|
860
|
+
"aria-label": "Close",
|
|
861
|
+
onClick: () => onClose(n.id),
|
|
862
|
+
className: "flex-shrink-0 mt-0.5 rounded p-1 text-white/60 hover:text-white hover:bg-white/15 transition-colors duration-100 focus:outline-none focus-visible:ring-1 focus-visible:ring-white/50",
|
|
863
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M9 3L3 9M3 3l6 6", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) })
|
|
864
|
+
}
|
|
865
|
+
) })
|
|
866
|
+
] })
|
|
810
867
|
}
|
|
811
868
|
)
|
|
812
869
|
}
|
|
813
870
|
);
|
|
814
871
|
}
|
|
815
|
-
function NotificationProvider({
|
|
872
|
+
function NotificationProvider({
|
|
873
|
+
children,
|
|
874
|
+
position = "top-right"
|
|
875
|
+
}) {
|
|
816
876
|
const [notifications, setNotifications] = React9.useState([]);
|
|
817
877
|
const reduced = framerMotion.useReducedMotion();
|
|
818
878
|
const open = (payload) => {
|
|
@@ -824,17 +884,21 @@ function NotificationProvider({ children }) {
|
|
|
824
884
|
const close = (id) => {
|
|
825
885
|
setNotifications((prev) => prev.filter((n) => n.id !== id));
|
|
826
886
|
};
|
|
827
|
-
return /* @__PURE__ */ jsxRuntime.jsx(NotificationContext.Provider, { value: { open, close }, children: /* @__PURE__ */ jsxRuntime.jsxs(Toast__namespace.Provider, { swipeDirection: "right", children: [
|
|
887
|
+
return /* @__PURE__ */ jsxRuntime.jsx(NotificationContext.Provider, { value: { open, close }, children: /* @__PURE__ */ jsxRuntime.jsxs(Toast__namespace.Provider, { swipeDirection: position.endsWith("right") ? "right" : position.endsWith("left") ? "left" : "up", children: [
|
|
828
888
|
children,
|
|
829
889
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
830
890
|
Toast__namespace.Viewport,
|
|
831
891
|
{
|
|
832
892
|
asChild: true,
|
|
833
|
-
className:
|
|
893
|
+
className: [
|
|
894
|
+
VIEWPORT_CLASSES[position],
|
|
895
|
+
"z-[500000] gap-2 w-[332px] p-4 outline-none"
|
|
896
|
+
].join(" "),
|
|
834
897
|
children: /* @__PURE__ */ jsxRuntime.jsx("ul", { children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, children: notifications.map((n) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
835
898
|
NotificationItem,
|
|
836
899
|
{
|
|
837
900
|
n,
|
|
901
|
+
pos: position,
|
|
838
902
|
onClose: close,
|
|
839
903
|
reduced
|
|
840
904
|
},
|
|
@@ -1088,7 +1152,7 @@ function CatalogCarousel({ items, buttonText, onOpen }) {
|
|
|
1088
1152
|
onClick: previousApp,
|
|
1089
1153
|
"aria-label": "Previous",
|
|
1090
1154
|
className: "cursor-pointer rounded-lg transition-all duration-300 hover:bg-ice-dark dark:hover:bg-independence rotate-180",
|
|
1091
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke:
|
|
1155
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"], strokeWidth: 2, className: "h-10 w-10 dark:stroke-white", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" }) })
|
|
1092
1156
|
}
|
|
1093
1157
|
),
|
|
1094
1158
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex", children: indexPool.map((index, id) => {
|
|
@@ -1125,7 +1189,7 @@ function CatalogCarousel({ items, buttonText, onOpen }) {
|
|
|
1125
1189
|
onClick: nextApp,
|
|
1126
1190
|
"aria-label": "Next",
|
|
1127
1191
|
className: "cursor-pointer rounded-lg transition-all duration-300 hover:bg-ice-dark dark:hover:bg-independence",
|
|
1128
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke:
|
|
1192
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"], strokeWidth: 2, className: "h-10 w-10 dark:stroke-white", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" }) })
|
|
1129
1193
|
}
|
|
1130
1194
|
)
|
|
1131
1195
|
] }) });
|
|
@@ -1255,7 +1319,7 @@ function ContextMenu({ items, position, visible, onClose }) {
|
|
|
1255
1319
|
item.icon,
|
|
1256
1320
|
item.value
|
|
1257
1321
|
] }),
|
|
1258
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none", children: item.children && /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke:
|
|
1322
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none", children: item.children && /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"], strokeWidth: 2, className: "h-4 w-4", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" }) }) })
|
|
1259
1323
|
]
|
|
1260
1324
|
},
|
|
1261
1325
|
item.key
|
|
@@ -1386,7 +1450,7 @@ var SearchInput = React9__default.default.forwardRef(function SearchInput2({
|
|
|
1386
1450
|
placeholder: placeholder ?? ""
|
|
1387
1451
|
}
|
|
1388
1452
|
),
|
|
1389
|
-
/* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill:
|
|
1453
|
+
/* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"], className: "w-6 h-6", children: /* @__PURE__ */ jsxRuntime.jsx("path", { fillRule: "evenodd", d: "M10.5 3.75a6.75 6.75 0 100 13.5 6.75 6.75 0 000-13.5zM2.25 10.5a8.25 8.25 0 1114.59 5.28l4.69 4.69a.75.75 0 11-1.06 1.06l-4.69-4.69A8.25 8.25 0 012.25 10.5z", clipRule: "evenodd" }) })
|
|
1390
1454
|
] })
|
|
1391
1455
|
]
|
|
1392
1456
|
}
|
|
@@ -1497,7 +1561,7 @@ function Dropdown({
|
|
|
1497
1561
|
] }) : /* @__PURE__ */ jsxRuntime.jsx(DropdownPill, { value: innerItems.find((it) => it.key === value)?.label })
|
|
1498
1562
|
}
|
|
1499
1563
|
),
|
|
1500
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `transition-transform duration-300 mr-2 ${open ? "rotate-180" : "rotate-0"}`, children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke:
|
|
1564
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `transition-transform duration-300 mr-2 ${open ? "rotate-180" : "rotate-0"}`, children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"], strokeWidth: 2, className: "h-4 w-4", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M19 9l-7 7-7-7" }) }) })
|
|
1501
1565
|
]
|
|
1502
1566
|
}
|
|
1503
1567
|
) }),
|
|
@@ -1539,7 +1603,7 @@ function Dropdown({
|
|
|
1539
1603
|
"path",
|
|
1540
1604
|
{
|
|
1541
1605
|
d: "M4 10l4.5 4.5L16 6",
|
|
1542
|
-
stroke: hoveredItem === item.key ? "#fff" :
|
|
1606
|
+
stroke: hoveredItem === item.key ? "#fff" : chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"],
|
|
1543
1607
|
strokeWidth: "2",
|
|
1544
1608
|
strokeLinecap: "round",
|
|
1545
1609
|
strokeLinejoin: "round"
|
|
@@ -1627,7 +1691,7 @@ function TableBody({
|
|
|
1627
1691
|
onClick: () => toggleRow(row.key),
|
|
1628
1692
|
className: `p-2 cursor-pointer origin-center transition-all duration-200 ${visibleRows[row.key]?.visible ? "rotate-180" : "rotate-0"}`,
|
|
1629
1693
|
children: expandRow.expandIcon ?? /* PlusCircle */
|
|
1630
|
-
/* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill:
|
|
1694
|
+
/* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"], className: "w-5 h-5 dark:fill-white", children: /* @__PURE__ */ jsxRuntime.jsx("path", { fillRule: "evenodd", d: "M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zM12.75 9a.75.75 0 00-1.5 0v2.25H9a.75.75 0 000 1.5h2.25V15a.75.75 0 001.5 0v-2.25H15a.75.75 0 000-1.5h-2.25V9z", clipRule: "evenodd" }) })
|
|
1631
1695
|
}
|
|
1632
1696
|
) }),
|
|
1633
1697
|
columns.map((col, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1680,8 +1744,8 @@ function Pagination({
|
|
|
1680
1744
|
const navBtn = (icon, disabled, onClick) => /* @__PURE__ */ jsxRuntime.jsx(IconButton, { disabled, onClick, icon });
|
|
1681
1745
|
const chevronRight = (color) => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: 2, className: "h-5 w-5", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" }) });
|
|
1682
1746
|
const doubleChevronRight = (color) => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: 2, className: "h-5 w-5", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M13 5l7 7-7 7M5 5l7 7-7 7" }) });
|
|
1683
|
-
const disabledColor =
|
|
1684
|
-
const enabledColor =
|
|
1747
|
+
const disabledColor = chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"];
|
|
1748
|
+
const enabledColor = chunkRLL7ES4F_cjs.colors_default.PALETTE.white;
|
|
1685
1749
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2 items-center justify-end pt-2", children: [
|
|
1686
1750
|
navBtn(
|
|
1687
1751
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rotate-180 inline-flex", children: doubleChevronRight(activePage === 0 ? disabledColor : enabledColor) }),
|
|
@@ -1890,6 +1954,248 @@ function TopBar({
|
|
|
1890
1954
|
}
|
|
1891
1955
|
);
|
|
1892
1956
|
}
|
|
1957
|
+
function NavItem({
|
|
1958
|
+
item,
|
|
1959
|
+
isExpanded
|
|
1960
|
+
}) {
|
|
1961
|
+
const btn = /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1962
|
+
"button",
|
|
1963
|
+
{
|
|
1964
|
+
type: "button",
|
|
1965
|
+
onClick: item.onClick,
|
|
1966
|
+
className: [
|
|
1967
|
+
"group relative flex w-full items-center gap-2.5 rounded-md",
|
|
1968
|
+
"px-2.5 py-2 transition-colors duration-100",
|
|
1969
|
+
"focus:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-inset",
|
|
1970
|
+
item.isActive ? "bg-accent/10 text-accent" : "text-foreground-secondary hover:bg-surface-raised hover:text-foreground"
|
|
1971
|
+
].join(" "),
|
|
1972
|
+
children: [
|
|
1973
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "relative flex h-5 w-5 flex-shrink-0 items-center justify-center", children: [
|
|
1974
|
+
item.icon,
|
|
1975
|
+
item.badge !== void 0 && item.badge > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -right-1 -top-1 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-status-error text-[9px] font-bold text-white leading-none", children: item.badge > 99 ? "99+" : item.badge })
|
|
1976
|
+
] }),
|
|
1977
|
+
isExpanded && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1978
|
+
framerMotion.motion.span,
|
|
1979
|
+
{
|
|
1980
|
+
initial: false,
|
|
1981
|
+
animate: { opacity: 1 },
|
|
1982
|
+
className: "truncate text-sm font-medium",
|
|
1983
|
+
children: item.label
|
|
1984
|
+
}
|
|
1985
|
+
),
|
|
1986
|
+
item.isActive && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute inset-y-0 left-0 w-[3px] rounded-r-full bg-accent" })
|
|
1987
|
+
]
|
|
1988
|
+
}
|
|
1989
|
+
);
|
|
1990
|
+
if (isExpanded) return btn;
|
|
1991
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Tooltip, { title: item.label, placement: "right", delayDuration: 200, children: btn });
|
|
1992
|
+
}
|
|
1993
|
+
function Sidebar({
|
|
1994
|
+
sections,
|
|
1995
|
+
isExpanded,
|
|
1996
|
+
onToggle,
|
|
1997
|
+
expandedWidth = 220,
|
|
1998
|
+
collapsedWidth = 52,
|
|
1999
|
+
footer
|
|
2000
|
+
}) {
|
|
2001
|
+
return /* @__PURE__ */ jsxRuntime.jsx(TooltipProvider, { delayDuration: 200, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2002
|
+
framerMotion.motion.aside,
|
|
2003
|
+
{
|
|
2004
|
+
initial: false,
|
|
2005
|
+
animate: { width: isExpanded ? expandedWidth : collapsedWidth },
|
|
2006
|
+
transition: { type: "tween", duration: 0.22, ease: [0.16, 1, 0.3, 1] },
|
|
2007
|
+
className: "relative flex h-full flex-col border-r border-border bg-surface overflow-hidden flex-shrink-0",
|
|
2008
|
+
children: [
|
|
2009
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: [
|
|
2010
|
+
"flex h-14 flex-shrink-0 items-center border-b border-border",
|
|
2011
|
+
isExpanded ? "justify-between px-3" : "justify-center px-1.5"
|
|
2012
|
+
].join(" "), children: [
|
|
2013
|
+
isExpanded && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2014
|
+
framerMotion.motion.span,
|
|
2015
|
+
{
|
|
2016
|
+
initial: { opacity: 0 },
|
|
2017
|
+
animate: { opacity: 1 },
|
|
2018
|
+
transition: { delay: 0.08 },
|
|
2019
|
+
className: "text-xs font-semibold uppercase tracking-widest text-foreground-muted select-none",
|
|
2020
|
+
children: "Menu"
|
|
2021
|
+
}
|
|
2022
|
+
),
|
|
2023
|
+
/* @__PURE__ */ jsxRuntime.jsx(Tooltip, { title: isExpanded ? "Collapse menu" : "Expand menu", placement: "right", delayDuration: 500, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2024
|
+
"button",
|
|
2025
|
+
{
|
|
2026
|
+
type: "button",
|
|
2027
|
+
onClick: onToggle,
|
|
2028
|
+
"aria-label": isExpanded ? "Collapse sidebar" : "Expand sidebar",
|
|
2029
|
+
className: "flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-md text-foreground-muted hover:bg-surface-raised hover:text-foreground transition-colors duration-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-accent",
|
|
2030
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2031
|
+
framerMotion.motion.svg,
|
|
2032
|
+
{
|
|
2033
|
+
viewBox: "0 0 20 20",
|
|
2034
|
+
fill: "none",
|
|
2035
|
+
stroke: "currentColor",
|
|
2036
|
+
strokeWidth: "1.8",
|
|
2037
|
+
strokeLinecap: "round",
|
|
2038
|
+
strokeLinejoin: "round",
|
|
2039
|
+
className: "h-4 w-4",
|
|
2040
|
+
animate: { rotate: isExpanded ? 0 : 180 },
|
|
2041
|
+
transition: { type: "tween", duration: 0.22 },
|
|
2042
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M13 5l-5 5 5 5" })
|
|
2043
|
+
}
|
|
2044
|
+
)
|
|
2045
|
+
}
|
|
2046
|
+
) })
|
|
2047
|
+
] }),
|
|
2048
|
+
/* @__PURE__ */ jsxRuntime.jsx("nav", { className: "flex-1 overflow-y-auto overflow-x-hidden py-2 px-1.5 space-y-0.5", children: sections.map((section, si) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: si > 0 ? "pt-3" : "", children: [
|
|
2049
|
+
section.title && isExpanded && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2050
|
+
framerMotion.motion.p,
|
|
2051
|
+
{
|
|
2052
|
+
initial: { opacity: 0 },
|
|
2053
|
+
animate: { opacity: 1 },
|
|
2054
|
+
transition: { delay: 0.06 },
|
|
2055
|
+
className: "px-2.5 pb-1 text-[10px] font-semibold uppercase tracking-widest text-foreground-muted select-none",
|
|
2056
|
+
children: section.title
|
|
2057
|
+
}
|
|
2058
|
+
),
|
|
2059
|
+
section.items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(NavItem, { item, isExpanded }, item.key))
|
|
2060
|
+
] }, section.key)) }),
|
|
2061
|
+
footer && /* @__PURE__ */ jsxRuntime.jsx("div", { className: [
|
|
2062
|
+
"flex flex-shrink-0 items-center border-t border-border py-2",
|
|
2063
|
+
isExpanded ? "px-3 gap-2" : "justify-center px-1.5"
|
|
2064
|
+
].join(" "), children: footer })
|
|
2065
|
+
]
|
|
2066
|
+
}
|
|
2067
|
+
) });
|
|
2068
|
+
}
|
|
2069
|
+
function AppShell({
|
|
2070
|
+
topBar,
|
|
2071
|
+
sidebarSections = [],
|
|
2072
|
+
sidebarExpandedWidth = 220,
|
|
2073
|
+
sidebarCollapsedWidth = 52,
|
|
2074
|
+
sidebarDefaultExpanded = false,
|
|
2075
|
+
sidebarFooter,
|
|
2076
|
+
children,
|
|
2077
|
+
className = ""
|
|
2078
|
+
}) {
|
|
2079
|
+
const [expanded, setExpanded] = React9.useState(sidebarDefaultExpanded);
|
|
2080
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex flex-col h-screen bg-background ${className}`, children: [
|
|
2081
|
+
topBar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-shrink-0 z-[200]", children: topBar }),
|
|
2082
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-1 overflow-hidden", children: [
|
|
2083
|
+
sidebarSections.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
2084
|
+
Sidebar,
|
|
2085
|
+
{
|
|
2086
|
+
sections: sidebarSections,
|
|
2087
|
+
isExpanded: expanded,
|
|
2088
|
+
onToggle: () => setExpanded((e) => !e),
|
|
2089
|
+
expandedWidth: sidebarExpandedWidth,
|
|
2090
|
+
collapsedWidth: sidebarCollapsedWidth,
|
|
2091
|
+
footer: sidebarFooter
|
|
2092
|
+
}
|
|
2093
|
+
),
|
|
2094
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2095
|
+
framerMotion.motion.main,
|
|
2096
|
+
{
|
|
2097
|
+
className: "flex-1 overflow-y-auto overflow-x-hidden",
|
|
2098
|
+
animate: { marginLeft: 0 },
|
|
2099
|
+
transition: { type: "tween", duration: 0.22, ease: [0.16, 1, 0.3, 1] },
|
|
2100
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full p-6", children })
|
|
2101
|
+
}
|
|
2102
|
+
)
|
|
2103
|
+
] })
|
|
2104
|
+
] });
|
|
2105
|
+
}
|
|
2106
|
+
var SHIMMER = [
|
|
2107
|
+
"animate-shimmer rounded-sm",
|
|
2108
|
+
"bg-[length:400%_100%]",
|
|
2109
|
+
"bg-gradient-to-r",
|
|
2110
|
+
"from-border via-border-strong/40 to-border"
|
|
2111
|
+
].join(" ");
|
|
2112
|
+
function SkeletonBox({ width, height = 16, radius, className = "", style }) {
|
|
2113
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2114
|
+
"span",
|
|
2115
|
+
{
|
|
2116
|
+
role: "presentation",
|
|
2117
|
+
"aria-hidden": "true",
|
|
2118
|
+
className: `block ${SHIMMER} ${className}`,
|
|
2119
|
+
style: {
|
|
2120
|
+
width: width ?? "100%",
|
|
2121
|
+
height,
|
|
2122
|
+
borderRadius: radius ?? "var(--radius-md)",
|
|
2123
|
+
...style
|
|
2124
|
+
}
|
|
2125
|
+
}
|
|
2126
|
+
);
|
|
2127
|
+
}
|
|
2128
|
+
function SkeletonText({
|
|
2129
|
+
lines = 3,
|
|
2130
|
+
lastLineWidth = 60,
|
|
2131
|
+
lineHeight = 14,
|
|
2132
|
+
gap = 8,
|
|
2133
|
+
className = "",
|
|
2134
|
+
style
|
|
2135
|
+
}) {
|
|
2136
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2137
|
+
"div",
|
|
2138
|
+
{
|
|
2139
|
+
role: "presentation",
|
|
2140
|
+
"aria-hidden": "true",
|
|
2141
|
+
className: `flex flex-col ${className}`,
|
|
2142
|
+
style: { gap, ...style },
|
|
2143
|
+
children: Array.from({ length: lines }).map((_, i) => {
|
|
2144
|
+
const isLast = i === lines - 1;
|
|
2145
|
+
const width = isLast && lines > 1 ? `${lastLineWidth}%` : "100%";
|
|
2146
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2147
|
+
"span",
|
|
2148
|
+
{
|
|
2149
|
+
className: `block ${SHIMMER}`,
|
|
2150
|
+
style: { height: lineHeight, width, borderRadius: "var(--radius-sm)" }
|
|
2151
|
+
},
|
|
2152
|
+
i
|
|
2153
|
+
);
|
|
2154
|
+
})
|
|
2155
|
+
}
|
|
2156
|
+
);
|
|
2157
|
+
}
|
|
2158
|
+
function SkeletonCircle({ size = 40, className = "", style }) {
|
|
2159
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2160
|
+
"span",
|
|
2161
|
+
{
|
|
2162
|
+
role: "presentation",
|
|
2163
|
+
"aria-hidden": "true",
|
|
2164
|
+
className: `block flex-shrink-0 ${SHIMMER} ${className}`,
|
|
2165
|
+
style: {
|
|
2166
|
+
width: size,
|
|
2167
|
+
height: size,
|
|
2168
|
+
borderRadius: "50%",
|
|
2169
|
+
...style
|
|
2170
|
+
}
|
|
2171
|
+
}
|
|
2172
|
+
);
|
|
2173
|
+
}
|
|
2174
|
+
function SkeletonCard({ hasAvatar = true, lines = 3, className = "", style }) {
|
|
2175
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2176
|
+
"div",
|
|
2177
|
+
{
|
|
2178
|
+
role: "presentation",
|
|
2179
|
+
"aria-hidden": "true",
|
|
2180
|
+
className: `rounded-lg border border-border bg-surface p-4 ${className}`,
|
|
2181
|
+
style,
|
|
2182
|
+
children: [
|
|
2183
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3 mb-4", children: [
|
|
2184
|
+
hasAvatar && /* @__PURE__ */ jsxRuntime.jsx(SkeletonCircle, { size: 36 }),
|
|
2185
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 flex flex-col gap-2", children: [
|
|
2186
|
+
/* @__PURE__ */ jsxRuntime.jsx(SkeletonBox, { height: 12, width: "55%" }),
|
|
2187
|
+
/* @__PURE__ */ jsxRuntime.jsx(SkeletonBox, { height: 10, width: "35%" })
|
|
2188
|
+
] })
|
|
2189
|
+
] }),
|
|
2190
|
+
/* @__PURE__ */ jsxRuntime.jsx(SkeletonText, { lines, lastLineWidth: 55 }),
|
|
2191
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex gap-2", children: [
|
|
2192
|
+
/* @__PURE__ */ jsxRuntime.jsx(SkeletonBox, { height: 28, width: 72 }),
|
|
2193
|
+
/* @__PURE__ */ jsxRuntime.jsx(SkeletonBox, { height: 28, width: 56 })
|
|
2194
|
+
] })
|
|
2195
|
+
]
|
|
2196
|
+
}
|
|
2197
|
+
);
|
|
2198
|
+
}
|
|
1893
2199
|
function TextInput({
|
|
1894
2200
|
value,
|
|
1895
2201
|
onChange,
|
|
@@ -2017,7 +2323,7 @@ function NumberInput({
|
|
|
2017
2323
|
{
|
|
2018
2324
|
onClick: onIncrement,
|
|
2019
2325
|
className: "rotate-180 cursor-pointer transition-all duration-300 hover:bg-ice rounded-sm",
|
|
2020
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke:
|
|
2326
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"], strokeWidth: 2, className: "h-3 w-3", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M19 9l-7 7-7-7" }) })
|
|
2021
2327
|
}
|
|
2022
2328
|
),
|
|
2023
2329
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2025,7 +2331,7 @@ function NumberInput({
|
|
|
2025
2331
|
{
|
|
2026
2332
|
onClick: onDecrement,
|
|
2027
2333
|
className: "cursor-pointer transition-all duration-300 hover:bg-ice rounded-sm",
|
|
2028
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke:
|
|
2334
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"], strokeWidth: 2, className: "h-3 w-3", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M19 9l-7 7-7-7" }) })
|
|
2029
2335
|
}
|
|
2030
2336
|
)
|
|
2031
2337
|
] })
|
|
@@ -2055,7 +2361,7 @@ function Password({
|
|
|
2055
2361
|
iconColor
|
|
2056
2362
|
}) {
|
|
2057
2363
|
const [passwordVisible, setPasswordVisible] = React9.useState(false);
|
|
2058
|
-
const color = iconColor ??
|
|
2364
|
+
const color = iconColor ?? chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"];
|
|
2059
2365
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex flex-col items-center justify-center", style: style ?? {}, children: [
|
|
2060
2366
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex ${layout === "vertical" ? "flex-col" : "flex-row items-center gap-2"}`, children: [
|
|
2061
2367
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2113,56 +2419,82 @@ function Password({
|
|
|
2113
2419
|
] });
|
|
2114
2420
|
}
|
|
2115
2421
|
function Checkbox({
|
|
2116
|
-
|
|
2117
|
-
|
|
2422
|
+
checked,
|
|
2423
|
+
value,
|
|
2424
|
+
// legacy alias
|
|
2425
|
+
onChange,
|
|
2118
2426
|
label,
|
|
2119
2427
|
name,
|
|
2120
2428
|
htmlFor,
|
|
2121
2429
|
errorMessage,
|
|
2122
|
-
|
|
2123
|
-
onChange
|
|
2430
|
+
disabled = false
|
|
2124
2431
|
}) {
|
|
2125
|
-
|
|
2432
|
+
const isChecked = checked ?? value ?? false;
|
|
2433
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
2126
2434
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2127
|
-
"
|
|
2435
|
+
"label",
|
|
2128
2436
|
{
|
|
2129
|
-
|
|
2437
|
+
htmlFor,
|
|
2438
|
+
className: [
|
|
2439
|
+
"inline-flex items-center gap-2.5",
|
|
2440
|
+
disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"
|
|
2441
|
+
].join(" "),
|
|
2130
2442
|
children: [
|
|
2131
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2132
|
-
"label",
|
|
2133
|
-
{
|
|
2134
|
-
htmlFor,
|
|
2135
|
-
className: "font-bold text-md text-prussian-blue dark:text-white cursor-pointer",
|
|
2136
|
-
children: label
|
|
2137
|
-
}
|
|
2138
|
-
),
|
|
2139
2443
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2140
2444
|
CheckboxPrimitive__namespace.Root,
|
|
2141
2445
|
{
|
|
2142
2446
|
id: htmlFor,
|
|
2143
2447
|
name,
|
|
2144
|
-
checked:
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2448
|
+
checked: isChecked,
|
|
2449
|
+
disabled,
|
|
2450
|
+
onCheckedChange: (c) => onChange?.({ target: { checked: !!c, id: htmlFor, name } }),
|
|
2451
|
+
className: [
|
|
2452
|
+
// Box
|
|
2453
|
+
"relative flex h-[18px] w-[18px] flex-shrink-0 items-center justify-center",
|
|
2454
|
+
"rounded-sm border transition-colors duration-150",
|
|
2455
|
+
// Unchecked
|
|
2456
|
+
"border-border-strong bg-surface",
|
|
2457
|
+
// Checked
|
|
2458
|
+
"data-[state=checked]:bg-accent data-[state=checked]:border-accent",
|
|
2459
|
+
// Focus
|
|
2460
|
+
"focus:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-1",
|
|
2461
|
+
// Disabled
|
|
2462
|
+
"disabled:cursor-not-allowed"
|
|
2463
|
+
].join(" "),
|
|
2149
2464
|
"aria-label": typeof label === "string" ? label : void 0,
|
|
2150
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2151
|
-
|
|
2465
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2466
|
+
CheckboxPrimitive__namespace.Indicator,
|
|
2152
2467
|
{
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2468
|
+
className: "flex items-center justify-center data-[state=checked]:animate-check-pop",
|
|
2469
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2470
|
+
"svg",
|
|
2471
|
+
{
|
|
2472
|
+
width: "11",
|
|
2473
|
+
height: "9",
|
|
2474
|
+
viewBox: "0 0 11 9",
|
|
2475
|
+
fill: "none",
|
|
2476
|
+
"aria-hidden": "true",
|
|
2477
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2478
|
+
"path",
|
|
2479
|
+
{
|
|
2480
|
+
d: "M1 4.5L4 7.5L10 1",
|
|
2481
|
+
stroke: "white",
|
|
2482
|
+
strokeWidth: "1.8",
|
|
2483
|
+
strokeLinecap: "round",
|
|
2484
|
+
strokeLinejoin: "round"
|
|
2485
|
+
}
|
|
2486
|
+
)
|
|
2487
|
+
}
|
|
2488
|
+
)
|
|
2158
2489
|
}
|
|
2159
|
-
)
|
|
2490
|
+
)
|
|
2160
2491
|
}
|
|
2161
|
-
)
|
|
2492
|
+
),
|
|
2493
|
+
label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-foreground-secondary select-none leading-snug", children: label })
|
|
2162
2494
|
]
|
|
2163
2495
|
}
|
|
2164
2496
|
),
|
|
2165
|
-
/* @__PURE__ */ jsxRuntime.jsx("
|
|
2497
|
+
errorMessage && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-status-error pl-[26px]", children: errorMessage })
|
|
2166
2498
|
] });
|
|
2167
2499
|
}
|
|
2168
2500
|
function Switch({
|
|
@@ -2241,7 +2573,7 @@ function AutoComplete({
|
|
|
2241
2573
|
"aria-autocomplete": "list"
|
|
2242
2574
|
}
|
|
2243
2575
|
),
|
|
2244
|
-
/* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill:
|
|
2576
|
+
/* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"], className: "w-5 h-5 flex-shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx("path", { fillRule: "evenodd", d: "M10.5 3.75a6.75 6.75 0 100 13.5 6.75 6.75 0 000-13.5zM2.25 10.5a8.25 8.25 0 1114.59 5.28l4.69 4.69a.75.75 0 11-1.06 1.06l-4.69-4.69A8.25 8.25 0 012.25 10.5z", clipRule: "evenodd" }) })
|
|
2245
2577
|
] }) }),
|
|
2246
2578
|
/* @__PURE__ */ jsxRuntime.jsx(Popover__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2247
2579
|
Popover__namespace.Content,
|
|
@@ -2334,7 +2666,7 @@ function TreeSelect({
|
|
|
2334
2666
|
)),
|
|
2335
2667
|
value.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(DropdownPill, { value: `+${value.length - 1} more` })
|
|
2336
2668
|
] }) : value != null ? /* @__PURE__ */ jsxRuntime.jsx(DropdownPill, { value: innerItems.find((it) => it.key === value)?.label }) : null }),
|
|
2337
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `transition-transform duration-300 ml-2 ${open ? "rotate-180" : "rotate-0"}`, children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke:
|
|
2669
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: `transition-transform duration-300 ml-2 ${open ? "rotate-180" : "rotate-0"}`, children: /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"], strokeWidth: 2, className: "h-4 w-4", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M19 9l-7 7-7-7" }) }) })
|
|
2338
2670
|
]
|
|
2339
2671
|
}
|
|
2340
2672
|
) }),
|
|
@@ -2364,7 +2696,7 @@ function TreeSelect({
|
|
|
2364
2696
|
"path",
|
|
2365
2697
|
{
|
|
2366
2698
|
d: "M4 10l4.5 4.5L16 6",
|
|
2367
|
-
stroke: hoveredItem === item.key ? "#fff" :
|
|
2699
|
+
stroke: hoveredItem === item.key ? "#fff" : chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"],
|
|
2368
2700
|
strokeWidth: "2",
|
|
2369
2701
|
strokeLinecap: "round",
|
|
2370
2702
|
strokeLinejoin: "round"
|
|
@@ -2446,7 +2778,7 @@ function FileInput({
|
|
|
2446
2778
|
}
|
|
2447
2779
|
),
|
|
2448
2780
|
files.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col h-full items-center justify-center gap-2", children: [
|
|
2449
|
-
/* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill:
|
|
2781
|
+
/* @__PURE__ */ jsxRuntime.jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"], className: "w-16 h-16 dark:fill-white", children: /* @__PURE__ */ jsxRuntime.jsx("path", { fillRule: "evenodd", d: "M11.47 2.47a.75.75 0 011.06 0l4.5 4.5a.75.75 0 01-1.06 1.06l-3.22-3.22V16.5a.75.75 0 01-1.5 0V4.81L8.03 8.03a.75.75 0 01-1.06-1.06l4.5-4.5zM3 15.75a.75.75 0 01.75.75v2.25a1.5 1.5 0 001.5 1.5h13.5a1.5 1.5 0 001.5-1.5V16.5a.75.75 0 011.5 0v2.25a3 3 0 01-3 3H5.25a3 3 0 01-3-3V16.5a.75.75 0 01.75-.75z", clipRule: "evenodd" }) }),
|
|
2450
2782
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-prussian-blue dark:text-white text-sm", children: "Click or Drop a file" })
|
|
2451
2783
|
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-3 items-center justify-center w-full h-full", children: files.map((file, id) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2452
2784
|
"div",
|
|
@@ -2463,7 +2795,7 @@ function FileInput({
|
|
|
2463
2795
|
children: /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "10", height: "10", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M15 5L5 15M5 5l10 10", stroke: "#fff", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) })
|
|
2464
2796
|
}
|
|
2465
2797
|
),
|
|
2466
|
-
/* @__PURE__ */ jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill:
|
|
2798
|
+
/* @__PURE__ */ jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"], className: "w-10 h-10 dark:fill-white", children: [
|
|
2467
2799
|
/* @__PURE__ */ jsxRuntime.jsx("path", { fillRule: "evenodd", d: "M5.625 1.5c-1.036 0-1.875.84-1.875 1.875v17.25c0 1.035.84 1.875 1.875 1.875h12.75c1.035 0 1.875-.84 1.875-1.875V12.75A3.75 3.75 0 0016.5 9h-1.875a1.875 1.875 0 01-1.875-1.875V5.25A3.75 3.75 0 009 1.5H5.625z", clipRule: "evenodd" }),
|
|
2468
2800
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M12.971 1.816A5.23 5.23 0 0114.25 5.25v1.875c0 .207.168.375.375.375H16.5a5.23 5.23 0 013.434 1.279 9.768 9.768 0 00-6.963-6.963z" })
|
|
2469
2801
|
] }),
|
|
@@ -2508,9 +2840,9 @@ function getMonthDays(year, month) {
|
|
|
2508
2840
|
}
|
|
2509
2841
|
return days;
|
|
2510
2842
|
}
|
|
2511
|
-
var ChevronRight2 = ({ color =
|
|
2512
|
-
var DoubleChevronRight2 = ({ color =
|
|
2513
|
-
var ChevronDown2 = ({ color =
|
|
2843
|
+
var ChevronRight2 = ({ color = chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"] }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: 2, className: "w-4 h-4", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" }) });
|
|
2844
|
+
var DoubleChevronRight2 = ({ color = chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"] }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: 2, className: "w-4 h-4", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M13 5l7 7-7 7M5 5l7 7-7 7" }) });
|
|
2845
|
+
var ChevronDown2 = ({ color = chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"] }) => /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: 2, className: "w-4 h-4", children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M19 9l-7 7-7-7" }) });
|
|
2514
2846
|
function DatePickerBase({
|
|
2515
2847
|
value,
|
|
2516
2848
|
onChange,
|
|
@@ -2767,20 +3099,21 @@ var DatePicker_default = Temporal;
|
|
|
2767
3099
|
|
|
2768
3100
|
Object.defineProperty(exports, "COLORS", {
|
|
2769
3101
|
enumerable: true,
|
|
2770
|
-
get: function () { return
|
|
3102
|
+
get: function () { return chunkRLL7ES4F_cjs.colors_default; }
|
|
2771
3103
|
});
|
|
2772
3104
|
Object.defineProperty(exports, "palette", {
|
|
2773
3105
|
enumerable: true,
|
|
2774
|
-
get: function () { return
|
|
3106
|
+
get: function () { return chunkRLL7ES4F_cjs.PALETTE; }
|
|
2775
3107
|
});
|
|
2776
3108
|
Object.defineProperty(exports, "semanticTokens", {
|
|
2777
3109
|
enumerable: true,
|
|
2778
|
-
get: function () { return
|
|
3110
|
+
get: function () { return chunkRLL7ES4F_cjs.semanticTokens; }
|
|
2779
3111
|
});
|
|
2780
3112
|
Object.defineProperty(exports, "vars", {
|
|
2781
3113
|
enumerable: true,
|
|
2782
|
-
get: function () { return
|
|
3114
|
+
get: function () { return chunkRLL7ES4F_cjs.vars; }
|
|
2783
3115
|
});
|
|
3116
|
+
exports.AppShell = AppShell;
|
|
2784
3117
|
exports.AutoComplete = AutoComplete;
|
|
2785
3118
|
exports.Button = Button;
|
|
2786
3119
|
exports.Catalog = Catalog;
|
|
@@ -2807,6 +3140,11 @@ exports.OpaqueGridCard = OpaqueGridCard;
|
|
|
2807
3140
|
exports.Password = Password;
|
|
2808
3141
|
exports.ScalableContainer = ScalableContainer;
|
|
2809
3142
|
exports.SearchInput = SearchInput_default;
|
|
3143
|
+
exports.Sidebar = Sidebar;
|
|
3144
|
+
exports.SkeletonBox = SkeletonBox;
|
|
3145
|
+
exports.SkeletonCard = SkeletonCard;
|
|
3146
|
+
exports.SkeletonCircle = SkeletonCircle;
|
|
3147
|
+
exports.SkeletonText = SkeletonText;
|
|
2810
3148
|
exports.Switch = Switch;
|
|
2811
3149
|
exports.Table = Table;
|
|
2812
3150
|
exports.Tabs = Tabs;
|