@geomak/ui 5.8.0 → 5.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -607,7 +607,9 @@ function IconButton({
607
607
  disabled = false,
608
608
  size = "lg",
609
609
  loading = false,
610
- loadingIcon
610
+ loadingIcon,
611
+ className = "",
612
+ style
611
613
  }) {
612
614
  const colorScheme = useMemo(() => {
613
615
  if (type === "primary") {
@@ -624,7 +626,8 @@ function IconButton({
624
626
  type: buttonType,
625
627
  disabled: disabled || loading,
626
628
  onClick,
627
- className: `${size === "sm" ? "p-1" : "p-2"} rounded-lg shadow-md transition-colors duration-150 ${colorScheme} disabled:bg-surface-raised disabled:text-foreground-muted disabled:cursor-not-allowed focus:outline-none focus-visible:ring-2 focus-visible:ring-accent`,
629
+ style,
630
+ className: `${size === "sm" ? "p-1" : "p-2"} rounded-lg shadow-md transition-colors duration-150 ${colorScheme} disabled:bg-surface-raised disabled:text-foreground-muted disabled:cursor-not-allowed focus:outline-none focus-visible:ring-2 focus-visible:ring-accent ${className}`.trim(),
628
631
  children: loading ? loadingIcon : icon
629
632
  }
630
633
  );
@@ -675,7 +678,8 @@ function Button({
675
678
  disabled,
676
679
  style,
677
680
  icon,
678
- onClick
681
+ onClick,
682
+ className = ""
679
683
  }) {
680
684
  return /* @__PURE__ */ jsxs(
681
685
  "button",
@@ -690,8 +694,9 @@ function Button({
690
694
  "outline-none transition-colors duration-150 select-none",
691
695
  "whitespace-nowrap",
692
696
  SIZE_CLASSES[size],
693
- VARIANT_CLASSES[variant]
694
- ].join(" "),
697
+ VARIANT_CLASSES[variant],
698
+ className
699
+ ].filter(Boolean).join(" "),
695
700
  children: [
696
701
  loading ? /* @__PURE__ */ jsx(
697
702
  "svg",
@@ -726,7 +731,8 @@ function Modal({
726
731
  cancelText = "Cancel",
727
732
  hasFooter = true,
728
733
  title,
729
- children
734
+ children,
735
+ className = ""
730
736
  }) {
731
737
  const reduced = useReducedMotion();
732
738
  const maxWidth = width ?? size?.[0] ?? 600;
@@ -746,7 +752,7 @@ function Modal({
746
752
  /* @__PURE__ */ jsx(AnimatePresence, { children: isOpen && /* @__PURE__ */ jsx(Dialog.Content, { asChild: true, children: /* @__PURE__ */ jsxs(
747
753
  motion.div,
748
754
  {
749
- className: "fixed left-1/2 top-1/2 z-modal flex flex-col w-[calc(100%-2rem)] max-h-[90dvh] bg-surface rounded-2xl shadow-xl overflow-hidden focus:outline-none",
755
+ className: `fixed left-1/2 top-1/2 z-modal flex flex-col w-[calc(100%-2rem)] max-h-[90dvh] bg-surface rounded-2xl shadow-xl overflow-hidden focus:outline-none ${className}`.trim(),
750
756
  style: {
751
757
  maxWidth,
752
758
  x: "-50%",
@@ -808,7 +814,8 @@ function Drawer({
808
814
  onOk,
809
815
  onCancel,
810
816
  title,
811
- children
817
+ children,
818
+ className = ""
812
819
  }) {
813
820
  const reduced = useReducedMotion();
814
821
  const isRight = placement === "right";
@@ -829,7 +836,7 @@ function Drawer({
829
836
  /* @__PURE__ */ jsx(AnimatePresence, { children: isOpen && /* @__PURE__ */ jsx(Dialog.Content, { asChild: true, children: /* @__PURE__ */ jsxs(
830
837
  motion.div,
831
838
  {
832
- className: `fixed top-0 bottom-0 ${isRight ? "right-0" : "left-0"} z-modal flex flex-col bg-surface shadow-xl focus:outline-none`,
839
+ className: `fixed top-0 bottom-0 ${isRight ? "right-0" : "left-0"} z-modal flex flex-col bg-surface shadow-xl focus:outline-none ${className}`.trim(),
833
840
  style: { width: `min(calc(100vw - 1rem), ${width}px)` },
834
841
  initial: { x: reduced ? 0 : hiddenX, opacity: reduced ? 0 : 1 },
835
842
  animate: { x: 0, opacity: 1 },
@@ -1496,9 +1503,11 @@ function List2({
1496
1503
  items,
1497
1504
  onItemClick,
1498
1505
  activeKey,
1499
- density = "comfortable"
1506
+ density = "comfortable",
1507
+ className = "",
1508
+ style
1500
1509
  }) {
1501
- return /* @__PURE__ */ jsx("div", { role: "listbox", className: "flex flex-col", children: items.map((item) => {
1510
+ return /* @__PURE__ */ jsx("div", { role: "listbox", className: `flex flex-col ${className}`.trim(), style, children: items.map((item) => {
1502
1511
  const isActive = activeKey === item.key;
1503
1512
  const isDisabled = !!item.disabled;
1504
1513
  return /* @__PURE__ */ jsxs(
@@ -1620,8 +1629,8 @@ function CollapseIcon() {
1620
1629
  function ExpandIcon() {
1621
1630
  return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, className: "w-4 h-4", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M4 8V4h4M20 8V4h-4M4 16v4h4M20 16v4h-4" }) });
1622
1631
  }
1623
- function GridCard({ item, buttonText = "Open Application", onOpen }) {
1624
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col w-[200px] h-[250px] rounded-lg bg-ice dark:bg-independence items-center justify-between p-2 shadow-2xl", children: [
1632
+ function GridCard({ item, buttonText = "Open Application", onOpen, className = "", style }) {
1633
+ return /* @__PURE__ */ jsxs("div", { className: `flex flex-col w-[200px] h-[250px] rounded-lg bg-ice dark:bg-independence items-center justify-between p-2 shadow-2xl ${className}`.trim(), style, children: [
1625
1634
  /* @__PURE__ */ jsx("div", { className: "text-prussian-blue dark:text-white text-lg font-bold text-center h-1/4", children: /* @__PURE__ */ jsx("h2", { children: item.title }) }),
1626
1635
  /* @__PURE__ */ jsx("div", { className: "h-1/4 flex items-center justify-center", children: typeof item.cover === "string" ? /* @__PURE__ */ jsx("img", { src: item.cover, alt: "Grid Card Cover" }) : item.cover }),
1627
1636
  /* @__PURE__ */ jsx("div", { className: "text-prussian-blue text-sm dark:text-white text-center h-1/4", children: /* @__PURE__ */ jsx("p", { children: item.description }) }),
@@ -2240,8 +2249,8 @@ function Field({
2240
2249
  );
2241
2250
  }
2242
2251
  var SearchIcon = /* @__PURE__ */ jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "currentColor", className: "w-4 h-4", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { fillRule: "evenodd", d: "M10.5 3.75a6.75 6.75 0 100 13.5 6.75 6.75 0 000-13.5zM2.25 10.5a8.25 8.25 0 1114.59 5.28l4.69 4.69a.75.75 0 11-1.06 1.06l-4.69-4.69A8.25 8.25 0 012.25 10.5z", clipRule: "evenodd" }) });
2243
- var SearchInput = React8.forwardRef(function SearchInput2({ value, onChange, disabled, label, htmlFor, placeholder, name, inputStyle, style, layout = "vertical", size = "md", icon, helperText }, ref) {
2244
- return /* @__PURE__ */ jsx(Field, { label, htmlFor, layout, helperText, children: /* @__PURE__ */ jsxs(
2252
+ var SearchInput = React8.forwardRef(function SearchInput2({ value, onChange, disabled, label, htmlFor, placeholder, name, inputStyle, style, layout = "vertical", size = "md", icon, helperText, className }, ref) {
2253
+ return /* @__PURE__ */ jsx(Field, { className, label, htmlFor, layout, helperText, children: /* @__PURE__ */ jsxs(
2245
2254
  "div",
2246
2255
  {
2247
2256
  className: `flex items-center ${fieldShell({ size, disabled, focusWithin: true })}`,
@@ -2389,7 +2398,8 @@ function Dropdown({
2389
2398
  items = [],
2390
2399
  labelStyle = {},
2391
2400
  placeholder,
2392
- size = "md"
2401
+ size = "md",
2402
+ className = ""
2393
2403
  }) {
2394
2404
  const [open, setOpen] = useState(false);
2395
2405
  const [selectedItems, setSelectedItems] = useState([]);
@@ -2437,7 +2447,7 @@ function Dropdown({
2437
2447
  );
2438
2448
  };
2439
2449
  const isSelected = (key) => Array.isArray(value) ? value.includes(key) : value === key;
2440
- return /* @__PURE__ */ jsxs("div", { children: [
2450
+ return /* @__PURE__ */ jsxs("div", { className: className || void 0, children: [
2441
2451
  /* @__PURE__ */ jsxs(
2442
2452
  "div",
2443
2453
  {
@@ -2845,7 +2855,9 @@ function Table({
2845
2855
  footer = null,
2846
2856
  header = null,
2847
2857
  loading = false,
2848
- loadingRowCount = 8
2858
+ loadingRowCount = 8,
2859
+ className = "",
2860
+ style
2849
2861
  }) {
2850
2862
  const searchRef = useRef(null);
2851
2863
  const [searchTerm, setSearchTerm] = useState("");
@@ -2905,7 +2917,7 @@ function Table({
2905
2917
  }
2906
2918
  setActivePage(newPage);
2907
2919
  };
2908
- return /* @__PURE__ */ jsxs("div", { className: "w-full h-max rounded-lg", children: [
2920
+ return /* @__PURE__ */ jsxs("div", { className: `w-full h-max rounded-lg ${className}`.trim(), style, children: [
2909
2921
  /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-2", children: [
2910
2922
  hasSearch && /* @__PURE__ */ jsx(
2911
2923
  SearchInput_default,
@@ -3082,7 +3094,8 @@ function Sidebar({
3082
3094
  onToggle,
3083
3095
  expandedWidth = 220,
3084
3096
  collapsedWidth = 52,
3085
- footer
3097
+ footer,
3098
+ className = ""
3086
3099
  }) {
3087
3100
  return /* @__PURE__ */ jsx(TooltipProvider, { delayDuration: 200, children: /* @__PURE__ */ jsxs(
3088
3101
  motion.aside,
@@ -3090,7 +3103,7 @@ function Sidebar({
3090
3103
  initial: false,
3091
3104
  animate: { width: isExpanded ? expandedWidth : collapsedWidth },
3092
3105
  transition: { type: "tween", duration: 0.22, ease: [0.16, 1, 0.3, 1] },
3093
- className: "relative flex h-full flex-col border-r border-border bg-surface overflow-hidden flex-shrink-0",
3106
+ className: `relative flex h-full flex-col border-r border-border bg-surface overflow-hidden flex-shrink-0 ${className}`.trim(),
3094
3107
  children: [
3095
3108
  /* @__PURE__ */ jsxs("div", { className: [
3096
3109
  "flex h-14 flex-shrink-0 items-center border-b border-border",
@@ -3416,6 +3429,7 @@ function TextInput({
3416
3429
  onBlur,
3417
3430
  errorMessage,
3418
3431
  helperText,
3432
+ className,
3419
3433
  required,
3420
3434
  prefix,
3421
3435
  suffix
@@ -3444,6 +3458,7 @@ function TextInput({
3444
3458
  return /* @__PURE__ */ jsx(
3445
3459
  Field,
3446
3460
  {
3461
+ className,
3447
3462
  label,
3448
3463
  htmlFor,
3449
3464
  errorId,
@@ -3478,6 +3493,7 @@ function NumberInput({
3478
3493
  size = "md",
3479
3494
  errorMessage,
3480
3495
  helperText,
3496
+ className,
3481
3497
  required,
3482
3498
  inputStyle,
3483
3499
  labelStyle,
@@ -3522,6 +3538,7 @@ function NumberInput({
3522
3538
  return /* @__PURE__ */ jsx(
3523
3539
  Field,
3524
3540
  {
3541
+ className,
3525
3542
  label,
3526
3543
  htmlFor,
3527
3544
  errorId,
@@ -3613,6 +3630,7 @@ function Password({
3613
3630
  onBlur,
3614
3631
  errorMessage,
3615
3632
  helperText,
3633
+ className,
3616
3634
  required,
3617
3635
  showIcon,
3618
3636
  hideIcon
@@ -3623,6 +3641,7 @@ function Password({
3623
3641
  return /* @__PURE__ */ jsx(
3624
3642
  Field,
3625
3643
  {
3644
+ className,
3626
3645
  label,
3627
3646
  htmlFor,
3628
3647
  errorId,
@@ -3685,7 +3704,8 @@ function Checkbox({
3685
3704
  disabled = false,
3686
3705
  required,
3687
3706
  layout = "horizontal",
3688
- labelPosition = "right"
3707
+ labelPosition = "right",
3708
+ className = ""
3689
3709
  }) {
3690
3710
  const isChecked = checked ?? value ?? false;
3691
3711
  const labelFirst = labelPosition === "left";
@@ -3763,7 +3783,7 @@ function Checkbox({
3763
3783
  ] })
3764
3784
  ] });
3765
3785
  }
3766
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
3786
+ return /* @__PURE__ */ jsxs("div", { className: `flex flex-col gap-1 ${className}`.trim(), children: [
3767
3787
  /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-1", children: [
3768
3788
  content,
3769
3789
  helperText != null && /* @__PURE__ */ jsx(FieldHelpIcon, { text: helperText })
@@ -3794,6 +3814,7 @@ function RadioGroup({
3794
3814
  disabled,
3795
3815
  required,
3796
3816
  helperText,
3817
+ className,
3797
3818
  errorMessage
3798
3819
  }) {
3799
3820
  const errorId = useId();
@@ -3803,6 +3824,7 @@ function RadioGroup({
3803
3824
  return /* @__PURE__ */ jsx(
3804
3825
  Field,
3805
3826
  {
3827
+ className,
3806
3828
  label,
3807
3829
  htmlFor: groupId,
3808
3830
  errorId,
@@ -3888,6 +3910,7 @@ function Switch({
3888
3910
  label,
3889
3911
  layout = "horizontal",
3890
3912
  helperText,
3913
+ className,
3891
3914
  offLabel,
3892
3915
  onLabel,
3893
3916
  name,
@@ -3913,6 +3936,7 @@ function Switch({
3913
3936
  return /* @__PURE__ */ jsx(
3914
3937
  Field,
3915
3938
  {
3939
+ className,
3916
3940
  label,
3917
3941
  htmlFor: id,
3918
3942
  errorId,
@@ -3967,6 +3991,7 @@ function AutoComplete({
3967
3991
  icon,
3968
3992
  errorMessage,
3969
3993
  helperText,
3994
+ className,
3970
3995
  required,
3971
3996
  htmlFor
3972
3997
  }) {
@@ -4021,6 +4046,7 @@ function AutoComplete({
4021
4046
  return /* @__PURE__ */ jsx(
4022
4047
  Field,
4023
4048
  {
4049
+ className,
4024
4050
  label,
4025
4051
  htmlFor,
4026
4052
  errorId,
@@ -4126,6 +4152,7 @@ function TreeSelect({
4126
4152
  disabled,
4127
4153
  layout = "horizontal",
4128
4154
  helperText,
4155
+ className,
4129
4156
  required,
4130
4157
  errorMessage,
4131
4158
  style,
@@ -4213,6 +4240,7 @@ function TreeSelect({
4213
4240
  return /* @__PURE__ */ jsx(
4214
4241
  Field,
4215
4242
  {
4243
+ className,
4216
4244
  label,
4217
4245
  htmlFor,
4218
4246
  errorId,
@@ -4379,6 +4407,7 @@ function FileInput({
4379
4407
  maxSize,
4380
4408
  errorMessage,
4381
4409
  helperText,
4410
+ className,
4382
4411
  disabled,
4383
4412
  required,
4384
4413
  icon
@@ -4421,6 +4450,7 @@ function FileInput({
4421
4450
  return /* @__PURE__ */ jsxs(
4422
4451
  Field,
4423
4452
  {
4453
+ className,
4424
4454
  label,
4425
4455
  htmlFor,
4426
4456
  errorId,
@@ -4884,6 +4914,7 @@ function TextArea({
4884
4914
  resize,
4885
4915
  errorMessage,
4886
4916
  helperText,
4917
+ className,
4887
4918
  required,
4888
4919
  style,
4889
4920
  inputStyle
@@ -4905,6 +4936,7 @@ function TextArea({
4905
4936
  return /* @__PURE__ */ jsxs(
4906
4937
  Field,
4907
4938
  {
4939
+ className,
4908
4940
  label,
4909
4941
  htmlFor,
4910
4942
  errorId,
@@ -4953,6 +4985,7 @@ function SegmentedControl({
4953
4985
  label,
4954
4986
  layout = "vertical",
4955
4987
  helperText,
4988
+ className,
4956
4989
  name,
4957
4990
  required,
4958
4991
  errorMessage,
@@ -4973,6 +5006,7 @@ function SegmentedControl({
4973
5006
  return /* @__PURE__ */ jsxs(
4974
5007
  Field,
4975
5008
  {
5009
+ className,
4976
5010
  label,
4977
5011
  htmlFor: groupId,
4978
5012
  errorId,
@@ -5051,6 +5085,7 @@ function Slider({
5051
5085
  disabled,
5052
5086
  errorMessage,
5053
5087
  helperText,
5088
+ className,
5054
5089
  required,
5055
5090
  name,
5056
5091
  htmlFor
@@ -5069,7 +5104,7 @@ function Slider({
5069
5104
  onChange?.(next);
5070
5105
  };
5071
5106
  const valueText = current.map(formatValue).join(" \u2013 ");
5072
- return /* @__PURE__ */ jsxs(Field, { label: void 0, errorId, errorMessage, children: [
5107
+ return /* @__PURE__ */ jsxs(Field, { className, label: void 0, errorId, errorMessage, children: [
5073
5108
  (label || showValue) && /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-2", children: [
5074
5109
  label && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
5075
5110
  /* @__PURE__ */ jsxs("label", { htmlFor, className: "text-sm font-medium text-foreground select-none", children: [
@@ -5150,6 +5185,7 @@ function TagsInput({
5150
5185
  disabled,
5151
5186
  errorMessage,
5152
5187
  helperText,
5188
+ className,
5153
5189
  required,
5154
5190
  maxTags,
5155
5191
  dedupe = true,
@@ -5213,6 +5249,7 @@ function TagsInput({
5213
5249
  return /* @__PURE__ */ jsx(
5214
5250
  Field,
5215
5251
  {
5252
+ className,
5216
5253
  label,
5217
5254
  htmlFor,
5218
5255
  errorId,
@@ -5287,6 +5324,7 @@ function OtpInput({
5287
5324
  required,
5288
5325
  layout = "vertical",
5289
5326
  helperText,
5327
+ className,
5290
5328
  groupAfter
5291
5329
  }) {
5292
5330
  const errorId = useId();
@@ -5340,7 +5378,7 @@ function OtpInput({
5340
5378
  emit(valid.join(""));
5341
5379
  focusBox(valid.length);
5342
5380
  };
5343
- return /* @__PURE__ */ jsx(Field, { label, htmlFor, errorId, errorMessage, required, layout, helperText, children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", role: "group", "aria-label": typeof label === "string" ? label : "One-time code", children: chars.map((char, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
5381
+ return /* @__PURE__ */ jsx(Field, { className, label, htmlFor, errorId, errorMessage, required, layout, helperText, children: /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2", role: "group", "aria-label": typeof label === "string" ? label : "One-time code", children: chars.map((char, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
5344
5382
  /* @__PURE__ */ jsx(
5345
5383
  "input",
5346
5384
  {
@@ -5395,6 +5433,7 @@ function Rating({
5395
5433
  name,
5396
5434
  layout = "vertical",
5397
5435
  helperText,
5436
+ className,
5398
5437
  required
5399
5438
  }) {
5400
5439
  const errorId = useId();
@@ -5425,7 +5464,7 @@ function Rating({
5425
5464
  commit(count);
5426
5465
  }
5427
5466
  };
5428
- return /* @__PURE__ */ jsx(Field, { label, errorId, errorMessage, layout, required, helperText, children: /* @__PURE__ */ jsxs(
5467
+ return /* @__PURE__ */ jsx(Field, { className, label, errorId, errorMessage, layout, required, helperText, children: /* @__PURE__ */ jsxs(
5429
5468
  "div",
5430
5469
  {
5431
5470
  role: interactive ? "slider" : "img",
@@ -5518,6 +5557,7 @@ function TimePicker({
5518
5557
  disabled,
5519
5558
  errorMessage,
5520
5559
  helperText,
5560
+ className,
5521
5561
  required,
5522
5562
  style
5523
5563
  }) {
@@ -5550,7 +5590,7 @@ function TimePicker({
5550
5590
  },
5551
5591
  n
5552
5592
  )) });
5553
- return /* @__PURE__ */ jsxs(Field, { label, htmlFor, errorId, errorMessage, helperText, layout, required, children: [
5593
+ return /* @__PURE__ */ jsxs(Field, { className, label, htmlFor, errorId, errorMessage, helperText, layout, required, children: [
5554
5594
  /* @__PURE__ */ jsxs(Popover.Root, { open: open && !disabled, onOpenChange: (o) => !disabled && setOpen(o), children: [
5555
5595
  /* @__PURE__ */ jsx(Popover.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(
5556
5596
  "button",
@@ -5643,6 +5683,7 @@ function DateRangePicker({
5643
5683
  disabled,
5644
5684
  errorMessage,
5645
5685
  helperText,
5686
+ className,
5646
5687
  required,
5647
5688
  style
5648
5689
  }) {
@@ -5715,7 +5756,7 @@ function DateRangePicker({
5715
5756
  ] })
5716
5757
  ] });
5717
5758
  };
5718
- return /* @__PURE__ */ jsx(Field, { label, htmlFor, errorId, errorMessage, helperText, layout, required, children: /* @__PURE__ */ jsxs(Popover.Root, { open: open && !disabled, onOpenChange: (o) => {
5759
+ return /* @__PURE__ */ jsx(Field, { className, label, htmlFor, errorId, errorMessage, helperText, layout, required, children: /* @__PURE__ */ jsxs(Popover.Root, { open: open && !disabled, onOpenChange: (o) => {
5719
5760
  if (!disabled) {
5720
5761
  setOpen(o);
5721
5762
  if (!o) {
@@ -5824,6 +5865,7 @@ function ColorPicker({
5824
5865
  disabled,
5825
5866
  errorMessage,
5826
5867
  helperText,
5868
+ className,
5827
5869
  required,
5828
5870
  placeholder = "Pick a colour\u2026"
5829
5871
  }) {
@@ -5841,7 +5883,7 @@ function ColorPicker({
5841
5883
  setDraft(hex);
5842
5884
  if (HEX_RE.test(hex)) onChange?.(hex);
5843
5885
  };
5844
- return /* @__PURE__ */ jsxs(Field, { label, htmlFor, errorId, errorMessage, helperText, layout, required, children: [
5886
+ return /* @__PURE__ */ jsxs(Field, { className, label, htmlFor, errorId, errorMessage, helperText, layout, required, children: [
5845
5887
  /* @__PURE__ */ jsxs(Popover.Root, { open: open && !disabled, onOpenChange: (o) => !disabled && setOpen(o), children: [
5846
5888
  /* @__PURE__ */ jsx(Popover.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(
5847
5889
  "button",