@firecms/ui 3.1.0-canary.1df3b2c → 3.1.0-canary.501d471

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/components/BooleanSwitchWithLabel.d.ts +2 -1
  2. package/dist/components/Chip.d.ts +1 -1
  3. package/dist/components/MultiSelect.d.ts +1 -1
  4. package/dist/components/ResizablePanels.d.ts +16 -0
  5. package/dist/components/SearchableSelect.d.ts +48 -0
  6. package/dist/components/Select.d.ts +1 -1
  7. package/dist/components/Tabs.d.ts +8 -1
  8. package/dist/components/Tooltip.d.ts +18 -2
  9. package/dist/components/index.d.ts +2 -0
  10. package/dist/hooks/useOutsideAlerter.d.ts +1 -1
  11. package/dist/icons/FirestoreIcon.d.ts +6 -0
  12. package/dist/icons/components/DatabaseIcon.d.ts +6 -0
  13. package/dist/icons/index.d.ts +2 -0
  14. package/dist/index.es.js +1444 -431
  15. package/dist/index.es.js.map +1 -1
  16. package/dist/index.umd.js +1446 -433
  17. package/dist/index.umd.js.map +1 -1
  18. package/package.json +6 -6
  19. package/src/components/BooleanSwitchWithLabel.tsx +4 -0
  20. package/src/components/Button.tsx +2 -1
  21. package/src/components/Chip.tsx +4 -3
  22. package/src/components/DateTimeField.tsx +7 -2
  23. package/src/components/DebouncedTextField.tsx +3 -3
  24. package/src/components/MultiSelect.tsx +27 -10
  25. package/src/components/ResizablePanels.tsx +181 -0
  26. package/src/components/SearchableSelect.tsx +335 -0
  27. package/src/components/Select.tsx +62 -62
  28. package/src/components/Skeleton.tsx +4 -2
  29. package/src/components/Tabs.tsx +150 -34
  30. package/src/components/TextareaAutosize.tsx +77 -212
  31. package/src/components/Tooltip.tsx +7 -6
  32. package/src/components/index.tsx +2 -0
  33. package/src/hooks/useOutsideAlerter.tsx +1 -1
  34. package/src/icons/FirestoreIcon.tsx +47 -0
  35. package/src/icons/components/DatabaseIcon.tsx +10 -0
  36. package/src/icons/index.ts +2 -0
package/dist/index.umd.js CHANGED
@@ -1,6 +1,6 @@
1
1
  (function(global, factory) {
2
- typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("react/jsx-runtime"), require("react-compiler-runtime"), require("react"), require("@radix-ui/react-collapsible"), require("clsx"), require("tailwind-merge"), require("@radix-ui/react-checkbox"), require("@material-design-icons/font/filled.css"), require("@radix-ui/react-tooltip"), require("@radix-ui/react-dialog"), require("@radix-ui/react-visually-hidden"), require("react-dropzone"), require("@radix-ui/react-label"), require("react-fast-compare"), require("markdown-it"), require("@radix-ui/react-dropdown-menu"), require("@radix-ui/react-menubar"), require("@radix-ui/react-popover"), require("cmdk"), require("@radix-ui/react-separator"), require("@radix-ui/react-radio-group"), require("@radix-ui/react-select"), require("@radix-ui/react-slider"), require("react-dom"), require("@radix-ui/react-tabs")) : typeof define === "function" && define.amd ? define(["exports", "react/jsx-runtime", "react-compiler-runtime", "react", "@radix-ui/react-collapsible", "clsx", "tailwind-merge", "@radix-ui/react-checkbox", "@material-design-icons/font/filled.css", "@radix-ui/react-tooltip", "@radix-ui/react-dialog", "@radix-ui/react-visually-hidden", "react-dropzone", "@radix-ui/react-label", "react-fast-compare", "markdown-it", "@radix-ui/react-dropdown-menu", "@radix-ui/react-menubar", "@radix-ui/react-popover", "cmdk", "@radix-ui/react-separator", "@radix-ui/react-radio-group", "@radix-ui/react-select", "@radix-ui/react-slider", "react-dom", "@radix-ui/react-tabs"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global["FireCMS UI"] = {}, global.jsxRuntime, global.reactCompilerRuntime, global.React, global.Collapsible, global.clsx, global.tailwindMerge, global.CheckboxPrimitive, null, global.TooltipPrimitive, global.DialogPrimitive, global.VisuallyHidden, global.reactDropzone, global.LabelPrimitive, global.equal, global.MarkdownIt, global.DropdownMenu, global.MenubarPrimitive, global.PopoverPrimitive, global.cmdk, global.SeparatorPrimitive, global.RadioGroupPrimitive, global.SelectPrimitive, global.SliderPrimitive, global.ReactDOM, global.TabsPrimitive));
3
- })(this, (function(exports2, jsxRuntime, reactCompilerRuntime, React, Collapsible, clsx, tailwindMerge, CheckboxPrimitive, filled_css, TooltipPrimitive, DialogPrimitive, VisuallyHidden, reactDropzone, LabelPrimitive, equal, MarkdownIt, DropdownMenu, MenubarPrimitive, PopoverPrimitive, cmdk, SeparatorPrimitive, RadioGroupPrimitive, SelectPrimitive, SliderPrimitive, ReactDOM, TabsPrimitive) {
2
+ typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("react/jsx-runtime"), require("react-compiler-runtime"), require("react"), require("@radix-ui/react-collapsible"), require("clsx"), require("tailwind-merge"), require("@radix-ui/react-checkbox"), require("@material-design-icons/font/filled.css"), require("@radix-ui/react-tooltip"), require("@radix-ui/react-dialog"), require("@radix-ui/react-visually-hidden"), require("react-dropzone"), require("@radix-ui/react-label"), require("react-fast-compare"), require("markdown-it"), require("@radix-ui/react-dropdown-menu"), require("@radix-ui/react-menubar"), require("@radix-ui/react-popover"), require("cmdk"), require("@radix-ui/react-separator"), require("@radix-ui/react-radio-group"), require("@radix-ui/react-select"), require("@radix-ui/react-slider"), require("@radix-ui/react-tabs")) : typeof define === "function" && define.amd ? define(["exports", "react/jsx-runtime", "react-compiler-runtime", "react", "@radix-ui/react-collapsible", "clsx", "tailwind-merge", "@radix-ui/react-checkbox", "@material-design-icons/font/filled.css", "@radix-ui/react-tooltip", "@radix-ui/react-dialog", "@radix-ui/react-visually-hidden", "react-dropzone", "@radix-ui/react-label", "react-fast-compare", "markdown-it", "@radix-ui/react-dropdown-menu", "@radix-ui/react-menubar", "@radix-ui/react-popover", "cmdk", "@radix-ui/react-separator", "@radix-ui/react-radio-group", "@radix-ui/react-select", "@radix-ui/react-slider", "@radix-ui/react-tabs"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global["FireCMS UI"] = {}, global.jsxRuntime, global.reactCompilerRuntime, global.React, global.Collapsible, global.clsx, global.tailwindMerge, global.CheckboxPrimitive, null, global.TooltipPrimitive, global.DialogPrimitive, global.VisuallyHidden, global.reactDropzone, global.LabelPrimitive, global.equal, global.MarkdownIt, global.DropdownMenu, global.MenubarPrimitive, global.PopoverPrimitive, global.cmdk, global.SeparatorPrimitive, global.RadioGroupPrimitive, global.SelectPrimitive, global.SliderPrimitive, global.TabsPrimitive));
3
+ })(this, (function(exports2, jsxRuntime, reactCompilerRuntime, React, Collapsible, clsx, tailwindMerge, CheckboxPrimitive, filled_css, TooltipPrimitive, DialogPrimitive, VisuallyHidden, reactDropzone, LabelPrimitive, equal, MarkdownIt, DropdownMenu, MenubarPrimitive, PopoverPrimitive, cmdk, SeparatorPrimitive, RadioGroupPrimitive, SelectPrimitive, SliderPrimitive, TabsPrimitive) {
4
4
  "use strict";"use client";
5
5
 
6
6
  function _interopNamespaceDefault(e) {
@@ -33,7 +33,6 @@
33
33
  const RadioGroupPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(RadioGroupPrimitive);
34
34
  const SelectPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(SelectPrimitive);
35
35
  const SliderPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(SliderPrimitive);
36
- const ReactDOM__namespace = /* @__PURE__ */ _interopNamespaceDefault(ReactDOM);
37
36
  const TabsPrimitive__namespace = /* @__PURE__ */ _interopNamespaceDefault(TabsPrimitive);
38
37
  const focusedDisabled = "focus-visible:ring-0 focus-visible:ring-offset-0";
39
38
  const focusedInvisibleMixin = "focus:bg-opacity-70 focus:bg-surface-accent-100 focus:dark:bg-surface-800 focus:dark:bg-opacity-60 focus:bg-surface-accent-100/70 dark:focus:bg-surface-800/60";
@@ -822,6 +821,7 @@
822
821
  className,
823
822
  fullWidth = true,
824
823
  inputClassName,
824
+ switchAdornment,
825
825
  ...props
826
826
  }) {
827
827
  const ref = React.useRef(null);
@@ -847,6 +847,7 @@
847
847
  }
848
848
  }, children: [
849
849
  /* @__PURE__ */ jsxRuntime.jsx(BooleanSwitch, { value, ref: refInput, size, className: cls(invisible && focus ? focusedClasses : "", inputClassName), disabled, ...props }),
850
+ switchAdornment,
850
851
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: cls("flex-grow", position === "end" ? "mr-4" : "ml-4", size === "small" || size === "smallest" ? "text-sm" : "text-base"), children: label })
851
852
  ] });
852
853
  };
@@ -863,18 +864,29 @@
863
864
  let t5;
864
865
  let t6;
865
866
  if ($[0] !== t0) {
866
- ({
867
- children,
868
- className,
869
- variant: t1,
870
- disabled: t2,
871
- size: t3,
872
- startIcon: t4,
873
- fullWidth: t5,
874
- component: Component,
875
- color: t6,
876
- ...props
877
- } = t0);
867
+ const {
868
+ children: t72,
869
+ className: t82,
870
+ variant: t92,
871
+ disabled: t102,
872
+ size: t112,
873
+ startIcon: t122,
874
+ fullWidth: t132,
875
+ component: t142,
876
+ color: t152,
877
+ loading,
878
+ ...t162
879
+ } = t0;
880
+ children = t72;
881
+ className = t82;
882
+ t1 = t92;
883
+ t2 = t102;
884
+ t3 = t112;
885
+ t4 = t122;
886
+ t5 = t132;
887
+ Component = t142;
888
+ t6 = t152;
889
+ props = t162;
878
890
  $[0] = t0;
879
891
  $[1] = Component;
880
892
  $[2] = children;
@@ -952,7 +964,7 @@
952
964
  "text-text-disabled dark:text-text-disabled-dark": disabled,
953
965
  "border border-transparent opacity-50": t23,
954
966
  "border border-surface-500 opacity-50": t24,
955
- "border border-transparent bg-surface-300 dark:bg-surface-500 opacity-40 bg-surface-300/40 dark:bg-surface-500/40": t25
967
+ "border border-transparent bg-surface-300 dark:bg-surface-500 opacity-70 bg-surface-300/70 dark:bg-surface-500/70": t25
956
968
  });
957
969
  const sizeClasses2 = cls({
958
970
  "py-1 px-2": size === "small",
@@ -1418,6 +1430,50 @@
1418
1430
  }
1419
1431
  return t0;
1420
1432
  }
1433
+ const sizeMap = {
1434
+ smallest: 16,
1435
+ small: 20,
1436
+ medium: 24,
1437
+ large: 28
1438
+ };
1439
+ function FirestoreIcon(props) {
1440
+ const $ = reactCompilerRuntime.c(7);
1441
+ const s = typeof props.size === "number" ? props.size : sizeMap[props.size ?? "medium"] ?? 24;
1442
+ let t0;
1443
+ let t1;
1444
+ let t2;
1445
+ let t3;
1446
+ if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
1447
+ t0 = /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M22.575 87.933A52.16 52.16 0 0034.787 90.513c5.84.204 11.395-1.004 16.359-3.298a70.68 70.68 0 01-15.948-10.013c-2.98 4.778-7.393 8.548-12.623 10.731z", opacity: ".7" });
1448
+ t1 = /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M35.2 77.205c-10.505-9.714-16.878-23.776-16.339-39.2.018-.499.045-1.001.075-1.5a39.51 39.51 0 00-5.866-.855 38.77 38.77 0 00-8.34.997A53.07 53.07 0 00.022 53.236c-.544 15.58 8.884 29.191 22.553 34.697 5.23-2.18 9.642-5.948 12.625-10.728z", opacity: ".6" });
1449
+ t2 = /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M35.2 77.205a31.63 31.63 0 004.096-13.428c.452-12.985-8.278-24.155-20.36-27.273-.03.5-.058 1.002-.076 1.502-.536 15.421 5.835 29.483 16.34 39.199z", opacity: ".7" });
1450
+ t3 = /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M37.944 0a73.99 73.99 0 00-15.603 21.156 72.82 72.82 0 00-3.41 15.349c12.082 3.117 20.812 14.288 20.36 27.275a31.58 31.58 0 01-4.098 13.425 70.76 70.76 0 0015.948 10.013c11.951-5.523 20.43-17.41 20.919-31.467.318-9.11-3.181-17.228-8.126-24.081C58.711 24.424 37.944 0 37.944 0z" });
1451
+ $[0] = t0;
1452
+ $[1] = t1;
1453
+ $[2] = t2;
1454
+ $[3] = t3;
1455
+ } else {
1456
+ t0 = $[0];
1457
+ t1 = $[1];
1458
+ t2 = $[2];
1459
+ t3 = $[3];
1460
+ }
1461
+ let t4;
1462
+ if ($[4] !== props.className || $[5] !== s) {
1463
+ t4 = /* @__PURE__ */ jsxRuntime.jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", className: props.className, fill: "currentColor", width: s, height: s, viewBox: "0 0 73 91", children: [
1464
+ t0,
1465
+ t1,
1466
+ t2,
1467
+ t3
1468
+ ] });
1469
+ $[4] = props.className;
1470
+ $[5] = s;
1471
+ $[6] = t4;
1472
+ } else {
1473
+ t4 = $[6];
1474
+ }
1475
+ return t4;
1476
+ }
1421
1477
  const _10kIcon = React.forwardRef((props, ref) => {
1422
1478
  const $ = reactCompilerRuntime.c(3);
1423
1479
  let t0;
@@ -8684,6 +8740,20 @@
8684
8740
  return t0;
8685
8741
  });
