@geomak/ui 1.2.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 +605 -132
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +267 -57
- package/dist/index.d.ts +267 -57
- package/dist/index.js +571 -105
- 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 +92 -85
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');
|
|
@@ -234,8 +234,45 @@ function IconButton({
|
|
|
234
234
|
}
|
|
235
235
|
);
|
|
236
236
|
}
|
|
237
|
+
var VARIANT_CLASSES = {
|
|
238
|
+
primary: [
|
|
239
|
+
"bg-accent text-white",
|
|
240
|
+
"hover:bg-accent-hover",
|
|
241
|
+
"active:bg-accent",
|
|
242
|
+
"disabled:bg-roman-silver disabled:text-white/70 disabled:cursor-not-allowed",
|
|
243
|
+
"focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2"
|
|
244
|
+
].join(" "),
|
|
245
|
+
secondary: [
|
|
246
|
+
"bg-transparent border border-accent text-accent",
|
|
247
|
+
"hover:bg-accent hover:text-white",
|
|
248
|
+
"active:bg-accent-hover active:text-white",
|
|
249
|
+
"disabled:border-roman-silver disabled:text-roman-silver disabled:cursor-not-allowed",
|
|
250
|
+
"focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2"
|
|
251
|
+
].join(" "),
|
|
252
|
+
ghost: [
|
|
253
|
+
"bg-transparent text-foreground-secondary",
|
|
254
|
+
"hover:bg-ice dark:hover:bg-oxford-blue-700 hover:text-foreground",
|
|
255
|
+
"active:bg-ice-dark dark:active:bg-independence",
|
|
256
|
+
"disabled:text-roman-silver disabled:cursor-not-allowed",
|
|
257
|
+
"focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2"
|
|
258
|
+
].join(" "),
|
|
259
|
+
danger: [
|
|
260
|
+
"bg-status-error text-white",
|
|
261
|
+
"hover:opacity-90",
|
|
262
|
+
"active:opacity-100",
|
|
263
|
+
"disabled:opacity-50 disabled:cursor-not-allowed",
|
|
264
|
+
"focus-visible:ring-2 focus-visible:ring-status-error focus-visible:ring-offset-2"
|
|
265
|
+
].join(" ")
|
|
266
|
+
};
|
|
267
|
+
var SIZE_CLASSES = {
|
|
268
|
+
sm: "h-7 px-3 text-xs gap-1 rounded-md",
|
|
269
|
+
md: "h-9 px-4 text-sm gap-1.5 rounded-lg",
|
|
270
|
+
lg: "h-11 px-5 text-sm gap-2 rounded-xl"
|
|
271
|
+
};
|
|
237
272
|
function Button({
|
|
238
273
|
content,
|
|
274
|
+
variant = "primary",
|
|
275
|
+
size = "md",
|
|
239
276
|
buttonType = "button",
|
|
240
277
|
loading,
|
|
241
278
|
disabled,
|
|
@@ -249,26 +286,33 @@ function Button({
|
|
|
249
286
|
onClick,
|
|
250
287
|
disabled: disabled || loading,
|
|
251
288
|
type: buttonType,
|
|
252
|
-
|
|
253
|
-
|
|
289
|
+
style,
|
|
290
|
+
className: [
|
|
291
|
+
// Base — layout, transitions, focus reset
|
|
292
|
+
"inline-flex items-center justify-center font-medium",
|
|
293
|
+
"outline-none transition-colors duration-150 select-none",
|
|
294
|
+
"whitespace-nowrap",
|
|
295
|
+
SIZE_CLASSES[size],
|
|
296
|
+
VARIANT_CLASSES[variant]
|
|
297
|
+
].join(" "),
|
|
254
298
|
children: [
|
|
255
299
|
loading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
256
300
|
"svg",
|
|
257
301
|
{
|
|
258
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
259
302
|
viewBox: "0 0 24 24",
|
|
260
|
-
fill: "
|
|
261
|
-
className: "w-
|
|
303
|
+
fill: "currentColor",
|
|
304
|
+
className: "w-4 h-4 animate-spin flex-shrink-0",
|
|
305
|
+
"aria-hidden": "true",
|
|
262
306
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
263
307
|
"path",
|
|
264
308
|
{
|
|
265
309
|
fillRule: "evenodd",
|
|
266
|
-
|
|
267
|
-
|
|
310
|
+
clipRule: "evenodd",
|
|
311
|
+
d: "M4.755 10.059a7.5 7.5 0 0112.548-3.364l1.903 1.903h-3.183a.75.75 0 100 1.5h4.992a.75.75 0 00.75-.75V4.356a.75.75 0 00-1.5 0v3.18l-1.9-1.9A9 9 0 003.306 9.67a.75.75 0 101.45.388zm15.408 3.352a.75.75 0 00-.919.53 7.5 7.5 0 01-12.548 3.364l-1.902-1.903h3.183a.75.75 0 000-1.5H2.984a.75.75 0 00-.75.75v4.992a.75.75 0 001.5 0v-3.18l1.9 1.9a9 9 0 0015.059-4.035.75.75 0 00-.53-.918z"
|
|
268
312
|
}
|
|
269
313
|
)
|
|
270
314
|
}
|
|
271
|
-
) : icon ? icon : null,
|
|
315
|
+
) : icon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", "aria-hidden": "true", children: icon }) : null,
|
|
272
316
|
content
|
|
273
317
|
]
|
|
274
318
|
}
|
|
@@ -423,23 +467,49 @@ function Drawer({
|
|
|
423
467
|
) }) })
|
|
424
468
|
] }) });
|
|
425
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
|
+
};
|
|
426
476
|
function Tooltip({
|
|
427
477
|
children,
|
|
428
478
|
title,
|
|
429
|
-
placement = "
|
|
430
|
-
delayDuration =
|
|
479
|
+
placement = "top",
|
|
480
|
+
delayDuration = 300,
|
|
481
|
+
sideOffset = 8
|
|
431
482
|
}) {
|
|
432
483
|
return /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Provider, { delayDuration, children: /* @__PURE__ */ jsxRuntime.jsxs(TooltipPrimitive__namespace.Root, { children: [
|
|
433
|
-
/* @__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 }) }),
|
|
434
485
|
/* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
435
486
|
TooltipPrimitive__namespace.Content,
|
|
436
487
|
{
|
|
437
488
|
side: placement,
|
|
438
|
-
sideOffset
|
|
439
|
-
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(" "),
|
|
440
503
|
children: [
|
|
441
504
|
title,
|
|
442
|
-
/* @__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
|
+
)
|
|
443
513
|
]
|
|
444
514
|
}
|
|
445
515
|
) })
|
|
@@ -498,7 +568,7 @@ function Tabs({
|
|
|
498
568
|
onClick: toPreviousTab,
|
|
499
569
|
"aria-label": "Previous tab",
|
|
500
570
|
className: "cursor-pointer rounded-lg transition-all duration-300 hover:bg-ice-dark dark:hover:bg-independence rotate-180 flex-shrink-0",
|
|
501
|
-
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" }) })
|
|
502
572
|
}
|
|
503
573
|
),
|
|
504
574
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -523,7 +593,7 @@ function Tabs({
|
|
|
523
593
|
onTabClose?.(tab.key);
|
|
524
594
|
},
|
|
525
595
|
className: "flex-shrink-0 rounded hover:bg-ice-dark dark:hover:bg-independence p-0.5 transition-colors",
|
|
526
|
-
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" }) })
|
|
527
597
|
}
|
|
528
598
|
)
|
|
529
599
|
]
|
|
@@ -539,7 +609,7 @@ function Tabs({
|
|
|
539
609
|
onClick: toNextTab,
|
|
540
610
|
"aria-label": "Next tab",
|
|
541
611
|
className: "cursor-pointer rounded-lg transition-all duration-300 hover:bg-ice-dark dark:hover:bg-independence flex-shrink-0",
|
|
542
|
-
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" }) })
|
|
543
613
|
}
|
|
544
614
|
)
|
|
545
615
|
] }),
|
|
@@ -691,71 +761,151 @@ var NotificationContext = React9.createContext({
|
|
|
691
761
|
open: () => void 0,
|
|
692
762
|
close: () => void 0
|
|
693
763
|
});
|
|
694
|
-
var
|
|
695
|
-
info: "bg-info",
|
|
696
|
-
success: "bg-success",
|
|
697
|
-
warning: "bg-warning",
|
|
698
|
-
danger: "bg-error"
|
|
764
|
+
var TYPE_BG = {
|
|
765
|
+
info: "bg-status-info",
|
|
766
|
+
success: "bg-status-success",
|
|
767
|
+
warning: "bg-status-warning",
|
|
768
|
+
danger: "bg-status-error"
|
|
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"
|
|
699
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
|
+
}
|
|
700
791
|
function TypeIcon({ type }) {
|
|
701
792
|
if (type === "success") {
|
|
702
|
-
return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "
|
|
703
|
-
"path",
|
|
704
|
-
{
|
|
705
|
-
fillRule: "evenodd",
|
|
706
|
-
clipRule: "evenodd",
|
|
707
|
-
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",
|
|
708
|
-
fill: "#fff"
|
|
709
|
-
}
|
|
710
|
-
) });
|
|
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" }) });
|
|
711
794
|
}
|
|
712
795
|
if (type === "info") {
|
|
713
|
-
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
|
+
] });
|
|
714
801
|
}
|
|
715
802
|
if (type === "warning") {
|
|
716
|
-
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
|
+
] });
|
|
717
808
|
}
|
|
718
|
-
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
|
+
] });
|
|
814
|
+
}
|
|
815
|
+
function NotificationItem({
|
|
816
|
+
n,
|
|
817
|
+
pos,
|
|
818
|
+
onClose,
|
|
819
|
+
reduced
|
|
820
|
+
}) {
|
|
821
|
+
const initial = getInitialMotion(pos, reduced);
|
|
822
|
+
const center = pos.endsWith("center");
|
|
823
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
824
|
+
framerMotion.motion.div,
|
|
825
|
+
{
|
|
826
|
+
layout: true,
|
|
827
|
+
initial,
|
|
828
|
+
animate: { opacity: 1, x: 0, y: 0, scale: 1 },
|
|
829
|
+
exit: { ...initial, opacity: 0 },
|
|
830
|
+
transition: reduced ? { duration: 0 } : {
|
|
831
|
+
opacity: { duration: 0.14 },
|
|
832
|
+
x: { type: "tween", duration: 0.22, ease: [0.16, 1, 0.3, 1] },
|
|
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 }
|
|
836
|
+
},
|
|
837
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
838
|
+
Toast__namespace.Root,
|
|
839
|
+
{
|
|
840
|
+
open: true,
|
|
841
|
+
duration: n.duration,
|
|
842
|
+
onOpenChange: (o) => {
|
|
843
|
+
if (!o) onClose(n.id);
|
|
844
|
+
},
|
|
845
|
+
className: [
|
|
846
|
+
"w-[300px] rounded-md shadow-lg overflow-hidden",
|
|
847
|
+
center ? "mx-auto" : "",
|
|
848
|
+
"focus:outline-none",
|
|
849
|
+
TYPE_BG[n.type ?? "info"]
|
|
850
|
+
].join(" "),
|
|
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 })
|
|
856
|
+
] }),
|
|
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
|
+
] })
|
|
867
|
+
}
|
|
868
|
+
)
|
|
869
|
+
}
|
|
870
|
+
);
|
|
719
871
|
}
|
|
720
|
-
function NotificationProvider({
|
|
872
|
+
function NotificationProvider({
|
|
873
|
+
children,
|
|
874
|
+
position = "top-right"
|
|
875
|
+
}) {
|
|
721
876
|
const [notifications, setNotifications] = React9.useState([]);
|
|
877
|
+
const reduced = framerMotion.useReducedMotion();
|
|
722
878
|
const open = (payload) => {
|
|
723
|
-
setNotifications((prev) => [
|
|
879
|
+
setNotifications((prev) => [
|
|
880
|
+
...prev,
|
|
881
|
+
{ duration: 4e3, ...payload, id: Date.now() + Math.random() }
|
|
882
|
+
]);
|
|
724
883
|
};
|
|
725
884
|
const close = (id) => {
|
|
726
885
|
setNotifications((prev) => prev.filter((n) => n.id !== id));
|
|
727
886
|
};
|
|
728
|
-
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: [
|
|
729
888
|
children,
|
|
730
|
-
|
|
731
|
-
Toast__namespace.
|
|
889
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
890
|
+
Toast__namespace.Viewport,
|
|
732
891
|
{
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
}
|
|
751
|
-
) })
|
|
752
|
-
] }),
|
|
753
|
-
n.description && /* @__PURE__ */ jsxRuntime.jsx(Toast__namespace.Description, { className: "text-center mt-1 text-sm", children: n.description })
|
|
754
|
-
]
|
|
755
|
-
},
|
|
756
|
-
n.id
|
|
757
|
-
)),
|
|
758
|
-
/* @__PURE__ */ jsxRuntime.jsx(Toast__namespace.Viewport, { className: "fixed top-[50px] right-0 flex flex-col gap-2 w-[350px] z-[500000] p-4 outline-none" })
|
|
892
|
+
asChild: true,
|
|
893
|
+
className: [
|
|
894
|
+
VIEWPORT_CLASSES[position],
|
|
895
|
+
"z-[500000] gap-2 w-[332px] p-4 outline-none"
|
|
896
|
+
].join(" "),
|
|
897
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("ul", { children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, children: notifications.map((n) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
898
|
+
NotificationItem,
|
|
899
|
+
{
|
|
900
|
+
n,
|
|
901
|
+
pos: position,
|
|
902
|
+
onClose: close,
|
|
903
|
+
reduced
|
|
904
|
+
},
|
|
905
|
+
n.id
|
|
906
|
+
)) }) })
|
|
907
|
+
}
|
|
908
|
+
)
|
|
759
909
|
] }) });
|
|
760
910
|
}
|
|
761
911
|
function useNotification() {
|
|
@@ -1002,7 +1152,7 @@ function CatalogCarousel({ items, buttonText, onOpen }) {
|
|
|
1002
1152
|
onClick: previousApp,
|
|
1003
1153
|
"aria-label": "Previous",
|
|
1004
1154
|
className: "cursor-pointer rounded-lg transition-all duration-300 hover:bg-ice-dark dark:hover:bg-independence rotate-180",
|
|
1005
|
-
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" }) })
|
|
1006
1156
|
}
|
|
1007
1157
|
),
|
|
1008
1158
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex", children: indexPool.map((index, id) => {
|
|
@@ -1039,7 +1189,7 @@ function CatalogCarousel({ items, buttonText, onOpen }) {
|
|
|
1039
1189
|
onClick: nextApp,
|
|
1040
1190
|
"aria-label": "Next",
|
|
1041
1191
|
className: "cursor-pointer rounded-lg transition-all duration-300 hover:bg-ice-dark dark:hover:bg-independence",
|
|
1042
|
-
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" }) })
|
|
1043
1193
|
}
|
|
1044
1194
|
)
|
|
1045
1195
|
] }) });
|
|
@@ -1169,7 +1319,7 @@ function ContextMenu({ items, position, visible, onClose }) {
|
|
|
1169
1319
|
item.icon,
|
|
1170
1320
|
item.value
|
|
1171
1321
|
] }),
|
|
1172
|
-
/* @__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" }) }) })
|
|
1173
1323
|
]
|
|
1174
1324
|
},
|
|
1175
1325
|
item.key
|
|
@@ -1300,7 +1450,7 @@ var SearchInput = React9__default.default.forwardRef(function SearchInput2({
|
|
|
1300
1450
|
placeholder: placeholder ?? ""
|
|
1301
1451
|
}
|
|
1302
1452
|
),
|
|
1303
|
-
/* @__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" }) })
|
|
1304
1454
|
] })
|
|
1305
1455
|
]
|
|
1306
1456
|
}
|
|
@@ -1411,7 +1561,7 @@ function Dropdown({
|
|
|
1411
1561
|
] }) : /* @__PURE__ */ jsxRuntime.jsx(DropdownPill, { value: innerItems.find((it) => it.key === value)?.label })
|
|
1412
1562
|
}
|
|
1413
1563
|
),
|
|
1414
|
-
/* @__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" }) }) })
|
|
1415
1565
|
]
|
|
1416
1566
|
}
|
|
1417
1567
|
) }),
|
|
@@ -1453,7 +1603,7 @@ function Dropdown({
|
|
|
1453
1603
|
"path",
|
|
1454
1604
|
{
|
|
1455
1605
|
d: "M4 10l4.5 4.5L16 6",
|
|
1456
|
-
stroke: hoveredItem === item.key ? "#fff" :
|
|
1606
|
+
stroke: hoveredItem === item.key ? "#fff" : chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"],
|
|
1457
1607
|
strokeWidth: "2",
|
|
1458
1608
|
strokeLinecap: "round",
|
|
1459
1609
|
strokeLinejoin: "round"
|
|
@@ -1541,7 +1691,7 @@ function TableBody({
|
|
|
1541
1691
|
onClick: () => toggleRow(row.key),
|
|
1542
1692
|
className: `p-2 cursor-pointer origin-center transition-all duration-200 ${visibleRows[row.key]?.visible ? "rotate-180" : "rotate-0"}`,
|
|
1543
1693
|
children: expandRow.expandIcon ?? /* PlusCircle */
|
|
1544
|
-
/* @__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" }) })
|
|
1545
1695
|
}
|
|
1546
1696
|
) }),
|
|
1547
1697
|
columns.map((col, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1594,8 +1744,8 @@ function Pagination({
|
|
|
1594
1744
|
const navBtn = (icon, disabled, onClick) => /* @__PURE__ */ jsxRuntime.jsx(IconButton, { disabled, onClick, icon });
|
|
1595
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" }) });
|
|
1596
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" }) });
|
|
1597
|
-
const disabledColor =
|
|
1598
|
-
const enabledColor =
|
|
1747
|
+
const disabledColor = chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"];
|
|
1748
|
+
const enabledColor = chunkRLL7ES4F_cjs.colors_default.PALETTE.white;
|
|
1599
1749
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-2 items-center justify-end pt-2", children: [
|
|
1600
1750
|
navBtn(
|
|
1601
1751
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "rotate-180 inline-flex", children: doubleChevronRight(activePage === 0 ? disabledColor : enabledColor) }),
|
|
@@ -1732,29 +1882,319 @@ function Table({
|
|
|
1732
1882
|
/* @__PURE__ */ jsxRuntime.jsx("div", { children: footer })
|
|
1733
1883
|
] });
|
|
1734
1884
|
}
|
|
1735
|
-
function
|
|
1885
|
+
function ThemeSwitch({ checked, onChange, label = "Toggle dark mode" }) {
|
|
1736
1886
|
const id = React9.useId();
|
|
1737
|
-
return /* @__PURE__ */ jsxRuntime.jsx("
|
|
1887
|
+
return /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: id, className: "flex items-center gap-2 cursor-pointer select-none", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1738
1888
|
SwitchPrimitive__namespace.Root,
|
|
1739
1889
|
{
|
|
1740
1890
|
id,
|
|
1741
1891
|
checked,
|
|
1742
1892
|
onCheckedChange: (c) => onChange({ target: { checked: c } }),
|
|
1743
|
-
|
|
1893
|
+
"aria-label": label,
|
|
1894
|
+
className: [
|
|
1895
|
+
"relative inline-flex h-6 w-11 items-center rounded-full",
|
|
1896
|
+
"transition-colors duration-200",
|
|
1897
|
+
"bg-foreground-secondary data-[state=checked]:bg-accent",
|
|
1898
|
+
"focus:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2"
|
|
1899
|
+
].join(" "),
|
|
1744
1900
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1745
1901
|
SwitchPrimitive__namespace.Thumb,
|
|
1746
1902
|
{
|
|
1747
|
-
className:
|
|
1748
|
-
|
|
1749
|
-
"
|
|
1903
|
+
className: [
|
|
1904
|
+
"pointer-events-none block h-5 w-5 rounded-full shadow-sm",
|
|
1905
|
+
"transition-transform duration-200",
|
|
1906
|
+
"data-[state=checked]:translate-x-[22px]",
|
|
1907
|
+
"data-[state=unchecked]:translate-x-[2px]",
|
|
1908
|
+
// Moon icon (dark mode indicator) when checked, sun when unchecked
|
|
1909
|
+
checked ? "bg-oxford-blue-900" : "bg-white"
|
|
1910
|
+
].join(" "),
|
|
1911
|
+
children: checked ? (
|
|
1912
|
+
// Moon
|
|
1913
|
+
/* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 16 16", fill: "currentColor", className: "w-3 h-3 m-1 text-manatee", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278z" }) })
|
|
1914
|
+
) : (
|
|
1915
|
+
// Sun
|
|
1916
|
+
/* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 16 16", fill: "currentColor", className: "w-3 h-3 m-1 text-usafa-blue", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M8 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0 1a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0zm0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13zm8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5zM3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8zm10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0zm-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707zM4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707z" }) })
|
|
1917
|
+
)
|
|
1918
|
+
}
|
|
1919
|
+
)
|
|
1920
|
+
}
|
|
1921
|
+
) });
|
|
1922
|
+
}
|
|
1923
|
+
function TopBar({
|
|
1924
|
+
brand,
|
|
1925
|
+
center,
|
|
1926
|
+
actions,
|
|
1927
|
+
height = 56,
|
|
1928
|
+
className = ""
|
|
1929
|
+
}) {
|
|
1930
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1931
|
+
"header",
|
|
1932
|
+
{
|
|
1933
|
+
className: [
|
|
1934
|
+
"sticky top-0 z-[100]",
|
|
1935
|
+
"flex items-center justify-between gap-4",
|
|
1936
|
+
"border-b border-border bg-surface",
|
|
1937
|
+
"px-4 md:px-6",
|
|
1938
|
+
className
|
|
1939
|
+
].join(" "),
|
|
1940
|
+
style: {
|
|
1941
|
+
height,
|
|
1942
|
+
// Expose as CSS var so consumers can write:
|
|
1943
|
+
// padding-top: calc(var(--topbar-height) + 1rem)
|
|
1944
|
+
["--topbar-height"]: `${height}px`
|
|
1945
|
+
},
|
|
1946
|
+
children: [
|
|
1947
|
+
brand !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2 flex-shrink-0", children: brand }) : (
|
|
1948
|
+
// Reserve leading space even when brand is null so center stays centred
|
|
1949
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { "aria-hidden": "true", className: "flex-shrink-0 w-0" })
|
|
1950
|
+
),
|
|
1951
|
+
center !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-1 items-center justify-center min-w-0", children: center }),
|
|
1952
|
+
actions !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-2 flex-shrink-0", children: actions })
|
|
1953
|
+
]
|
|
1954
|
+
}
|
|
1955
|
+
);
|
|
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,
|
|
1750
2015
|
{
|
|
1751
|
-
|
|
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"
|
|
1752
2021
|
}
|
|
1753
|
-
)
|
|
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 })
|
|
1754
2101
|
}
|
|
1755
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
|
+
}
|
|
1756
2125
|
}
|
|
1757
|
-
)
|
|
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
|
+
);
|
|
1758
2198
|
}
|
|
1759
2199
|
function TextInput({
|
|
1760
2200
|
value,
|
|
@@ -1883,7 +2323,7 @@ function NumberInput({
|
|
|
1883
2323
|
{
|
|
1884
2324
|
onClick: onIncrement,
|
|
1885
2325
|
className: "rotate-180 cursor-pointer transition-all duration-300 hover:bg-ice rounded-sm",
|
|
1886
|
-
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" }) })
|
|
1887
2327
|
}
|
|
1888
2328
|
),
|
|
1889
2329
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1891,7 +2331,7 @@ function NumberInput({
|
|
|
1891
2331
|
{
|
|
1892
2332
|
onClick: onDecrement,
|
|
1893
2333
|
className: "cursor-pointer transition-all duration-300 hover:bg-ice rounded-sm",
|
|
1894
|
-
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" }) })
|
|
1895
2335
|
}
|
|
1896
2336
|
)
|
|
1897
2337
|
] })
|
|
@@ -1921,7 +2361,7 @@ function Password({
|
|
|
1921
2361
|
iconColor
|
|
1922
2362
|
}) {
|
|
1923
2363
|
const [passwordVisible, setPasswordVisible] = React9.useState(false);
|
|
1924
|
-
const color = iconColor ??
|
|
2364
|
+
const color = iconColor ?? chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"];
|
|
1925
2365
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex flex-col items-center justify-center", style: style ?? {}, children: [
|
|
1926
2366
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex ${layout === "vertical" ? "flex-col" : "flex-row items-center gap-2"}`, children: [
|
|
1927
2367
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1979,59 +2419,85 @@ function Password({
|
|
|
1979
2419
|
] });
|
|
1980
2420
|
}
|
|
1981
2421
|
function Checkbox({
|
|
1982
|
-
|
|
1983
|
-
|
|
2422
|
+
checked,
|
|
2423
|
+
value,
|
|
2424
|
+
// legacy alias
|
|
2425
|
+
onChange,
|
|
1984
2426
|
label,
|
|
1985
2427
|
name,
|
|
1986
2428
|
htmlFor,
|
|
1987
2429
|
errorMessage,
|
|
1988
|
-
|
|
1989
|
-
onChange
|
|
2430
|
+
disabled = false
|
|
1990
2431
|
}) {
|
|
1991
|
-
|
|
2432
|
+
const isChecked = checked ?? value ?? false;
|
|
2433
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
1992
2434
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1993
|
-
"
|
|
2435
|
+
"label",
|
|
1994
2436
|
{
|
|
1995
|
-
|
|
2437
|
+
htmlFor,
|
|
2438
|
+
className: [
|
|
2439
|
+
"inline-flex items-center gap-2.5",
|
|
2440
|
+
disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"
|
|
2441
|
+
].join(" "),
|
|
1996
2442
|
children: [
|
|
1997
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1998
|
-
"label",
|
|
1999
|
-
{
|
|
2000
|
-
htmlFor,
|
|
2001
|
-
className: "font-bold text-md text-prussian-blue dark:text-white cursor-pointer",
|
|
2002
|
-
children: label
|
|
2003
|
-
}
|
|
2004
|
-
),
|
|
2005
2443
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2006
2444
|
CheckboxPrimitive__namespace.Root,
|
|
2007
2445
|
{
|
|
2008
2446
|
id: htmlFor,
|
|
2009
2447
|
name,
|
|
2010
|
-
checked:
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
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(" "),
|
|
2015
2464
|
"aria-label": typeof label === "string" ? label : void 0,
|
|
2016
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2017
|
-
|
|
2465
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2466
|
+
CheckboxPrimitive__namespace.Indicator,
|
|
2018
2467
|
{
|
|
2019
|
-
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2023
|
-
|
|
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
|
+
)
|
|
2024
2489
|
}
|
|
2025
|
-
)
|
|
2490
|
+
)
|
|
2026
2491
|
}
|
|
2027
|
-
)
|
|
2492
|
+
),
|
|
2493
|
+
label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-foreground-secondary select-none leading-snug", children: label })
|
|
2028
2494
|
]
|
|
2029
2495
|
}
|
|
2030
2496
|
),
|
|
2031
|
-
/* @__PURE__ */ jsxRuntime.jsx("
|
|
2497
|
+
errorMessage && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-status-error pl-[26px]", children: errorMessage })
|
|
2032
2498
|
] });
|
|
2033
2499
|
}
|
|
2034
|
-
function
|
|
2500
|
+
function Switch({
|
|
2035
2501
|
checked = false,
|
|
2036
2502
|
onChange,
|
|
2037
2503
|
checkedIcon,
|
|
@@ -2107,7 +2573,7 @@ function AutoComplete({
|
|
|
2107
2573
|
"aria-autocomplete": "list"
|
|
2108
2574
|
}
|
|
2109
2575
|
),
|
|
2110
|
-
/* @__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" }) })
|
|
2111
2577
|
] }) }),
|
|
2112
2578
|
/* @__PURE__ */ jsxRuntime.jsx(Popover__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2113
2579
|
Popover__namespace.Content,
|
|
@@ -2200,7 +2666,7 @@ function TreeSelect({
|
|
|
2200
2666
|
)),
|
|
2201
2667
|
value.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(DropdownPill, { value: `+${value.length - 1} more` })
|
|
2202
2668
|
] }) : value != null ? /* @__PURE__ */ jsxRuntime.jsx(DropdownPill, { value: innerItems.find((it) => it.key === value)?.label }) : null }),
|
|
2203
|
-
/* @__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" }) }) })
|
|
2204
2670
|
]
|
|
2205
2671
|
}
|
|
2206
2672
|
) }),
|
|
@@ -2230,7 +2696,7 @@ function TreeSelect({
|
|
|
2230
2696
|
"path",
|
|
2231
2697
|
{
|
|
2232
2698
|
d: "M4 10l4.5 4.5L16 6",
|
|
2233
|
-
stroke: hoveredItem === item.key ? "#fff" :
|
|
2699
|
+
stroke: hoveredItem === item.key ? "#fff" : chunkRLL7ES4F_cjs.colors_default.PALETTE["prussian-blue"],
|
|
2234
2700
|
strokeWidth: "2",
|
|
2235
2701
|
strokeLinecap: "round",
|
|
2236
2702
|
strokeLinejoin: "round"
|
|
@@ -2312,7 +2778,7 @@ function FileInput({
|
|
|
2312
2778
|
}
|
|
2313
2779
|
),
|
|
2314
2780
|
files.length === 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col h-full items-center justify-center gap-2", children: [
|
|
2315
|
-
/* @__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" }) }),
|
|
2316
2782
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-prussian-blue dark:text-white text-sm", children: "Click or Drop a file" })
|
|
2317
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(
|
|
2318
2784
|
"div",
|
|
@@ -2329,7 +2795,7 @@ function FileInput({
|
|
|
2329
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" }) })
|
|
2330
2796
|
}
|
|
2331
2797
|
),
|
|
2332
|
-
/* @__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: [
|
|
2333
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" }),
|
|
2334
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" })
|
|
2335
2801
|
] }),
|
|
@@ -2374,9 +2840,9 @@ function getMonthDays(year, month) {
|
|
|
2374
2840
|
}
|
|
2375
2841
|
return days;
|
|
2376
2842
|
}
|
|
2377
|
-
var ChevronRight2 = ({ color =
|
|
2378
|
-
var DoubleChevronRight2 = ({ color =
|
|
2379
|
-
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" }) });
|
|
2380
2846
|
function DatePickerBase({
|
|
2381
2847
|
value,
|
|
2382
2848
|
onChange,
|
|
@@ -2633,20 +3099,21 @@ var DatePicker_default = Temporal;
|
|
|
2633
3099
|
|
|
2634
3100
|
Object.defineProperty(exports, "COLORS", {
|
|
2635
3101
|
enumerable: true,
|
|
2636
|
-
get: function () { return
|
|
3102
|
+
get: function () { return chunkRLL7ES4F_cjs.colors_default; }
|
|
2637
3103
|
});
|
|
2638
3104
|
Object.defineProperty(exports, "palette", {
|
|
2639
3105
|
enumerable: true,
|
|
2640
|
-
get: function () { return
|
|
3106
|
+
get: function () { return chunkRLL7ES4F_cjs.PALETTE; }
|
|
2641
3107
|
});
|
|
2642
3108
|
Object.defineProperty(exports, "semanticTokens", {
|
|
2643
3109
|
enumerable: true,
|
|
2644
|
-
get: function () { return
|
|
3110
|
+
get: function () { return chunkRLL7ES4F_cjs.semanticTokens; }
|
|
2645
3111
|
});
|
|
2646
3112
|
Object.defineProperty(exports, "vars", {
|
|
2647
3113
|
enumerable: true,
|
|
2648
|
-
get: function () { return
|
|
3114
|
+
get: function () { return chunkRLL7ES4F_cjs.vars; }
|
|
2649
3115
|
});
|
|
3116
|
+
exports.AppShell = AppShell;
|
|
2650
3117
|
exports.AutoComplete = AutoComplete;
|
|
2651
3118
|
exports.Button = Button;
|
|
2652
3119
|
exports.Catalog = Catalog;
|
|
@@ -2673,15 +3140,21 @@ exports.OpaqueGridCard = OpaqueGridCard;
|
|
|
2673
3140
|
exports.Password = Password;
|
|
2674
3141
|
exports.ScalableContainer = ScalableContainer;
|
|
2675
3142
|
exports.SearchInput = SearchInput_default;
|
|
2676
|
-
exports.
|
|
3143
|
+
exports.Sidebar = Sidebar;
|
|
3144
|
+
exports.SkeletonBox = SkeletonBox;
|
|
3145
|
+
exports.SkeletonCard = SkeletonCard;
|
|
3146
|
+
exports.SkeletonCircle = SkeletonCircle;
|
|
3147
|
+
exports.SkeletonText = SkeletonText;
|
|
3148
|
+
exports.Switch = Switch;
|
|
2677
3149
|
exports.Table = Table;
|
|
2678
3150
|
exports.Tabs = Tabs;
|
|
2679
3151
|
exports.Temporal = DatePicker_default;
|
|
2680
3152
|
exports.TextInput = TextInput;
|
|
2681
|
-
exports.ThemeSwitch =
|
|
3153
|
+
exports.ThemeSwitch = ThemeSwitch;
|
|
2682
3154
|
exports.ToggleButton = ToggleButton;
|
|
2683
3155
|
exports.Tooltip = Tooltip;
|
|
2684
3156
|
exports.TooltipProvider = TooltipProvider;
|
|
3157
|
+
exports.TopBar = TopBar;
|
|
2685
3158
|
exports.Tree = Tree;
|
|
2686
3159
|
exports.TreeSelect = TreeSelect;
|
|
2687
3160
|
exports.Wizard = Wizard;
|