@proteos/ui 0.75.0 → 0.77.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.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkNWGG5WFL_cjs = require('./chunk-NWGG5WFL.cjs');
3
+ var chunk4ACELYEP_cjs = require('./chunk-4ACELYEP.cjs');
4
4
  var lucideReact = require('lucide-react');
5
5
  var tailwindVariants = require('tailwind-variants');
6
6
  var reactAriaComponents = require('react-aria-components');
@@ -33,7 +33,7 @@ function PopoverContent({
33
33
  offset,
34
34
  placement,
35
35
  ...props,
36
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
36
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
37
37
  "rounded-md border border-rule bg-surface",
38
38
  "shadow-[var(--shadow-float)]",
39
39
  "entering:animate-enter-slide-down",
@@ -52,7 +52,7 @@ function PopoverPanelHeader({
52
52
  return /* @__PURE__ */ jsxRuntime.jsx(
53
53
  "div",
54
54
  {
55
- className: chunkNWGG5WFL_cjs.cn(
55
+ className: chunk4ACELYEP_cjs.cn(
56
56
  "flex items-center justify-between gap-2",
57
57
  "px-3.5 py-2.5 border-b border-rule",
58
58
  className
@@ -65,7 +65,7 @@ function PopoverPanelBody({
65
65
  className,
66
66
  children
67
67
  }) {
68
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn("p-2", className), children });
68
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunk4ACELYEP_cjs.cn("p-2", className), children });
69
69
  }
70
70
  function PopoverPanelFooter({
71
71
  className,
@@ -74,7 +74,7 @@ function PopoverPanelFooter({
74
74
  return /* @__PURE__ */ jsxRuntime.jsx(
75
75
  "div",
76
76
  {
77
- className: chunkNWGG5WFL_cjs.cn(
77
+ className: chunk4ACELYEP_cjs.cn(
78
78
  "flex items-center justify-between gap-2",
79
79
  "px-3.5 py-2.5 border-t border-rule",
80
80
  "bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]",
@@ -157,10 +157,10 @@ function FileField({
157
157
  };
158
158
  if (!value) {
159
159
  if (isReadOnly) {
160
- return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("text-ink-4", className), children: "\u2014" });
160
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk4ACELYEP_cjs.cn("text-ink-4", className), children: "\u2014" });
161
161
  }
162
162
  if (isUploading) {
163
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(dropZoneStyles({ isInvalid }), className), children: [
163
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn(dropZoneStyles({ isInvalid }), className), children: [
164
164
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Loader2, { className: "size-3.5 animate-spin", "aria-hidden": true }),
165
165
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-sans text-[12.5px]", children: "Uploading\u2026" })
166
166
  ] });
@@ -180,7 +180,7 @@ function FileField({
180
180
  {
181
181
  onSelect: handleSelect,
182
182
  ...acceptedFileTypes ? { acceptedFileTypes } : {},
183
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { variant: "ghost", size: "sm", children: "Browse" })
183
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Button, { variant: "ghost", size: "sm", children: "Browse" })
184
184
  }
185
185
  )
186
186
  ]
@@ -194,7 +194,7 @@ function FileField({
194
194
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className, children: [
195
195
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cardStyles({ isClickable }), children: [
196
196
  /* @__PURE__ */ jsxRuntime.jsxs(
197
- chunkNWGG5WFL_cjs.Button,
197
+ chunk4ACELYEP_cjs.Button,
198
198
  {
199
199
  variant: "subtle",
200
200
  className: "m-0 flex min-w-0 flex-1 items-start gap-3 border-0 bg-transparent p-0 text-left hover:bg-transparent",
@@ -204,7 +204,7 @@ function FileField({
204
204
  /* @__PURE__ */ jsxRuntime.jsx(
205
205
  Icon,
206
206
  {
207
- className: chunkNWGG5WFL_cjs.cn("mt-0.5 size-5 shrink-0 text-ink-3", isUploading && "animate-spin"),
207
+ className: chunk4ACELYEP_cjs.cn("mt-0.5 size-5 shrink-0 text-ink-3", isUploading && "animate-spin"),
208
208
  "aria-hidden": true,
209
209
  strokeWidth: 1.6
210
210
  }
@@ -218,7 +218,7 @@ function FileField({
218
218
  ),
219
219
  !isReadOnly && onDelete && !isUploading ? /* @__PURE__ */ jsxRuntime.jsxs(Popover, { children: [
220
220
  /* @__PURE__ */ jsxRuntime.jsx(
221
- chunkNWGG5WFL_cjs.Button,
221
+ chunk4ACELYEP_cjs.Button,
222
222
  {
223
223
  "aria-label": "Remove file",
224
224
  size: "icon-sm",
@@ -238,13 +238,13 @@ function FileField({
238
238
  ) }),
239
239
  /* @__PURE__ */ jsxRuntime.jsx(PopoverPanelBody, { className: "px-3.5 py-3", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "m-0 font-sans text-[12px] leading-snug text-ink-2", children: "This removes the attachment from this record." }) }),
240
240
  /* @__PURE__ */ jsxRuntime.jsxs(PopoverPanelFooter, { children: [
241
- /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { variant: "ghost", size: "sm", onPress: close, children: "Cancel" }),
241
+ /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Button, { variant: "ghost", size: "sm", onPress: close, children: "Cancel" }),
242
242
  /* @__PURE__ */ jsxRuntime.jsx(
243
- chunkNWGG5WFL_cjs.Button,
243
+ chunk4ACELYEP_cjs.Button,
244
244
  {
245
245
  variant: "primary",
246
246
  size: "sm",
247
- className: chunkNWGG5WFL_cjs.cn("bg-danger border-danger", "hover:bg-danger hover:border-danger"),
247
+ className: chunk4ACELYEP_cjs.cn("bg-danger border-danger", "hover:bg-danger hover:border-danger"),
248
248
  onPress: () => {
249
249
  onDelete();
250
250
  close();
@@ -294,17 +294,17 @@ function AttachmentChip({
294
294
  /* @__PURE__ */ jsxRuntime.jsx(
295
295
  Icon,
296
296
  {
297
- className: chunkNWGG5WFL_cjs.cn("size-3.5 shrink-0 text-ink-3", status === "uploading" && "animate-spin"),
297
+ className: chunk4ACELYEP_cjs.cn("size-3.5 shrink-0 text-ink-3", status === "uploading" && "animate-spin"),
298
298
  "aria-hidden": true
299
299
  }
300
300
  ),
301
301
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate", children: name }),
302
- meta ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("shrink-0", status !== "error" && "text-ink-4"), children: meta }) : null
302
+ meta ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk4ACELYEP_cjs.cn("shrink-0", status !== "error" && "text-ink-4"), children: meta }) : null
303
303
  ] });
304
304
  return /* @__PURE__ */ jsxRuntime.jsxs(
305
305
  "span",
306
306
  {
307
- className: chunkNWGG5WFL_cjs.cn(attachmentChipStyles({ status, isInteractive: Boolean(onPress) }), className),
307
+ className: chunk4ACELYEP_cjs.cn(attachmentChipStyles({ status, isInteractive: Boolean(onPress) }), className),
308
308
  title: errorMessage ?? name,
309
309
  children: [
310
310
  onPress ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -325,7 +325,7 @@ function AttachmentChip({
325
325
  event.stopPropagation();
326
326
  onRemove();
327
327
  },
328
- className: chunkNWGG5WFL_cjs.cn(
328
+ className: chunk4ACELYEP_cjs.cn(
329
329
  "inline-flex shrink-0 items-center justify-center",
330
330
  "size-4 rounded-[3px]",
331
331
  "cursor-pointer text-ink-3 hover:bg-surface-3 hover:text-ink",
@@ -396,7 +396,7 @@ function AttributeTypeIcon({
396
396
  {
397
397
  "aria-hidden": true,
398
398
  strokeWidth: strokeWidth ?? 1.6,
399
- className: chunkNWGG5WFL_cjs.cn("size-3.5", className),
399
+ className: chunk4ACELYEP_cjs.cn("size-3.5", className),
400
400
  ...props
401
401
  }
402
402
  );
@@ -465,7 +465,7 @@ function AvailabilityCalendar({
465
465
  onChange: (next) => onChange(next),
466
466
  ...unavailable ? { isDateUnavailable: unavailable } : {},
467
467
  visibleDuration: { months: 1 },
468
- className: chunkNWGG5WFL_cjs.cn(styles4.root(), className),
468
+ className: chunk4ACELYEP_cjs.cn(styles4.root(), className),
469
469
  children: [
470
470
  /* @__PURE__ */ jsxRuntime.jsxs("header", { className: styles4.header(), children: [
471
471
  /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Heading, { className: styles4.heading(), children: /* @__PURE__ */ jsxRuntime.jsx(MonthHeading, { yearClassName: styles4.headingYear() }) }),
@@ -476,7 +476,7 @@ function AvailabilityCalendar({
476
476
  ] }),
477
477
  /* @__PURE__ */ jsxRuntime.jsx("div", { "aria-busy": isLoading, children: /* @__PURE__ */ jsxRuntime.jsxs(reactAriaComponents.CalendarGrid, { weekdayStyle, className: styles4.grid(), children: [
478
478
  /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.CalendarGridHeader, { children: (day) => /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.CalendarHeaderCell, { className: styles4.weekday(), children: day }) }),
479
- /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.CalendarGridBody, { children: (date) => /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.CalendarCell, { date, className: styles4.cell(), children: ({ formattedDate, isToday, isOutsideMonth }) => isLoading && !isOutsideMonth ? /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Skeleton, { className: styles4.cellSkeleton() }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
479
+ /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.CalendarGridBody, { children: (date) => /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.CalendarCell, { date, className: styles4.cell(), children: ({ formattedDate, isToday, isOutsideMonth }) => isLoading && !isOutsideMonth ? /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Skeleton, { className: styles4.cellSkeleton() }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
480
480
  formattedDate,
481
481
  isToday && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles4.dot(), "aria-hidden": "true" })
482
482
  ] }) }) })
@@ -543,7 +543,7 @@ function Avatar({
543
543
  }) {
544
544
  const [failedSrc, setFailedSrc] = react.useState(null);
545
545
  const showsImage = Boolean(src) && failedSrc !== src;
546
- return /* @__PURE__ */ jsxRuntime.jsx("span", { ...props, className: chunkNWGG5WFL_cjs.cn(avatarStyles({ size, tone, shape }), className), children: showsImage ? /* @__PURE__ */ jsxRuntime.jsx(
546
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { ...props, className: chunk4ACELYEP_cjs.cn(avatarStyles({ size, tone, shape }), className), children: showsImage ? /* @__PURE__ */ jsxRuntime.jsx(
547
547
  "img",
548
548
  {
549
549
  src: src ?? void 0,
@@ -573,7 +573,7 @@ function AvatarGroup({
573
573
  }) {
574
574
  const shown = avatars.slice(0, max);
575
575
  const overflow = avatars.length - shown.length;
576
- return /* @__PURE__ */ jsxRuntime.jsxs("span", { ...props, className: chunkNWGG5WFL_cjs.cn(avatarGroupStyles({ size }), className), children: [
576
+ return /* @__PURE__ */ jsxRuntime.jsxs("span", { ...props, className: chunk4ACELYEP_cjs.cn(avatarGroupStyles({ size }), className), children: [
577
577
  shown.map((avatar, index) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full ring-[1.5px] ring-surface", children: /* @__PURE__ */ jsxRuntime.jsx(
578
578
  Avatar,
579
579
  {
@@ -749,7 +749,7 @@ function IconPicker({
749
749
  open(false);
750
750
  triggerRef.current?.focus();
751
751
  };
752
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("grid grid-cols-1 gap-1.5 content-start", className), children: [
752
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn("grid grid-cols-1 gap-1.5 content-start", className), children: [
753
753
  label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
754
754
  compact ? /* @__PURE__ */ jsxRuntime.jsx(
755
755
  "button",
@@ -763,7 +763,7 @@ function IconPicker({
763
763
  disabled: isDisabled,
764
764
  onClick: () => open(!isOpen),
765
765
  "data-invalid": isInvalid || void 0,
766
- className: chunkNWGG5WFL_cjs.cn(
766
+ className: chunk4ACELYEP_cjs.cn(
767
767
  styles4.box(),
768
768
  "flex shrink-0 items-center justify-center cursor-pointer",
769
769
  appearance === "cell" ? "size-[29px]" : COMPACT_SIZE[size],
@@ -782,7 +782,7 @@ function IconPicker({
782
782
  disabled: isDisabled,
783
783
  onClick: () => open(!isOpen),
784
784
  "data-invalid": isInvalid || void 0,
785
- className: chunkNWGG5WFL_cjs.cn(
785
+ className: chunk4ACELYEP_cjs.cn(
786
786
  // box carries no padding by contract — content is what gives a
787
787
  // single-element control its interior (padding, font, text-size).
788
788
  styles4.box(),
@@ -792,7 +792,7 @@ function IconPicker({
792
792
  ),
793
793
  children: [
794
794
  SelectedIcon ? /* @__PURE__ */ jsxRuntime.jsx(SelectedIcon, { "aria-hidden": true, className: "size-4 shrink-0 text-ink-2" }) : null,
795
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("min-w-0 flex-1 truncate", selectedName ? "text-ink" : "text-ink-4"), children: selectedName ?? placeholder }),
795
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk4ACELYEP_cjs.cn("min-w-0 flex-1 truncate", selectedName ? "text-ink" : "text-ink-4"), children: selectedName ?? placeholder }),
796
796
  /* @__PURE__ */ jsxRuntime.jsx(FieldCaret, {})
797
797
  ]
798
798
  }
@@ -807,7 +807,7 @@ function IconPicker({
807
807
  triggerRef,
808
808
  offset: 6,
809
809
  placement: "bottom start",
810
- className: chunkNWGG5WFL_cjs.cn(
810
+ className: chunk4ACELYEP_cjs.cn(
811
811
  "w-[316px] rounded-md border border-rule bg-surface p-2",
812
812
  "shadow-[var(--shadow-raised)]",
813
813
  "entering:animate-enter-slide-down",
@@ -818,7 +818,7 @@ function IconPicker({
818
818
  /* @__PURE__ */ jsxRuntime.jsxs(
819
819
  "div",
820
820
  {
821
- className: chunkNWGG5WFL_cjs.cn(
821
+ className: chunk4ACELYEP_cjs.cn(
822
822
  fieldControlStyles({ size: "sm" }).box(),
823
823
  "flex min-w-0 flex-1 items-center gap-1.5 px-2.5 py-1.5",
824
824
  "focus-within:border-accent focus-within:shadow-[var(--shadow-focus)]"
@@ -833,7 +833,7 @@ function IconPicker({
833
833
  value: query,
834
834
  onChange: (event) => search(event.target.value),
835
835
  placeholder: "Search icons\u2026",
836
- className: chunkNWGG5WFL_cjs.cn(
836
+ className: chunk4ACELYEP_cjs.cn(
837
837
  "min-w-0 flex-1 bg-transparent font-sans outline-none",
838
838
  "text-ink placeholder:text-ink-4",
839
839
  fieldTextStyles.sm
@@ -848,7 +848,7 @@ function IconPicker({
848
848
  {
849
849
  type: "button",
850
850
  onClick: () => pick(null),
851
- className: chunkNWGG5WFL_cjs.cn(
851
+ className: chunk4ACELYEP_cjs.cn(
852
852
  "flex shrink-0 items-center gap-1 rounded-[6px] px-2 py-1.5 cursor-pointer",
853
853
  "font-sans text-[12px] text-ink-3 transition-colors",
854
854
  "hover:bg-surface-2 hover:text-ink",
@@ -879,7 +879,7 @@ function IconPicker({
879
879
  if (next !== void 0) pick(next);
880
880
  },
881
881
  className: "grid grid-cols-8 gap-0.5 outline-none",
882
- renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn("col-span-8 px-2 py-3 text-center", fieldHintStyles), children: "No icons match" }),
882
+ renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunk4ACELYEP_cjs.cn("col-span-8 px-2 py-3 text-center", fieldHintStyles), children: "No icons match" }),
883
883
  children: visible.map((name) => {
884
884
  const Icon = lucideReact.icons[name];
885
885
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -888,7 +888,7 @@ function IconPicker({
888
888
  id: name,
889
889
  textValue: name,
890
890
  "aria-label": name,
891
- className: chunkNWGG5WFL_cjs.cn(
891
+ className: chunk4ACELYEP_cjs.cn(
892
892
  "flex size-[34px] items-center justify-center rounded-[6px]",
893
893
  "cursor-pointer outline-none",
894
894
  "data-[hovered]:bg-surface-2 data-[focused]:bg-surface-2",
@@ -905,7 +905,7 @@ function IconPicker({
905
905
  )
906
906
  }
907
907
  ),
908
- hiddenCount > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("p", { className: chunkNWGG5WFL_cjs.cn("px-1 pt-2", fieldHintStyles), children: [
908
+ hiddenCount > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("p", { className: chunk4ACELYEP_cjs.cn("px-1 pt-2", fieldHintStyles), children: [
909
909
  hiddenCount.toLocaleString(),
910
910
  " more \u2014 keep scrolling, or search."
911
911
  ] }) : null
@@ -995,13 +995,13 @@ function Badge({
995
995
  {
996
996
  ...props,
997
997
  style: mergedStyle,
998
- className: chunkNWGG5WFL_cjs.cn(
998
+ className: chunk4ACELYEP_cjs.cn(
999
999
  badgeStyles({ variant: register2, shape, hasDot }),
1000
1000
  showDot ? null : "before:hidden",
1001
1001
  className
1002
1002
  ),
1003
1003
  children: [
1004
- Icon ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { "aria-hidden": true, className: chunkNWGG5WFL_cjs.cn("size-3 shrink-0", ICON_TONE[register2]) }) : null,
1004
+ Icon ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { "aria-hidden": true, className: chunk4ACELYEP_cjs.cn("size-3 shrink-0", ICON_TONE[register2]) }) : null,
1005
1005
  children,
1006
1006
  actions ? (
1007
1007
  // Pulled flush with the trailing edge so the chip still reads
@@ -1023,7 +1023,7 @@ function BadgeAction({ label, onPress, isDisabled = false, children }) {
1023
1023
  event.stopPropagation();
1024
1024
  onPress();
1025
1025
  },
1026
- className: chunkNWGG5WFL_cjs.cn(
1026
+ className: chunk4ACELYEP_cjs.cn(
1027
1027
  "inline-flex items-center justify-center shrink-0",
1028
1028
  "size-3.5 rounded-full",
1029
1029
  "text-current/70 hover:text-current hover:bg-current/10",
@@ -1056,7 +1056,7 @@ function Tooltip({ className, offset = 6, ...props }) {
1056
1056
  {
1057
1057
  ...props,
1058
1058
  offset,
1059
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
1059
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
1060
1060
  // Above the floating chat / softphone windows (1100 / 1200) and their
1061
1061
  // full-screen workspace, like Select and Toast — a page inside the
1062
1062
  // window keeps its tooltips.
@@ -1166,7 +1166,7 @@ function BadgeGroup({ children, className, ...props }) {
1166
1166
  {
1167
1167
  ...props,
1168
1168
  ref: rootRef,
1169
- className: chunkNWGG5WFL_cjs.cn(badgeGroupStyles({ isMeasuring: measuring }), className),
1169
+ className: chunk4ACELYEP_cjs.cn(badgeGroupStyles({ isMeasuring: measuring }), className),
1170
1170
  children: [
1171
1171
  shown.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
1172
1172
  "span",
@@ -1335,7 +1335,7 @@ function BadgeMultiSelect({
1335
1335
  setIsOpen(false);
1336
1336
  }
1337
1337
  };
1338
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("grid grid-cols-1 gap-1.5 content-start", className), children: [
1338
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn("grid grid-cols-1 gap-1.5 content-start", className), children: [
1339
1339
  label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
1340
1340
  /* @__PURE__ */ jsxRuntime.jsxs(
1341
1341
  "div",
@@ -1352,7 +1352,7 @@ function BadgeMultiSelect({
1352
1352
  onKeyDown: onTriggerKeyDown,
1353
1353
  "data-invalid": isInvalid || void 0,
1354
1354
  "data-disabled": isDisabled || void 0,
1355
- className: chunkNWGG5WFL_cjs.cn(
1355
+ className: chunk4ACELYEP_cjs.cn(
1356
1356
  styles4.box(),
1357
1357
  "flex items-stretch cursor-pointer",
1358
1358
  // Cell editor: one table row (29px under a 32px row) while the chips
@@ -1367,7 +1367,7 @@ function BadgeMultiSelect({
1367
1367
  "div",
1368
1368
  {
1369
1369
  ref: chipsRef,
1370
- className: chunkNWGG5WFL_cjs.cn(
1370
+ className: chunk4ACELYEP_cjs.cn(
1371
1371
  "flex flex-1 flex-wrap items-center gap-1.5 min-w-0",
1372
1372
  isCell && (hasWrapped ? "content-start overflow-y-auto" : "content-center overflow-hidden")
1373
1373
  ),
@@ -1375,7 +1375,7 @@ function BadgeMultiSelect({
1375
1375
  // No vertical padding — wrapper's p-1.5 + min-h-[size] govern the
1376
1376
  // overall height so it matches the Input/Select trigger at the same
1377
1377
  // size.
1378
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("text-ink-4 font-sans px-1", fieldTextStyles[size]), children: placeholder })
1378
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk4ACELYEP_cjs.cn("text-ink-4 font-sans px-1", fieldTextStyles[size]), children: placeholder })
1379
1379
  ) : selectedOptions.map((o) => /* @__PURE__ */ jsxRuntime.jsx(
1380
1380
  Badge,
1381
1381
  {
@@ -1411,7 +1411,7 @@ function BadgeMultiSelect({
1411
1411
  placement: "bottom start",
1412
1412
  isNonModal: true,
1413
1413
  shouldCloseOnInteractOutside: (element) => !triggerRef.current?.contains(element),
1414
- className: chunkNWGG5WFL_cjs.cn(
1414
+ className: chunk4ACELYEP_cjs.cn(
1415
1415
  // At least as wide as the trigger, wider when a badge needs it —
1416
1416
  // a narrow table column must not clip its own options.
1417
1417
  "min-w-[var(--trigger-width)] w-max max-w-[min(28rem,calc(100vw-2rem))]",
@@ -1440,14 +1440,14 @@ function BadgeMultiSelect({
1440
1440
  },
1441
1441
  autoFocus: "first",
1442
1442
  className: "outline-none max-h-72 overflow-auto",
1443
- renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn("px-3 py-2", fieldHintStyles), children: "All options selected" }),
1443
+ renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunk4ACELYEP_cjs.cn("px-3 py-2", fieldHintStyles), children: "All options selected" }),
1444
1444
  children: listboxOptions.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
1445
1445
  reactAriaComponents.ListBoxItem,
1446
1446
  {
1447
1447
  id: option.id,
1448
1448
  textValue: option.label,
1449
1449
  ...option.isDisabled ? { isDisabled: true } : {},
1450
- className: chunkNWGG5WFL_cjs.cn(
1450
+ className: chunk4ACELYEP_cjs.cn(
1451
1451
  "group flex items-center gap-2.5",
1452
1452
  "rounded-[6px] px-2.5 py-1.5",
1453
1453
  "cursor-pointer outline-none select-none",
@@ -1474,7 +1474,7 @@ function Breadcrumbs({ items, separator = "/", className, ...props }) {
1474
1474
  reactAriaComponents.Breadcrumbs,
1475
1475
  {
1476
1476
  ...props,
1477
- className: chunkNWGG5WFL_cjs.cn(
1477
+ className: chunk4ACELYEP_cjs.cn(
1478
1478
  "flex items-center gap-2",
1479
1479
  "font-mono text-[12px] text-ink-3",
1480
1480
  // RAC renders Breadcrumbs as <ol> — neutralise list defaults.
@@ -1493,7 +1493,7 @@ function Breadcrumbs({ items, separator = "/", className, ...props }) {
1493
1493
  reactAriaComponents.Link,
1494
1494
  {
1495
1495
  href: item.href,
1496
- className: chunkNWGG5WFL_cjs.cn(
1496
+ className: chunk4ACELYEP_cjs.cn(
1497
1497
  "rounded-sm outline-none cursor-pointer",
1498
1498
  "transition-colors duration-150",
1499
1499
  "hover:text-ink",
@@ -1505,7 +1505,7 @@ function Breadcrumbs({ items, separator = "/", className, ...props }) {
1505
1505
  ) : /* @__PURE__ */ jsxRuntime.jsx(
1506
1506
  "span",
1507
1507
  {
1508
- className: chunkNWGG5WFL_cjs.cn(isLast && "text-ink font-semibold"),
1508
+ className: chunk4ACELYEP_cjs.cn(isLast && "text-ink font-semibold"),
1509
1509
  "aria-current": isLast ? "page" : void 0,
1510
1510
  children: item.label
1511
1511
  }
@@ -1543,7 +1543,7 @@ var cardStyles2 = tailwindVariants.tv({
1543
1543
  }
1544
1544
  });
1545
1545
  function Card({ variant, className, ...props }) {
1546
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunkNWGG5WFL_cjs.cn(cardStyles2({ variant }), className) });
1546
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunk4ACELYEP_cjs.cn(cardStyles2({ variant }), className) });
1547
1547
  }
1548
1548
  var pressableCardStyles = tailwindVariants.tv({
1549
1549
  extend: cardStyles2,
@@ -1561,7 +1561,7 @@ function PressableCard({ variant, className, ...props }) {
1561
1561
  reactAriaComponents.Button,
1562
1562
  {
1563
1563
  ...props,
1564
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
1564
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
1565
1565
  pressableCardStyles({ variant }),
1566
1566
  typeof className === "function" ? className(renderProps) : className
1567
1567
  )
@@ -1573,7 +1573,7 @@ function CardHeader({ className, ...props }) {
1573
1573
  "div",
1574
1574
  {
1575
1575
  ...props,
1576
- className: chunkNWGG5WFL_cjs.cn(
1576
+ className: chunk4ACELYEP_cjs.cn(
1577
1577
  "flex justify-between items-center",
1578
1578
  "px-5 py-3 border-b border-rule",
1579
1579
  "bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]",
@@ -1584,14 +1584,14 @@ function CardHeader({ className, ...props }) {
1584
1584
  );
1585
1585
  }
1586
1586
  function CardContent({ className, ...props }) {
1587
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunkNWGG5WFL_cjs.cn("flex flex-col gap-3 p-5", className) });
1587
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunk4ACELYEP_cjs.cn("flex flex-col gap-3 p-5", className) });
1588
1588
  }
1589
1589
  function CardFooter({ className, ...props }) {
1590
1590
  return /* @__PURE__ */ jsxRuntime.jsx(
1591
1591
  "div",
1592
1592
  {
1593
1593
  ...props,
1594
- className: chunkNWGG5WFL_cjs.cn(
1594
+ className: chunk4ACELYEP_cjs.cn(
1595
1595
  "mt-auto flex justify-between items-center",
1596
1596
  "px-5 py-4",
1597
1597
  "font-mono text-[11.5px] text-ink-4",
@@ -1605,7 +1605,7 @@ function CardEyebrow({ className, ...props }) {
1605
1605
  "div",
1606
1606
  {
1607
1607
  ...props,
1608
- className: chunkNWGG5WFL_cjs.cn(
1608
+ className: chunk4ACELYEP_cjs.cn(
1609
1609
  "flex justify-between items-center",
1610
1610
  "font-mono text-[11px] uppercase tracking-[0.08em] text-ink-4",
1611
1611
  className
@@ -1618,7 +1618,7 @@ function CardTitle({ className, ...props }) {
1618
1618
  "h3",
1619
1619
  {
1620
1620
  ...props,
1621
- className: chunkNWGG5WFL_cjs.cn(
1621
+ className: chunk4ACELYEP_cjs.cn(
1622
1622
  "font-sans font-medium text-[20px] leading-[1.25] tracking-[-0.015em] text-ink",
1623
1623
  className
1624
1624
  )
@@ -1630,7 +1630,7 @@ function CardFeatureTitle({ className, ...props }) {
1630
1630
  "h3",
1631
1631
  {
1632
1632
  ...props,
1633
- className: chunkNWGG5WFL_cjs.cn(
1633
+ className: chunk4ACELYEP_cjs.cn(
1634
1634
  "font-sans font-medium text-[26px] leading-[1.2] tracking-[-0.02em] text-ink",
1635
1635
  className
1636
1636
  )
@@ -1638,7 +1638,7 @@ function CardFeatureTitle({ className, ...props }) {
1638
1638
  );
1639
1639
  }
1640
1640
  function CardBody({ className, ...props }) {
1641
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunkNWGG5WFL_cjs.cn("text-[14px] leading-[1.55] text-ink-3", className) });
1641
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunk4ACELYEP_cjs.cn("text-[14px] leading-[1.55] text-ink-3", className) });
1642
1642
  }
1643
1643
  var CHANNEL_ICONS = {
1644
1644
  slack: lucideReact.Hash,
@@ -1662,14 +1662,14 @@ function channelIcon(channel) {
1662
1662
  }
1663
1663
  function ChannelIcon({ channel, className, label }) {
1664
1664
  const Icon = channelIcon(channel);
1665
- return label !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: chunkNWGG5WFL_cjs.cn("size-4", className), role: "img", "aria-label": label }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: chunkNWGG5WFL_cjs.cn("size-4", className), "aria-hidden": true });
1665
+ return label !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: chunk4ACELYEP_cjs.cn("size-4", className), role: "img", "aria-label": label }) : /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: chunk4ACELYEP_cjs.cn("size-4", className), "aria-hidden": true });
1666
1666
  }
1667
1667
  function Checkbox({ children, className, ...props }) {
1668
1668
  return /* @__PURE__ */ jsxRuntime.jsx(
1669
1669
  reactAriaComponents.Checkbox,
1670
1670
  {
1671
1671
  ...props,
1672
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
1672
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
1673
1673
  // `relative` so RAC's visually-hidden <input> — which is absolutely
1674
1674
  // positioned and is the element that actually receives focus — is
1675
1675
  // laid out against THIS checkbox. Without a positioned ancestor here
@@ -1687,7 +1687,7 @@ function Checkbox({ children, className, ...props }) {
1687
1687
  "span",
1688
1688
  {
1689
1689
  "aria-hidden": true,
1690
- className: chunkNWGG5WFL_cjs.cn(
1690
+ className: chunk4ACELYEP_cjs.cn(
1691
1691
  "relative inline-flex items-center justify-center shrink-0",
1692
1692
  "size-[18px] rounded-[4px] border bg-surface",
1693
1693
  "border-ink-4",
@@ -1704,7 +1704,7 @@ function Checkbox({ children, className, ...props }) {
1704
1704
  "svg",
1705
1705
  {
1706
1706
  viewBox: "0 0 12 12",
1707
- className: chunkNWGG5WFL_cjs.cn(
1707
+ className: chunk4ACELYEP_cjs.cn(
1708
1708
  "size-3 text-surface transition-opacity duration-150",
1709
1709
  renderProps.isSelected ? "opacity-100" : "opacity-0"
1710
1710
  ),
@@ -1741,7 +1741,7 @@ function CheckboxGroup({
1741
1741
  reactAriaComponents.CheckboxGroup,
1742
1742
  {
1743
1743
  ...props,
1744
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
1744
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
1745
1745
  "grid gap-2 content-start",
1746
1746
  typeof className === "function" ? className(renderProps) : className
1747
1747
  ),
@@ -1823,14 +1823,14 @@ function ColorInput({
1823
1823
  isInvalid: invalid,
1824
1824
  onBlur: settle,
1825
1825
  ...ariaLabel ? { "aria-label": ariaLabel } : {},
1826
- className: chunkNWGG5WFL_cjs.cn("grid grid-cols-1 gap-1.5 content-start", className),
1826
+ className: chunk4ACELYEP_cjs.cn("grid grid-cols-1 gap-1.5 content-start", className),
1827
1827
  children: [
1828
1828
  label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
1829
1829
  /* @__PURE__ */ jsxRuntime.jsxs(
1830
1830
  "div",
1831
1831
  {
1832
1832
  "data-disabled": isDisabled || void 0,
1833
- className: chunkNWGG5WFL_cjs.cn(
1833
+ className: chunk4ACELYEP_cjs.cn(
1834
1834
  styles4.box(),
1835
1835
  "flex items-center gap-2",
1836
1836
  size === "sm" ? "pl-2" : "pl-2.5",
@@ -1844,7 +1844,7 @@ function ColorInput({
1844
1844
  "aria-label": "Pick color",
1845
1845
  disabled: isDisabled,
1846
1846
  onClick: () => nativeRef.current?.click(),
1847
- className: chunkNWGG5WFL_cjs.cn(
1847
+ className: chunk4ACELYEP_cjs.cn(
1848
1848
  "relative flex shrink-0 items-center justify-center rounded-sm border border-rule",
1849
1849
  "cursor-pointer outline-none",
1850
1850
  "focus-visible:ring-2 focus-visible:ring-[var(--color-accent)]",
@@ -1877,7 +1877,7 @@ function ColorInput({
1877
1877
  placeholder,
1878
1878
  spellCheck: false,
1879
1879
  autoComplete: "off",
1880
- className: chunkNWGG5WFL_cjs.cn(
1880
+ className: chunk4ACELYEP_cjs.cn(
1881
1881
  styles4.content(),
1882
1882
  "min-w-0 flex-1 bg-transparent font-mono outline-none",
1883
1883
  "pl-0",
@@ -1918,7 +1918,7 @@ function Combobox({
1918
1918
  {
1919
1919
  ...props,
1920
1920
  allowsEmptyCollection,
1921
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
1921
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
1922
1922
  "grid grid-cols-1 gap-1.5 content-start",
1923
1923
  typeof className === "function" ? className(renderProps) : className
1924
1924
  ),
@@ -1927,7 +1927,7 @@ function Combobox({
1927
1927
  /* @__PURE__ */ jsxRuntime.jsxs(
1928
1928
  "div",
1929
1929
  {
1930
- className: chunkNWGG5WFL_cjs.cn(
1930
+ className: chunk4ACELYEP_cjs.cn(
1931
1931
  // Box chrome on the wrapper; the inner <input> carries the padding
1932
1932
  // + font so the chevron button sits inside the same border + ring.
1933
1933
  styles4.box(),
@@ -1940,7 +1940,7 @@ function Combobox({
1940
1940
  reactAriaComponents.Input,
1941
1941
  {
1942
1942
  placeholder,
1943
- className: chunkNWGG5WFL_cjs.cn(
1943
+ className: chunk4ACELYEP_cjs.cn(
1944
1944
  "flex-1 min-w-0 bg-transparent outline-none",
1945
1945
  styles4.content(),
1946
1946
  inputClassName
@@ -1950,7 +1950,7 @@ function Combobox({
1950
1950
  /* @__PURE__ */ jsxRuntime.jsx(
1951
1951
  reactAriaComponents.Button,
1952
1952
  {
1953
- className: chunkNWGG5WFL_cjs.cn(
1953
+ className: chunk4ACELYEP_cjs.cn(
1954
1954
  "shrink-0 flex items-center justify-center",
1955
1955
  "size-7 rounded-pill",
1956
1956
  "text-ink-3 hover:text-ink outline-none cursor-pointer"
@@ -1967,7 +1967,7 @@ function Combobox({
1967
1967
  reactAriaComponents.Popover,
1968
1968
  {
1969
1969
  offset: 6,
1970
- className: chunkNWGG5WFL_cjs.cn(
1970
+ className: chunk4ACELYEP_cjs.cn(
1971
1971
  "min-w-[var(--trigger-width)]",
1972
1972
  "rounded-md border border-rule bg-surface p-1",
1973
1973
  "shadow-[var(--shadow-raised)]",
@@ -1978,7 +1978,7 @@ function Combobox({
1978
1978
  reactAriaComponents.ListBox,
1979
1979
  {
1980
1980
  className: "outline-none max-h-72 overflow-auto",
1981
- renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn("px-3 py-2", fieldHintStyles), children: emptyMessage }),
1981
+ renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunk4ACELYEP_cjs.cn("px-3 py-2", fieldHintStyles), children: emptyMessage }),
1982
1982
  children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
1983
1983
  ComboboxItem,
1984
1984
  {
@@ -2006,7 +2006,7 @@ function TrailingSlot({ children }) {
2006
2006
  return /* @__PURE__ */ jsxRuntime.jsx(
2007
2007
  "span",
2008
2008
  {
2009
- className: chunkNWGG5WFL_cjs.cn(
2009
+ className: chunk4ACELYEP_cjs.cn(
2010
2010
  "ml-auto pl-2 shrink-0 inline-flex items-center",
2011
2011
  // Hidden by default; revealed when the row is hovered or
2012
2012
  // keyboard-focused. `group/combobox-item` is set on ComboboxItem.
@@ -2032,7 +2032,7 @@ function ComboboxItem(props) {
2032
2032
  reactAriaComponents.ListBoxItem,
2033
2033
  {
2034
2034
  ...props,
2035
- className: chunkNWGG5WFL_cjs.cn(
2035
+ className: chunk4ACELYEP_cjs.cn(
2036
2036
  // `group/combobox-item` exposes hover/focus state to the trailing
2037
2037
  // slot so it can reveal itself only when the row is engaged.
2038
2038
  "group/combobox-item",
@@ -2360,7 +2360,7 @@ function Kbd({ className, children, ...props }) {
2360
2360
  "kbd",
2361
2361
  {
2362
2362
  ...props,
2363
- className: chunkNWGG5WFL_cjs.cn(
2363
+ className: chunk4ACELYEP_cjs.cn(
2364
2364
  "inline-flex items-center justify-center",
2365
2365
  "font-mono text-[10.5px] leading-none text-ink-4",
2366
2366
  "bg-surface-2 border border-rule rounded-[4px]",
@@ -2380,7 +2380,7 @@ function CommandHint({ combo, tone = "subtle", className }) {
2380
2380
  return /* @__PURE__ */ jsxRuntime.jsx(
2381
2381
  Kbd,
2382
2382
  {
2383
- className: chunkNWGG5WFL_cjs.cn(tone === "prominent" && "bg-ink text-surface border-transparent", className),
2383
+ className: chunk4ACELYEP_cjs.cn(tone === "prominent" && "bg-ink text-surface border-transparent", className),
2384
2384
  children: label
2385
2385
  }
2386
2386
  );
@@ -2404,7 +2404,7 @@ function Command({ combo, target, className, label, children }) {
2404
2404
  },
2405
2405
  { label: () => label ?? accessibleName(resolveTarget()) }
2406
2406
  );
2407
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: wrapperRef, className: chunkNWGG5WFL_cjs.cn("relative inline-block", className), children: [
2407
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: wrapperRef, className: chunk4ACELYEP_cjs.cn("relative inline-block", className), children: [
2408
2408
  children,
2409
2409
  discoveryActive ? /* @__PURE__ */ jsxRuntime.jsx(
2410
2410
  "div",
@@ -2479,7 +2479,7 @@ function ConversationBriefCard({
2479
2479
  isOpenDisabled = false,
2480
2480
  className
2481
2481
  }) {
2482
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(styles.root(), className), children: [
2482
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn(styles.root(), className), children: [
2483
2483
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles.icon(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Phone, { className: "size-4", "aria-hidden": true }) }),
2484
2484
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.body(), children: [
2485
2485
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles.eyebrow(), children: eyebrow }),
@@ -2517,7 +2517,7 @@ function Select({
2517
2517
  reactAriaComponents.Select,
2518
2518
  {
2519
2519
  ...props,
2520
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
2520
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
2521
2521
  "grid grid-cols-1 gap-1.5 content-start",
2522
2522
  typeof className === "function" ? className(renderProps) : className
2523
2523
  ),
@@ -2526,7 +2526,7 @@ function Select({
2526
2526
  /* @__PURE__ */ jsxRuntime.jsxs(
2527
2527
  reactAriaComponents.Button,
2528
2528
  {
2529
- className: chunkNWGG5WFL_cjs.cn(
2529
+ className: chunk4ACELYEP_cjs.cn(
2530
2530
  styles4.box(),
2531
2531
  styles4.content(),
2532
2532
  "flex items-center justify-between gap-3 text-left cursor-pointer",
@@ -2544,7 +2544,7 @@ function Select({
2544
2544
  reactAriaComponents.Popover,
2545
2545
  {
2546
2546
  offset: 6,
2547
- className: chunkNWGG5WFL_cjs.cn(
2547
+ className: chunk4ACELYEP_cjs.cn(
2548
2548
  // Match the trigger width exactly (RAC exposes --trigger-width on
2549
2549
  // the Popover when anchored to a Select button).
2550
2550
  "w-[var(--trigger-width)]",
@@ -2568,7 +2568,7 @@ function Select({
2568
2568
  },
2569
2569
  option.id
2570
2570
  )) }),
2571
- options.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn("px-3 py-2", fieldHintStyles), children: placeholder }) : null
2571
+ options.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunk4ACELYEP_cjs.cn("px-3 py-2", fieldHintStyles), children: placeholder }) : null
2572
2572
  ]
2573
2573
  }
2574
2574
  )
@@ -2581,7 +2581,7 @@ function SelectItem(props) {
2581
2581
  reactAriaComponents.ListBoxItem,
2582
2582
  {
2583
2583
  ...props,
2584
- className: chunkNWGG5WFL_cjs.cn(
2584
+ className: chunk4ACELYEP_cjs.cn(
2585
2585
  "flex items-center justify-between gap-3",
2586
2586
  "rounded-[6px] px-3 py-2 text-[14px] text-ink-2",
2587
2587
  "cursor-pointer outline-none select-none",
@@ -2642,7 +2642,7 @@ function ConversationBriefPreview({
2642
2642
  react.useEffect(() => {
2643
2643
  onSelectionChangeRef.current?.(contact, phoneNumber);
2644
2644
  }, [contact, phoneNumber]);
2645
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("flex flex-col gap-3", className), children: [
2645
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn("flex flex-col gap-3", className), children: [
2646
2646
  isSubjectHidden ? null : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
2647
2647
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[14px] font-semibold text-ink", children: brief.subject || names || "Prepared conversation" }),
2648
2648
  isMetaHidden ? null : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-mono text-[10.5px] text-ink-4", children: [
@@ -2659,7 +2659,7 @@ function ConversationBriefPreview({
2659
2659
  /* @__PURE__ */ jsxRuntime.jsx(
2660
2660
  "div",
2661
2661
  {
2662
- className: chunkNWGG5WFL_cjs.cn(
2662
+ className: chunk4ACELYEP_cjs.cn(
2663
2663
  "rounded-md border border-rule-2 bg-surface-2/60 px-3 py-2.5",
2664
2664
  "min-h-0 text-[13px] leading-relaxed text-ink-2 overflow-y-auto [scrollbar-width:thin]",
2665
2665
  renderContent ? null : "whitespace-pre-wrap",
@@ -2673,7 +2673,7 @@ function ConversationBriefPreview({
2673
2673
  {
2674
2674
  "aria-label": "Edit brief",
2675
2675
  onPress: onEdit,
2676
- className: chunkNWGG5WFL_cjs.cn(
2676
+ className: chunk4ACELYEP_cjs.cn(
2677
2677
  "absolute right-1.5 top-1.5 inline-flex size-7 cursor-pointer items-center justify-center",
2678
2678
  "rounded-md bg-surface/80 text-ink-3 outline-none transition-opacity",
2679
2679
  "opacity-0 group-hover/brief-content:opacity-100 focus-visible:opacity-100",
@@ -2688,7 +2688,7 @@ function ConversationBriefPreview({
2688
2688
  /* @__PURE__ */ jsxRuntime.jsxs(
2689
2689
  "div",
2690
2690
  {
2691
- className: chunkNWGG5WFL_cjs.cn(
2691
+ className: chunk4ACELYEP_cjs.cn(
2692
2692
  "grid gap-3",
2693
2693
  aside ? "grid-cols-[minmax(0,1fr)_minmax(0,1fr)]" : "grid-cols-1"
2694
2694
  ),
@@ -2733,7 +2733,7 @@ function ConversationBriefPreview({
2733
2733
  ) : null
2734
2734
  ] }),
2735
2735
  /* @__PURE__ */ jsxRuntime.jsx(
2736
- chunkNWGG5WFL_cjs.Button,
2736
+ chunk4ACELYEP_cjs.Button,
2737
2737
  {
2738
2738
  variant: "ghost",
2739
2739
  size: "icon-sm",
@@ -2749,14 +2749,14 @@ function ConversationBriefPreview({
2749
2749
  (() => {
2750
2750
  const hasChoice = contacts.length > 1 || numbers.length > 1;
2751
2751
  const valueText = phoneNumber ? contacts.length > 1 ? `${contact?.name || contact?.id} \xB7 ${phoneNumber}` : phoneNumber : contact ? `${contacts.length > 1 ? `${contact.name || contact.id} \xB7 ` : ""}no phone number on file` : "No contact to call.";
2752
- const valueClassName = chunkNWGG5WFL_cjs.cn(
2752
+ const valueClassName = chunk4ACELYEP_cjs.cn(
2753
2753
  "min-w-0 truncate text-[12px] tabular-nums",
2754
2754
  phoneNumber ? "text-ink-2" : "text-warning"
2755
2755
  );
2756
2756
  const icon = /* @__PURE__ */ jsxRuntime.jsx(
2757
2757
  lucideReact.Phone,
2758
2758
  {
2759
- className: chunkNWGG5WFL_cjs.cn(
2759
+ className: chunk4ACELYEP_cjs.cn(
2760
2760
  "size-3 shrink-0",
2761
2761
  phoneNumber ? "text-ink-4" : "text-warning"
2762
2762
  ),
@@ -2766,7 +2766,7 @@ function ConversationBriefPreview({
2766
2766
  return hasChoice ? /* @__PURE__ */ jsxRuntime.jsxs(
2767
2767
  reactAriaComponents.Button,
2768
2768
  {
2769
- className: chunkNWGG5WFL_cjs.cn(
2769
+ className: chunk4ACELYEP_cjs.cn(
2770
2770
  "flex min-w-0 cursor-pointer items-center gap-2 rounded-sm text-left outline-none",
2771
2771
  "hover:text-ink focus-visible:shadow-[var(--shadow-focus)]"
2772
2772
  ),
@@ -2782,7 +2782,7 @@ function ConversationBriefPreview({
2782
2782
  ] });
2783
2783
  })(),
2784
2784
  contacts.length > 1 || numbers.length > 1 ? /* @__PURE__ */ jsxRuntime.jsx(
2785
- chunkNWGG5WFL_cjs.Button,
2785
+ chunk4ACELYEP_cjs.Button,
2786
2786
  {
2787
2787
  variant: "ghost",
2788
2788
  size: "icon-sm",
@@ -2802,7 +2802,7 @@ function ConversationBriefPreview({
2802
2802
  ),
2803
2803
  callDisabledReason ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-warning", children: callDisabledReason }) : null,
2804
2804
  isCallButtonHidden ? null : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsxs(
2805
- chunkNWGG5WFL_cjs.Button,
2805
+ chunk4ACELYEP_cjs.Button,
2806
2806
  {
2807
2807
  isDisabled: isCallDisabled || !isOpen || phoneNumber === "" || !contact,
2808
2808
  onPress: () => contact && onCall(contact, phoneNumber),
@@ -2832,7 +2832,7 @@ function ModalContent({
2832
2832
  {
2833
2833
  isDismissable,
2834
2834
  ...props,
2835
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
2835
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
2836
2836
  "fixed inset-0 z-50 flex items-center justify-center p-4",
2837
2837
  // Warm ink scrim — stays in the Proteos palette (no pure black).
2838
2838
  "bg-[color-mix(in_oklab,var(--color-ink)_40%,transparent)]",
@@ -2843,7 +2843,7 @@ function ModalContent({
2843
2843
  children: /* @__PURE__ */ jsxRuntime.jsx(
2844
2844
  reactAriaComponents.Modal,
2845
2845
  {
2846
- className: chunkNWGG5WFL_cjs.cn(
2846
+ className: chunk4ACELYEP_cjs.cn(
2847
2847
  "w-full max-w-lg",
2848
2848
  // Cap the panel at the viewport (minus the overlay's p-4) and lay it
2849
2849
  // out as a column so a tall body scrolls instead of overflowing the
@@ -2858,7 +2858,7 @@ function ModalContent({
2858
2858
  children: /* @__PURE__ */ jsxRuntime.jsx(
2859
2859
  reactAriaComponents.Dialog,
2860
2860
  {
2861
- className: chunkNWGG5WFL_cjs.cn("outline-none flex flex-col min-h-0 overflow-hidden", dialogClassName),
2861
+ className: chunk4ACELYEP_cjs.cn("outline-none flex flex-col min-h-0 overflow-hidden", dialogClassName),
2862
2862
  ...ariaLabel !== void 0 ? { "aria-label": ariaLabel } : {},
2863
2863
  children
2864
2864
  }
@@ -2869,7 +2869,7 @@ function ModalContent({
2869
2869
  );
2870
2870
  }
2871
2871
  function ModalHeader({ className, ...props }) {
2872
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunkNWGG5WFL_cjs.cn("shrink-0 px-5 pt-5 pb-3 flex flex-col gap-1.5", className) });
2872
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunk4ACELYEP_cjs.cn("shrink-0 px-5 pt-5 pb-3 flex flex-col gap-1.5", className) });
2873
2873
  }
2874
2874
  function ModalTitle({ className, ...props }) {
2875
2875
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -2877,7 +2877,7 @@ function ModalTitle({ className, ...props }) {
2877
2877
  {
2878
2878
  slot: "title",
2879
2879
  ...props,
2880
- className: chunkNWGG5WFL_cjs.cn(
2880
+ className: chunk4ACELYEP_cjs.cn(
2881
2881
  "font-sans font-medium text-[20px] leading-[1.25] tracking-[-0.015em] text-ink",
2882
2882
  className
2883
2883
  )
@@ -2885,14 +2885,14 @@ function ModalTitle({ className, ...props }) {
2885
2885
  );
2886
2886
  }
2887
2887
  function ModalDescription({ className, ...props }) {
2888
- return /* @__PURE__ */ jsxRuntime.jsx("p", { ...props, className: chunkNWGG5WFL_cjs.cn("text-[14px] leading-[1.55] text-ink-3", className) });
2888
+ return /* @__PURE__ */ jsxRuntime.jsx("p", { ...props, className: chunk4ACELYEP_cjs.cn("text-[14px] leading-[1.55] text-ink-3", className) });
2889
2889
  }
2890
2890
  function ModalBody({ className, ...props }) {
2891
2891
  return /* @__PURE__ */ jsxRuntime.jsx(
2892
2892
  "div",
2893
2893
  {
2894
2894
  ...props,
2895
- className: chunkNWGG5WFL_cjs.cn(
2895
+ className: chunk4ACELYEP_cjs.cn(
2896
2896
  // The scroll region: caps at the panel's spare height and scrolls when
2897
2897
  // the content is taller, leaving header + footer pinned.
2898
2898
  "min-h-0 overflow-y-auto px-5 py-3 flex flex-col gap-3 text-[14px] text-ink-2",
@@ -2906,7 +2906,7 @@ function ModalFooter({ className, ...props }) {
2906
2906
  "div",
2907
2907
  {
2908
2908
  ...props,
2909
- className: chunkNWGG5WFL_cjs.cn("shrink-0 flex justify-end items-center gap-2", "px-5 pt-3 pb-5", className)
2909
+ className: chunk4ACELYEP_cjs.cn("shrink-0 flex justify-end items-center gap-2", "px-5 pt-3 pb-5", className)
2910
2910
  }
2911
2911
  );
2912
2912
  }
@@ -3068,12 +3068,12 @@ function CurrencyInput({
3068
3068
  const selectedSymbol = currencyOptions.find((option) => option.code === code)?.symbol ?? code;
3069
3069
  const styles4 = fieldControlStyles({ size, appearance, ...isInvalid ? { invalid: true } : {} });
3070
3070
  const focusWithin = appearance === "cell" ? "focus-within:border-accent focus-within:shadow-none" : "focus-within:border-accent focus-within:shadow-[var(--shadow-focus)]";
3071
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("grid grid-cols-1 gap-1.5 content-start", className), children: [
3072
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(styles4.box(), "flex items-center gap-1 pr-1", focusWithin), children: [
3071
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn("grid grid-cols-1 gap-1.5 content-start", className), children: [
3072
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn(styles4.box(), "flex items-center gap-1 pr-1", focusWithin), children: [
3073
3073
  /* @__PURE__ */ jsxRuntime.jsx(
3074
3074
  "input",
3075
3075
  {
3076
- className: chunkNWGG5WFL_cjs.cn(
3076
+ className: chunk4ACELYEP_cjs.cn(
3077
3077
  "min-w-0 flex-1 bg-transparent text-ink outline-none tabular-nums",
3078
3078
  styles4.content(),
3079
3079
  // Sit a touch lower than a standard field by trimming the vertical
@@ -3114,7 +3114,7 @@ function CurrencyInput({
3114
3114
  /* @__PURE__ */ jsxRuntime.jsxs(
3115
3115
  reactAriaComponents.Button,
3116
3116
  {
3117
- className: chunkNWGG5WFL_cjs.cn(
3117
+ className: chunk4ACELYEP_cjs.cn(
3118
3118
  "inline-flex h-6 shrink-0 items-center gap-0.5 rounded-md px-1.5",
3119
3119
  "text-ink-2 outline-none hover:bg-surface-2 hover:text-ink",
3120
3120
  "cursor-pointer focus-visible:shadow-[var(--shadow-focus)]",
@@ -3130,7 +3130,7 @@ function CurrencyInput({
3130
3130
  reactAriaComponents.Popover,
3131
3131
  {
3132
3132
  offset: 6,
3133
- className: chunkNWGG5WFL_cjs.cn(
3133
+ className: chunk4ACELYEP_cjs.cn(
3134
3134
  "min-w-[9rem] rounded-md border border-rule bg-surface p-1",
3135
3135
  "shadow-[var(--shadow-raised)]",
3136
3136
  "entering:animate-enter-slide-down",
@@ -3141,7 +3141,7 @@ function CurrencyInput({
3141
3141
  {
3142
3142
  id: option.code,
3143
3143
  textValue: `${option.symbol ?? ""} ${option.code}`,
3144
- className: chunkNWGG5WFL_cjs.cn(
3144
+ className: chunk4ACELYEP_cjs.cn(
3145
3145
  "flex items-center gap-2 rounded-[6px] px-2.5 py-1.5 text-[14px] text-ink-2",
3146
3146
  "cursor-pointer select-none outline-none",
3147
3147
  "data-[hovered]:bg-surface-2 data-[hovered]:text-ink",
@@ -3203,12 +3203,12 @@ function DateTimeCell({
3203
3203
  }
3204
3204
  function BooleanCell({ value, className }) {
3205
3205
  if (value === true) {
3206
- return /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-label": "true", className: chunkNWGG5WFL_cjs.cn("text-success", className), children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, {}) });
3206
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-label": "true", className: chunk4ACELYEP_cjs.cn("text-success", className), children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, {}) });
3207
3207
  }
3208
3208
  if (value === false) {
3209
- return /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-label": "false", className: chunkNWGG5WFL_cjs.cn("text-ink-4", className), children: /* @__PURE__ */ jsxRuntime.jsx(MinusIcon, {}) });
3209
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-label": "false", className: chunk4ACELYEP_cjs.cn("text-ink-4", className), children: /* @__PURE__ */ jsxRuntime.jsx(MinusIcon, {}) });
3210
3210
  }
3211
- return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("text-ink-4", className), children: "\u2014" });
3211
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk4ACELYEP_cjs.cn("text-ink-4", className), children: "\u2014" });
3212
3212
  }
3213
3213
  function CheckIcon() {
3214
3214
  return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -3227,7 +3227,7 @@ function MinusIcon() {
3227
3227
  }
3228
3228
  function TruncateCell({ value, title, className }) {
3229
3229
  const tooltip = title ?? (typeof value === "string" ? value : void 0);
3230
- return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("truncate min-w-0", className), title: tooltip, children: value ?? "\u2014" });
3230
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk4ACELYEP_cjs.cn("truncate min-w-0", className), title: tooltip, children: value ?? "\u2014" });
3231
3231
  }
3232
3232
  function LinkCell({ children, onClick, className, ...props }) {
3233
3233
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -3238,7 +3238,7 @@ function LinkCell({ children, onClick, className, ...props }) {
3238
3238
  e.stopPropagation();
3239
3239
  onClick?.(e);
3240
3240
  },
3241
- className: chunkNWGG5WFL_cjs.cn(
3241
+ className: chunk4ACELYEP_cjs.cn(
3242
3242
  "text-ink underline decoration-rule underline-offset-2 hover:decoration-ink",
3243
3243
  className
3244
3244
  ),
@@ -3259,7 +3259,7 @@ var tableStyles = tailwindVariants.tv({
3259
3259
  defaultVariants: { variant: "panel" }
3260
3260
  });
3261
3261
  function Table({ variant, className, ...props }) {
3262
- return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "grid", ...props, className: chunkNWGG5WFL_cjs.cn(tableStyles({ variant }), className) });
3262
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "grid", ...props, className: chunk4ACELYEP_cjs.cn(tableStyles({ variant }), className) });
3263
3263
  }
3264
3264
  var tableHeaderStyles = tailwindVariants.tv({
3265
3265
  base: [
@@ -3275,7 +3275,7 @@ var tableHeaderStyles = tailwindVariants.tv({
3275
3275
  defaultVariants: { sticky: false }
3276
3276
  });
3277
3277
  function TableHeader({ sticky, className, ...props }) {
3278
- return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "row", ...props, className: chunkNWGG5WFL_cjs.cn(tableHeaderStyles({ sticky }), className) });
3278
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "row", ...props, className: chunk4ACELYEP_cjs.cn(tableHeaderStyles({ sticky }), className) });
3279
3279
  }
3280
3280
  var tableHeaderCellStyles = tailwindVariants.tv({
3281
3281
  base: [
@@ -3452,7 +3452,7 @@ function TableHeaderCell({
3452
3452
  style: { ...widthStyle, ...style },
3453
3453
  onClick: handleClick,
3454
3454
  onKeyDown: handleKeyDown,
3455
- className: chunkNWGG5WFL_cjs.cn(
3455
+ className: chunk4ACELYEP_cjs.cn(
3456
3456
  tableHeaderCellStyles({ align, interactive: isSortable, active, sticky }),
3457
3457
  "group/header",
3458
3458
  dragState.kind === "dragging" ? "opacity-40" : "",
@@ -3465,7 +3465,7 @@ function TableHeaderCell({
3465
3465
  ref: handleRef,
3466
3466
  "data-dnd-handle": "true",
3467
3467
  "aria-hidden": "true",
3468
- className: chunkNWGG5WFL_cjs.cn(
3468
+ className: chunk4ACELYEP_cjs.cn(
3469
3469
  "inline-flex items-center justify-center shrink-0 -ml-1.5",
3470
3470
  "cursor-grab active:cursor-grabbing text-ink-4",
3471
3471
  "opacity-0 group-hover/header:opacity-100 transition-opacity"
@@ -3476,7 +3476,7 @@ function TableHeaderCell({
3476
3476
  /* @__PURE__ */ jsxRuntime.jsxs(
3477
3477
  "span",
3478
3478
  {
3479
- className: chunkNWGG5WFL_cjs.cn(
3479
+ className: chunk4ACELYEP_cjs.cn(
3480
3480
  "flex items-center gap-[7px] min-w-0 flex-1",
3481
3481
  align === "right" ? "justify-end" : align === "center" ? "justify-center" : "justify-start"
3482
3482
  ),
@@ -3496,7 +3496,7 @@ function TableHeaderCell({
3496
3496
  e.stopPropagation();
3497
3497
  onRemove();
3498
3498
  },
3499
- className: chunkNWGG5WFL_cjs.cn(
3499
+ className: chunk4ACELYEP_cjs.cn(
3500
3500
  "inline-flex items-center justify-center shrink-0 size-4 rounded",
3501
3501
  "text-ink-4 hover:text-ink hover:bg-surface-2",
3502
3502
  "opacity-0 group-hover/header:opacity-100 focus-visible:opacity-100",
@@ -3509,7 +3509,7 @@ function TableHeaderCell({
3509
3509
  "div",
3510
3510
  {
3511
3511
  "aria-hidden": "true",
3512
- className: chunkNWGG5WFL_cjs.cn(
3512
+ className: chunk4ACELYEP_cjs.cn(
3513
3513
  "pointer-events-none absolute inset-y-0 z-10 w-0.5 bg-accent",
3514
3514
  dragState.edge === "left" ? "-left-px" : "-right-px"
3515
3515
  )
@@ -3534,7 +3534,7 @@ function TableHeaderCell({
3534
3534
  onPointerDown: startResize,
3535
3535
  onKeyDown: resizeByKey,
3536
3536
  onClick: (e) => e.stopPropagation(),
3537
- className: chunkNWGG5WFL_cjs.cn(
3537
+ className: chunk4ACELYEP_cjs.cn(
3538
3538
  "group/resize absolute inset-y-0 -right-1 z-10 w-2 cursor-col-resize outline-none",
3539
3539
  "flex justify-center"
3540
3540
  ),
@@ -3542,7 +3542,7 @@ function TableHeaderCell({
3542
3542
  "span",
3543
3543
  {
3544
3544
  "aria-hidden": "true",
3545
- className: chunkNWGG5WFL_cjs.cn(
3545
+ className: chunk4ACELYEP_cjs.cn(
3546
3546
  "h-full w-0.5 transition-colors",
3547
3547
  isResizing ? "bg-accent" : "bg-transparent group-hover/resize:bg-accent group-focus-visible/resize:bg-accent"
3548
3548
  )
@@ -3563,7 +3563,7 @@ function SortIcon({ dir, active }) {
3563
3563
  height: "11",
3564
3564
  viewBox: "0 0 8 11",
3565
3565
  "aria-hidden": "true",
3566
- className: chunkNWGG5WFL_cjs.cn("shrink-0", active ? "text-accent" : "text-ink-4"),
3566
+ className: chunk4ACELYEP_cjs.cn("shrink-0", active ? "text-accent" : "text-ink-4"),
3567
3567
  children: [
3568
3568
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 0.5 L7.5 4 L0.5 4 Z", fill: "currentColor", opacity: dir === "asc" ? 1 : 0.22 }),
3569
3569
  /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 10.5 L0.5 7 L7.5 7 Z", fill: "currentColor", opacity: dir === "desc" ? 1 : 0.22 })
@@ -3577,7 +3577,7 @@ function TableHeaderSpacer({ className, ...props }) {
3577
3577
  {
3578
3578
  "aria-hidden": "true",
3579
3579
  ...props,
3580
- className: chunkNWGG5WFL_cjs.cn("flex-1 h-[36px] border-r-0", "bg-transparent pointer-events-none", className)
3580
+ className: chunk4ACELYEP_cjs.cn("flex-1 h-[36px] border-r-0", "bg-transparent pointer-events-none", className)
3581
3581
  }
3582
3582
  );
3583
3583
  }
@@ -3597,7 +3597,7 @@ var tableBodyStyles = tailwindVariants.tv({
3597
3597
  base: ["flex-1 min-h-0 overflow-auto relative", ...scrollbarChrome]
3598
3598
  });
3599
3599
  function TableBody({ className, ref, ...props }) {
3600
- return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "rowgroup", ref, ...props, className: chunkNWGG5WFL_cjs.cn(tableBodyStyles(), className) });
3600
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "rowgroup", ref, ...props, className: chunk4ACELYEP_cjs.cn(tableBodyStyles(), className) });
3601
3601
  }
3602
3602
  var tableScrollerStyles = tailwindVariants.tv({
3603
3603
  base: ["relative flex-1 min-h-0 overflow-auto", ...scrollbarChrome]
@@ -3609,7 +3609,7 @@ function TableScroller({ className, ref, ...props }) {
3609
3609
  role: "presentation",
3610
3610
  ref,
3611
3611
  ...props,
3612
- className: chunkNWGG5WFL_cjs.cn(tableScrollerStyles(), className)
3612
+ className: chunk4ACELYEP_cjs.cn(tableScrollerStyles(), className)
3613
3613
  }
3614
3614
  );
3615
3615
  }
@@ -3661,7 +3661,7 @@ function TableRow({
3661
3661
  onClick?.(e);
3662
3662
  onRowClick?.(e);
3663
3663
  },
3664
- className: chunkNWGG5WFL_cjs.cn(tableRowStyles({ alt, interactive, absolute }), className)
3664
+ className: chunk4ACELYEP_cjs.cn(tableRowStyles({ alt, interactive, absolute }), className)
3665
3665
  }
3666
3666
  );
3667
3667
  }
@@ -3715,7 +3715,7 @@ function TableCell({
3715
3715
  role: "gridcell",
3716
3716
  ...props,
3717
3717
  style: { ...widthStyle, ...style },
3718
- className: chunkNWGG5WFL_cjs.cn(tableCellStyles({ align, mono, ink, sticky }), className)
3718
+ className: chunk4ACELYEP_cjs.cn(tableCellStyles({ align, mono, ink, sticky }), className)
3719
3719
  }
3720
3720
  );
3721
3721
  }
@@ -3730,7 +3730,7 @@ function DataTableEmpty({
3730
3730
  "div",
3731
3731
  {
3732
3732
  role: "status",
3733
- className: chunkNWGG5WFL_cjs.cn(
3733
+ className: chunk4ACELYEP_cjs.cn(
3734
3734
  "flex flex-col items-center justify-center gap-2",
3735
3735
  "px-5 py-16 text-center",
3736
3736
  "font-sans text-[13px] text-ink-3",
@@ -3750,7 +3750,7 @@ function DataTableError({ error, onRetry, className }) {
3750
3750
  "div",
3751
3751
  {
3752
3752
  role: "alert",
3753
- className: chunkNWGG5WFL_cjs.cn(
3753
+ className: chunk4ACELYEP_cjs.cn(
3754
3754
  "flex flex-col items-center justify-center gap-3",
3755
3755
  "px-5 py-16 text-center",
3756
3756
  "font-sans text-[13px] text-ink-3",
@@ -3759,7 +3759,7 @@ function DataTableError({ error, onRetry, className }) {
3759
3759
  children: [
3760
3760
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-danger text-[14px]", children: "Something went wrong" }),
3761
3761
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-ink-3 max-w-[48ch] font-mono text-[12px]", children: error.message }),
3762
- onRetry ? /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { variant: "ghost", size: "sm", onPress: onRetry, children: "Retry" }) : null
3762
+ onRetry ? /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Button, { variant: "ghost", size: "sm", onPress: onRetry, children: "Retry" }) : null
3763
3763
  ]
3764
3764
  }
3765
3765
  );
@@ -3778,7 +3778,7 @@ function DataTableSkeleton({
3778
3778
  TableCell,
3779
3779
  {
3780
3780
  width: w,
3781
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Skeleton, { shape: "text", className: "h-3 max-w-[60%]" })
3781
+ children: /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Skeleton, { shape: "text", className: "h-3 max-w-[60%]" })
3782
3782
  },
3783
3783
  colIdx
3784
3784
  ))
@@ -3821,6 +3821,8 @@ function DataTable({
3821
3821
  onSortingChange,
3822
3822
  rowHeight = DEFAULT_ROW_HEIGHT,
3823
3823
  overscan = 8,
3824
+ scrollRestorationId,
3825
+ initialScrollOffset,
3824
3826
  onRowClick,
3825
3827
  zebra = true,
3826
3828
  emptyState,
@@ -3983,7 +3985,10 @@ function DataTable({
3983
3985
  return items;
3984
3986
  }, [tableRows, groupBy]);
3985
3987
  const scrollerRef = react.useRef(null);
3988
+ const mountedSorting = react.useRef(sorting);
3986
3989
  react.useEffect(() => {
3990
+ if (sorting === mountedSorting.current) return;
3991
+ mountedSorting.current = sorting;
3987
3992
  scrollerRef.current?.scrollTo({ top: 0 });
3988
3993
  }, [sorting]);
3989
3994
  const listRef = react.useRef(null);
@@ -3998,7 +4003,8 @@ function DataTable({
3998
4003
  getScrollElement: () => scrollerRef.current,
3999
4004
  estimateSize: (index) => listItems[index]?.kind === "group" ? headingHeight : rowHeight,
4000
4005
  overscan,
4001
- scrollMargin: listOffset
4006
+ scrollMargin: listOffset,
4007
+ ...initialScrollOffset !== void 0 ? { initialOffset: initialScrollOffset } : {}
4002
4008
  });
4003
4009
  const sentinelRef = useInfiniteScrollSentinel({
4004
4010
  onIntersect: () => {
@@ -4057,12 +4063,13 @@ function DataTable({
4057
4063
  {
4058
4064
  ...ariaLabel !== void 0 ? { "aria-label": ariaLabel } : {},
4059
4065
  variant,
4060
- className: chunkNWGG5WFL_cjs.cn("flex-1 min-h-0", className),
4066
+ className: chunk4ACELYEP_cjs.cn("flex-1 min-h-0", className),
4061
4067
  children: /* @__PURE__ */ jsxRuntime.jsx(
4062
4068
  TableScroller,
4063
4069
  {
4064
4070
  ref: scrollerRef,
4065
- className: chunkNWGG5WFL_cjs.cn("scroll-pt-[36px]", bodyAfter ? "scroll-pb-8" : void 0),
4071
+ ...scrollRestorationId !== void 0 ? { "data-scroll-restoration-id": scrollRestorationId } : {},
4072
+ className: chunk4ACELYEP_cjs.cn("scroll-pt-[36px]", bodyAfter ? "scroll-pb-8" : void 0),
4066
4073
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", style: { minWidth: minPanelWidth }, children: [
4067
4074
  headerGroups.map((group) => /* @__PURE__ */ jsxRuntime.jsxs(TableHeader, { sticky: true, children: [
4068
4075
  group.headers.map((header) => {
@@ -4109,7 +4116,7 @@ function DataTable({
4109
4116
  ref: listRef,
4110
4117
  role: "presentation",
4111
4118
  "aria-busy": query.isPlaceholderData ? true : void 0,
4112
- className: chunkNWGG5WFL_cjs.cn(
4119
+ className: chunk4ACELYEP_cjs.cn(
4113
4120
  "transition-opacity duration-150 motion-reduce:transition-none",
4114
4121
  query.isPlaceholderData && "opacity-50"
4115
4122
  ),
@@ -4154,7 +4161,7 @@ function DataTable({
4154
4161
  /* @__PURE__ */ jsxRuntime.jsx(
4155
4162
  "div",
4156
4163
  {
4157
- className: chunkNWGG5WFL_cjs.cn(
4164
+ className: chunk4ACELYEP_cjs.cn(
4158
4165
  "sticky bottom-0 z-[4] flex items-center h-8 px-0.5",
4159
4166
  "border-t border-rule-2 bg-bg"
4160
4167
  ),
@@ -4174,7 +4181,7 @@ function GroupHeaderRow({ style, children }) {
4174
4181
  {
4175
4182
  absolute: true,
4176
4183
  style,
4177
- className: chunkNWGG5WFL_cjs.cn(
4184
+ className: chunk4ACELYEP_cjs.cn(
4178
4185
  "bg-surface-2 border-b border-rule",
4179
4186
  "font-mono text-[11px] uppercase tracking-[0.06em] text-ink-3"
4180
4187
  ),
@@ -4196,7 +4203,7 @@ function DataRow({
4196
4203
  const cells = row.getVisibleCells().map((cell) => {
4197
4204
  const meta = cell.column.columnDef.meta;
4198
4205
  const cellSize = cell.column.getSize() || void 0;
4199
- const cellClassName = chunkNWGG5WFL_cjs.cn(
4206
+ const cellClassName = chunk4ACELYEP_cjs.cn(
4200
4207
  columnBorders ? "border-r border-rule-2" : void 0,
4201
4208
  meta?.cellClassName
4202
4209
  );
@@ -4239,7 +4246,7 @@ function LoaderRow() {
4239
4246
  return /* @__PURE__ */ jsxRuntime.jsxs(
4240
4247
  "div",
4241
4248
  {
4242
- className: chunkNWGG5WFL_cjs.cn(
4249
+ className: chunk4ACELYEP_cjs.cn(
4243
4250
  "flex items-center justify-center gap-3",
4244
4251
  "h-8 font-mono text-[11px] tracking-[0.04em]",
4245
4252
  "text-ink-4"
@@ -4331,7 +4338,7 @@ function CalendarSurface() {
4331
4338
  {
4332
4339
  slot: "previous",
4333
4340
  "aria-label": "Previous month",
4334
- className: chunkNWGG5WFL_cjs.cn(
4341
+ className: chunk4ACELYEP_cjs.cn(
4335
4342
  "size-7 rounded-md inline-flex items-center justify-center",
4336
4343
  "text-ink-3 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
4337
4344
  "focus-visible:shadow-[var(--shadow-focus)]"
@@ -4345,7 +4352,7 @@ function CalendarSurface() {
4345
4352
  {
4346
4353
  slot: "next",
4347
4354
  "aria-label": "Next month",
4348
- className: chunkNWGG5WFL_cjs.cn(
4355
+ className: chunk4ACELYEP_cjs.cn(
4349
4356
  "size-7 rounded-md inline-flex items-center justify-center",
4350
4357
  "text-ink-3 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
4351
4358
  "focus-visible:shadow-[var(--shadow-focus)]"
@@ -4358,7 +4365,7 @@ function CalendarSurface() {
4358
4365
  /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.CalendarGridHeader, { children: (day) => /* @__PURE__ */ jsxRuntime.jsx(
4359
4366
  reactAriaComponents.CalendarHeaderCell,
4360
4367
  {
4361
- className: chunkNWGG5WFL_cjs.cn(
4368
+ className: chunk4ACELYEP_cjs.cn(
4362
4369
  "font-mono text-[10.5px] uppercase tracking-[0.08em] text-ink-4",
4363
4370
  "pb-2 text-center"
4364
4371
  ),
@@ -4369,7 +4376,7 @@ function CalendarSurface() {
4369
4376
  reactAriaComponents.CalendarCell,
4370
4377
  {
4371
4378
  date,
4372
- className: chunkNWGG5WFL_cjs.cn(
4379
+ className: chunk4ACELYEP_cjs.cn(
4373
4380
  // aspect-square + table-fixed makes each cell a perfect
4374
4381
  // square that scales with popover width.
4375
4382
  "aspect-square flex items-center justify-center cursor-pointer",
@@ -4403,7 +4410,7 @@ function DatePicker({
4403
4410
  reactAriaComponents.DatePicker,
4404
4411
  {
4405
4412
  ...props,
4406
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
4413
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
4407
4414
  "grid grid-cols-1 gap-1.5 content-start",
4408
4415
  typeof className === "function" ? className(renderProps) : className
4409
4416
  ),
@@ -4412,7 +4419,7 @@ function DatePicker({
4412
4419
  /* @__PURE__ */ jsxRuntime.jsxs(
4413
4420
  reactAriaComponents.Group,
4414
4421
  {
4415
- className: chunkNWGG5WFL_cjs.cn(
4422
+ className: chunk4ACELYEP_cjs.cn(
4416
4423
  // Box chrome on the wrapper; the DateInput inside carries padding +
4417
4424
  // font so the calendar trigger sits inside the same border + ring.
4418
4425
  styles4.box(),
@@ -4423,7 +4430,7 @@ function DatePicker({
4423
4430
  /* @__PURE__ */ jsxRuntime.jsx(
4424
4431
  reactAriaComponents.DateInput,
4425
4432
  {
4426
- className: chunkNWGG5WFL_cjs.cn(
4433
+ className: chunk4ACELYEP_cjs.cn(
4427
4434
  "flex-1 flex items-center min-w-0 text-ink",
4428
4435
  styles4.content(),
4429
4436
  // Tabular alignment for date segments — overrides content's
@@ -4434,7 +4441,7 @@ function DatePicker({
4434
4441
  reactAriaComponents.DateSegment,
4435
4442
  {
4436
4443
  segment,
4437
- className: chunkNWGG5WFL_cjs.cn(
4444
+ className: chunk4ACELYEP_cjs.cn(
4438
4445
  "px-px tabular-nums outline-none select-none",
4439
4446
  "data-[placeholder]:text-ink-4",
4440
4447
  "data-[type=literal]:text-ink-4",
@@ -4449,7 +4456,7 @@ function DatePicker({
4449
4456
  /* @__PURE__ */ jsxRuntime.jsx(
4450
4457
  reactAriaComponents.Button,
4451
4458
  {
4452
- className: chunkNWGG5WFL_cjs.cn(
4459
+ className: chunk4ACELYEP_cjs.cn(
4453
4460
  "shrink-0 inline-flex items-center justify-center",
4454
4461
  "size-7 rounded-md",
4455
4462
  "text-ink-3 hover:text-ink hover:bg-surface-2",
@@ -4469,7 +4476,7 @@ function DatePicker({
4469
4476
  reactAriaComponents.Popover,
4470
4477
  {
4471
4478
  offset: 6,
4472
- className: chunkNWGG5WFL_cjs.cn(
4479
+ className: chunk4ACELYEP_cjs.cn(
4473
4480
  // Match the anchoring field's width exactly. `--trigger-width` is
4474
4481
  // set by RAC on the Popover when it's inside a DatePicker. Floor at
4475
4482
  // 18rem so the calendar stays legible when the input is unusually
@@ -4488,7 +4495,7 @@ function DatePicker({
4488
4495
  }
4489
4496
  );
4490
4497
  }
4491
- var segmentStyles = chunkNWGG5WFL_cjs.cn(
4498
+ var segmentStyles = chunk4ACELYEP_cjs.cn(
4492
4499
  "px-px tabular-nums outline-none select-none",
4493
4500
  "data-[placeholder]:text-ink-4",
4494
4501
  "data-[type=literal]:text-ink-4",
@@ -4519,7 +4526,7 @@ function PopoverTimeField({
4519
4526
  children: /* @__PURE__ */ jsxRuntime.jsx(
4520
4527
  reactAriaComponents.DateInput,
4521
4528
  {
4522
- className: chunkNWGG5WFL_cjs.cn(
4529
+ className: chunk4ACELYEP_cjs.cn(
4523
4530
  "inline-flex items-center rounded-md border border-rule bg-surface px-2.5 py-1.5",
4524
4531
  "font-mono text-[13px] text-ink",
4525
4532
  "focus-within:border-accent focus-within:shadow-[var(--shadow-focus)]",
@@ -4558,7 +4565,7 @@ function DateTimePicker({
4558
4565
  granularity,
4559
4566
  hideTimeZone,
4560
4567
  shouldCloseOnSelect,
4561
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
4568
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
4562
4569
  "grid grid-cols-1 gap-1.5 content-start",
4563
4570
  typeof className === "function" ? className(renderProps) : className
4564
4571
  ),
@@ -4567,7 +4574,7 @@ function DateTimePicker({
4567
4574
  /* @__PURE__ */ jsxRuntime.jsxs(
4568
4575
  reactAriaComponents.Group,
4569
4576
  {
4570
- className: chunkNWGG5WFL_cjs.cn(
4577
+ className: chunk4ACELYEP_cjs.cn(
4571
4578
  // Box chrome on the wrapper; the DateInput inside carries padding +
4572
4579
  // font so the calendar trigger sits inside the same border + ring.
4573
4580
  styles4.box(),
@@ -4578,7 +4585,7 @@ function DateTimePicker({
4578
4585
  /* @__PURE__ */ jsxRuntime.jsx(
4579
4586
  reactAriaComponents.DateInput,
4580
4587
  {
4581
- className: chunkNWGG5WFL_cjs.cn(
4588
+ className: chunk4ACELYEP_cjs.cn(
4582
4589
  "flex-1 flex items-center min-w-0 text-ink",
4583
4590
  styles4.content(),
4584
4591
  // Tabular alignment for date/time segments — overrides content's
@@ -4591,7 +4598,7 @@ function DateTimePicker({
4591
4598
  /* @__PURE__ */ jsxRuntime.jsx(
4592
4599
  reactAriaComponents.Button,
4593
4600
  {
4594
- className: chunkNWGG5WFL_cjs.cn(
4601
+ className: chunk4ACELYEP_cjs.cn(
4595
4602
  "shrink-0 inline-flex items-center justify-center",
4596
4603
  "size-7 rounded-md",
4597
4604
  "text-ink-3 hover:text-ink hover:bg-surface-2",
@@ -4611,7 +4618,7 @@ function DateTimePicker({
4611
4618
  reactAriaComponents.Popover,
4612
4619
  {
4613
4620
  offset: 6,
4614
- className: chunkNWGG5WFL_cjs.cn(
4621
+ className: chunk4ACELYEP_cjs.cn(
4615
4622
  // Match the anchoring field's width exactly. `--trigger-width` is
4616
4623
  // set by RAC on the Popover when it's inside a DatePicker. Floor at
4617
4624
  // 18rem so the calendar stays legible when the input is unusually
@@ -4681,7 +4688,7 @@ function DraftMessageCard({
4681
4688
  isPreviewDisabled = false,
4682
4689
  className
4683
4690
  }) {
4684
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(styles2.root(), className), children: [
4691
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn(styles2.root(), className), children: [
4685
4692
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles2.icon(), children: /* @__PURE__ */ jsxRuntime.jsx(ChannelIcon, { channel }) }),
4686
4693
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles2.body(), children: [
4687
4694
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles2.eyebrow(), children: eyebrow }),
@@ -4802,7 +4809,7 @@ function MultiSelect({
4802
4809
  openPopover(true);
4803
4810
  }
4804
4811
  };
4805
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("grid grid-cols-1 gap-1.5 content-start", className), children: [
4812
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn("grid grid-cols-1 gap-1.5 content-start", className), children: [
4806
4813
  label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
4807
4814
  /* @__PURE__ */ jsxRuntime.jsxs(
4808
4815
  "div",
@@ -4818,7 +4825,7 @@ function MultiSelect({
4818
4825
  onKeyDown: onTriggerKeyDown,
4819
4826
  "data-invalid": isInvalid || void 0,
4820
4827
  "data-disabled": isDisabled || void 0,
4821
- className: chunkNWGG5WFL_cjs.cn(
4828
+ className: chunk4ACELYEP_cjs.cn(
4822
4829
  styles4.box(),
4823
4830
  "flex flex-wrap items-center gap-1.5 cursor-pointer",
4824
4831
  minHeight,
@@ -4833,7 +4840,7 @@ function MultiSelect({
4833
4840
  // No vertical padding — wrapper's p-1.5 + min-h-[size] govern the
4834
4841
  // overall height so it matches the Input/Select trigger at the same
4835
4842
  // size.
4836
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("text-ink-4 font-sans px-1", fieldTextStyles[size]), children: placeholder })
4843
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk4ACELYEP_cjs.cn("text-ink-4 font-sans px-1", fieldTextStyles[size]), children: placeholder })
4837
4844
  ) : selectedOptions.map((o) => /* @__PURE__ */ jsxRuntime.jsx(Chip, { onRemove: () => remove(o.id), isDisabled, children: o.content ?? o.label }, o.id)),
4838
4845
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto pr-1", children: /* @__PURE__ */ jsxRuntime.jsx(FieldCaret, {}) })
4839
4846
  ]
@@ -4849,7 +4856,7 @@ function MultiSelect({
4849
4856
  triggerRef,
4850
4857
  offset: 6,
4851
4858
  placement: "bottom start",
4852
- className: chunkNWGG5WFL_cjs.cn(
4859
+ className: chunk4ACELYEP_cjs.cn(
4853
4860
  "w-[var(--trigger-width)]",
4854
4861
  // The popover element itself takes focus when opened programmatically
4855
4862
  // (defaultOpen) — no browser outline around the whole panel.
@@ -4867,7 +4874,7 @@ function MultiSelect({
4867
4874
  onChange: (e) => updateSearch(e.target.value),
4868
4875
  placeholder: "Search\u2026",
4869
4876
  "aria-label": "Search options",
4870
- className: chunkNWGG5WFL_cjs.cn(
4877
+ className: chunk4ACELYEP_cjs.cn(
4871
4878
  "w-full bg-transparent outline-none rounded-[6px] px-2 py-1.5",
4872
4879
  "font-sans text-[13px] text-ink placeholder:text-ink-4"
4873
4880
  )
@@ -4888,14 +4895,14 @@ function MultiSelect({
4888
4895
  onSelectionChange(keys);
4889
4896
  },
4890
4897
  className: "outline-none max-h-72 overflow-auto",
4891
- renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn("px-3 py-2", fieldHintStyles), children: needle !== "" ? "No matches" : "All options selected" }),
4898
+ renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunk4ACELYEP_cjs.cn("px-3 py-2", fieldHintStyles), children: needle !== "" ? "No matches" : "All options selected" }),
4892
4899
  children: listboxOptions.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
4893
4900
  reactAriaComponents.ListBoxItem,
4894
4901
  {
4895
4902
  id: option.id,
4896
4903
  textValue: option.label,
4897
4904
  ...option.isDisabled ? { isDisabled: true } : {},
4898
- className: chunkNWGG5WFL_cjs.cn(
4905
+ className: chunk4ACELYEP_cjs.cn(
4899
4906
  "group flex items-center gap-2.5",
4900
4907
  "rounded-[6px] px-3 py-2 text-[14px] text-ink-2",
4901
4908
  "cursor-pointer outline-none select-none",
@@ -4925,7 +4932,7 @@ function Chip({
4925
4932
  return /* @__PURE__ */ jsxRuntime.jsxs(
4926
4933
  "span",
4927
4934
  {
4928
- className: chunkNWGG5WFL_cjs.cn(
4935
+ className: chunk4ACELYEP_cjs.cn(
4929
4936
  "inline-flex items-center gap-1.5",
4930
4937
  "pl-2 pr-1 py-0.5 rounded-[6px]",
4931
4938
  "bg-surface-2 border border-rule",
@@ -4943,7 +4950,7 @@ function Chip({
4943
4950
  e.stopPropagation();
4944
4951
  onRemove();
4945
4952
  },
4946
- className: chunkNWGG5WFL_cjs.cn(
4953
+ className: chunk4ACELYEP_cjs.cn(
4947
4954
  "inline-flex items-center justify-center shrink-0",
4948
4955
  "size-4 rounded-[3px]",
4949
4956
  "text-ink-3 hover:text-ink hover:bg-surface-3 cursor-pointer",
@@ -5123,7 +5130,7 @@ function MessageComposer({
5123
5130
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-[18px] py-3", children: /* @__PURE__ */ jsxRuntime.jsx(
5124
5131
  "p",
5125
5132
  {
5126
- className: chunkNWGG5WFL_cjs.cn(
5133
+ className: chunk4ACELYEP_cjs.cn(
5127
5134
  "rounded-[10px] border border-rule bg-surface-2 px-3.5 py-2.5",
5128
5135
  "text-[12.5px] text-ink-3 text-center"
5129
5136
  ),
@@ -5148,7 +5155,7 @@ function MessageComposer({
5148
5155
  }
5149
5156
  ) : null;
5150
5157
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-[18px] pb-3.5 pt-1", children: [
5151
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(messageComposerStyles(), className), children: [
5158
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn(messageComposerStyles(), className), children: [
5152
5159
  connectionPicker ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 border-b border-rule-2 px-3.5 py-1.5", children: [
5153
5160
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: ROW_LABEL, children: "Via" }),
5154
5161
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -5252,7 +5259,7 @@ function MessageComposer({
5252
5259
  rows: 1,
5253
5260
  onChange: (event) => onValueChange({ ...value, text: event.target.value }),
5254
5261
  onKeyDown: onKeyDown2,
5255
- className: chunkNWGG5WFL_cjs.cn(
5262
+ className: chunk4ACELYEP_cjs.cn(
5256
5263
  "w-full resize-none bg-transparent outline-none",
5257
5264
  "min-h-[40px] max-h-48 text-[14px] leading-[1.5] text-ink placeholder:text-ink-4",
5258
5265
  bodyClassName
@@ -5269,7 +5276,7 @@ function MessageComposer({
5269
5276
  if (files) onAddFiles(Array.from(files));
5270
5277
  },
5271
5278
  children: /* @__PURE__ */ jsxRuntime.jsx(
5272
- chunkNWGG5WFL_cjs.Button,
5279
+ chunk4ACELYEP_cjs.Button,
5273
5280
  {
5274
5281
  variant: "subtle",
5275
5282
  size: "icon-md",
@@ -5288,7 +5295,7 @@ function MessageComposer({
5288
5295
  "aria-label": "Send",
5289
5296
  isDisabled: !canSend || isSending,
5290
5297
  onPress: () => void submit(),
5291
- className: chunkNWGG5WFL_cjs.cn(
5298
+ className: chunk4ACELYEP_cjs.cn(
5292
5299
  "grid place-items-center size-8 rounded-[8px] cursor-pointer",
5293
5300
  "bg-accent text-tile-fg transition-opacity duration-150",
5294
5301
  "disabled:opacity-40 disabled:cursor-default",
@@ -5603,10 +5610,10 @@ function DraftMessageComposer({
5603
5610
  [message?.attachments]
5604
5611
  );
5605
5612
  if (phase === "loading") {
5606
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn(styles3.root(), className), children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles3.terminal(), children: "Loading draft\u2026" }) });
5613
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunk4ACELYEP_cjs.cn(styles3.root(), className), children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles3.terminal(), children: "Loading draft\u2026" }) });
5607
5614
  }
5608
5615
  if (phase === "load-error") {
5609
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn(styles3.root(), className), children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: styles3.terminal(), children: [
5616
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunk4ACELYEP_cjs.cn(styles3.root(), className), children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: styles3.terminal(), children: [
5610
5617
  loadError ?? "Loading the draft failed.",
5611
5618
  " ",
5612
5619
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -5621,9 +5628,9 @@ function DraftMessageComposer({
5621
5628
  }
5622
5629
  if (phase === "terminal" || !message) {
5623
5630
  const line = terminalKind === "sent" ? "This draft was sent." : terminalKind === "rejected" ? "This draft was rejected." : terminalKind === "failed" ? `Sending failed${message?.error ? ` \u2014 ${message.error}` : ""}.` : "This message is not a reviewable draft.";
5624
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn(styles3.root(), className), "data-draft-terminal": terminalKind, children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles3.terminal(), children: line }) });
5631
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunk4ACELYEP_cjs.cn(styles3.root(), className), "data-draft-terminal": terminalKind, children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles3.terminal(), children: line }) });
5625
5632
  }
5626
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(styles3.root(), className), children: [
5633
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn(styles3.root(), className), children: [
5627
5634
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles3.header(), children: [
5628
5635
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles3.badge(), children: "Draft \xB7 awaiting review" }),
5629
5636
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: styles3.sender(), children: [
@@ -5665,7 +5672,7 @@ function DraftMessageComposer({
5665
5672
  isConfirmingReject ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
5666
5673
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[12.5px] text-ink-3", children: "Reject draft?" }),
5667
5674
  /* @__PURE__ */ jsxRuntime.jsx(
5668
- chunkNWGG5WFL_cjs.Button,
5675
+ chunk4ACELYEP_cjs.Button,
5669
5676
  {
5670
5677
  size: "sm",
5671
5678
  variant: "ghost",
@@ -5674,9 +5681,9 @@ function DraftMessageComposer({
5674
5681
  children: "Confirm reject"
5675
5682
  }
5676
5683
  ),
5677
- /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { size: "sm", variant: "subtle", onPress: () => setIsConfirmingReject(false), children: "Cancel" })
5684
+ /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Button, { size: "sm", variant: "subtle", onPress: () => setIsConfirmingReject(false), children: "Cancel" })
5678
5685
  ] }) : /* @__PURE__ */ jsxRuntime.jsx(
5679
- chunkNWGG5WFL_cjs.Button,
5686
+ chunk4ACELYEP_cjs.Button,
5680
5687
  {
5681
5688
  size: "sm",
5682
5689
  variant: "ghost",
@@ -5686,7 +5693,7 @@ function DraftMessageComposer({
5686
5693
  }
5687
5694
  ),
5688
5695
  /* @__PURE__ */ jsxRuntime.jsx(
5689
- chunkNWGG5WFL_cjs.Button,
5696
+ chunk4ACELYEP_cjs.Button,
5690
5697
  {
5691
5698
  size: "sm",
5692
5699
  variant: "subtle",
@@ -5844,7 +5851,7 @@ function EmptyState({
5844
5851
  className
5845
5852
  }) {
5846
5853
  const styles4 = emptyStateStyles({ size });
5847
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(styles4.root(), className), children: [
5854
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn(styles4.root(), className), children: [
5848
5855
  icon ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.art(), children: icon }) : null,
5849
5856
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.title(), children: title }),
5850
5857
  description ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.description(), children: description }) : null,
@@ -5856,7 +5863,7 @@ function ErrorAnimation({ className }) {
5856
5863
  "div",
5857
5864
  {
5858
5865
  "aria-hidden": true,
5859
- className: chunkNWGG5WFL_cjs.cn("size-24 text-danger motion-safe:animate-status-pop", className),
5866
+ className: chunk4ACELYEP_cjs.cn("size-24 text-danger motion-safe:animate-status-pop", className),
5860
5867
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleX, { className: "size-full", strokeWidth: 1.5 })
5861
5868
  }
5862
5869
  );
@@ -5879,13 +5886,13 @@ function FileViewerFallbackCard({
5879
5886
  const Icon = iconForContentType(contentType);
5880
5887
  const size = formatFileSize(sizeInBytes);
5881
5888
  const meta = [size, note].filter(Boolean).join(" \xB7 ");
5882
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(fileViewerFallbackCardStyles(), className), children: [
5889
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn(fileViewerFallbackCardStyles(), className), children: [
5883
5890
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-0.5 flex size-8 shrink-0 items-center justify-center rounded-md bg-surface-2 text-ink-3", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { "aria-hidden": true, className: "size-4" }) }),
5884
5891
  /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 flex-1 flex-col", children: [
5885
5892
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate font-sans text-[13px] font-medium text-ink", children: name }),
5886
5893
  errorMessage ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate font-sans text-[12px] text-danger", children: errorMessage }) : meta ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate font-sans text-[12px] text-ink-3", children: meta }) : null
5887
5894
  ] }),
5888
- onDownload ? /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { variant: "ghost", size: "icon-sm", "aria-label": `Download ${name}`, onPress: onDownload, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Download, { "aria-hidden": true }) }) : null
5895
+ onDownload ? /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Button, { variant: "ghost", size: "icon-sm", "aria-label": `Download ${name}`, onPress: onDownload, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Download, { "aria-hidden": true }) }) : null
5889
5896
  ] });
5890
5897
  }
5891
5898
  var imageLightboxStyles = tailwindVariants.tv({
@@ -5922,7 +5929,7 @@ function ImageLightbox({ isOpen, onOpenChange, src, name, onDownload }) {
5922
5929
  /* @__PURE__ */ jsxRuntime.jsxs(
5923
5930
  "div",
5924
5931
  {
5925
- className: chunkNWGG5WFL_cjs.cn(
5932
+ className: chunk4ACELYEP_cjs.cn(
5926
5933
  "flex items-center gap-1.5",
5927
5934
  "rounded-[8px] border border-rule bg-surface py-1 pl-3 pr-1",
5928
5935
  "shadow-[var(--shadow-float)]"
@@ -5930,7 +5937,7 @@ function ImageLightbox({ isOpen, onOpenChange, src, name, onDownload }) {
5930
5937
  children: [
5931
5938
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "max-w-[320px] truncate font-sans text-[12.5px] text-ink", children: name }),
5932
5939
  onDownload ? /* @__PURE__ */ jsxRuntime.jsx(
5933
- chunkNWGG5WFL_cjs.Button,
5940
+ chunk4ACELYEP_cjs.Button,
5934
5941
  {
5935
5942
  variant: "ghost",
5936
5943
  size: "icon-sm",
@@ -5939,7 +5946,7 @@ function ImageLightbox({ isOpen, onOpenChange, src, name, onDownload }) {
5939
5946
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Download, { "aria-hidden": true })
5940
5947
  }
5941
5948
  ) : null,
5942
- /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { slot: "close", variant: "ghost", size: "icon-sm", "aria-label": "Close", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { "aria-hidden": true }) })
5949
+ /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Button, { slot: "close", variant: "ghost", size: "icon-sm", "aria-label": "Close", children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { "aria-hidden": true }) })
5943
5950
  ]
5944
5951
  }
5945
5952
  )
@@ -5979,7 +5986,7 @@ function VideoView({ name, src }) {
5979
5986
  /* @__PURE__ */ jsxRuntime.jsx("video", { controls: true, src, "aria-label": name, className: "h-full w-full object-contain" })
5980
5987
  );
5981
5988
  }
5982
- var PdfView = react.lazy(() => import('./pdf-view-RRMAUK3L.cjs'));
5989
+ var PdfView = react.lazy(() => import('./pdf-view-2DSARHNQ.cjs'));
5983
5990
  var fileViewerStyles = tailwindVariants.tv({
5984
5991
  base: [
5985
5992
  "relative flex w-full flex-col overflow-hidden",
@@ -6019,8 +6026,120 @@ function FileViewer({
6019
6026
  }
6020
6027
  );
6021
6028
  if (kind === "none" || errorMessage || isOversized) return fallback;
6022
- const skeleton = /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Skeleton, { "aria-label": `Loading preview of ${name}`, className: "h-full w-full rounded-none" });
6023
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn(fileViewerStyles(), className), style: { height: heightPx }, children: !src ? skeleton : kind === "image" ? /* @__PURE__ */ jsxRuntime.jsx(ImageView, { name, src, ...onDownload ? { onDownload } : {} }) : kind === "video" ? /* @__PURE__ */ jsxRuntime.jsx(VideoView, { name, src }) : /* @__PURE__ */ jsxRuntime.jsx(react.Suspense, { fallback: skeleton, children: /* @__PURE__ */ jsxRuntime.jsx(PdfView, { name, src, ...onDownload ? { onDownload } : {} }) }) });
6029
+ const skeleton = /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Skeleton, { "aria-label": `Loading preview of ${name}`, className: "h-full w-full rounded-none" });
6030
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunk4ACELYEP_cjs.cn(fileViewerStyles(), className), style: { height: heightPx }, children: !src ? skeleton : kind === "image" ? /* @__PURE__ */ jsxRuntime.jsx(ImageView, { name, src, ...onDownload ? { onDownload } : {} }) : kind === "video" ? /* @__PURE__ */ jsxRuntime.jsx(VideoView, { name, src }) : /* @__PURE__ */ jsxRuntime.jsx(react.Suspense, { fallback: skeleton, children: /* @__PURE__ */ jsxRuntime.jsx(PdfView, { name, src, ...onDownload ? { onDownload } : {} }) }) });
6031
+ }
6032
+ var glowFrameStyles = tailwindVariants.tv({
6033
+ slots: {
6034
+ room: "glow-room flex min-h-0 flex-col",
6035
+ frame: "glow-frame flex min-h-0 flex-1 flex-col"
6036
+ }
6037
+ });
6038
+ var FADE_MS = 700;
6039
+ var FLASH_MS = 900;
6040
+ var REROLL_MS = 250;
6041
+ var HUES = [1, 2, 3, 4, 5, 6];
6042
+ function GlowFrame({ status, className, children }) {
6043
+ const isWorking = status === "working";
6044
+ const { run, isResting } = useBeams(isWorking);
6045
+ const flash = useFlash(status);
6046
+ const strokesRef = useReroll(flash);
6047
+ const styles4 = glowFrameStyles();
6048
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunk4ACELYEP_cjs.cn(styles4.room(), className), children: /* @__PURE__ */ jsxRuntime.jsxs(
6049
+ "div",
6050
+ {
6051
+ className: styles4.frame(),
6052
+ "data-status": status,
6053
+ "data-working": isWorking ? "true" : "false",
6054
+ "data-flashing": flash !== 0 ? "true" : "false",
6055
+ children: [
6056
+ children,
6057
+ isResting ? null : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "glow-fx", "aria-hidden": "true", "data-glow": "beams", children: [
6058
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "glow-orb", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "glow-dot glow-a" }) }),
6059
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "glow-orb", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "glow-dot glow-b" }) }),
6060
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "glow-beams", children: [
6061
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "glow-blob glow-tail glow-a" }),
6062
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "glow-blob glow-lead glow-a" }),
6063
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "glow-blob glow-tail glow-b" }),
6064
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "glow-blob glow-lead glow-b" })
6065
+ ] })
6066
+ ] }, `beams-${run}`),
6067
+ flash !== 0 ? /* @__PURE__ */ jsxRuntime.jsxs(
6068
+ "div",
6069
+ {
6070
+ ref: strokesRef,
6071
+ className: "glow-flash",
6072
+ "aria-hidden": "true",
6073
+ "data-glow": "flash",
6074
+ children: [
6075
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "glow-ring glow-ring-1" }),
6076
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "glow-stroke glow-stroke-2", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "glow-ring glow-ring-2" }) }),
6077
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "glow-stroke glow-stroke-3", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "glow-ring glow-ring-3" }) }),
6078
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "glow-stroke glow-stroke-4", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "glow-ring glow-ring-4" }) })
6079
+ ]
6080
+ },
6081
+ `flash-${flash}`
6082
+ ) : null
6083
+ ]
6084
+ }
6085
+ ) });
6086
+ }
6087
+ function useBeams(isWorking) {
6088
+ const [run, setRun] = react.useState(0);
6089
+ const [isResting, setIsResting] = react.useState(!isWorking);
6090
+ const wasWorking = react.useRef(isWorking);
6091
+ react.useEffect(() => {
6092
+ if (isWorking) {
6093
+ if (!wasWorking.current) setRun((n) => n + 1);
6094
+ wasWorking.current = true;
6095
+ setIsResting(false);
6096
+ return;
6097
+ }
6098
+ wasWorking.current = false;
6099
+ const timer = window.setTimeout(() => setIsResting(true), FADE_MS + 50);
6100
+ return () => window.clearTimeout(timer);
6101
+ }, [isWorking]);
6102
+ return { run, isResting };
6103
+ }
6104
+ function useFlash(status) {
6105
+ const [flash, setFlash] = react.useState(0);
6106
+ const previous = react.useRef(status);
6107
+ react.useEffect(() => {
6108
+ const was = previous.current;
6109
+ previous.current = status;
6110
+ if (!(was === "working" && status === "ready")) return;
6111
+ setFlash((n) => n + 1);
6112
+ }, [status]);
6113
+ react.useEffect(() => {
6114
+ if (flash === 0) return;
6115
+ const timer = window.setTimeout(() => setFlash(0), FLASH_MS);
6116
+ return () => window.clearTimeout(timer);
6117
+ }, [flash]);
6118
+ return flash;
6119
+ }
6120
+ function useReroll(flash) {
6121
+ const ref = react.useRef(null);
6122
+ react.useEffect(() => {
6123
+ if (flash === 0) return;
6124
+ if (window.matchMedia?.("(prefers-reduced-motion: reduce)").matches) return;
6125
+ const reroll = () => {
6126
+ const rings = ref.current?.querySelectorAll(".glow-ring");
6127
+ if (!rings) return;
6128
+ const stops = HUES.map((hue) => ({ hue, at: Math.random() * 100 })).sort(
6129
+ (a, b) => a.at - b.at
6130
+ );
6131
+ for (const ring of rings) {
6132
+ stops.forEach((stop, i) => {
6133
+ ring.style.setProperty(`--glow-p${i + 1}`, `${stop.at.toFixed(2)}%`);
6134
+ ring.style.setProperty(`--glow-k${i + 1}`, `var(--color-glow-${stop.hue})`);
6135
+ });
6136
+ }
6137
+ };
6138
+ reroll();
6139
+ const timer = window.setInterval(reroll, REROLL_MS);
6140
+ return () => window.clearInterval(timer);
6141
+ }, [flash]);
6142
+ return ref;
6024
6143
  }
6025
6144
  var imageAttachmentStyles = tailwindVariants.tv({
6026
6145
  base: [
@@ -6043,7 +6162,7 @@ function ImageAttachment({
6043
6162
  {
6044
6163
  "aria-label": `Preview ${name}`,
6045
6164
  ...onPress ? { onPress } : {},
6046
- className: chunkNWGG5WFL_cjs.cn(imageAttachmentStyles(), className),
6165
+ className: chunk4ACELYEP_cjs.cn(imageAttachmentStyles(), className),
6047
6166
  children: [
6048
6167
  src ? (
6049
6168
  // Kept in the DOM (invisible) while loading so onLoad still fires
@@ -6056,14 +6175,14 @@ function ImageAttachment({
6056
6175
  loading: "lazy",
6057
6176
  onLoad: () => setLoadedSrc(src),
6058
6177
  onError: () => onLoadError?.(),
6059
- className: chunkNWGG5WFL_cjs.cn(
6178
+ className: chunk4ACELYEP_cjs.cn(
6060
6179
  "block max-h-[220px] max-w-[280px] object-contain",
6061
6180
  !isLoaded && "invisible absolute inset-0"
6062
6181
  )
6063
6182
  }
6064
6183
  )
6065
6184
  ) : null,
6066
- !isLoaded ? /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Skeleton, { className: "h-[140px] w-[200px]" }) : null
6185
+ !isLoaded ? /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Skeleton, { className: "h-[140px] w-[200px]" }) : null
6067
6186
  ]
6068
6187
  }
6069
6188
  );
@@ -6094,7 +6213,7 @@ function Input({
6094
6213
  reactAriaComponents.TextField,
6095
6214
  {
6096
6215
  ...props,
6097
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
6216
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
6098
6217
  "grid grid-cols-1 gap-1.5 content-start",
6099
6218
  typeof className === "function" ? className(renderProps) : className
6100
6219
  ),
@@ -6105,7 +6224,7 @@ function Input({
6105
6224
  {
6106
6225
  ...inputProps,
6107
6226
  placeholder: placeholder ?? "",
6108
- className: chunkNWGG5WFL_cjs.cn(styles4.box(), styles4.content(), inputClassName)
6227
+ className: chunk4ACELYEP_cjs.cn(styles4.box(), styles4.content(), inputClassName)
6109
6228
  }
6110
6229
  ),
6111
6230
  description ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Text, { slot: "description", className: fieldHintStyles, children: description }) : null,
@@ -6123,7 +6242,7 @@ function MenuPopover({ className, offset = 4, placement = "bottom start", ...pro
6123
6242
  offset,
6124
6243
  placement,
6125
6244
  ...props,
6126
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
6245
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
6127
6246
  "min-w-[200px] p-1 bg-surface border border-rule rounded-md",
6128
6247
  "shadow-[var(--shadow-float)] outline-none z-[1200]",
6129
6248
  "entering:animate-enter-zoom",
@@ -6138,14 +6257,14 @@ function Menu({ className, ...props }) {
6138
6257
  reactAriaComponents.Menu,
6139
6258
  {
6140
6259
  ...props,
6141
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
6260
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
6142
6261
  "flex flex-col gap-px outline-none",
6143
6262
  typeof className === "function" ? className(renderProps) : className
6144
6263
  )
6145
6264
  }
6146
6265
  );
6147
6266
  }
6148
- var menuItemStyles = chunkNWGG5WFL_cjs.cn(
6267
+ var menuItemStyles = chunk4ACELYEP_cjs.cn(
6149
6268
  "flex items-center gap-2.5 px-2.5 py-1.5 rounded-md cursor-pointer outline-none",
6150
6269
  "font-sans text-[13px] text-ink-2 select-none",
6151
6270
  "hover:bg-surface-2 hover:text-ink focus:bg-surface-2 focus:text-ink",
@@ -6159,7 +6278,7 @@ function MenuItem({ icon, hasSubmenu, children, className, ...props }) {
6159
6278
  reactAriaComponents.MenuItem,
6160
6279
  {
6161
6280
  ...props,
6162
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(menuItemStyles, typeof className === "function" ? className(renderProps) : className),
6281
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(menuItemStyles, typeof className === "function" ? className(renderProps) : className),
6163
6282
  children: [
6164
6283
  icon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex shrink-0 items-center", children: icon }) : null,
6165
6284
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 truncate", children }),
@@ -6181,7 +6300,7 @@ function NavSection({
6181
6300
  "data-testid": dataTestid
6182
6301
  }) {
6183
6302
  const hasHead = label !== void 0 || count !== void 0 || action !== void 0;
6184
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("mt-[18px] first:mt-1", className), "data-testid": dataTestid, children: [
6303
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn("mt-[18px] first:mt-1", className), "data-testid": dataTestid, children: [
6185
6304
  hasHead ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between px-2 pt-1 pb-2", children: [
6186
6305
  label !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-[10.5px] uppercase tracking-[0.08em] text-ink-4", children: label }) : /* @__PURE__ */ jsxRuntime.jsx("span", {}),
6187
6306
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -6236,7 +6355,7 @@ function NavItem({ icon, badge, isActive, className, children, ...props }) {
6236
6355
  reactAriaComponents.Button,
6237
6356
  {
6238
6357
  ...props,
6239
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
6358
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
6240
6359
  navItemStyles({ isActive, isNested }),
6241
6360
  typeof className === "function" ? className(renderProps) : className
6242
6361
  ),
@@ -6245,7 +6364,7 @@ function NavItem({ icon, badge, isActive, className, children, ...props }) {
6245
6364
  "span",
6246
6365
  {
6247
6366
  "aria-hidden": true,
6248
- className: chunkNWGG5WFL_cjs.cn(
6367
+ className: chunk4ACELYEP_cjs.cn(
6249
6368
  "grid place-items-center shrink-0 size-4",
6250
6369
  isActive ? "text-accent" : "text-ink-3",
6251
6370
  "[&>svg]:size-4"
@@ -6260,12 +6379,12 @@ function NavItem({ icon, badge, isActive, className, children, ...props }) {
6260
6379
  );
6261
6380
  }
6262
6381
  function NavGroup({ icon, label, children, className, ...props }) {
6263
- return /* @__PURE__ */ jsxRuntime.jsxs(reactAriaComponents.Disclosure, { ...props, className: chunkNWGG5WFL_cjs.cn("group/nav-group my-px", className), children: [
6382
+ return /* @__PURE__ */ jsxRuntime.jsxs(reactAriaComponents.Disclosure, { ...props, className: chunk4ACELYEP_cjs.cn("group/nav-group my-px", className), children: [
6264
6383
  /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Heading, { className: "m-0", children: /* @__PURE__ */ jsxRuntime.jsxs(
6265
6384
  reactAriaComponents.Button,
6266
6385
  {
6267
6386
  slot: "trigger",
6268
- className: chunkNWGG5WFL_cjs.cn(
6387
+ className: chunk4ACELYEP_cjs.cn(
6269
6388
  "flex w-full items-center gap-2.5",
6270
6389
  "px-2 py-[7px] rounded-[7px]",
6271
6390
  "text-[13.5px] tracking-[-0.005em] text-ink-2 text-left",
@@ -6309,7 +6428,7 @@ function NavGroup({ icon, label, children, className, ...props }) {
6309
6428
  /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.DisclosurePanel, { children: /* @__PURE__ */ jsxRuntime.jsx(
6310
6429
  "div",
6311
6430
  {
6312
- className: chunkNWGG5WFL_cjs.cn(
6431
+ className: chunk4ACELYEP_cjs.cn(
6313
6432
  "relative pl-[22px] py-px",
6314
6433
  // Vertical guide rule — sits under where the parent's icon center
6315
6434
  // would be (14px from the panel's left edge).
@@ -6333,7 +6452,7 @@ function Orb({ size = "sm", state = "solving", speed, theme, className, label })
6333
6452
  size: design,
6334
6453
  ...speed !== void 0 ? { speed } : {},
6335
6454
  ...theme !== void 0 ? { theme } : {},
6336
- className: chunkNWGG5WFL_cjs.cn("inline-block shrink-0", className),
6455
+ className: chunk4ACELYEP_cjs.cn("inline-block shrink-0", className),
6337
6456
  ...px !== design ? { style: { width: px, height: px } } : {},
6338
6457
  ...label ? { "aria-label": label } : { "aria-hidden": true }
6339
6458
  }
@@ -6356,10 +6475,10 @@ var progressBarStyles = tailwindVariants.tv({
6356
6475
  });
6357
6476
  function ProgressBar({ size, className, ...props }) {
6358
6477
  const { track, fill } = progressBarStyles({ size });
6359
- return /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.ProgressBar, { ...props, className: chunkNWGG5WFL_cjs.cn("block", className), children: ({ percentage, isIndeterminate }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: track(), children: isIndeterminate ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn(fill(), "absolute w-[35%] animate-indeterminate-progress") }) : /* @__PURE__ */ jsxRuntime.jsx(
6478
+ return /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.ProgressBar, { ...props, className: chunk4ACELYEP_cjs.cn("block", className), children: ({ percentage, isIndeterminate }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: track(), children: isIndeterminate ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunk4ACELYEP_cjs.cn(fill(), "absolute w-[35%] animate-indeterminate-progress") }) : /* @__PURE__ */ jsxRuntime.jsx(
6360
6479
  "div",
6361
6480
  {
6362
- className: chunkNWGG5WFL_cjs.cn(fill(), "transition-[width] duration-150"),
6481
+ className: chunk4ACELYEP_cjs.cn(fill(), "transition-[width] duration-150"),
6363
6482
  style: { width: `${percentage ?? 0}%` }
6364
6483
  }
6365
6484
  ) }) });
@@ -6409,7 +6528,7 @@ function ProgressRing({ size, className, ...props }) {
6409
6528
  const { box, stroke } = GEOMETRY[resolvedSize];
6410
6529
  const center = box / 2;
6411
6530
  const radius = (box - stroke) / 2;
6412
- return /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.ProgressBar, { ...props, className: chunkNWGG5WFL_cjs.cn(root(), className), children: ({ percentage, valueText, isIndeterminate }) => {
6531
+ return /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.ProgressBar, { ...props, className: chunk4ACELYEP_cjs.cn(root(), className), children: ({ percentage, valueText, isIndeterminate }) => {
6413
6532
  const shown = isIndeterminate ? 25 : Math.max(0, Math.min(100, percentage ?? 0));
6414
6533
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6415
6534
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -6417,7 +6536,7 @@ function ProgressRing({ size, className, ...props }) {
6417
6536
  {
6418
6537
  "aria-hidden": true,
6419
6538
  viewBox: `0 0 ${box} ${box}`,
6420
- className: chunkNWGG5WFL_cjs.cn(svg(), isIndeterminate && "animate-spin"),
6539
+ className: chunk4ACELYEP_cjs.cn(svg(), isIndeterminate && "animate-spin"),
6421
6540
  children: [
6422
6541
  /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: center, cy: center, r: radius, strokeWidth: stroke, className: track() }),
6423
6542
  shown > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -6454,7 +6573,7 @@ function RadioGroup({
6454
6573
  {
6455
6574
  ...props,
6456
6575
  orientation,
6457
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
6576
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
6458
6577
  "grid gap-2 content-start",
6459
6578
  typeof className === "function" ? className(renderProps) : className
6460
6579
  ),
@@ -6463,7 +6582,7 @@ function RadioGroup({
6463
6582
  /* @__PURE__ */ jsxRuntime.jsx(
6464
6583
  "div",
6465
6584
  {
6466
- className: chunkNWGG5WFL_cjs.cn(
6585
+ className: chunk4ACELYEP_cjs.cn(
6467
6586
  orientation === "horizontal" ? "flex flex-wrap items-center gap-x-4 gap-y-2" : "grid gap-3"
6468
6587
  ),
6469
6588
  children
@@ -6480,7 +6599,7 @@ function Radio({ children, className, ...props }) {
6480
6599
  reactAriaComponents.Radio,
6481
6600
  {
6482
6601
  ...props,
6483
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
6602
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
6484
6603
  // `relative` for the same reason as Checkbox / Switch: RAC's
6485
6604
  // visually-hidden <input> is absolutely positioned and must resolve
6486
6605
  // against this radio, not a far-away shell, or focusing it scrolls
@@ -6495,7 +6614,7 @@ function Radio({ children, className, ...props }) {
6495
6614
  "span",
6496
6615
  {
6497
6616
  "aria-hidden": true,
6498
- className: chunkNWGG5WFL_cjs.cn(
6617
+ className: chunk4ACELYEP_cjs.cn(
6499
6618
  "relative inline-flex items-center justify-center shrink-0",
6500
6619
  "size-[18px] rounded-full border bg-surface border-ink-4",
6501
6620
  "transition-[border-color,box-shadow] duration-150",
@@ -6506,7 +6625,7 @@ function Radio({ children, className, ...props }) {
6506
6625
  children: /* @__PURE__ */ jsxRuntime.jsx(
6507
6626
  "span",
6508
6627
  {
6509
- className: chunkNWGG5WFL_cjs.cn(
6628
+ className: chunk4ACELYEP_cjs.cn(
6510
6629
  "block size-[10px] rounded-full bg-accent",
6511
6630
  "transition-opacity duration-150 opacity-0",
6512
6631
  "group-data-[selected]:opacity-100"
@@ -6550,7 +6669,7 @@ function AttributePicker({
6550
6669
  autoFocus,
6551
6670
  size,
6552
6671
  ...isDisabled !== void 0 ? { isDisabled } : {},
6553
- className: chunkNWGG5WFL_cjs.cn("w-full", className)
6672
+ className: chunk4ACELYEP_cjs.cn("w-full", className)
6554
6673
  }
6555
6674
  );
6556
6675
  }
@@ -6819,7 +6938,7 @@ function ChipItem({
6819
6938
  }
6820
6939
  );
6821
6940
  }
6822
- return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("font-mono text-[12px] text-ink max-w-[10rem] truncate"), children: formatValue(field, operator, value) });
6941
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk4ACELYEP_cjs.cn("font-mono text-[12px] text-ink max-w-[10rem] truncate"), children: formatValue(field, operator, value) });
6823
6942
  }
6824
6943
  function Em({ children }) {
6825
6944
  return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-[12px] text-ink-4", children });
@@ -6905,7 +7024,7 @@ function SegmentedControl({
6905
7024
  orientation,
6906
7025
  value: value === null ? null : String(value),
6907
7026
  onChange: (next) => onChange(next),
6908
- className: chunkNWGG5WFL_cjs.cn(styles4.group(), className),
7027
+ className: chunk4ACELYEP_cjs.cn(styles4.group(), className),
6909
7028
  children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
6910
7029
  reactAriaComponents.Radio,
6911
7030
  {
@@ -6980,14 +7099,14 @@ function TagInput({
6980
7099
  onChange(value.slice(0, -1));
6981
7100
  }
6982
7101
  };
6983
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("grid grid-cols-1 gap-1.5 content-start", className), children: [
7102
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn("grid grid-cols-1 gap-1.5 content-start", className), children: [
6984
7103
  label ? /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: inputId, className: fieldLabelStyles, children: label }) : null,
6985
7104
  /* @__PURE__ */ jsxRuntime.jsx(
6986
7105
  "div",
6987
7106
  {
6988
7107
  "data-invalid": isInvalid || void 0,
6989
7108
  "data-disabled": isDisabled || void 0,
6990
- className: chunkNWGG5WFL_cjs.cn(
7109
+ className: chunk4ACELYEP_cjs.cn(
6991
7110
  styles4.box(),
6992
7111
  "flex",
6993
7112
  // Cell editor: one table row (29px under a 32px row) while the chips
@@ -7001,7 +7120,7 @@ function TagInput({
7001
7120
  "div",
7002
7121
  {
7003
7122
  ref: chipsRef,
7004
- className: chunkNWGG5WFL_cjs.cn(
7123
+ className: chunk4ACELYEP_cjs.cn(
7005
7124
  "flex flex-1 flex-wrap items-center gap-1.5 min-w-0",
7006
7125
  isCell && (hasWrapped ? "content-start overflow-y-auto" : "content-center overflow-hidden")
7007
7126
  ),
@@ -7040,7 +7159,7 @@ function TagInput({
7040
7159
  onBlur: commit,
7041
7160
  disabled: isDisabled,
7042
7161
  placeholder: value.length === 0 ? placeholder : "",
7043
- className: chunkNWGG5WFL_cjs.cn(
7162
+ className: chunk4ACELYEP_cjs.cn(
7044
7163
  "flex-1 min-w-[6rem] bg-transparent outline-none",
7045
7164
  "font-sans text-ink placeholder:text-ink-4",
7046
7165
  fieldTextStyles[size],
@@ -7173,7 +7292,7 @@ function FilterValueInput({
7173
7292
  onChange: (next) => onChange(next ? next.toString() : ""),
7174
7293
  autoFocus,
7175
7294
  ...isDisabled !== void 0 ? { isDisabled } : {},
7176
- className: chunkNWGG5WFL_cjs.cn("w-full", className)
7295
+ className: chunk4ACELYEP_cjs.cn("w-full", className)
7177
7296
  }
7178
7297
  );
7179
7298
  }
@@ -7190,7 +7309,7 @@ function FilterValueInput({
7190
7309
  ...autoFocus ? { autoFocus: true } : {}
7191
7310
  },
7192
7311
  ...isDisabled !== void 0 ? { isDisabled } : {},
7193
- className: chunkNWGG5WFL_cjs.cn("w-full", className)
7312
+ className: chunk4ACELYEP_cjs.cn("w-full", className)
7194
7313
  }
7195
7314
  );
7196
7315
  })();
@@ -7230,7 +7349,7 @@ function EnumSingleValue({
7230
7349
  },
7231
7350
  ...isDisabled !== void 0 ? { isDisabled } : {},
7232
7351
  ...autoFocus ? { autoFocus: true } : {},
7233
- className: chunkNWGG5WFL_cjs.cn("w-full", className)
7352
+ className: chunk4ACELYEP_cjs.cn("w-full", className)
7234
7353
  }
7235
7354
  );
7236
7355
  }
@@ -7259,7 +7378,7 @@ function EnumMultiValue({
7259
7378
  placeholder: "Select values\u2026",
7260
7379
  ...isDisabled !== void 0 ? { isDisabled } : {},
7261
7380
  ...autoFocus ? { autoFocus: true } : {},
7262
- className: chunkNWGG5WFL_cjs.cn("w-full", className)
7381
+ className: chunk4ACELYEP_cjs.cn("w-full", className)
7263
7382
  }
7264
7383
  );
7265
7384
  }
@@ -7317,7 +7436,7 @@ function OperatorPicker({
7317
7436
  size,
7318
7437
  ...isDisabled !== void 0 ? { isDisabled } : {},
7319
7438
  ...autoFocus ? { autoFocus: true } : {},
7320
- className: chunkNWGG5WFL_cjs.cn("w-full", className),
7439
+ className: chunk4ACELYEP_cjs.cn("w-full", className),
7321
7440
  triggerClassName: "min-w-0"
7322
7441
  }
7323
7442
  );
@@ -7347,7 +7466,7 @@ function FilterRow({
7347
7466
  return /* @__PURE__ */ jsxRuntime.jsxs(
7348
7467
  "div",
7349
7468
  {
7350
- className: chunkNWGG5WFL_cjs.cn(
7469
+ className: chunk4ACELYEP_cjs.cn(
7351
7470
  "group flex items-center gap-2 px-1.5 py-1 rounded-sm",
7352
7471
  "hover:bg-[color-mix(in_oklab,var(--color-surface-2)_50%,var(--color-surface))]"
7353
7472
  ),
@@ -7355,7 +7474,7 @@ function FilterRow({
7355
7474
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-12 shrink-0 inline-flex justify-end pr-1", children: /* @__PURE__ */ jsxRuntime.jsx(
7356
7475
  "span",
7357
7476
  {
7358
- className: chunkNWGG5WFL_cjs.cn(
7477
+ className: chunk4ACELYEP_cjs.cn(
7359
7478
  "font-mono text-[10.5px] tracking-[0.08em]",
7360
7479
  index === 0 ? "text-ink-4" : "text-accent-ink"
7361
7480
  ),
@@ -7423,7 +7542,7 @@ function FilterRow({
7423
7542
  onClick: onWrap,
7424
7543
  "aria-label": "Wrap in group",
7425
7544
  title: "Wrap in a group with the opposite operator",
7426
- className: chunkNWGG5WFL_cjs.cn(
7545
+ className: chunk4ACELYEP_cjs.cn(
7427
7546
  "shrink-0 size-6 inline-flex items-center justify-center rounded-sm",
7428
7547
  "text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
7429
7548
  "opacity-0 group-hover:opacity-100 focus-visible:opacity-100"
@@ -7450,7 +7569,7 @@ function FilterRow({
7450
7569
  type: "button",
7451
7570
  onClick: onRemove,
7452
7571
  "aria-label": field ? "Remove filter" : "Cancel",
7453
- className: chunkNWGG5WFL_cjs.cn(
7572
+ className: chunk4ACELYEP_cjs.cn(
7454
7573
  "shrink-0 size-6 inline-flex items-center justify-center rounded-sm",
7455
7574
  "text-ink-4 hover:text-danger hover:bg-surface-2 cursor-pointer outline-none",
7456
7575
  field ? "opacity-0 group-hover:opacity-100 focus-visible:opacity-100" : "opacity-100"
@@ -7579,7 +7698,7 @@ function GroupAddControls({
7579
7698
  {
7580
7699
  type: "button",
7581
7700
  onClick: onAddFilter,
7582
- className: chunkNWGG5WFL_cjs.cn(
7701
+ className: chunk4ACELYEP_cjs.cn(
7583
7702
  "inline-flex items-center gap-1.5 px-2 py-1 rounded-sm",
7584
7703
  "text-ink-2 hover:bg-surface-2 hover:text-ink cursor-pointer outline-none"
7585
7704
  ),
@@ -7607,7 +7726,7 @@ function GroupAddControls({
7607
7726
  type: "button",
7608
7727
  onClick: onAddGroup,
7609
7728
  title: "Add a nested group with its own logical operator",
7610
- className: chunkNWGG5WFL_cjs.cn(
7729
+ className: chunk4ACELYEP_cjs.cn(
7611
7730
  "inline-flex items-center gap-1.5 px-2 py-1 rounded-sm",
7612
7731
  "text-ink-2 hover:bg-surface-2 hover:text-ink cursor-pointer outline-none"
7613
7732
  ),
@@ -7653,7 +7772,7 @@ function NestedGroup({
7653
7772
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-12 shrink-0 inline-flex justify-end pr-1 pt-2", children: /* @__PURE__ */ jsxRuntime.jsx(
7654
7773
  "span",
7655
7774
  {
7656
- className: chunkNWGG5WFL_cjs.cn(
7775
+ className: chunk4ACELYEP_cjs.cn(
7657
7776
  "font-mono text-[10.5px] tracking-[0.08em]",
7658
7777
  index === 0 ? "text-ink-4" : "text-accent-ink"
7659
7778
  ),
@@ -7663,7 +7782,7 @@ function NestedGroup({
7663
7782
  /* @__PURE__ */ jsxRuntime.jsxs(
7664
7783
  "div",
7665
7784
  {
7666
- className: chunkNWGG5WFL_cjs.cn(
7785
+ className: chunk4ACELYEP_cjs.cn(
7667
7786
  "flex-1 min-w-0 rounded-sm border border-rule",
7668
7787
  "bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]"
7669
7788
  ),
@@ -7690,7 +7809,7 @@ function NestedGroup({
7690
7809
  type: "button",
7691
7810
  onClick: onRemove,
7692
7811
  "aria-label": "Remove group",
7693
- className: chunkNWGG5WFL_cjs.cn(
7812
+ className: chunk4ACELYEP_cjs.cn(
7694
7813
  "size-6 inline-flex items-center justify-center rounded-sm",
7695
7814
  "text-ink-4 hover:text-danger hover:bg-surface cursor-pointer outline-none"
7696
7815
  ),
@@ -7933,7 +8052,7 @@ function RecordFilterBuilderPanel({
7933
8052
  type: "button",
7934
8053
  onClick: onExpand,
7935
8054
  title: "Show filter chips inline above the table",
7936
- className: chunkNWGG5WFL_cjs.cn(
8055
+ className: chunk4ACELYEP_cjs.cn(
7937
8056
  "inline-flex items-center gap-1 px-2 py-1 rounded-sm",
7938
8057
  "font-mono text-[11.5px] text-ink-3 hover:text-ink hover:bg-surface-2",
7939
8058
  "cursor-pointer outline-none"
@@ -7963,7 +8082,7 @@ function RecordFilterBuilderPanel({
7963
8082
  type: "button",
7964
8083
  onClick: onClose,
7965
8084
  "aria-label": "Close",
7966
- className: chunkNWGG5WFL_cjs.cn(
8085
+ className: chunk4ACELYEP_cjs.cn(
7967
8086
  "size-6 inline-flex items-center justify-center rounded-sm",
7968
8087
  "text-ink-3 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none"
7969
8088
  ),
@@ -7998,7 +8117,7 @@ function RecordFilterBuilderPanel({
7998
8117
  /* @__PURE__ */ jsxRuntime.jsxs(
7999
8118
  "div",
8000
8119
  {
8001
- className: chunkNWGG5WFL_cjs.cn(
8120
+ className: chunk4ACELYEP_cjs.cn(
8002
8121
  "flex items-center justify-between px-3.5 py-2.5 border-t border-rule rounded-b-md",
8003
8122
  "bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]"
8004
8123
  ),
@@ -8009,7 +8128,7 @@ function RecordFilterBuilderPanel({
8009
8128
  type: "button",
8010
8129
  onClick: clearAll,
8011
8130
  disabled: totalChildren === 0,
8012
- className: chunkNWGG5WFL_cjs.cn(
8131
+ className: chunk4ACELYEP_cjs.cn(
8013
8132
  "font-mono text-[11.5px] text-ink-3 hover:text-ink",
8014
8133
  "disabled:opacity-40 disabled:pointer-events-none",
8015
8134
  "outline-none cursor-pointer"
@@ -8019,7 +8138,7 @@ function RecordFilterBuilderPanel({
8019
8138
  ),
8020
8139
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
8021
8140
  onSaveView ? /* @__PURE__ */ jsxRuntime.jsxs(
8022
- chunkNWGG5WFL_cjs.Button,
8141
+ chunk4ACELYEP_cjs.Button,
8023
8142
  {
8024
8143
  variant: "ghost",
8025
8144
  size: "sm",
@@ -8047,7 +8166,7 @@ function RecordFilterBuilderPanel({
8047
8166
  ]
8048
8167
  }
8049
8168
  ) : null,
8050
- /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { variant: "cta", size: "sm", onPress: onClose, children: "Done" })
8169
+ /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Button, { variant: "cta", size: "sm", onPress: onClose, children: "Done" })
8051
8170
  ] })
8052
8171
  ]
8053
8172
  }
@@ -8121,11 +8240,11 @@ function RecordFilterButton({
8121
8240
  type: "button",
8122
8241
  "data-filter-trigger": "collapsed",
8123
8242
  onClick: () => setOpen((v) => !v),
8124
- className: chunkNWGG5WFL_cjs.cn(
8243
+ className: chunk4ACELYEP_cjs.cn(
8125
8244
  "inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md border",
8126
8245
  "font-mono text-[12px] cursor-pointer outline-none",
8127
8246
  "focus-visible:shadow-[var(--shadow-focus)]",
8128
- hasFilters ? chunkNWGG5WFL_cjs.cn(
8247
+ hasFilters ? chunk4ACELYEP_cjs.cn(
8129
8248
  "border-[color-mix(in_oklab,var(--color-accent)_35%,var(--color-rule))]",
8130
8249
  "bg-[color-mix(in_oklab,var(--color-accent)_8%,var(--color-surface))]",
8131
8250
  "text-accent-ink"
@@ -8224,7 +8343,7 @@ function RecordFilterChips({
8224
8343
  logicalOperator: filter.logicalOperator === "and" ? "or" : "and"
8225
8344
  }),
8226
8345
  title: "Toggle joiner",
8227
- className: chunkNWGG5WFL_cjs.cn(
8346
+ className: chunk4ACELYEP_cjs.cn(
8228
8347
  "inline-flex items-center px-1.5 py-0.5 rounded-sm border border-dashed border-rule",
8229
8348
  "font-mono text-[10.5px] tracking-[0.08em] text-ink-3",
8230
8349
  "hover:text-ink hover:border-ink-4 cursor-pointer outline-none"
@@ -8297,7 +8416,7 @@ function RecordFilterChips({
8297
8416
  elements: elements.filter((_, idx) => idx !== i)
8298
8417
  });
8299
8418
  },
8300
- className: chunkNWGG5WFL_cjs.cn(
8419
+ className: chunk4ACELYEP_cjs.cn(
8301
8420
  "size-5 inline-flex items-center justify-center rounded-[3px]",
8302
8421
  "text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none"
8303
8422
  ),
@@ -8342,7 +8461,7 @@ function GroupPill({ group }) {
8342
8461
  return /* @__PURE__ */ jsxRuntime.jsxs(
8343
8462
  "span",
8344
8463
  {
8345
- className: chunkNWGG5WFL_cjs.cn(
8464
+ className: chunk4ACELYEP_cjs.cn(
8346
8465
  "inline-flex items-center gap-1.5 px-2 py-1 rounded-sm border border-dashed border-rule",
8347
8466
  "bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]"
8348
8467
  ),
@@ -8380,7 +8499,7 @@ function CollapseToggle({ onClick }) {
8380
8499
  {
8381
8500
  type: "button",
8382
8501
  onClick,
8383
- className: chunkNWGG5WFL_cjs.cn(
8502
+ className: chunk4ACELYEP_cjs.cn(
8384
8503
  "inline-flex items-center gap-1",
8385
8504
  "font-mono text-[11px] uppercase tracking-[0.08em]",
8386
8505
  "text-ink-3 hover:text-ink cursor-pointer outline-none"
@@ -8440,7 +8559,7 @@ function Chip2({
8440
8559
  setEditing((v) => !v);
8441
8560
  }
8442
8561
  },
8443
- className: chunkNWGG5WFL_cjs.cn(
8562
+ className: chunk4ACELYEP_cjs.cn(
8444
8563
  "group inline-flex items-center gap-1.5 pl-2 pr-1 py-1 rounded-sm border cursor-pointer",
8445
8564
  editing ? "border-accent shadow-[var(--shadow-focus)] bg-surface" : "border-rule bg-surface hover:border-ink-4"
8446
8565
  ),
@@ -8473,7 +8592,7 @@ function Chip2({
8473
8592
  onRemove();
8474
8593
  if (editing) setEditing(false);
8475
8594
  },
8476
- className: chunkNWGG5WFL_cjs.cn(
8595
+ className: chunk4ACELYEP_cjs.cn(
8477
8596
  "ml-0.5 size-4 inline-flex items-center justify-center rounded-[3px]",
8478
8597
  "text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none"
8479
8598
  ),
@@ -8554,7 +8673,7 @@ function ChipMiniEditor({
8554
8673
  onChange: onChangeValue
8555
8674
  }
8556
8675
  ) }),
8557
- /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { type: "submit", variant: "cta", size: "sm", className: "shrink-0", children: "Save" })
8676
+ /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Button, { type: "submit", variant: "cta", size: "sm", className: "shrink-0", children: "Save" })
8558
8677
  ]
8559
8678
  }
8560
8679
  );
@@ -8566,7 +8685,7 @@ function InlineAddFilter({ onClick }) {
8566
8685
  type: "button",
8567
8686
  "data-filter-trigger": "expanded",
8568
8687
  onClick,
8569
- className: chunkNWGG5WFL_cjs.cn(
8688
+ className: chunk4ACELYEP_cjs.cn(
8570
8689
  "inline-flex items-center gap-1 px-2 py-1 rounded-sm",
8571
8690
  "text-ink-3 hover:bg-surface-2 hover:text-ink cursor-pointer outline-none"
8572
8691
  ),
@@ -8633,25 +8752,25 @@ var recordUpdateRowStyles = tailwindVariants.tv({
8633
8752
  defaultVariants: { state: "changed" }
8634
8753
  });
8635
8754
  function RecordUpdate({ className, children, ...props }) {
8636
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunkNWGG5WFL_cjs.cn(recordUpdateStyles().root(), className), children });
8755
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunk4ACELYEP_cjs.cn(recordUpdateStyles().root(), className), children });
8637
8756
  }
8638
8757
  function RecordUpdateSummary({
8639
8758
  className,
8640
8759
  children,
8641
8760
  ...props
8642
8761
  }) {
8643
- return /* @__PURE__ */ jsxRuntime.jsx("p", { ...props, className: chunkNWGG5WFL_cjs.cn(recordUpdateStyles().summary(), className), children });
8762
+ return /* @__PURE__ */ jsxRuntime.jsx("p", { ...props, className: chunk4ACELYEP_cjs.cn(recordUpdateStyles().summary(), className), children });
8644
8763
  }
8645
8764
  function RecordUpdateRows({
8646
8765
  className,
8647
8766
  children,
8648
8767
  ...props
8649
8768
  }) {
8650
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunkNWGG5WFL_cjs.cn(recordUpdateStyles().rows(), className), children });
8769
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunk4ACELYEP_cjs.cn(recordUpdateStyles().rows(), className), children });
8651
8770
  }
8652
8771
  function RecordUpdateErrors({ errors, className, ...props }) {
8653
8772
  if (errors.length === 0) return null;
8654
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...props, role: "alert", className: chunkNWGG5WFL_cjs.cn(recordUpdateStyles().errors(), className), children: [
8773
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...props, role: "alert", className: chunk4ACELYEP_cjs.cn(recordUpdateStyles().errors(), className), children: [
8655
8774
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "size-4 shrink-0 mt-px", "aria-hidden": true }),
8656
8775
  /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-1 min-w-0", children: errors.map((error) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: error }, error)) })
8657
8776
  ] });
@@ -8661,7 +8780,7 @@ function RecordUpdateFooter({
8661
8780
  children,
8662
8781
  ...props
8663
8782
  }) {
8664
- return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunkNWGG5WFL_cjs.cn(recordUpdateStyles().footer(), className), children });
8783
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunk4ACELYEP_cjs.cn(recordUpdateStyles().footer(), className), children });
8665
8784
  }
8666
8785
  function RecordUpdateRow({
8667
8786
  label,
@@ -8688,14 +8807,14 @@ function RecordUpdateRow({
8688
8807
  ...props,
8689
8808
  "data-state": state,
8690
8809
  ...errorMessage ? { "aria-invalid": true } : {},
8691
- className: chunkNWGG5WFL_cjs.cn(styles4.root(), className),
8810
+ className: chunk4ACELYEP_cjs.cn(styles4.root(), className),
8692
8811
  children: [
8693
8812
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles4.labelRow(), children: [
8694
8813
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: label }),
8695
8814
  state === "unresolved" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles4.tag(), children: unresolvedLabel }) : null,
8696
8815
  state === "rejected" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles4.tag(), children: rejectedLabel }) : null,
8697
8816
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto flex items-center", children: isRemoved ? onRestore && /* @__PURE__ */ jsxRuntime.jsx(
8698
- chunkNWGG5WFL_cjs.Button,
8817
+ chunk4ACELYEP_cjs.Button,
8699
8818
  {
8700
8819
  variant: "ghost",
8701
8820
  size: "icon-sm",
@@ -8703,7 +8822,7 @@ function RecordUpdateRow({
8703
8822
  onPress: onRestore,
8704
8823
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Undo2, {})
8705
8824
  }
8706
- ) : onRemove && /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { variant: "ghost", size: "icon-sm", "aria-label": removeLabel, onPress: onRemove, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, {}) }) })
8825
+ ) : onRemove && /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Button, { variant: "ghost", size: "icon-sm", "aria-label": removeLabel, onPress: onRemove, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, {}) }) })
8707
8826
  ] }),
8708
8827
  isRemoved ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.removed(), children: removedText }) : from === void 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.to(), children: to }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles4.cells(), children: [
8709
8828
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.from(), children: from }),
@@ -8744,7 +8863,7 @@ function Separator({
8744
8863
  {
8745
8864
  ...props,
8746
8865
  orientation,
8747
- className: chunkNWGG5WFL_cjs.cn(separatorStyles({ orientation, variant }), className)
8866
+ className: chunk4ACELYEP_cjs.cn(separatorStyles({ orientation, variant }), className)
8748
8867
  }
8749
8868
  );
8750
8869
  }
@@ -8801,7 +8920,7 @@ var stepperStyles = tailwindVariants.tv({
8801
8920
  });
8802
8921
  function Stepper({ orientation, className, ...props }) {
8803
8922
  const { root } = stepperStyles({ orientation });
8804
- return /* @__PURE__ */ jsxRuntime.jsx("ol", { ...props, className: chunkNWGG5WFL_cjs.cn(root(), className) });
8923
+ return /* @__PURE__ */ jsxRuntime.jsx("ol", { ...props, className: chunk4ACELYEP_cjs.cn(root(), className) });
8805
8924
  }
8806
8925
  function StepperStep({
8807
8926
  state,
@@ -8816,7 +8935,7 @@ function StepperStep({
8816
8935
  }) {
8817
8936
  const styles4 = stepperStyles({ orientation, state, isSelected });
8818
8937
  return /* @__PURE__ */ jsxRuntime.jsxs("li", { "aria-current": state === "current" ? "step" : void 0, className: styles4.item(), children: [
8819
- /* @__PURE__ */ jsxRuntime.jsxs(reactAriaComponents.Button, { ...props, className: chunkNWGG5WFL_cjs.cn("group", styles4.trigger(), className), children: [
8938
+ /* @__PURE__ */ jsxRuntime.jsxs(reactAriaComponents.Button, { ...props, className: chunk4ACELYEP_cjs.cn("group", styles4.trigger(), className), children: [
8820
8939
  /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: styles4.marker(), children: state === "completed" ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { strokeWidth: 2.5 }) : icon ?? index + 1 }),
8821
8940
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles4.label(), children })
8822
8941
  ] }),
@@ -8828,7 +8947,7 @@ function SuccessAnimation({ className }) {
8828
8947
  "div",
8829
8948
  {
8830
8949
  "aria-hidden": true,
8831
- className: chunkNWGG5WFL_cjs.cn("size-24 text-success motion-safe:animate-status-pop", className),
8950
+ className: chunk4ACELYEP_cjs.cn("size-24 text-success motion-safe:animate-status-pop", className),
8832
8951
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleCheck, { className: "size-full", strokeWidth: 1.5 })
8833
8952
  }
8834
8953
  );
@@ -8847,7 +8966,7 @@ function Switch({
8847
8966
  {
8848
8967
  ...props,
8849
8968
  ...describedBy ? { "aria-describedby": describedBy } : {},
8850
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
8969
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
8851
8970
  // `relative`: RAC's visually-hidden <input> is absolutely positioned;
8852
8971
  // without a positioned label it escapes an overflow-auto ancestor and
8853
8972
  // its containing block becomes the page shell, so focusing it (any
@@ -8863,7 +8982,7 @@ function Switch({
8863
8982
  "span",
8864
8983
  {
8865
8984
  "aria-hidden": true,
8866
- className: chunkNWGG5WFL_cjs.cn(
8985
+ className: chunk4ACELYEP_cjs.cn(
8867
8986
  "relative inline-block shrink-0",
8868
8987
  "w-[38px] h-[22px] rounded-pill border",
8869
8988
  "bg-surface-3 border-rule",
@@ -8874,7 +8993,7 @@ function Switch({
8874
8993
  children: /* @__PURE__ */ jsxRuntime.jsx(
8875
8994
  "span",
8876
8995
  {
8877
- className: chunkNWGG5WFL_cjs.cn(
8996
+ className: chunk4ACELYEP_cjs.cn(
8878
8997
  "absolute top-[1px] left-[1px]",
8879
8998
  "block size-[18px] rounded-full bg-surface",
8880
8999
  "transition-transform duration-200",
@@ -8895,7 +9014,7 @@ function Switch({
8895
9014
  "span",
8896
9015
  {
8897
9016
  id: descriptionId,
8898
- className: chunkNWGG5WFL_cjs.cn(
9017
+ className: chunk4ACELYEP_cjs.cn(
8899
9018
  fieldHintStyles,
8900
9019
  "leading-[1.45]",
8901
9020
  // Track (38px) + gap-3 (12px): the copy starts under the label text.
@@ -8942,7 +9061,7 @@ function Root({ size, className, children, ...props }) {
8942
9061
  reactAriaComponents.Tabs,
8943
9062
  {
8944
9063
  ...props,
8945
- className: (rp) => chunkNWGG5WFL_cjs.cn(styles4.root(), typeof className === "function" ? className(rp) : className),
9064
+ className: (rp) => chunk4ACELYEP_cjs.cn(styles4.root(), typeof className === "function" ? className(rp) : className),
8946
9065
  children
8947
9066
  }
8948
9067
  );
@@ -8953,7 +9072,7 @@ function List({ size, className, children, ...props }) {
8953
9072
  reactAriaComponents.TabList,
8954
9073
  {
8955
9074
  ...props,
8956
- className: (rp) => chunkNWGG5WFL_cjs.cn(styles4.list(), typeof className === "function" ? className(rp) : className),
9075
+ className: (rp) => chunk4ACELYEP_cjs.cn(styles4.list(), typeof className === "function" ? className(rp) : className),
8957
9076
  children
8958
9077
  }
8959
9078
  );
@@ -8964,7 +9083,7 @@ function Trigger({ size, className, children, ...props }) {
8964
9083
  reactAriaComponents.Tab,
8965
9084
  {
8966
9085
  ...props,
8967
- className: (rp) => chunkNWGG5WFL_cjs.cn(styles4.trigger(), typeof className === "function" ? className(rp) : className),
9086
+ className: (rp) => chunk4ACELYEP_cjs.cn(styles4.trigger(), typeof className === "function" ? className(rp) : className),
8968
9087
  children
8969
9088
  }
8970
9089
  );
@@ -8975,7 +9094,7 @@ function Panel({ className, children, ...props }) {
8975
9094
  reactAriaComponents.TabPanel,
8976
9095
  {
8977
9096
  ...props,
8978
- className: (rp) => chunkNWGG5WFL_cjs.cn(styles4.panel(), typeof className === "function" ? className(rp) : className),
9097
+ className: (rp) => chunk4ACELYEP_cjs.cn(styles4.panel(), typeof className === "function" ? className(rp) : className),
8979
9098
  children
8980
9099
  }
8981
9100
  );
@@ -9003,7 +9122,7 @@ var textShimmerStyles = tailwindVariants.tv({
9003
9122
  defaultVariants: { tone: "muted" }
9004
9123
  });
9005
9124
  function TextShimmer({ tone, className, children, ...props }) {
9006
- return /* @__PURE__ */ jsxRuntime.jsx("span", { ...props, className: chunkNWGG5WFL_cjs.cn(textShimmerStyles({ tone }), className), children });
9125
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { ...props, className: chunk4ACELYEP_cjs.cn(textShimmerStyles({ tone }), className), children });
9007
9126
  }
9008
9127
  function Textarea({
9009
9128
  label,
@@ -9023,7 +9142,7 @@ function Textarea({
9023
9142
  reactAriaComponents.TextField,
9024
9143
  {
9025
9144
  ...props,
9026
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
9145
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
9027
9146
  "grid grid-cols-1 gap-1.5 content-start",
9028
9147
  typeof className === "function" ? className(renderProps) : className
9029
9148
  ),
@@ -9035,7 +9154,7 @@ function Textarea({
9035
9154
  ...textareaProps,
9036
9155
  rows,
9037
9156
  placeholder: placeholder ?? "",
9038
- className: chunkNWGG5WFL_cjs.cn(
9157
+ className: chunk4ACELYEP_cjs.cn(
9039
9158
  // Same hairline chrome as Input, but allow vertical resize and set a
9040
9159
  // sensible minimum height so short content doesn't collapse.
9041
9160
  styles4.box(),
@@ -9066,7 +9185,7 @@ function TimeField({
9066
9185
  reactAriaComponents.TimeField,
9067
9186
  {
9068
9187
  ...props,
9069
- className: (renderProps) => chunkNWGG5WFL_cjs.cn(
9188
+ className: (renderProps) => chunk4ACELYEP_cjs.cn(
9070
9189
  "grid grid-cols-1 gap-1.5 content-start",
9071
9190
  typeof className === "function" ? className(renderProps) : className
9072
9191
  ),
@@ -9075,7 +9194,7 @@ function TimeField({
9075
9194
  /* @__PURE__ */ jsxRuntime.jsx(
9076
9195
  reactAriaComponents.DateInput,
9077
9196
  {
9078
- className: chunkNWGG5WFL_cjs.cn(
9197
+ className: chunk4ACELYEP_cjs.cn(
9079
9198
  styles4.box(),
9080
9199
  styles4.content(),
9081
9200
  "flex items-center min-w-0 text-ink",
@@ -9088,7 +9207,7 @@ function TimeField({
9088
9207
  reactAriaComponents.DateSegment,
9089
9208
  {
9090
9209
  segment,
9091
- className: chunkNWGG5WFL_cjs.cn(
9210
+ className: chunk4ACELYEP_cjs.cn(
9092
9211
  "px-px tabular-nums outline-none select-none",
9093
9212
  "data-[placeholder]:text-ink-4",
9094
9213
  "data-[type=literal]:text-ink-4",
@@ -9155,7 +9274,7 @@ function TimeSlotList({
9155
9274
  }) {
9156
9275
  const styles4 = timeSlotListStyles({ columns });
9157
9276
  if (items.length === 0) {
9158
- return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "status", className: chunkNWGG5WFL_cjs.cn(styles4.empty(), className), children: emptyMessage });
9277
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "status", className: chunk4ACELYEP_cjs.cn(styles4.empty(), className), children: emptyMessage });
9159
9278
  }
9160
9279
  const focusTarget = selectedId ?? items.find((item) => !item.isDisabled)?.id ?? null;
9161
9280
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -9171,7 +9290,7 @@ function TimeSlotList({
9171
9290
  const [next] = Array.from(keys);
9172
9291
  if (next !== void 0) onSelect(next);
9173
9292
  },
9174
- className: chunkNWGG5WFL_cjs.cn(styles4.group(), className),
9293
+ className: chunk4ACELYEP_cjs.cn(styles4.group(), className),
9175
9294
  children: items.map((item) => {
9176
9295
  const isSelected = item.id === selectedId;
9177
9296
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles4.row(), children: [
@@ -9186,7 +9305,7 @@ function TimeSlotList({
9186
9305
  }
9187
9306
  ),
9188
9307
  isSelected && confirmLabel && /* @__PURE__ */ jsxRuntime.jsx(
9189
- chunkNWGG5WFL_cjs.Button,
9308
+ chunk4ACELYEP_cjs.Button,
9190
9309
  {
9191
9310
  variant: "cta",
9192
9311
  className: styles4.confirm(),
@@ -9236,7 +9355,7 @@ function ToastRegion({ queue, className }) {
9236
9355
  reactAriaComponents.UNSTABLE_ToastRegion,
9237
9356
  {
9238
9357
  queue,
9239
- className: chunkNWGG5WFL_cjs.cn(
9358
+ className: chunk4ACELYEP_cjs.cn(
9240
9359
  "fixed bottom-4 right-4 z-[1300] flex flex-col-reverse gap-2 outline-none",
9241
9360
  className
9242
9361
  ),
@@ -9255,7 +9374,7 @@ function ToastRegion({ queue, className }) {
9255
9374
  {
9256
9375
  slot: "close",
9257
9376
  "aria-label": "Dismiss",
9258
- className: chunkNWGG5WFL_cjs.cn(
9377
+ className: chunk4ACELYEP_cjs.cn(
9259
9378
  "shrink-0 inline-flex items-center justify-center size-6 rounded-md",
9260
9379
  "text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
9261
9380
  "focus-visible:shadow-focus"
@@ -9271,23 +9390,23 @@ function ToastRegion({ queue, className }) {
9271
9390
 
9272
9391
  Object.defineProperty(exports, "Button", {
9273
9392
  enumerable: true,
9274
- get: function () { return chunkNWGG5WFL_cjs.Button; }
9393
+ get: function () { return chunk4ACELYEP_cjs.Button; }
9275
9394
  });
9276
9395
  Object.defineProperty(exports, "Skeleton", {
9277
9396
  enumerable: true,
9278
- get: function () { return chunkNWGG5WFL_cjs.Skeleton; }
9397
+ get: function () { return chunk4ACELYEP_cjs.Skeleton; }
9279
9398
  });
9280
9399
  Object.defineProperty(exports, "buttonStyles", {
9281
9400
  enumerable: true,
9282
- get: function () { return chunkNWGG5WFL_cjs.buttonStyles; }
9401
+ get: function () { return chunk4ACELYEP_cjs.buttonStyles; }
9283
9402
  });
9284
9403
  Object.defineProperty(exports, "cn", {
9285
9404
  enumerable: true,
9286
- get: function () { return chunkNWGG5WFL_cjs.cn; }
9405
+ get: function () { return chunk4ACELYEP_cjs.cn; }
9287
9406
  });
9288
9407
  Object.defineProperty(exports, "skeletonStyles", {
9289
9408
  enumerable: true,
9290
- get: function () { return chunkNWGG5WFL_cjs.skeletonStyles; }
9409
+ get: function () { return chunk4ACELYEP_cjs.skeletonStyles; }
9291
9410
  });
9292
9411
  exports.ATTRIBUTE_TYPES = ATTRIBUTE_TYPES;
9293
9412
  exports.ATTRIBUTE_TYPE_ICONS = ATTRIBUTE_TYPE_ICONS;
@@ -9347,6 +9466,7 @@ exports.FileViewer = FileViewer;
9347
9466
  exports.FileViewerFallbackCard = FileViewerFallbackCard;
9348
9467
  exports.FilterRow = FilterRow;
9349
9468
  exports.FilterValueInput = FilterValueInput;
9469
+ exports.GlowFrame = GlowFrame;
9350
9470
  exports.IconPicker = IconPicker;
9351
9471
  exports.ImageAttachment = ImageAttachment;
9352
9472
  exports.ImageLightbox = ImageLightbox;
@@ -9461,6 +9581,7 @@ exports.fitBadgeCount = fitBadgeCount;
9461
9581
  exports.formatFileSize = formatFileSize;
9462
9582
  exports.formatValue = formatValue;
9463
9583
  exports.getPlatform = getPlatform;
9584
+ exports.glowFrameStyles = glowFrameStyles;
9464
9585
  exports.iconForContentType = iconForContentType;
9465
9586
  exports.imageAttachmentStyles = imageAttachmentStyles;
9466
9587
  exports.imageLightboxStyles = imageLightboxStyles;