8686
8742
  DatasetLinkedIcon.displayName = "DatasetLinkedIcon";
8743
+ const DatabaseIcon = React.forwardRef((props, ref) => {
8744
+ const $ = reactCompilerRuntime.c(3);
8745
+ let t0;
8746
+ if ($[0] !== props || $[1] !== ref) {
8747
+ t0 = /* @__PURE__ */ jsxRuntime.jsx(Icon, { ...props, iconKey: "database", ref });
8748
+ $[0] = props;
8749
+ $[1] = ref;
8750
+ $[2] = t0;
8751
+ } else {
8752
+ t0 = $[2];
8753
+ }
8754
+ return t0;
8755
+ });
8756
+ DatabaseIcon.displayName = "DatabaseIcon";
8687
8757
  const DateRangeIcon = React.forwardRef((props, ref) => {
8688
8758
  const $ = reactCompilerRuntime.c(3);
8689
8759
  let t0;
@@ -32294,8 +32364,8 @@
32294
32364
  medium: "px-3 py-1 text-sm",
32295
32365
  large: "px-4 py-1.5 text-sm"
32296
32366
  };
32297
- function Chip(t0) {
32298
- const $ = reactCompilerRuntime.c(18);
32367
+ const Chip = React.forwardRef(function Chip2(t0, ref) {
32368
+ const $ = reactCompilerRuntime.c(19);
32299
32369
  const {
32300
32370
  children,
32301
32371
  colorScheme,
@@ -32350,128 +32420,184 @@
32350
32420
  t10 = $[11];
32351
32421
  }
32352
32422
  let t11;
32353
- if ($[12] !== children || $[13] !== icon || $[14] !== onClick || $[15] !== t10 || $[16] !== t7) {
32354
- t11 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: t7, onClick, style: t10, children: [
32423
+ if ($[12] !== children || $[13] !== icon || $[14] !== onClick || $[15] !== ref || $[16] !== t10 || $[17] !== t7) {
32424
+ t11 = /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: t7, onClick, style: t10, children: [
32355
32425
  children,
32356
32426
  icon
32357
32427
  ] });
32358
32428
  $[12] = children;
32359
32429
  $[13] = icon;
32360
32430
  $[14] = onClick;
32361
- $[15] = t10;
32362
- $[16] = t7;
32363
- $[17] = t11;
32431
+ $[15] = ref;
32432
+ $[16] = t10;
32433
+ $[17] = t7;
32434
+ $[18] = t11;
32364
32435
  } else {
32365
- t11 = $[17];
32436
+ t11 = $[18];
32366
32437
  }
32367
32438
  return t11;
32368
- }
32369
- const Tooltip = (t0) => {
32370
- const $ = reactCompilerRuntime.c(28);
32371
- const {
32372
- open,
32373
- defaultOpen,
32374
- side: t1,
32375
- delayDuration: t2,
32376
- sideOffset,
32377
- align,
32378
- onOpenChange,
32379
- title,
32380
- tooltipClassName,
32381
- tooltipStyle,
32382
- children,
32383
- asChild: t3,
32384
- container,
32385
- className,
32386
- style
32387
- } = t0;
32439
+ });
32440
+ const Tooltip = React.forwardRef((t0, ref) => {
32441
+ const $ = reactCompilerRuntime.c(47);
32442
+ let align;
32443
+ let children;
32444
+ let className;
32445
+ let container;
32446
+ let defaultOpen;
32447
+ let onOpenChange;
32448
+ let open;
32449
+ let props;
32450
+ let sideOffset;
32451
+ let style;
32452
+ let t1;
32453
+ let t2;
32454
+ let t3;
32455
+ let title;
32456
+ let tooltipClassName;
32457
+ let tooltipStyle;
32458
+ if ($[0] !== t0) {
32459
+ ({
32460
+ open,
32461
+ defaultOpen,
32462
+ side: t1,
32463
+ delayDuration: t2,
32464
+ sideOffset,
32465
+ align,
32466
+ onOpenChange,
32467
+ title,
32468
+ tooltipClassName,
32469
+ tooltipStyle,
32470
+ children,
32471
+ asChild: t3,
32472
+ container,
32473
+ className,
32474
+ style,
32475
+ ...props
32476
+ } = t0);
32477
+ $[0] = t0;
32478
+ $[1] = align;
32479
+ $[2] = children;
32480
+ $[3] = className;
32481
+ $[4] = container;
32482
+ $[5] = defaultOpen;
32483
+ $[6] = onOpenChange;
32484
+ $[7] = open;
32485
+ $[8] = props;
32486
+ $[9] = sideOffset;
32487
+ $[10] = style;
32488
+ $[11] = t1;
32489
+ $[12] = t2;
32490
+ $[13] = t3;
32491
+ $[14] = title;
32492
+ $[15] = tooltipClassName;
32493
+ $[16] = tooltipStyle;
32494
+ } else {
32495
+ align = $[1];
32496
+ children = $[2];
32497
+ className = $[3];
32498
+ container = $[4];
32499
+ defaultOpen = $[5];
32500
+ onOpenChange = $[6];
32501
+ open = $[7];
32502
+ props = $[8];
32503
+ sideOffset = $[9];
32504
+ style = $[10];
32505
+ t1 = $[11];
32506
+ t2 = $[12];
32507
+ t3 = $[13];
32508
+ title = $[14];
32509
+ tooltipClassName = $[15];
32510
+ tooltipStyle = $[16];
32511
+ }
32388
32512
  const side = t1 === void 0 ? "bottom" : t1;
32389
32513
  const delayDuration = t2 === void 0 ? 200 : t2;
32390
32514
  const asChild = t3 === void 0 ? false : t3;
32391
- useInjectStyles("Tooltip", styles$1);
32515
+ useInjectStyles("Tooltip", styles);
32392
32516
  const contextContainer = usePortalContainer();
32393
32517
  const finalContainer = container ?? contextContainer ?? void 0;
32394
32518
  if (!title) {
32395
32519
  let t42;
32396
- if ($[0] !== children) {
32520
+ if ($[17] !== children) {
32397
32521
  t42 = /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
32398
- $[0] = children;
32399
- $[1] = t42;
32522
+ $[17] = children;
32523
+ $[18] = t42;
32400
32524
  } else {
32401
- t42 = $[1];
32525
+ t42 = $[18];
32402
32526
  }
32403
32527
  return t42;
32404
32528
  }
32405
32529
  let t4;
32406
- if ($[2] !== asChild || $[3] !== children || $[4] !== className || $[5] !== style) {
32407
- t4 = asChild ? /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Trigger, { asChild: true, children }) : /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Trigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("div", { style, className, children }) });
32408
- $[2] = asChild;
32409
- $[3] = children;
32410
- $[4] = className;
32411
- $[5] = style;
32412
- $[6] = t4;
32413
- } else {
32414
- t4 = $[6];
32530
+ if ($[19] !== asChild || $[20] !== children || $[21] !== className || $[22] !== props || $[23] !== ref || $[24] !== style) {
32531
+ t4 = asChild ? /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Trigger, { asChild: true, children }) : /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Trigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("div", { style, className, ref, ...props, children }) });
32532
+ $[19] = asChild;
32533
+ $[20] = children;
32534
+ $[21] = className;
32535
+ $[22] = props;
32536
+ $[23] = ref;
32537
+ $[24] = style;
32538
+ $[25] = t4;
32539
+ } else {
32540
+ t4 = $[25];
32415
32541
  }
32416
32542
  const trigger = t4;
32417
32543
  let t5;
32418
- if ($[7] !== tooltipClassName) {
32544
+ if ($[26] !== tooltipClassName) {
32419
32545
  t5 = cls("TooltipContent", "max-w-lg leading-relaxed", "z-50 rounded px-3 py-2 text-xs leading-none bg-surface-accent-700 dark:bg-surface-accent-800 bg-opacity-90 bg-surface-accent-700/90 dark:bg-surface-accent-800/90 font-medium text-surface-accent-50 shadow-2xl select-none duration-400 ease-in transform opacity-100", tooltipClassName);
32420
- $[7] = tooltipClassName;
32421
- $[8] = t5;
32546
+ $[26] = tooltipClassName;
32547
+ $[27] = t5;
32422
32548
  } else {
32423
- t5 = $[8];
32549
+ t5 = $[27];
32424
32550
  }
32425
32551
  const t6 = sideOffset === void 0 ? 4 : sideOffset;
32426
32552
  let t7;
32427
- if ($[9] !== align || $[10] !== side || $[11] !== t5 || $[12] !== t6 || $[13] !== title || $[14] !== tooltipStyle) {
32553
+ if ($[28] !== align || $[29] !== side || $[30] !== t5 || $[31] !== t6 || $[32] !== title || $[33] !== tooltipStyle) {
32428
32554
  t7 = /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Content, { className: t5, style: tooltipStyle, sideOffset: t6, align, side, children: title });
32429
- $[9] = align;
32430
- $[10] = side;
32431
- $[11] = t5;
32432
- $[12] = t6;
32433
- $[13] = title;
32434
- $[14] = tooltipStyle;
32435
- $[15] = t7;
32555
+ $[28] = align;
32556
+ $[29] = side;
32557
+ $[30] = t5;
32558
+ $[31] = t6;
32559
+ $[32] = title;
32560
+ $[33] = tooltipStyle;
32561
+ $[34] = t7;
32436
32562
  } else {
32437
- t7 = $[15];
32563
+ t7 = $[34];
32438
32564
  }
32439
32565
  let t8;
32440
- if ($[16] !== finalContainer || $[17] !== t7) {
32566
+ if ($[35] !== finalContainer || $[36] !== t7) {
32441
32567
  t8 = /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Portal, { container: finalContainer, children: t7 });
32442
- $[16] = finalContainer;
32443
- $[17] = t7;
32444
- $[18] = t8;
32568
+ $[35] = finalContainer;
32569
+ $[36] = t7;
32570
+ $[37] = t8;
32445
32571
  } else {
32446
- t8 = $[18];
32572
+ t8 = $[37];
32447
32573
  }
32448
32574
  let t9;
32449
- if ($[19] !== defaultOpen || $[20] !== onOpenChange || $[21] !== open || $[22] !== t8 || $[23] !== trigger) {
32575
+ if ($[38] !== defaultOpen || $[39] !== onOpenChange || $[40] !== open || $[41] !== t8 || $[42] !== trigger) {
32450
32576
  t9 = /* @__PURE__ */ jsxRuntime.jsxs(TooltipPrimitive__namespace.Root, { open, onOpenChange, defaultOpen, children: [
32451
32577
  trigger,
32452
32578
  t8
32453
32579
  ] });
32454
- $[19] = defaultOpen;
32455
- $[20] = onOpenChange;
32456
- $[21] = open;
32457
- $[22] = t8;
32458
- $[23] = trigger;
32459
- $[24] = t9;
32580
+ $[38] = defaultOpen;
32581
+ $[39] = onOpenChange;
32582
+ $[40] = open;
32583
+ $[41] = t8;
32584
+ $[42] = trigger;
32585
+ $[43] = t9;
32460
32586
  } else {
32461
- t9 = $[24];
32587
+ t9 = $[43];
32462
32588
  }
32463
32589
  let t10;
32464
- if ($[25] !== delayDuration || $[26] !== t9) {
32590
+ if ($[44] !== delayDuration || $[45] !== t9) {
32465
32591
  t10 = /* @__PURE__ */ jsxRuntime.jsx(TooltipPrimitive__namespace.Provider, { delayDuration, children: t9 });
32466
- $[25] = delayDuration;
32467
- $[26] = t9;
32468
- $[27] = t10;
32592
+ $[44] = delayDuration;
32593
+ $[45] = t9;
32594
+ $[46] = t10;
32469
32595
  } else {
32470
- t10 = $[27];
32596
+ t10 = $[46];
32471
32597
  }
32472
32598
  return t10;
32473
- };
32474
- const styles$1 = `
32599
+ });
32600
+ const styles = `
32475
32601
 
32476
32602
  .TooltipContent {
32477
32603
  animation-duration: 220ms;
@@ -32943,7 +33069,7 @@
32943
33069
  const [focused, setFocused] = React.useState(false);
32944
33070
  const [internalValue, setInternalValue] = React.useState("");
32945
33071
  const [isTyping, setIsTyping] = React.useState(false);
32946
- const invalidValue = value !== void 0 && value !== null && !(value instanceof Date);
33072
+ const invalidValue = value !== void 0 && value !== null && (!(value instanceof Date) || isNaN(value.getTime()));
32947
33073
  useInjectStyles("DateTimeField", inputStyles);
32948
33074
  const handleClear = (e) => {
32949
33075
  e.preventDefault();
@@ -32966,7 +33092,12 @@
32966
33092
  // undefined = local timezone
32967
33093
  };
32968
33094
  const formatter = new Intl.DateTimeFormat("en-CA", options);
32969
- const parts = formatter.formatToParts(dateValue);
33095
+ let parts;
33096
+ try {
33097
+ parts = formatter.formatToParts(dateValue);
33098
+ } catch {
33099
+ return "";
33100
+ }
32970
33101
  const getPart = (type) => parts.find((p) => p.type === type)?.value ?? "";
32971
33102
  const year = getPart("year");
32972
33103
  const month = getPart("month");
@@ -33158,7 +33289,7 @@
33158
33289
  return () => clearTimeout(timeout);
33159
33290
  } else {
33160
33291
  setDisplayed(true);
33161
- return _temp$3;
33292
+ return _temp$4;
33162
33293
  }
33163
33294
  };
33164
33295
  t7 = [open];
@@ -33305,7 +33436,7 @@
33305
33436
  }
33306
33437
  return t28;
33307
33438
  };
33308
- function _temp$3() {
33439
+ function _temp$4() {
33309
33440
  }
33310
33441
  function DialogActions(t0) {
33311
33442
  const $ = reactCompilerRuntime.c(7);
@@ -34835,7 +34966,7 @@
34835
34966
  }
34836
34967
  const MultiSelectContext = React__namespace.createContext({});
34837
34968
  const MultiSelect = React__namespace.forwardRef((t0, ref) => {
34838
- const $ = reactCompilerRuntime.c(111);
34969
+ const $ = reactCompilerRuntime.c(112);
34839
34970
  const {
34840
34971
  value,
34841
34972
  size: t1,
@@ -34856,7 +34987,8 @@
34856
34987
  renderValues,
34857
34988
  open,
34858
34989
  onOpenChange,
34859
- portalContainer
34990
+ portalContainer,
34991
+ endAdornment
34860
34992
  } = t0;
34861
34993
  const size = t1 === void 0 ? "large" : t1;
34862
34994
  const modalPopover = t2 === void 0 ? true : t2;
@@ -34920,7 +35052,7 @@
34920
35052
  let t12;
34921
35053
  let t13;
34922
35054
  if ($[9] !== children) {
34923
- t13 = children ? React.Children.map(children, _temp$2).filter(Boolean) : [];
35055
+ t13 = children ? React.Children.map(children, _temp$3)?.filter(Boolean) ?? [] : [];
34924
35056
  $[9] = children;
34925
35057
  $[10] = t13;
34926
35058
  } else {
@@ -35121,7 +35253,7 @@
35121
35253
  t30 = $[53];
35122
35254
  }
35123
35255
  let t31;
35124
- if ($[54] !== handleClear || $[55] !== includeClear || $[56] !== isPopoverOpen || $[57] !== optionsMap || $[58] !== placeholder || $[59] !== renderValues || $[60] !== selectedValues || $[61] !== size || $[62] !== toggleOption || $[63] !== useChips) {
35256
+ if ($[54] !== endAdornment || $[55] !== handleClear || $[56] !== includeClear || $[57] !== isPopoverOpen || $[58] !== optionsMap || $[59] !== placeholder || $[60] !== renderValues || $[61] !== selectedValues || $[62] !== size || $[63] !== toggleOption || $[64] !== useChips) {
35125
35257
  t31 = selectedValues.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between items-center w-full", children: [
35126
35258
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1.5 text-start", children: [
35127
35259
  renderValues && renderValues(selectedValues),
@@ -35140,122 +35272,127 @@
35140
35272
  })
35141
35273
  ] }),
35142
35274
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
35143
- includeClear && /* @__PURE__ */ jsxRuntime.jsx(CloseIcon, { className: "ml-4", size: "small", onClick: (event_1) => {
35275
+ includeClear && !endAdornment && /* @__PURE__ */ jsxRuntime.jsx(CloseIcon, { className: "ml-4", size: "small", onClick: (event_1) => {
35144
35276
  event_1.stopPropagation();
35145
35277
  handleClear();
35146
35278
  } }),
35279
+ endAdornment && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-4 flex items-center", onClick: _temp2$1, children: endAdornment }),
35147
35280
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: cls("px-2 h-full flex items-center"), children: /* @__PURE__ */ jsxRuntime.jsx(KeyboardArrowDownIcon, { size: size === "large" ? "medium" : "small", className: cls("transition", isPopoverOpen ? "rotate-180" : "") }) })
35148
35281
  ] })
35149
35282
  ] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between w-full mx-auto", children: [
35150
35283
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: placeholder }),
35151
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cls("px-2 h-full flex items-center"), children: /* @__PURE__ */ jsxRuntime.jsx(KeyboardArrowDownIcon, { size: size === "large" ? "medium" : "small", className: cls("transition", isPopoverOpen ? "rotate-180" : "") }) })
35284
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
35285
+ endAdornment && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ml-4 flex items-center", onClick: _temp3, children: endAdornment }),
35286
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cls("px-2 h-full flex items-center"), children: /* @__PURE__ */ jsxRuntime.jsx(KeyboardArrowDownIcon, { size: size === "large" ? "medium" : "small", className: cls("transition", isPopoverOpen ? "rotate-180" : "") }) })
35287
+ ] })
35152
35288
  ] });
35153
- $[54] = handleClear;
35154
- $[55] = includeClear;
35155
- $[56] = isPopoverOpen;
35156
- $[57] = optionsMap;
35157
- $[58] = placeholder;
35158
- $[59] = renderValues;
35159
- $[60] = selectedValues;
35160
- $[61] = size;
35161
- $[62] = toggleOption;
35162
- $[63] = useChips;
35163
- $[64] = t31;
35164
- } else {
35165
- t31 = $[64];
35289
+ $[54] = endAdornment;
35290
+ $[55] = handleClear;
35291
+ $[56] = includeClear;
35292
+ $[57] = isPopoverOpen;
35293
+ $[58] = optionsMap;
35294
+ $[59] = placeholder;
35295
+ $[60] = renderValues;
35296
+ $[61] = selectedValues;
35297
+ $[62] = size;
35298
+ $[63] = toggleOption;
35299
+ $[64] = useChips;
35300
+ $[65] = t31;
35301
+ } else {
35302
+ t31 = $[65];
35166
35303
  }
35167
35304
  let t32;
35168
- if ($[65] !== handleTogglePopover || $[66] !== t25 || $[67] !== t30 || $[68] !== t31) {
35305
+ if ($[66] !== handleTogglePopover || $[67] !== t25 || $[68] !== t30 || $[69] !== t31) {
35169
35306
  t32 = /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Trigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("button", { ref: t25, onClick: handleTogglePopover, className: t30, children: t31 }) });
35170
- $[65] = handleTogglePopover;
35171
- $[66] = t25;
35172
- $[67] = t30;
35173
- $[68] = t31;
35174
- $[69] = t32;
35307
+ $[66] = handleTogglePopover;
35308
+ $[67] = t25;
35309
+ $[68] = t30;
35310
+ $[69] = t31;
35311
+ $[70] = t32;
35175
35312
  } else {
35176
- t32 = $[69];
35313
+ t32 = $[70];
35177
35314
  }
35178
35315
  let t33;
35179
- if ($[70] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
35316
+ if ($[71] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
35180
35317
  t33 = cls("z-50 overflow-hidden border bg-white dark:bg-surface-900 rounded-lg w-[400px]", defaultBorderMixin);
35181
- $[70] = t33;
35318
+ $[71] = t33;
35182
35319
  } else {
35183
- t33 = $[70];
35320
+ t33 = $[71];
35184
35321
  }
35185
35322
  let t34;
35186
- if ($[71] !== onPopoverOpenChange) {
35323
+ if ($[72] !== onPopoverOpenChange) {
35187
35324
  t34 = () => onPopoverOpenChange(false);
35188
- $[71] = onPopoverOpenChange;
35189
- $[72] = t34;
35325
+ $[72] = onPopoverOpenChange;
35326
+ $[73] = t34;
35190
35327
  } else {
35191
- t34 = $[72];
35328
+ t34 = $[73];
35192
35329
  }
35193
35330
  let t35;
35194
- if ($[73] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
35331
+ if ($[74] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
35195
35332
  t35 = cls(focusedDisabled, "bg-transparent outline-none flex-1 h-full w-full m-4 flex-grow text-surface-accent-900 dark:text-white");
35196
- $[73] = t35;
35333
+ $[74] = t35;
35197
35334
  } else {
35198
- t35 = $[73];
35335
+ t35 = $[74];
35199
35336
  }
35200
35337
  let t36;
35201
- if ($[74] !== handleInputKeyDown) {
35338
+ if ($[75] !== handleInputKeyDown) {
35202
35339
  t36 = /* @__PURE__ */ jsxRuntime.jsx(cmdk.Command.Input, { className: t35, placeholder: "Search...", onKeyDown: handleInputKeyDown });
35203
- $[74] = handleInputKeyDown;
35204
- $[75] = t36;
35340
+ $[75] = handleInputKeyDown;
35341
+ $[76] = t36;
35205
35342
  } else {
35206
- t36 = $[75];
35343
+ t36 = $[76];
35207
35344
  }
35208
35345
  let t37;
35209
- if ($[76] !== handleClear || $[77] !== selectedValues.length) {
35346
+ if ($[77] !== handleClear || $[78] !== selectedValues.length) {
35210
35347
  t37 = selectedValues.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { onClick: handleClear, className: "text-sm justify-center cursor-pointer py-3 px-4 text-text-secondary dark:text-text-secondary-dark", children: "Clear" });
35211
- $[76] = handleClear;
35212
- $[77] = selectedValues.length;
35213
- $[78] = t37;
35348
+ $[77] = handleClear;
35349
+ $[78] = selectedValues.length;
35350
+ $[79] = t37;
35214
35351
  } else {
35215
- t37 = $[78];
35352
+ t37 = $[79];
35216
35353
  }
35217
35354
  let t38;
35218
- if ($[79] !== t36 || $[80] !== t37) {
35355
+ if ($[80] !== t36 || $[81] !== t37) {
35219
35356
  t38 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-row items-center", children: [
35220
35357
  t36,
35221
35358
  t37
35222
35359
  ] });
35223
- $[79] = t36;
35224
- $[80] = t37;
35225
- $[81] = t38;
35360
+ $[80] = t36;
35361
+ $[81] = t37;
35362
+ $[82] = t38;
35226
35363
  } else {
35227
- t38 = $[81];
35364
+ t38 = $[82];
35228
35365
  }
35229
35366
  let t39;
35230
- if ($[82] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
35367
+ if ($[83] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
35231
35368
  t39 = /* @__PURE__ */ jsxRuntime.jsx(Separator, { orientation: "horizontal", className: "my-0" });
35232
- $[82] = t39;
35369
+ $[83] = t39;
35233
35370
  } else {
35234
- t39 = $[82];
35371
+ t39 = $[83];
35235
35372
  }
35236
35373
  let t40;
35237
- if ($[83] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
35374
+ if ($[84] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
35238
35375
  t40 = /* @__PURE__ */ jsxRuntime.jsx(cmdk.Command.Empty, { className: "px-4 py-2 text-sm text-text-secondary dark:text-text-secondary-dark", children: "No results found." });
35239
- $[83] = t40;
35376
+ $[84] = t40;
35240
35377
  } else {
35241
- t40 = $[83];
35378
+ t40 = $[84];
35242
35379
  }
35243
35380
  let t41;
35244
- if ($[84] !== allValues.length || $[85] !== includeSelectAll || $[86] !== selectedValues.length || $[87] !== toggleAll) {
35381
+ if ($[85] !== allValues.length || $[86] !== includeSelectAll || $[87] !== selectedValues.length || $[88] !== toggleAll) {
35245
35382
  t41 = includeSelectAll && /* @__PURE__ */ jsxRuntime.jsxs(cmdk.Command.Item, { onSelect: toggleAll, className: cls("flex flex-row items-center gap-1.5", "cursor-pointer", "m-1", "ring-offset-transparent", "p-1 rounded aria-[selected=true]:outline-none aria-[selected=true]:ring-2 aria-[selected=true]:ring-primary aria-[selected=true]:ring-opacity-75 aria-[selected=true]:ring-primary/75 aria-[selected=true]:ring-offset-2", "aria-[selected=true]:bg-surface-accent-100 aria-[selected=true]:dark:bg-surface-accent-900", "cursor-pointer p-2 rounded aria-[selected=true]:bg-surface-accent-100 aria-[selected=true]:dark:bg-surface-accent-900"), children: [
35246
35383
  /* @__PURE__ */ jsxRuntime.jsx(InnerCheckBox, { checked: selectedValues.length === allValues.length }),
35247
35384
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-text-secondary dark:text-text-secondary-dark", children: "(Select All)" })
35248
35385
  ] }, "all");
35249
- $[84] = allValues.length;
35250
- $[85] = includeSelectAll;
35251
- $[86] = selectedValues.length;
35252
- $[87] = toggleAll;
35253
- $[88] = t41;
35386
+ $[85] = allValues.length;
35387
+ $[86] = includeSelectAll;
35388
+ $[87] = selectedValues.length;
35389
+ $[88] = toggleAll;
35390
+ $[89] = t41;
35254
35391
  } else {
35255
- t41 = $[88];
35392
+ t41 = $[89];
35256
35393
  }
35257
35394
  let t42;
35258
- if ($[89] !== children || $[90] !== t41) {
35395
+ if ($[90] !== children || $[91] !== t41) {
35259
35396
  t42 = /* @__PURE__ */ jsxRuntime.jsxs(cmdk.Command.List, { children: [
35260
35397
  t40,
35261
35398
  /* @__PURE__ */ jsxRuntime.jsxs(cmdk.Command.Group, { children: [
@@ -35263,70 +35400,70 @@
35263
35400
  children
35264
35401
  ] })
35265
35402
  ] });
35266
- $[89] = children;
35267
- $[90] = t41;
35268
- $[91] = t42;
35403
+ $[90] = children;
35404
+ $[91] = t41;
35405
+ $[92] = t42;
35269
35406
  } else {
35270
- t42 = $[91];
35407
+ t42 = $[92];
35271
35408
  }
35272
35409
  let t43;
35273
- if ($[92] !== t38 || $[93] !== t42) {
35410
+ if ($[93] !== t38 || $[94] !== t42) {
35274
35411
  t43 = /* @__PURE__ */ jsxRuntime.jsxs(cmdk.Command, { children: [
35275
35412
  t38,
35276
35413
  t39,
35277
35414
  t42
35278
35415
  ] });
35279
- $[92] = t38;
35280
- $[93] = t42;
35281
- $[94] = t43;
35416
+ $[93] = t38;
35417
+ $[94] = t42;
35418
+ $[95] = t43;
35282
35419
  } else {
35283
- t43 = $[94];
35420
+ t43 = $[95];
35284
35421
  }
35285
35422
  let t44;
35286
- if ($[95] !== t34 || $[96] !== t43) {
35423
+ if ($[96] !== t34 || $[97] !== t43) {
35287
35424
  t44 = /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Content, { className: t33, align: "start", sideOffset: 8, onEscapeKeyDown: t34, children: t43 });
35288
- $[95] = t34;
35289
- $[96] = t43;
35290
- $[97] = t44;
35425
+ $[96] = t34;
35426
+ $[97] = t43;
35427
+ $[98] = t44;
35291
35428
  } else {
35292
- t44 = $[97];
35429
+ t44 = $[98];
35293
35430
  }
35294
35431
  let t45;
35295
- if ($[98] !== finalContainer || $[99] !== t44) {
35432
+ if ($[99] !== finalContainer || $[100] !== t44) {
35296
35433
  t45 = /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { container: finalContainer, children: t44 });
35297
- $[98] = finalContainer;
35298
- $[99] = t44;
35299
- $[100] = t45;
35434
+ $[99] = finalContainer;
35435
+ $[100] = t44;
35436
+ $[101] = t45;
35300
35437
  } else {
35301
- t45 = $[100];
35438
+ t45 = $[101];
35302
35439
  }
35303
35440
  let t46;
35304
- if ($[101] !== modalPopover || $[102] !== onPopoverOpenChange || $[103] !== t24 || $[104] !== t32 || $[105] !== t45) {
35441
+ if ($[102] !== modalPopover || $[103] !== onPopoverOpenChange || $[104] !== t24 || $[105] !== t32 || $[106] !== t45) {
35305
35442
  t46 = /* @__PURE__ */ jsxRuntime.jsxs(PopoverPrimitive__namespace.Root, { open: t24, onOpenChange: onPopoverOpenChange, modal: modalPopover, children: [
35306
35443
  t32,
35307
35444
  t45
35308
35445
  ] });
35309
- $[101] = modalPopover;
35310
- $[102] = onPopoverOpenChange;
35311
- $[103] = t24;
35312
- $[104] = t32;
35313
- $[105] = t45;
35314
- $[106] = t46;
35446
+ $[102] = modalPopover;
35447
+ $[103] = onPopoverOpenChange;
35448
+ $[104] = t24;
35449
+ $[105] = t32;
35450
+ $[106] = t45;
35451
+ $[107] = t46;
35315
35452
  } else {
35316
- t46 = $[106];
35453
+ t46 = $[107];
35317
35454
  }
35318
35455
  let t47;
35319
- if ($[107] !== t22 || $[108] !== t23 || $[109] !== t46) {
35456
+ if ($[108] !== t22 || $[109] !== t23 || $[110] !== t46) {
35320
35457
  t47 = /* @__PURE__ */ jsxRuntime.jsxs(MultiSelectContext.Provider, { value: t22, children: [
35321
35458
  t23,
35322
35459
  t46
35323
35460
  ] });
35324
- $[107] = t22;
35325
- $[108] = t23;
35326
- $[109] = t46;
35327
- $[110] = t47;
35461
+ $[108] = t22;
35462
+ $[109] = t23;
35463
+ $[110] = t46;
35464
+ $[111] = t47;
35328
35465
  } else {
35329
- t47 = $[110];
35466
+ t47 = $[111];
35330
35467
  }
35331
35468
  return t47;
35332
35469
  });
@@ -35403,7 +35540,7 @@
35403
35540
  }
35404
35541
  let t7;
35405
35542
  if ($[15] !== children || $[16] !== t3 || $[17] !== t5 || $[18] !== t6) {
35406
- t7 = /* @__PURE__ */ jsxRuntime.jsxs(cmdk.Command.Item, { onMouseDown: _temp2$1, onSelect: t3, className: t5, children: [
35543
+ t7 = /* @__PURE__ */ jsxRuntime.jsxs(cmdk.Command.Item, { onMouseDown: _temp4, onSelect: t3, className: t5, children: [
35407
35544
  t6,
35408
35545
  children
35409
35546
  ] });
@@ -35461,7 +35598,7 @@
35461
35598
  }
35462
35599
  return t7;
35463
35600
  });
35464
- function _temp$2(child) {
35601
+ function _temp$3(child) {
35465
35602
  if (React__namespace.isValidElement(child)) {
35466
35603
  return child.props.value;
35467
35604
  }
@@ -35471,6 +35608,14 @@
35471
35608
  e.preventDefault();
35472
35609
  e.stopPropagation();
35473
35610
  }
35611
+ function _temp3(e_0) {
35612
+ e_0.preventDefault();
35613
+ e_0.stopPropagation();
35614
+ }
35615
+ function _temp4(e) {
35616
+ e.preventDefault();
35617
+ e.stopPropagation();
35618
+ }
35474
35619
  function Paper(t0) {
35475
35620
  const $ = reactCompilerRuntime.c(6);
35476
35621
  const {
@@ -35579,6 +35724,214 @@
35579
35724
  return t3;
35580
35725
  });
35581
35726
  RadioGroupItem.displayName = RadioGroupPrimitive__namespace.Item.displayName;
35727
+ function ResizablePanels(t0) {
35728
+ const $ = reactCompilerRuntime.c(40);
35729
+ const {
35730
+ firstPanel,
35731
+ secondPanel,
35732
+ showFirstPanel: t1,
35733
+ showSecondPanel: t2,
35734
+ panelSizePercent,
35735
+ onPanelSizeChange,
35736
+ minPanelSizePx: t3,
35737
+ orientation: t4,
35738
+ className
35739
+ } = t0;
35740
+ const showFirstPanel = t1 === void 0 ? true : t1;
35741
+ const showSecondPanel = t2 === void 0 ? true : t2;
35742
+ const minPanelSizePx = t3 === void 0 ? 200 : t3;
35743
+ const orientation = t4 === void 0 ? "horizontal" : t4;
35744
+ const containerRef = React.useRef(null);
35745
+ const isResizingRef = React.useRef(false);
35746
+ const firstPanelRef = React.useRef(null);
35747
+ const startPosRef = React.useRef(0);
35748
+ const startSizeRef = React.useRef(0);
35749
+ const [, setIsResizing] = React.useState(false);
35750
+ const isHorizontal = orientation === "horizontal";
35751
+ let t5;
35752
+ if ($[0] !== isHorizontal || $[1] !== showFirstPanel || $[2] !== showSecondPanel) {
35753
+ t5 = (e) => {
35754
+ if (!showFirstPanel || !showSecondPanel) {
35755
+ return;
35756
+ }
35757
+ e.preventDefault();
35758
+ isResizingRef.current = true;
35759
+ setIsResizing(true);
35760
+ startPosRef.current = isHorizontal ? e.clientX : e.clientY;
35761
+ if (firstPanelRef.current) {
35762
+ const rect = firstPanelRef.current.getBoundingClientRect();
35763
+ startSizeRef.current = isHorizontal ? rect.width : rect.height;
35764
+ }
35765
+ document.body.style.cursor = isHorizontal ? "col-resize" : "row-resize";
35766
+ document.body.style.userSelect = "none";
35767
+ };
35768
+ $[0] = isHorizontal;
35769
+ $[1] = showFirstPanel;
35770
+ $[2] = showSecondPanel;
35771
+ $[3] = t5;
35772
+ } else {
35773
+ t5 = $[3];
35774
+ }
35775
+ const handleResizeStart = t5;
35776
+ let t6;
35777
+ let t7;
35778
+ if ($[4] !== isHorizontal || $[5] !== minPanelSizePx || $[6] !== onPanelSizeChange) {
35779
+ t6 = () => {
35780
+ const handleMouseMove = (e_0) => {
35781
+ if (!isResizingRef.current || !containerRef.current) {
35782
+ return;
35783
+ }
35784
+ const currentPos = isHorizontal ? e_0.clientX : e_0.clientY;
35785
+ const delta = currentPos - startPosRef.current;
35786
+ let newSize = startSizeRef.current + delta;
35787
+ const containerRect = containerRef.current.getBoundingClientRect();
35788
+ const containerTotal = isHorizontal ? containerRect.width : containerRect.height;
35789
+ const maxSize = containerTotal - minPanelSizePx;
35790
+ newSize = Math.max(minPanelSizePx, Math.min(newSize, maxSize));
35791
+ if (firstPanelRef.current) {
35792
+ if (isHorizontal) {
35793
+ firstPanelRef.current.style.width = `${newSize}px`;
35794
+ } else {
35795
+ firstPanelRef.current.style.height = `${newSize}px`;
35796
+ }
35797
+ }
35798
+ };
35799
+ const handleMouseUp = () => {
35800
+ if (isResizingRef.current && containerRef.current && firstPanelRef.current) {
35801
+ isResizingRef.current = false;
35802
+ setIsResizing(false);
35803
+ document.body.style.cursor = "";
35804
+ document.body.style.userSelect = "";
35805
+ const containerRect_0 = containerRef.current.getBoundingClientRect();
35806
+ const firstPanelRect = firstPanelRef.current.getBoundingClientRect();
35807
+ const containerSize = isHorizontal ? containerRect_0.width : containerRect_0.height;
35808
+ const finalSize = isHorizontal ? firstPanelRect.width : firstPanelRect.height;
35809
+ if (containerSize > 0) {
35810
+ const newPercent = finalSize / containerSize * 100;
35811
+ onPanelSizeChange(Math.max(0, Math.min(100, newPercent)));
35812
+ }
35813
+ }
35814
+ };
35815
+ window.addEventListener("mousemove", handleMouseMove);
35816
+ window.addEventListener("mouseup", handleMouseUp);
35817
+ return () => {
35818
+ window.removeEventListener("mousemove", handleMouseMove);
35819
+ window.removeEventListener("mouseup", handleMouseUp);
35820
+ };
35821
+ };
35822
+ t7 = [onPanelSizeChange, isHorizontal, minPanelSizePx];
35823
+ $[4] = isHorizontal;
35824
+ $[5] = minPanelSizePx;
35825
+ $[6] = onPanelSizeChange;
35826
+ $[7] = t6;
35827
+ $[8] = t7;
35828
+ } else {
35829
+ t6 = $[7];
35830
+ t7 = $[8];
35831
+ }
35832
+ React.useEffect(t6, t7);
35833
+ const appliedBasis = !showFirstPanel ? "0%" : showSecondPanel ? `${panelSizePercent}%` : "100%";
35834
+ const t8 = isHorizontal ? "flex-row" : "flex-col";
35835
+ let t9;
35836
+ if ($[9] !== className || $[10] !== t8) {
35837
+ t9 = cls("relative w-full h-full flex overflow-hidden", t8, className);
35838
+ $[9] = className;
35839
+ $[10] = t8;
35840
+ $[11] = t9;
35841
+ } else {
35842
+ t9 = $[11];
35843
+ }
35844
+ const t10 = !showFirstPanel && "hidden";
35845
+ let t11;
35846
+ if ($[12] !== t10) {
35847
+ t11 = cls("relative flex-shrink-0 flex flex-col overflow-hidden", t10);
35848
+ $[12] = t10;
35849
+ $[13] = t11;
35850
+ } else {
35851
+ t11 = $[13];
35852
+ }
35853
+ const t12 = isHorizontal ? appliedBasis : "100%";
35854
+ const t13 = !isHorizontal ? appliedBasis : "100%";
35855
+ const t14 = isHorizontal && showFirstPanel && showSecondPanel ? `${minPanelSizePx}px` : void 0;
35856
+ const t15 = !isHorizontal && showFirstPanel && showSecondPanel ? `${minPanelSizePx}px` : void 0;
35857
+ const t16 = showSecondPanel ? void 0 : "100%";
35858
+ const t17 = showSecondPanel ? void 0 : "100%";
35859
+ let t18;
35860
+ if ($[14] !== t12 || $[15] !== t13 || $[16] !== t14 || $[17] !== t15 || $[18] !== t16 || $[19] !== t17) {
35861
+ t18 = {
35862
+ width: t12,
35863
+ height: t13,
35864
+ minWidth: t14,
35865
+ minHeight: t15,
35866
+ maxWidth: t16,
35867
+ maxHeight: t17
35868
+ };
35869
+ $[14] = t12;
35870
+ $[15] = t13;
35871
+ $[16] = t14;
35872
+ $[17] = t15;
35873
+ $[18] = t16;
35874
+ $[19] = t17;
35875
+ $[20] = t18;
35876
+ } else {
35877
+ t18 = $[20];
35878
+ }
35879
+ let t19;
35880
+ if ($[21] !== firstPanel || $[22] !== t11 || $[23] !== t18) {
35881
+ t19 = /* @__PURE__ */ jsxRuntime.jsx("div", { ref: firstPanelRef, className: t11, style: t18, children: firstPanel });
35882
+ $[21] = firstPanel;
35883
+ $[22] = t11;
35884
+ $[23] = t18;
35885
+ $[24] = t19;
35886
+ } else {
35887
+ t19 = $[24];
35888
+ }
35889
+ let t20;
35890
+ if ($[25] !== handleResizeStart || $[26] !== isHorizontal || $[27] !== showFirstPanel || $[28] !== showSecondPanel) {
35891
+ t20 = showFirstPanel && showSecondPanel && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cls("relative z-10 flex flex-shrink-0 items-center justify-center", isHorizontal ? "w-px h-full cursor-col-resize" : "h-px w-full cursor-row-resize"), onMouseDown: handleResizeStart, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cls("absolute flex items-center justify-center group", isHorizontal ? "w-4 h-full cursor-col-resize top-0" : "h-4 w-full cursor-row-resize left-0"), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cls("bg-primary/60 dark:bg-primary rounded-full opacity-0 group-hover:opacity-100 transition-all duration-200", isHorizontal ? "w-1 h-8" : "h-1 w-8") }) }) });
35892
+ $[25] = handleResizeStart;
35893
+ $[26] = isHorizontal;
35894
+ $[27] = showFirstPanel;
35895
+ $[28] = showSecondPanel;
35896
+ $[29] = t20;
35897
+ } else {
35898
+ t20 = $[29];
35899
+ }
35900
+ const t21 = !showSecondPanel && "hidden";
35901
+ let t22;
35902
+ if ($[30] !== t21) {
35903
+ t22 = cls("flex-grow relative flex flex-col overflow-hidden min-w-0 min-h-0", t21);
35904
+ $[30] = t21;
35905
+ $[31] = t22;
35906
+ } else {
35907
+ t22 = $[31];
35908
+ }
35909
+ let t23;
35910
+ if ($[32] !== secondPanel || $[33] !== t22) {
35911
+ t23 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: t22, children: secondPanel });
35912
+ $[32] = secondPanel;
35913
+ $[33] = t22;
35914
+ $[34] = t23;
35915
+ } else {
35916
+ t23 = $[34];
35917
+ }
35918
+ let t24;
35919
+ if ($[35] !== t19 || $[36] !== t20 || $[37] !== t23 || $[38] !== t9) {
35920
+ t24 = /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: containerRef, className: t9, children: [
35921
+ t19,
35922
+ t20,
35923
+ t23
35924
+ ] });
35925
+ $[35] = t19;
35926
+ $[36] = t20;
35927
+ $[37] = t23;
35928
+ $[38] = t9;
35929
+ $[39] = t24;
35930
+ } else {
35931
+ t24 = $[39];
35932
+ }
35933
+ return t24;
35934
+ }
35582
35935
  function SearchBar(t0) {
35583
35936
  const $ = reactCompilerRuntime.c(47);
35584
35937
  const {
@@ -35763,6 +36116,483 @@
35763
36116
  }
35764
36117
  return t22;
35765
36118
  }
36119
+ const SearchableSelect = React__namespace.forwardRef((t0, ref) => {
36120
+ const $ = reactCompilerRuntime.c(106);
36121
+ const {
36122
+ value,
36123
+ onValueChange,
36124
+ placeholder: t1,
36125
+ label,
36126
+ size: t2,
36127
+ disabled,
36128
+ error,
36129
+ invisible,
36130
+ className,
36131
+ inputClassName,
36132
+ renderValue,
36133
+ modalPopover: t3,
36134
+ allowCustomValues: t4,
36135
+ portalContainer,
36136
+ autoFocus,
36137
+ children
36138
+ } = t0;
36139
+ const placeholder = t1 === void 0 ? "Select..." : t1;
36140
+ const size = t2 === void 0 ? "large" : t2;
36141
+ const modalPopover = t3 === void 0 ? false : t3;
36142
+ const allowCustomValues = t4 === void 0 ? true : t4;
36143
+ const [isMounted, setIsMounted] = React.useState(false);
36144
+ const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);
36145
+ const [search, setSearch] = React.useState("");
36146
+ const inputRef = React.useRef(null);
36147
+ const contextContainer = usePortalContainer();
36148
+ const finalContainer = portalContainer ?? contextContainer ?? void 0;
36149
+ let t5;
36150
+ let t6;
36151
+ if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
36152
+ t5 = () => {
36153
+ setIsMounted(true);
36154
+ };
36155
+ t6 = [];
36156
+ $[0] = t5;
36157
+ $[1] = t6;
36158
+ } else {
36159
+ t5 = $[0];
36160
+ t6 = $[1];
36161
+ }
36162
+ React.useEffect(t5, t6);
36163
+ let t7;
36164
+ if ($[2] !== autoFocus || $[3] !== isMounted) {
36165
+ t7 = [autoFocus, isMounted];
36166
+ $[2] = autoFocus;
36167
+ $[3] = isMounted;
36168
+ $[4] = t7;
36169
+ } else {
36170
+ t7 = $[4];
36171
+ }
36172
+ React.useEffect(() => {
36173
+ if (autoFocus && isMounted) {
36174
+ onPopoverOpenChange(true);
36175
+ }
36176
+ }, t7);
36177
+ let t8;
36178
+ let map;
36179
+ if ($[5] !== children) {
36180
+ map = /* @__PURE__ */ new Map();
36181
+ React__namespace.Children.forEach(children, (child) => {
36182
+ if (React__namespace.isValidElement(child) && child.props.value != null) {
36183
+ map.set(String(child.props.value), child.props.children ?? child.props.value);
36184
+ }
36185
+ });
36186
+ $[5] = children;
36187
+ $[6] = map;
36188
+ } else {
36189
+ map = $[6];
36190
+ }
36191
+ t8 = map;
36192
+ const itemsMap = t8;
36193
+ const onPopoverOpenChange = (open) => {
36194
+ setIsPopoverOpen(open);
36195
+ if (open) {
36196
+ setSearch(value ?? "");
36197
+ setTimeout(() => inputRef.current?.focus(), 0);
36198
+ }
36199
+ };
36200
+ let t9;
36201
+ if ($[7] !== onValueChange) {
36202
+ t9 = (selectedValue) => {
36203
+ onValueChange?.(selectedValue);
36204
+ setIsPopoverOpen(false);
36205
+ setSearch("");
36206
+ };
36207
+ $[7] = onValueChange;
36208
+ $[8] = t9;
36209
+ } else {
36210
+ t9 = $[8];
36211
+ }
36212
+ const handleSelect = t9;
36213
+ let t10;
36214
+ if ($[9] !== allowCustomValues || $[10] !== handleSelect || $[11] !== itemsMap || $[12] !== search) {
36215
+ t10 = (e) => {
36216
+ if (e.key === "Enter" && allowCustomValues) {
36217
+ const trimmed = search.trim();
36218
+ if (trimmed) {
36219
+ const isExistingItem = itemsMap.has(trimmed);
36220
+ if (!isExistingItem) {
36221
+ e.preventDefault();
36222
+ handleSelect(trimmed);
36223
+ }
36224
+ }
36225
+ } else {
36226
+ if (e.key === "Escape") {
36227
+ setIsPopoverOpen(false);
36228
+ }
36229
+ }
36230
+ };
36231
+ $[9] = allowCustomValues;
36232
+ $[10] = handleSelect;
36233
+ $[11] = itemsMap;
36234
+ $[12] = search;
36235
+ $[13] = t10;
36236
+ } else {
36237
+ t10 = $[13];
36238
+ }
36239
+ const handleInputKeyDown = t10;
36240
+ let t11;
36241
+ bb0: {
36242
+ if (!value) {
36243
+ t11 = null;
36244
+ break bb0;
36245
+ }
36246
+ if (renderValue) {
36247
+ let t123;
36248
+ if ($[14] !== renderValue || $[15] !== value) {
36249
+ t123 = renderValue(value);
36250
+ $[14] = renderValue;
36251
+ $[15] = value;
36252
+ $[16] = t123;
36253
+ } else {
36254
+ t123 = $[16];
36255
+ }
36256
+ t11 = t123;
36257
+ break bb0;
36258
+ }
36259
+ let t122;
36260
+ if ($[17] !== itemsMap || $[18] !== value) {
36261
+ t122 = itemsMap.get(value);
36262
+ $[17] = itemsMap;
36263
+ $[18] = value;
36264
+ $[19] = t122;
36265
+ } else {
36266
+ t122 = $[19];
36267
+ }
36268
+ const itemLabel = t122;
36269
+ if (itemLabel) {
36270
+ t11 = itemLabel;
36271
+ break bb0;
36272
+ }
36273
+ let t132;
36274
+ if ($[20] !== value) {
36275
+ t132 = /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: value });
36276
+ $[20] = value;
36277
+ $[21] = t132;
36278
+ } else {
36279
+ t132 = $[21];
36280
+ }
36281
+ t11 = t132;
36282
+ }
36283
+ const displayLabel = t11;
36284
+ useInjectStyles("SearchableSelect", `
36285
+ [cmdk-group] {
36286
+ max-height: 45vh;
36287
+ overflow-y: auto;
36288
+ }`);
36289
+ let t12;
36290
+ if ($[22] !== error || $[23] !== label) {
36291
+ t12 = label && (typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: cls("text-sm font-medium ml-3.5 mb-1", error ? "text-red-500 dark:text-red-600" : "text-surface-accent-500 dark:text-surface-accent-300"), children: label }) : label);
36292
+ $[22] = error;
36293
+ $[23] = label;
36294
+ $[24] = t12;
36295
+ } else {
36296
+ t12 = $[24];
36297
+ }
36298
+ const t13 = isMounted && isPopoverOpen;
36299
+ let t14;
36300
+ if ($[25] !== disabled || $[26] !== isPopoverOpen || $[27] !== onPopoverOpenChange) {
36301
+ t14 = () => !disabled && onPopoverOpenChange(!isPopoverOpen);
36302
+ $[25] = disabled;
36303
+ $[26] = isPopoverOpen;
36304
+ $[27] = onPopoverOpenChange;
36305
+ $[28] = t14;
36306
+ } else {
36307
+ t14 = $[28];
36308
+ }
36309
+ const t15 = size === "smallest";
36310
+ const t16 = size === "small";
36311
+ const t17 = size === "medium";
36312
+ const t18 = size === "large";
36313
+ let t19;
36314
+ if ($[29] !== className || $[30] !== disabled || $[31] !== inputClassName || $[32] !== invisible || $[33] !== size || $[34] !== t15 || $[35] !== t16 || $[36] !== t17 || $[37] !== t18) {
36315
+ t19 = cls({
36316
+ "min-h-[28px]": t15,
36317
+ "min-h-[32px]": t16,
36318
+ "min-h-[44px]": t17,
36319
+ "min-h-[64px]": t18
36320
+ }, {
36321
+ "py-0.5": size === "smallest",
36322
+ "py-1": size === "small",
36323
+ "py-2": size === "medium" || size === "large"
36324
+ }, {
36325
+ "px-2": size === "small" || size === "smallest",
36326
+ "px-4": size === "medium" || size === "large"
36327
+ }, "select-none rounded-md text-sm w-full text-start", "focus:ring-0 focus-visible:ring-0 outline-none focus:outline-none focus-visible:outline-none", invisible ? fieldBackgroundInvisibleMixin : fieldBackgroundMixin, disabled ? fieldBackgroundDisabledMixin : fieldBackgroundHoverMixin, "relative flex items-center", className, inputClassName);
36328
+ $[29] = className;
36329
+ $[30] = disabled;
36330
+ $[31] = inputClassName;
36331
+ $[32] = invisible;
36332
+ $[33] = size;
36333
+ $[34] = t15;
36334
+ $[35] = t16;
36335
+ $[36] = t17;
36336
+ $[37] = t18;
36337
+ $[38] = t19;
36338
+ } else {
36339
+ t19 = $[38];
36340
+ }
36341
+ let t20;
36342
+ if ($[39] !== displayLabel || $[40] !== placeholder) {
36343
+ t20 = displayLabel ?? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-surface-accent-500 dark:text-surface-accent-400", children: placeholder });
36344
+ $[39] = displayLabel;
36345
+ $[40] = placeholder;
36346
+ $[41] = t20;
36347
+ } else {
36348
+ t20 = $[41];
36349
+ }
36350
+ let t21;
36351
+ if ($[42] !== t20) {
36352
+ t21 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-grow min-w-0 truncate", children: t20 });
36353
+ $[42] = t20;
36354
+ $[43] = t21;
36355
+ } else {
36356
+ t21 = $[43];
36357
+ }
36358
+ let t22;
36359
+ if ($[44] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
36360
+ t22 = cls("flex-shrink-0 flex items-center");
36361
+ $[44] = t22;
36362
+ } else {
36363
+ t22 = $[44];
36364
+ }
36365
+ const t23 = size === "large" ? "medium" : "small";
36366
+ const t24 = isPopoverOpen ? "rotate-180" : "";
36367
+ let t25;
36368
+ if ($[45] !== t24) {
36369
+ t25 = cls("transition", t24);
36370
+ $[45] = t24;
36371
+ $[46] = t25;
36372
+ } else {
36373
+ t25 = $[46];
36374
+ }
36375
+ let t26;
36376
+ if ($[47] !== t23 || $[48] !== t25) {
36377
+ t26 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: t22, children: /* @__PURE__ */ jsxRuntime.jsx(KeyboardArrowDownIcon, { size: t23, className: t25 }) });
36378
+ $[47] = t23;
36379
+ $[48] = t25;
36380
+ $[49] = t26;
36381
+ } else {
36382
+ t26 = $[49];
36383
+ }
36384
+ let t27;
36385
+ if ($[50] !== t21 || $[51] !== t26) {
36386
+ t27 = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between w-full gap-1", children: [
36387
+ t21,
36388
+ t26
36389
+ ] });
36390
+ $[50] = t21;
36391
+ $[51] = t26;
36392
+ $[52] = t27;
36393
+ } else {
36394
+ t27 = $[52];
36395
+ }
36396
+ let t28;
36397
+ if ($[53] !== disabled || $[54] !== ref || $[55] !== t14 || $[56] !== t19 || $[57] !== t27) {
36398
+ t28 = /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Trigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx("button", { ref, disabled, onClick: t14, className: t19, children: t27 }) });
36399
+ $[53] = disabled;
36400
+ $[54] = ref;
36401
+ $[55] = t14;
36402
+ $[56] = t19;
36403
+ $[57] = t27;
36404
+ $[58] = t28;
36405
+ } else {
36406
+ t28 = $[58];
36407
+ }
36408
+ let t29;
36409
+ if ($[59] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
36410
+ t29 = cls("z-50 overflow-hidden border bg-white dark:bg-surface-900 rounded-lg", defaultBorderMixin);
36411
+ $[59] = t29;
36412
+ } else {
36413
+ t29 = $[59];
36414
+ }
36415
+ let t30;
36416
+ if ($[60] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
36417
+ t30 = {
36418
+ width: "var(--radix-popover-trigger-width)",
36419
+ minWidth: 180
36420
+ };
36421
+ $[60] = t30;
36422
+ } else {
36423
+ t30 = $[60];
36424
+ }
36425
+ let t31;
36426
+ if ($[61] !== onPopoverOpenChange) {
36427
+ t31 = () => onPopoverOpenChange(false);
36428
+ $[61] = onPopoverOpenChange;
36429
+ $[62] = t31;
36430
+ } else {
36431
+ t31 = $[62];
36432
+ }
36433
+ const t32 = size === "smallest" || size === "small";
36434
+ const t33 = size === "medium" || size === "large";
36435
+ let t34;
36436
+ if ($[63] !== t32 || $[64] !== t33) {
36437
+ t34 = cls(focusedDisabled, "bg-transparent outline-none flex-1 h-full w-full text-surface-accent-900 dark:text-white", {
36438
+ "m-2 text-xs": t32,
36439
+ "m-3 text-sm": t33
36440
+ });
36441
+ $[63] = t32;
36442
+ $[64] = t33;
36443
+ $[65] = t34;
36444
+ } else {
36445
+ t34 = $[65];
36446
+ }
36447
+ let t35;
36448
+ if ($[66] !== handleInputKeyDown || $[67] !== search || $[68] !== t34) {
36449
+ t35 = /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-row items-center", children: /* @__PURE__ */ jsxRuntime.jsx(cmdk.Command.Input, { ref: inputRef, value: search, onValueChange: setSearch, className: t34, placeholder: "Search...", onKeyDown: handleInputKeyDown }) });
36450
+ $[66] = handleInputKeyDown;
36451
+ $[67] = search;
36452
+ $[68] = t34;
36453
+ $[69] = t35;
36454
+ } else {
36455
+ t35 = $[69];
36456
+ }
36457
+ let t36;
36458
+ if ($[70] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
36459
+ t36 = /* @__PURE__ */ jsxRuntime.jsx(Separator, { orientation: "horizontal", className: "my-0" });
36460
+ $[70] = t36;
36461
+ } else {
36462
+ t36 = $[70];
36463
+ }
36464
+ let t37;
36465
+ if ($[71] !== allowCustomValues || $[72] !== handleSelect || $[73] !== itemsMap || $[74] !== search) {
36466
+ t37 = allowCustomValues && search.trim() && !itemsMap.has(search.trim()) ? /* @__PURE__ */ jsxRuntime.jsxs(cmdk.Command.Empty, { className: "px-3 py-2 text-xs cursor-pointer text-primary hover:bg-surface-accent-100 dark:hover:bg-surface-accent-800", onClick: () => handleSelect(search.trim()), children: [
36467
+ "Use “",
36468
+ search.trim(),
36469
+ "”"
36470
+ ] }) : /* @__PURE__ */ jsxRuntime.jsx(cmdk.Command.Empty, { className: "px-3 py-2 text-xs text-text-secondary dark:text-text-secondary-dark", children: "No results found." });
36471
+ $[71] = allowCustomValues;
36472
+ $[72] = handleSelect;
36473
+ $[73] = itemsMap;
36474
+ $[74] = search;
36475
+ $[75] = t37;
36476
+ } else {
36477
+ t37 = $[75];
36478
+ }
36479
+ let t38;
36480
+ if ($[76] !== children || $[77] !== handleSelect || $[78] !== value) {
36481
+ let t392;
36482
+ if ($[80] !== handleSelect || $[81] !== value) {
36483
+ t392 = (child_0) => {
36484
+ if (!React__namespace.isValidElement(child_0)) {
36485
+ return child_0;
36486
+ }
36487
+ const itemValue = child_0.props.value;
36488
+ const isSelected = String(value) === String(itemValue);
36489
+ return /* @__PURE__ */ jsxRuntime.jsxs(cmdk.Command.Item, { value: String(itemValue), onMouseDown: _temp$2, onSelect: () => handleSelect(String(itemValue)), className: cls("flex flex-row items-center gap-1.5", isSelected ? "bg-surface-accent-200 dark:bg-surface-accent-950" : "", "cursor-pointer", "m-0.5", "ring-offset-transparent", "p-1.5 rounded", "aria-[selected=true]:outline-none", "aria-[selected=true]:bg-surface-accent-100 aria-[selected=true]:dark:bg-surface-accent-900", "text-surface-accent-700 dark:text-surface-accent-300", child_0.props.className), children: [
36490
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cls("w-4 h-4 flex items-center justify-center flex-shrink-0", isSelected ? "text-primary" : "text-transparent"), children: isSelected && /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, { size: 14 }) }),
36491
+ child_0.props.children ?? child_0.props.value
36492
+ ] }, String(itemValue));
36493
+ };
36494
+ $[80] = handleSelect;
36495
+ $[81] = value;
36496
+ $[82] = t392;
36497
+ } else {
36498
+ t392 = $[82];
36499
+ }
36500
+ t38 = React__namespace.Children.map(children, t392);
36501
+ $[76] = children;
36502
+ $[77] = handleSelect;
36503
+ $[78] = value;
36504
+ $[79] = t38;
36505
+ } else {
36506
+ t38 = $[79];
36507
+ }
36508
+ let t39;
36509
+ if ($[83] !== t38) {
36510
+ t39 = /* @__PURE__ */ jsxRuntime.jsx(cmdk.Command.Group, { children: t38 });
36511
+ $[83] = t38;
36512
+ $[84] = t39;
36513
+ } else {
36514
+ t39 = $[84];
36515
+ }
36516
+ let t40;
36517
+ if ($[85] !== t37 || $[86] !== t39) {
36518
+ t40 = /* @__PURE__ */ jsxRuntime.jsxs(cmdk.Command.List, { children: [
36519
+ t37,
36520
+ t39
36521
+ ] });
36522
+ $[85] = t37;
36523
+ $[86] = t39;
36524
+ $[87] = t40;
36525
+ } else {
36526
+ t40 = $[87];
36527
+ }
36528
+ let t41;
36529
+ if ($[88] !== t35 || $[89] !== t40) {
36530
+ t41 = /* @__PURE__ */ jsxRuntime.jsxs(cmdk.Command, { shouldFilter: true, children: [
36531
+ t35,
36532
+ t36,
36533
+ t40
36534
+ ] });
36535
+ $[88] = t35;
36536
+ $[89] = t40;
36537
+ $[90] = t41;
36538
+ } else {
36539
+ t41 = $[90];
36540
+ }
36541
+ let t42;
36542
+ if ($[91] !== t31 || $[92] !== t41) {
36543
+ t42 = /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Content, { className: t29, align: "start", sideOffset: 4, style: t30, onEscapeKeyDown: t31, children: t41 });
36544
+ $[91] = t31;
36545
+ $[92] = t41;
36546
+ $[93] = t42;
36547
+ } else {
36548
+ t42 = $[93];
36549
+ }
36550
+ let t43;
36551
+ if ($[94] !== finalContainer || $[95] !== t42) {
36552
+ t43 = /* @__PURE__ */ jsxRuntime.jsx(PopoverPrimitive__namespace.Portal, { container: finalContainer, children: t42 });
36553
+ $[94] = finalContainer;
36554
+ $[95] = t42;
36555
+ $[96] = t43;
36556
+ } else {
36557
+ t43 = $[96];
36558
+ }
36559
+ let t44;
36560
+ if ($[97] !== modalPopover || $[98] !== onPopoverOpenChange || $[99] !== t13 || $[100] !== t28 || $[101] !== t43) {
36561
+ t44 = /* @__PURE__ */ jsxRuntime.jsxs(PopoverPrimitive__namespace.Root, { open: t13, onOpenChange: onPopoverOpenChange, modal: modalPopover, children: [
36562
+ t28,
36563
+ t43
36564
+ ] });
36565
+ $[97] = modalPopover;
36566
+ $[98] = onPopoverOpenChange;
36567
+ $[99] = t13;
36568
+ $[100] = t28;
36569
+ $[101] = t43;
36570
+ $[102] = t44;
36571
+ } else {
36572
+ t44 = $[102];
36573
+ }
36574
+ let t45;
36575
+ if ($[103] !== t12 || $[104] !== t44) {
36576
+ t45 = /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
36577
+ t12,
36578
+ t44
36579
+ ] });
36580
+ $[103] = t12;
36581
+ $[104] = t44;
36582
+ $[105] = t45;
36583
+ } else {
36584
+ t45 = $[105];
36585
+ }
36586
+ return t45;
36587
+ });
36588
+ SearchableSelect.displayName = "SearchableSelect";
36589
+ function SearchableSelectItem(_props) {
36590
+ return null;
36591
+ }
36592
+ function _temp$2(e_0) {
36593
+ e_0.preventDefault();
36594
+ e_0.stopPropagation();
36595
+ }
35766
36596
  const Select = React.forwardRef((t0, ref) => {
35767
36597
  const $ = reactCompilerRuntime.c(121);
35768
36598
  let children;
@@ -36739,203 +37569,222 @@
36739
37569
  function getStyleValue(value) {
36740
37570
  return parseInt(value, 10) || 0;
36741
37571
  }
36742
- const styles = {
36743
- shadow: {
36744
- // Visibility needed to hide the extra text area on iPads
36745
- visibility: "hidden",
36746
- // Remove from the content flow
36747
- position: "absolute",
36748
- // Ignore the scrollbar width
36749
- overflow: "hidden",
36750
- height: 0,
36751
- top: 0,
36752
- left: 0,
36753
- // Create a new layer, increase the isolation of the computed values
36754
- transform: "translateZ(0)"
36755
- }
36756
- };
36757
- function isEmpty(obj) {
36758
- return obj === void 0 || obj === null || Object.keys(obj).length === 0 || obj.outerHeightStyle === 0 && !obj.overflow;
36759
- }
36760
37572
  const TextareaAutosize = React__namespace.forwardRef(function TextareaAutosize2(props, ref) {
36761
- const {
36762
- onChange,
36763
- onScroll,
36764
- onResize,
36765
- maxRows,
36766
- minRows = 1,
36767
- style,
36768
- value,
36769
- onFocus,
36770
- onBlur,
36771
- sizeRef,
36772
- ignoreBoxSizing,
36773
- ...other
36774
- } = props;
37573
+ const $ = reactCompilerRuntime.c(38);
37574
+ let ignoreBoxSizing;
37575
+ let maxRows;
37576
+ let onBlur;
37577
+ let onChange;
37578
+ let onFocus;
37579
+ let onResize;
37580
+ let onScroll;
37581
+ let other;
37582
+ let style;
37583
+ let t0;
37584
+ let value;
37585
+ if ($[0] !== props) {
37586
+ const {
37587
+ onChange: t12,
37588
+ onScroll: t22,
37589
+ onResize: t32,
37590
+ maxRows: t42,
37591
+ minRows: t52,
37592
+ style: t62,
37593
+ value: t72,
37594
+ onFocus: t82,
37595
+ onBlur: t9,
37596
+ sizeRef,
37597
+ ignoreBoxSizing: t10,
37598
+ ...t11
37599
+ } = props;
37600
+ onChange = t12;
37601
+ onScroll = t22;
37602
+ onResize = t32;
37603
+ maxRows = t42;
37604
+ t0 = t52;
37605
+ style = t62;
37606
+ value = t72;
37607
+ onFocus = t82;
37608
+ onBlur = t9;
37609
+ ignoreBoxSizing = t10;
37610
+ other = t11;
37611
+ $[0] = props;
37612
+ $[1] = ignoreBoxSizing;
37613
+ $[2] = maxRows;
37614
+ $[3] = onBlur;
37615
+ $[4] = onChange;
37616
+ $[5] = onFocus;
37617
+ $[6] = onResize;
37618
+ $[7] = onScroll;
37619
+ $[8] = other;
37620
+ $[9] = style;
37621
+ $[10] = t0;
37622
+ $[11] = value;
37623
+ } else {
37624
+ ignoreBoxSizing = $[1];
37625
+ maxRows = $[2];
37626
+ onBlur = $[3];
37627
+ onChange = $[4];
37628
+ onFocus = $[5];
37629
+ onResize = $[6];
37630
+ onScroll = $[7];
37631
+ other = $[8];
37632
+ style = $[9];
37633
+ t0 = $[10];
37634
+ value = $[11];
37635
+ }
37636
+ const minRows = t0 === void 0 ? 1 : t0;
36775
37637
  const {
36776
37638
  current: isControlled
36777
37639
  } = React__namespace.useRef(value != null);
36778
37640
  const inputRef = React__namespace.useRef(null);
36779
37641
  const handleRef = useForkRef(ref, inputRef);
36780
- const shadowRef = React__namespace.useRef(null);
36781
- const renders = React__namespace.useRef(0);
36782
- const [state, setState] = React__namespace.useState({
36783
- outerHeightStyle: 0
36784
- });
36785
- const getUpdatedState = React__namespace.useCallback(() => {
36786
- const input = inputRef.current;
36787
- if (typeof window === "undefined") {
36788
- return {
36789
- outerHeightStyle: 0
36790
- };
36791
- }
36792
- const containerWindow = window;
36793
- const computedStyle = containerWindow.getComputedStyle(input);
36794
- if (computedStyle.width === "0px") {
36795
- return {
36796
- outerHeightStyle: 0
36797
- };
36798
- }
36799
- const sizeReferenceElement = sizeRef?.current ?? shadowRef.current;
36800
- const inputShallow = shadowRef.current;
36801
- sizeReferenceElement.style.width = computedStyle.width;
36802
- inputShallow.value = input.value || props.placeholder || "x";
36803
- if (inputShallow.value.slice(-1) === "\n") {
36804
- inputShallow.value += " ";
36805
- }
36806
- const boxSizing = computedStyle.boxSizing;
36807
- const padding = getStyleValue(computedStyle.paddingBottom) + getStyleValue(computedStyle.paddingTop);
36808
- const border = getStyleValue(computedStyle.borderBottomWidth) + getStyleValue(computedStyle.borderTopWidth);
36809
- const minHeight = getStyleValue(computedStyle.minHeight);
36810
- const innerHeight = sizeReferenceElement.scrollHeight;
36811
- inputShallow.value = "x";
36812
- const singleRowHeight = sizeReferenceElement.scrollHeight;
36813
- let outerHeight = innerHeight;
36814
- if (minRows) {
36815
- outerHeight = Math.max(Number(minRows) * singleRowHeight, outerHeight);
36816
- }
36817
- if (maxRows) {
36818
- outerHeight = Math.min(Number(maxRows) * singleRowHeight, outerHeight);
36819
- }
36820
- outerHeight = Math.max(outerHeight, singleRowHeight, minHeight);
36821
- const outerHeightStyle = outerHeight + (!ignoreBoxSizing && boxSizing === "border-box" ? padding + border : 0);
36822
- const overflow = Math.abs(outerHeight - innerHeight) <= 1;
36823
- return {
36824
- outerHeightStyle,
36825
- overflow
36826
- };
36827
- }, [maxRows, minRows, props.placeholder]);
36828
- const updateState = React__namespace.useCallback((prevState, newState) => {
36829
- const {
36830
- outerHeightStyle: outerHeightStyle_0,
36831
- overflow: overflow_0
36832
- } = newState;
36833
- if (renders.current < 20 && (outerHeightStyle_0 > 0 && Math.abs((prevState.outerHeightStyle || 0) - outerHeightStyle_0) > 1 || prevState.overflow !== overflow_0)) {
36834
- renders.current += 1;
36835
- return {
36836
- overflow: overflow_0,
36837
- outerHeightStyle: outerHeightStyle_0
36838
- };
36839
- }
36840
- if (process.env.NODE_ENV !== "production") {
36841
- if (renders.current === 20) {
36842
- console.error(["MUI: Too many re-renders. The layout is unstable.", "TextareaAutosize limits the number of renders to prevent an infinite loop."].join("\n"));
37642
+ let t1;
37643
+ if ($[12] !== ignoreBoxSizing || $[13] !== maxRows || $[14] !== minRows || $[15] !== onResize) {
37644
+ t1 = () => {
37645
+ const el = inputRef.current;
37646
+ if (!el || typeof window === "undefined") {
37647
+ return;
36843
37648
  }
36844
- }
36845
- return prevState;
36846
- }, []);
36847
- const syncHeight = React__namespace.useCallback(() => {
36848
- const newState_0 = getUpdatedState();
36849
- if (isEmpty(newState_0)) {
36850
- return;
36851
- }
36852
- if (onResize) {
36853
- onResize(newState_0);
36854
- }
36855
- setState((prevState_0) => {
36856
- return updateState(prevState_0, newState_0);
36857
- });
36858
- }, [getUpdatedState, onResize, updateState]);
36859
- const syncHeightWithFlushSync = React__namespace.useCallback(() => {
36860
- const newState_1 = getUpdatedState();
36861
- if (isEmpty(newState_1)) {
36862
- return;
36863
- }
36864
- ReactDOM__namespace.flushSync(() => {
36865
- setState((prevState_1) => {
36866
- return updateState(prevState_1, newState_1);
36867
- });
36868
- });
36869
- }, [getUpdatedState, updateState]);
36870
- React__namespace.useEffect(() => {
36871
- const handleResize = debounce(() => {
36872
- renders.current = 0;
36873
- if (inputRef.current) {
36874
- syncHeightWithFlushSync();
37649
+ if (el.offsetWidth === 0) {
37650
+ return;
36875
37651
  }
36876
- });
36877
- let resizeObserver;
36878
- const input_0 = inputRef.current;
36879
- const containerWindow_0 = window;
36880
- if (typeof window === "undefined") {
36881
- return;
36882
- }
36883
- containerWindow_0.addEventListener("resize", handleResize);
36884
- if (typeof ResizeObserver !== "undefined") {
36885
- resizeObserver = new ResizeObserver(handleResize);
36886
- resizeObserver.observe(input_0);
36887
- }
36888
- return () => {
36889
- handleResize.clear();
36890
- containerWindow_0.removeEventListener("resize", handleResize);
36891
- if (resizeObserver) {
36892
- resizeObserver.disconnect();
37652
+ const cs = window.getComputedStyle(el);
37653
+ const paddingY = getStyleValue(cs.paddingTop) + getStyleValue(cs.paddingBottom);
37654
+ const borderY = getStyleValue(cs.borderTopWidth) + getStyleValue(cs.borderBottomWidth);
37655
+ const boxSizing = cs.boxSizing;
37656
+ const prevHeight = el.style.height;
37657
+ const prevOverflow = el.style.overflowY;
37658
+ el.style.overflowY = "hidden";
37659
+ el.style.height = "0px";
37660
+ const scrollH = el.scrollHeight;
37661
+ const prevValue = el.value;
37662
+ el.value = "x";
37663
+ const singleRowScrollH = el.scrollHeight;
37664
+ el.value = prevValue;
37665
+ el.style.height = prevHeight;
37666
+ el.style.overflowY = prevOverflow;
37667
+ const lineHeight = singleRowScrollH - paddingY;
37668
+ let targetHeight = scrollH;
37669
+ if (minRows) {
37670
+ targetHeight = Math.max(Number(minRows) * lineHeight + paddingY, targetHeight);
37671
+ }
37672
+ const unclampedHeight = targetHeight;
37673
+ if (maxRows) {
37674
+ targetHeight = Math.min(Number(maxRows) * lineHeight + paddingY, targetHeight);
37675
+ }
37676
+ const extra = !ignoreBoxSizing && boxSizing === "border-box" ? borderY : 0;
37677
+ const finalHeight = Math.ceil(targetHeight + extra);
37678
+ const shouldScroll = Math.abs(unclampedHeight - targetHeight) > 1;
37679
+ el.style.height = `${finalHeight}px`;
37680
+ el.style.overflowY = shouldScroll ? "auto" : "hidden";
37681
+ if (onResize) {
37682
+ onResize({
37683
+ outerHeightStyle: finalHeight,
37684
+ overflow: !shouldScroll
37685
+ });
36893
37686
  }
36894
37687
  };
36895
- }, [syncHeightWithFlushSync]);
36896
- React.useLayoutEffect(() => {
36897
- syncHeight();
36898
- });
36899
- React__namespace.useEffect(() => {
36900
- renders.current = 0;
36901
- }, [value]);
36902
- const handleChange = (event) => {
36903
- renders.current = 0;
36904
- if (!isControlled) {
37688
+ $[12] = ignoreBoxSizing;
37689
+ $[13] = maxRows;
37690
+ $[14] = minRows;
37691
+ $[15] = onResize;
37692
+ $[16] = t1;
37693
+ } else {
37694
+ t1 = $[16];
37695
+ }
37696
+ const syncHeight = t1;
37697
+ let t2;
37698
+ if ($[17] !== syncHeight) {
37699
+ t2 = () => {
36905
37700
  syncHeight();
36906
- }
36907
- if (onChange) {
36908
- onChange(event);
36909
- }
36910
- };
36911
- return /* @__PURE__ */ jsxRuntime.jsxs(React__namespace.Fragment, { children: [
36912
- /* @__PURE__ */ jsxRuntime.jsx(
36913
- "textarea",
36914
- {
36915
- value,
36916
- onChange: handleChange,
36917
- className: props.className,
36918
- ref: handleRef,
36919
- onFocus,
36920
- onBlur,
36921
- rows: minRows,
36922
- style: {
36923
- height: state.outerHeightStyle,
36924
- // Need a large enough difference to allow scrolling.
36925
- // This prevents infinite rendering loop.
36926
- overflow: state.overflow ? "hidden" : void 0,
36927
- ...style
36928
- },
36929
- onScroll,
36930
- ...other
37701
+ };
37702
+ $[17] = syncHeight;
37703
+ $[18] = t2;
37704
+ } else {
37705
+ t2 = $[18];
37706
+ }
37707
+ React.useLayoutEffect(t2);
37708
+ let t3;
37709
+ let t4;
37710
+ if ($[19] !== syncHeight) {
37711
+ t3 = () => {
37712
+ const handleResize = debounce(() => {
37713
+ if (inputRef.current) {
37714
+ syncHeight();
37715
+ }
37716
+ });
37717
+ const input = inputRef.current;
37718
+ if (typeof window === "undefined") {
37719
+ return;
37720
+ }
37721
+ window.addEventListener("resize", handleResize);
37722
+ let resizeObserver;
37723
+ if (typeof ResizeObserver !== "undefined") {
37724
+ resizeObserver = new ResizeObserver(handleResize);
37725
+ resizeObserver.observe(input);
37726
+ }
37727
+ return () => {
37728
+ handleResize.clear();
37729
+ window.removeEventListener("resize", handleResize);
37730
+ resizeObserver?.disconnect();
37731
+ };
37732
+ };
37733
+ t4 = [syncHeight];
37734
+ $[19] = syncHeight;
37735
+ $[20] = t3;
37736
+ $[21] = t4;
37737
+ } else {
37738
+ t3 = $[20];
37739
+ t4 = $[21];
37740
+ }
37741
+ React__namespace.useEffect(t3, t4);
37742
+ let t5;
37743
+ if ($[22] !== onChange || $[23] !== syncHeight) {
37744
+ t5 = (event) => {
37745
+ if (!isControlled) {
37746
+ syncHeight();
36931
37747
  }
36932
- ),
36933
- /* @__PURE__ */ jsxRuntime.jsx("textarea", { "aria-hidden": true, className: cls(props.className, props.shadowClassName), readOnly: true, ref: shadowRef, tabIndex: -1, style: {
36934
- padding: 0,
36935
- ...styles.shadow,
37748
+ if (onChange) {
37749
+ onChange(event);
37750
+ }
37751
+ };
37752
+ $[22] = onChange;
37753
+ $[23] = syncHeight;
37754
+ $[24] = t5;
37755
+ } else {
37756
+ t5 = $[24];
37757
+ }
37758
+ const handleChange = t5;
37759
+ const t6 = minRows;
37760
+ let t7;
37761
+ if ($[25] !== style) {
37762
+ t7 = {
36936
37763
  ...style
36937
- } })
36938
- ] });
37764
+ };
37765
+ $[25] = style;
37766
+ $[26] = t7;
37767
+ } else {
37768
+ t7 = $[26];
37769
+ }
37770
+ let t8;
37771
+ if ($[27] !== handleChange || $[28] !== handleRef || $[29] !== onBlur || $[30] !== onFocus || $[31] !== onScroll || $[32] !== other || $[33] !== props.className || $[34] !== t6 || $[35] !== t7 || $[36] !== value) {
37772
+ t8 = /* @__PURE__ */ jsxRuntime.jsx("textarea", { value, onChange: handleChange, className: props.className, ref: handleRef, onFocus, onBlur, rows: t6, style: t7, onScroll, ...other });
37773
+ $[27] = handleChange;
37774
+ $[28] = handleRef;
37775
+ $[29] = onBlur;
37776
+ $[30] = onFocus;
37777
+ $[31] = onScroll;
37778
+ $[32] = other;
37779
+ $[33] = props.className;
37780
+ $[34] = t6;
37781
+ $[35] = t7;
37782
+ $[36] = value;
37783
+ $[37] = t8;
37784
+ } else {
37785
+ t8 = $[37];
37786
+ }
37787
+ return t8;
36939
37788
  });
36940
37789
  function useForkRef(...refs) {
36941
37790
  return React__namespace.useMemo(() => {
@@ -37019,47 +37868,183 @@
37019
37868
  ] });
37020
37869
  });
37021
37870
  TextField.displayName = "TextField";
37871
+ const TabsModeContext = React.createContext("primary");
37022
37872
  function Tabs(t0) {
37023
- const $ = reactCompilerRuntime.c(10);
37873
+ const $ = reactCompilerRuntime.c(35);
37024
37874
  const {
37025
37875
  value,
37026
37876
  onValueChange,
37027
37877
  className,
37028
37878
  innerClassName,
37029
- children
37879
+ children,
37880
+ mode: t1
37030
37881
  } = t0;
37031
- let t1;
37032
- if ($[0] !== innerClassName) {
37033
- t1 = cls("border", defaultBorderMixin, "gap-2", "inline-flex h-10 items-center justify-center rounded-md bg-surface-50 p-1 text-surface-600 dark:bg-surface-900 dark:text-surface-400", innerClassName);
37034
- $[0] = innerClassName;
37035
- $[1] = t1;
37882
+ const mode = t1 === void 0 ? "primary" : t1;
37883
+ const scrollContainerRef = React.useRef(null);
37884
+ const [showLeftScroll, setShowLeftScroll] = React.useState(false);
37885
+ const [showRightScroll, setShowRightScroll] = React.useState(false);
37886
+ const [isScrollable, setIsScrollable] = React.useState(false);
37887
+ let t2;
37888
+ if ($[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
37889
+ t2 = () => {
37890
+ if (scrollContainerRef.current) {
37891
+ const {
37892
+ scrollLeft,
37893
+ scrollWidth,
37894
+ clientWidth
37895
+ } = scrollContainerRef.current;
37896
+ setShowLeftScroll(scrollLeft > 0);
37897
+ setShowRightScroll(Math.ceil(scrollLeft + clientWidth) < scrollWidth);
37898
+ setIsScrollable(scrollWidth > clientWidth);
37899
+ }
37900
+ };
37901
+ $[0] = t2;
37036
37902
  } else {
37037
- t1 = $[1];
37903
+ t2 = $[0];
37038
37904
  }
37039
- let t2;
37040
- if ($[2] !== children || $[3] !== t1) {
37041
- t2 = /* @__PURE__ */ jsxRuntime.jsx(TabsPrimitive__namespace.List, { className: t1, children });
37905
+ const checkScroll = t2;
37906
+ let t3;
37907
+ if ($[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
37908
+ t3 = () => {
37909
+ checkScroll();
37910
+ window.addEventListener("resize", checkScroll);
37911
+ let observer;
37912
+ if (scrollContainerRef.current) {
37913
+ observer = new ResizeObserver(checkScroll);
37914
+ observer.observe(scrollContainerRef.current);
37915
+ if (scrollContainerRef.current.firstElementChild) {
37916
+ observer.observe(scrollContainerRef.current.firstElementChild);
37917
+ }
37918
+ }
37919
+ return () => {
37920
+ window.removeEventListener("resize", checkScroll);
37921
+ observer?.disconnect();
37922
+ };
37923
+ };
37924
+ $[1] = t3;
37925
+ } else {
37926
+ t3 = $[1];
37927
+ }
37928
+ let t4;
37929
+ if ($[2] !== children) {
37930
+ t4 = [children];
37042
37931
  $[2] = children;
37043
- $[3] = t1;
37044
- $[4] = t2;
37932
+ $[3] = t4;
37045
37933
  } else {
37046
- t2 = $[4];
37934
+ t4 = $[3];
37047
37935
  }
37048
- let t3;
37049
- if ($[5] !== className || $[6] !== onValueChange || $[7] !== t2 || $[8] !== value) {
37050
- t3 = /* @__PURE__ */ jsxRuntime.jsx(TabsPrimitive__namespace.Root, { value, onValueChange, className, children: t2 });
37936
+ React.useEffect(t3, t4);
37937
+ let t5;
37938
+ if ($[4] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
37939
+ t5 = (direction) => {
37940
+ if (scrollContainerRef.current) {
37941
+ const container = scrollContainerRef.current;
37942
+ const scrollAmount = Math.max(container.clientWidth / 2, 200);
37943
+ const targetScroll = container.scrollLeft + (direction === "left" ? -scrollAmount : scrollAmount);
37944
+ container.scrollTo({
37945
+ left: targetScroll,
37946
+ behavior: "smooth"
37947
+ });
37948
+ }
37949
+ };
37950
+ $[4] = t5;
37951
+ } else {
37952
+ t5 = $[4];
37953
+ }
37954
+ const scroll = t5;
37955
+ let t6;
37956
+ if ($[5] !== className) {
37957
+ t6 = cls("flex flex-row items-center min-w-0", className);
37051
37958
  $[5] = className;
37052
- $[6] = onValueChange;
37053
- $[7] = t2;
37054
- $[8] = value;
37055
- $[9] = t3;
37959
+ $[6] = t6;
37056
37960
  } else {
37057
- t3 = $[9];
37961
+ t6 = $[6];
37058
37962
  }
37059
- return t3;
37963
+ let t7;
37964
+ if ($[7] !== isScrollable || $[8] !== mode || $[9] !== showLeftScroll) {
37965
+ t7 = isScrollable && /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", disabled: !showLeftScroll, onClick: () => scroll("left"), className: cls("flex-shrink-0 z-10 flex items-center justify-center rounded-md px-0.5 py-1.5 transition-all h-10 w-6", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-surface-400", "disabled:pointer-events-none disabled:opacity-0", "text-surface-600 dark:text-surface-400 hover:bg-surface-200 dark:hover:bg-surface-800", mode === "primary" && "mr-1 bg-surface-50 dark:bg-surface-900 border", mode === "primary" && defaultBorderMixin, mode === "secondary" && "mr-1"), children: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon, { size: "small" }) });
37966
+ $[7] = isScrollable;
37967
+ $[8] = mode;
37968
+ $[9] = showLeftScroll;
37969
+ $[10] = t7;
37970
+ } else {
37971
+ t7 = $[10];
37972
+ }
37973
+ let t8;
37974
+ if ($[11] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel")) {
37975
+ t8 = {
37976
+ scrollbarWidth: "none",
37977
+ msOverflowStyle: "none"
37978
+ };
37979
+ $[11] = t8;
37980
+ } else {
37981
+ t8 = $[11];
37982
+ }
37983
+ const t9 = mode === "primary" && "border";
37984
+ const t10 = mode === "primary" && defaultBorderMixin;
37985
+ const t11 = mode === "primary" && "gap-2 inline-flex h-10 items-center justify-center rounded-md bg-surface-50 p-1 text-surface-600 dark:bg-surface-900 dark:text-surface-400";
37986
+ const t12 = mode === "secondary" && "gap-1 inline-flex h-9 items-center text-surface-500 dark:text-surface-400";
37987
+ let t13;
37988
+ if ($[12] !== innerClassName || $[13] !== t10 || $[14] !== t11 || $[15] !== t12 || $[16] !== t9) {
37989
+ t13 = cls(t9, t10, t11, t12, innerClassName);
37990
+ $[12] = innerClassName;
37991
+ $[13] = t10;
37992
+ $[14] = t11;
37993
+ $[15] = t12;
37994
+ $[16] = t9;
37995
+ $[17] = t13;
37996
+ } else {
37997
+ t13 = $[17];
37998
+ }
37999
+ let t14;
38000
+ if ($[18] !== children || $[19] !== t13) {
38001
+ t14 = /* @__PURE__ */ jsxRuntime.jsx("div", { ref: scrollContainerRef, className: "flex-1 overflow-x-auto no-scrollbar min-w-0", onScroll: checkScroll, style: t8, children: /* @__PURE__ */ jsxRuntime.jsx(TabsPrimitive__namespace.List, { className: t13, children }) });
38002
+ $[18] = children;
38003
+ $[19] = t13;
38004
+ $[20] = t14;
38005
+ } else {
38006
+ t14 = $[20];
38007
+ }
38008
+ let t15;
38009
+ if ($[21] !== isScrollable || $[22] !== mode || $[23] !== showRightScroll) {
38010
+ t15 = isScrollable && /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", disabled: !showRightScroll, onClick: () => scroll("right"), className: cls("flex-shrink-0 z-10 flex items-center justify-center rounded-md px-0.5 py-1.5 transition-all h-10 w-6", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-surface-400", "disabled:pointer-events-none disabled:opacity-0", "text-surface-600 dark:text-surface-400 hover:bg-surface-200 dark:hover:bg-surface-800", mode === "primary" && "ml-1 bg-surface-50 dark:bg-surface-900 border", mode === "primary" && defaultBorderMixin, mode === "secondary" && "ml-1"), children: /* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon, { size: "small" }) });
38011
+ $[21] = isScrollable;
38012
+ $[22] = mode;
38013
+ $[23] = showRightScroll;
38014
+ $[24] = t15;
38015
+ } else {
38016
+ t15 = $[24];
38017
+ }
38018
+ let t16;
38019
+ if ($[25] !== onValueChange || $[26] !== t14 || $[27] !== t15 || $[28] !== t6 || $[29] !== t7 || $[30] !== value) {
38020
+ t16 = /* @__PURE__ */ jsxRuntime.jsxs(TabsPrimitive__namespace.Root, { value, onValueChange, className: t6, children: [
38021
+ t7,
38022
+ t14,
38023
+ t15
38024
+ ] });
38025
+ $[25] = onValueChange;
38026
+ $[26] = t14;
38027
+ $[27] = t15;
38028
+ $[28] = t6;
38029
+ $[29] = t7;
38030
+ $[30] = value;
38031
+ $[31] = t16;
38032
+ } else {
38033
+ t16 = $[31];
38034
+ }
38035
+ let t17;
38036
+ if ($[32] !== mode || $[33] !== t16) {
38037
+ t17 = /* @__PURE__ */ jsxRuntime.jsx(TabsModeContext.Provider, { value: mode, children: t16 });
38038
+ $[32] = mode;
38039
+ $[33] = t16;
38040
+ $[34] = t17;
38041
+ } else {
38042
+ t17 = $[34];
38043
+ }
38044
+ return t17;
37060
38045
  }
37061
38046
  function Tab(t0) {
37062
- const $ = reactCompilerRuntime.c(8);
38047
+ const $ = reactCompilerRuntime.c(15);
37063
38048
  const {
37064
38049
  value,
37065
38050
  className,
@@ -37067,27 +38052,46 @@
37067
38052
  children,
37068
38053
  disabled
37069
38054
  } = t0;
38055
+ const mode = React.useContext(TabsModeContext);
38056
+ let T0;
37070
38057
  let t1;
37071
- if ($[0] !== className || $[1] !== innerClassName) {
37072
- t1 = cls("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-white transition-all", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-surface-400 focus-visible:ring-offset-2", "disabled:pointer-events-none disabled:opacity-50", "data-[state=active]:bg-white data-[state=active]:text-surface-900 dark:data-[state=active]:bg-surface-950 dark:data-[state=active]:text-surface-50", className, innerClassName);
37073
- $[0] = className;
37074
- $[1] = innerClassName;
37075
- $[2] = t1;
37076
- } else {
37077
- t1 = $[2];
37078
- }
37079
38058
  let t2;
37080
- if ($[3] !== children || $[4] !== disabled || $[5] !== t1 || $[6] !== value) {
37081
- t2 = /* @__PURE__ */ jsxRuntime.jsx(TabsPrimitive__namespace.Trigger, { value, disabled, className: t1, children });
37082
- $[3] = children;
37083
- $[4] = disabled;
37084
- $[5] = t1;
37085
- $[6] = value;
38059
+ let t3;
38060
+ if ($[0] !== className || $[1] !== disabled || $[2] !== innerClassName || $[3] !== mode || $[4] !== value) {
38061
+ const primaryClasses = cls("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-white transition-all", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-surface-400 focus-visible:ring-offset-2", "disabled:pointer-events-none disabled:opacity-50", "data-[state=active]:bg-white data-[state=active]:text-surface-900 dark:data-[state=active]:bg-surface-950 dark:data-[state=active]:text-surface-50");
38062
+ const secondaryClasses = cls("inline-flex items-center justify-center whitespace-nowrap px-3 py-1.5 text-sm font-medium transition-all", "border-b-2 border-transparent -mb-px", "focus-visible:outline-none", "disabled:pointer-events-none disabled:opacity-50", "hover:text-surface-700 dark:hover:text-surface-300", "data-[state=active]:border-b-primary data-[state=active]:text-primary dark:data-[state=active]:border-b-primary dark:data-[state=active]:text-primary-dark");
38063
+ T0 = TabsPrimitive__namespace.Trigger;
38064
+ t1 = value;
38065
+ t2 = disabled;
38066
+ t3 = cls(mode === "secondary" ? secondaryClasses : primaryClasses, className, innerClassName);
38067
+ $[0] = className;
38068
+ $[1] = disabled;
38069
+ $[2] = innerClassName;
38070
+ $[3] = mode;
38071
+ $[4] = value;
38072
+ $[5] = T0;
38073
+ $[6] = t1;
37086
38074
  $[7] = t2;
38075
+ $[8] = t3;
37087
38076
  } else {
38077
+ T0 = $[5];
38078
+ t1 = $[6];
37088
38079
  t2 = $[7];
38080
+ t3 = $[8];
37089
38081
  }
37090
- return t2;
38082
+ let t4;
38083
+ if ($[9] !== T0 || $[10] !== children || $[11] !== t1 || $[12] !== t2 || $[13] !== t3) {
38084
+ t4 = /* @__PURE__ */ jsxRuntime.jsx(T0, { value: t1, disabled: t2, className: t3, children });
38085
+ $[9] = T0;
38086
+ $[10] = children;
38087
+ $[11] = t1;
38088
+ $[12] = t2;
38089
+ $[13] = t3;
38090
+ $[14] = t4;
38091
+ } else {
38092
+ t4 = $[14];
38093
+ }
38094
+ return t4;
37091
38095
  }
37092
38096
  const Table = React.memo((t0) => {
37093
38097
  const $ = reactCompilerRuntime.c(12);
@@ -37530,7 +38534,7 @@
37530
38534
  Badge.displayName = "Badge";
37531
38535
  function DebouncedTextField(props) {
37532
38536
  const $ = reactCompilerRuntime.c(13);
37533
- const previousEventRef = React.useRef();
38537
+ const previousEventRef = React.useRef(void 0);
37534
38538
  const [internalValue, setInternalValue] = React.useState(props.value);
37535
38539
  const deferredValue = React.useDeferredValue(internalValue);
37536
38540
  let t0;
@@ -37598,14 +38602,14 @@
37598
38602
  return t5;
37599
38603
  }
37600
38604
  function Skeleton(t0) {
37601
- const $ = reactCompilerRuntime.c(8);
38605
+ const $ = reactCompilerRuntime.c(10);
37602
38606
  const {
37603
38607
  width,
37604
38608
  height,
37605
38609
  className
37606
38610
  } = t0;
37607
- const t1 = width ? `${width}px` : "100%";
37608
- const t2 = height ? `${height}px` : "12px";
38611
+ const t1 = width !== void 0 ? `${width}px` : void 0;
38612
+ const t2 = height !== void 0 ? `${height}px` : void 0;
37609
38613
  let t3;
37610
38614
  if ($[0] !== t1 || $[1] !== t2) {
37611
38615
  t3 = {
@@ -37618,24 +38622,28 @@
37618
38622
  } else {
37619
38623
  t3 = $[2];
37620
38624
  }
37621
- let t4;
37622
- if ($[3] !== className) {
37623
- t4 = cls("block", "bg-surface-accent-200 dark:bg-surface-accent-800 rounded-md", "animate-pulse", "max-w-full max-h-full", className);
38625
+ const t4 = width === void 0 ? "w-full" : "";
38626
+ const t5 = height === void 0 ? "h-3" : "";
38627
+ let t6;
38628
+ if ($[3] !== className || $[4] !== t4 || $[5] !== t5) {
38629
+ t6 = cls("block", "bg-surface-accent-200 dark:bg-surface-accent-800 rounded-md", "animate-pulse", "max-w-full max-h-full", t4, t5, className);
37624
38630
  $[3] = className;
37625
38631
  $[4] = t4;
38632
+ $[5] = t5;
38633
+ $[6] = t6;
37626
38634
  } else {
37627
- t4 = $[4];
38635
+ t6 = $[6];
37628
38636
  }
37629
- let t5;
37630
- if ($[5] !== t3 || $[6] !== t4) {
37631
- t5 = /* @__PURE__ */ jsxRuntime.jsx("span", { style: t3, className: t4 });
37632
- $[5] = t3;
37633
- $[6] = t4;
37634
- $[7] = t5;
38637
+ let t7;
38638
+ if ($[7] !== t3 || $[8] !== t6) {
38639
+ t7 = /* @__PURE__ */ jsxRuntime.jsx("span", { style: t3, className: t6 });
38640
+ $[7] = t3;
38641
+ $[8] = t6;
38642
+ $[9] = t7;
37635
38643
  } else {
37636
- t5 = $[7];
38644
+ t7 = $[9];
37637
38645
  }
37638
- return t5;
38646
+ return t7;
37639
38647
  }
37640
38648
  function ToggleButtonGroup(t0) {
37641
38649
  const $ = reactCompilerRuntime.c(12);
@@ -38168,6 +39176,7 @@
38168
39176
  exports2.DataSaverOnIcon = DataSaverOnIcon;
38169
39177
  exports2.DataThresholdingIcon = DataThresholdingIcon;
38170
39178
  exports2.DataUsageIcon = DataUsageIcon;
39179
+ exports2.DatabaseIcon = DatabaseIcon;
38171
39180
  exports2.DatasetIcon = DatasetIcon;
38172
39181
  exports2.DatasetLinkedIcon = DatasetLinkedIcon;
38173
39182
  exports2.DateRangeIcon = DateRangeIcon;
@@ -38440,6 +39449,7 @@
38440
39449
  exports2.FireHydrantAltIcon = FireHydrantAltIcon;
38441
39450
  exports2.FireTruckIcon = FireTruckIcon;
38442
39451
  exports2.FireplaceIcon = FireplaceIcon;
39452
+ exports2.FirestoreIcon = FirestoreIcon;
38443
39453
  exports2.FirstPageIcon = FirstPageIcon;
38444
39454
  exports2.FitScreenIcon = FitScreenIcon;
38445
39455
  exports2.FitbitIcon = FitbitIcon;
@@ -39299,6 +40309,7 @@
39299
40309
  exports2.RequestPageIcon = RequestPageIcon;
39300
40310
  exports2.RequestQuoteIcon = RequestQuoteIcon;
39301
40311
  exports2.ResetTvIcon = ResetTvIcon;
40312
+ exports2.ResizablePanels = ResizablePanels;
39302
40313
  exports2.RestartAltIcon = RestartAltIcon;
39303
40314
  exports2.RestaurantIcon = RestaurantIcon;
39304
40315
  exports2.RestaurantMenuIcon = RestaurantMenuIcon;
@@ -39373,6 +40384,8 @@
39373
40384
  exports2.SearchBar = SearchBar;
39374
40385
  exports2.SearchIcon = SearchIcon;
39375
40386
  exports2.SearchOffIcon = SearchOffIcon;
40387
+ exports2.SearchableSelect = SearchableSelect;
40388
+ exports2.SearchableSelectItem = SearchableSelectItem;
39376
40389
  exports2.SecurityIcon = SecurityIcon;
39377
40390
  exports2.SecurityUpdateGoodIcon = SecurityUpdateGoodIcon;
39378
40391
  exports2.SecurityUpdateIcon = SecurityUpdateIcon;