@proteos/ui 0.56.0 → 0.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-IKAX76MB.js → chunk-NSE4VW3Z.js} +45 -21
- package/dist/chunk-NSE4VW3Z.js.map +1 -0
- package/dist/{chunk-MWAXK66H.cjs → chunk-NWGG5WFL.cjs} +45 -21
- package/dist/chunk-NWGG5WFL.cjs.map +1 -0
- package/dist/index.cjs +336 -351
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +41 -12
- package/dist/index.d.ts +41 -12
- package/dist/index.js +83 -98
- package/dist/index.js.map +1 -1
- package/dist/{pdf-view-MH75RVQP.js → pdf-view-RQ2OZYHJ.js} +3 -3
- package/dist/{pdf-view-MH75RVQP.js.map → pdf-view-RQ2OZYHJ.js.map} +1 -1
- package/dist/{pdf-view-K4MMVHVY.cjs → pdf-view-RRMAUK3L.cjs} +7 -7
- package/dist/{pdf-view-K4MMVHVY.cjs.map → pdf-view-RRMAUK3L.cjs.map} +1 -1
- package/package.json +2 -2
- package/src/components/avatar/avatar.stories.tsx +13 -0
- package/src/components/avatar/avatar.tsx +16 -9
- package/src/components/badge-multi-select/badge-multi-select.tsx +2 -2
- package/src/components/button/button.stories.tsx +202 -97
- package/src/components/button/button.test.tsx +40 -7
- package/src/components/button/button.tsx +71 -18
- package/src/components/combobox/combobox.tsx +2 -2
- package/src/components/currency-input/currency-input.tsx +2 -2
- package/src/components/date-picker/calendar-internals.tsx +1 -1
- package/src/components/date-picker/date-picker.tsx +3 -3
- package/src/components/date-time-picker/date-time-picker.tsx +3 -3
- package/src/components/icon-picker/icon-picker.tsx +2 -2
- package/src/components/image-lightbox/image-lightbox.tsx +2 -2
- package/src/components/menu/menu.tsx +2 -2
- package/src/components/modal/modal.tsx +4 -4
- package/src/components/multi-select/multi-select.tsx +2 -2
- package/src/components/popover/popover.tsx +2 -2
- package/src/components/record-filter/nested-group.tsx +2 -2
- package/src/components/record-filter/record-filter-builder-panel.tsx +11 -23
- package/src/components/record-filter/record-filter-chips.tsx +3 -10
- package/src/components/segmented-control/segmented-control.stories.tsx +134 -8
- package/src/components/segmented-control/segmented-control.test.tsx +81 -8
- package/src/components/segmented-control/segmented-control.tsx +38 -19
- package/src/components/select/select.tsx +2 -2
- package/src/components/time-field/time-field.tsx +1 -1
- package/src/components/toast/toast.tsx +2 -2
- package/src/components/tooltip/tooltip.tsx +2 -2
- package/src/styles.css +58 -0
- package/dist/chunk-IKAX76MB.js.map +0 -1
- package/dist/chunk-MWAXK66H.cjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkNWGG5WFL_cjs = require('./chunk-NWGG5WFL.cjs');
|
|
4
4
|
var lucideReact = require('lucide-react');
|
|
5
5
|
var tailwindVariants = require('tailwind-variants');
|
|
6
6
|
var reactAriaComponents = require('react-aria-components');
|
|
@@ -33,11 +33,11 @@ function PopoverContent({
|
|
|
33
33
|
offset,
|
|
34
34
|
placement,
|
|
35
35
|
...props,
|
|
36
|
-
className: (renderProps) =>
|
|
36
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
37
37
|
"rounded-md border border-rule bg-surface",
|
|
38
38
|
"shadow-[var(--shadow-float)]",
|
|
39
|
-
"entering:animate-
|
|
40
|
-
"exiting:animate-
|
|
39
|
+
"entering:animate-enter-slide-down",
|
|
40
|
+
"exiting:animate-exit-slide-up",
|
|
41
41
|
panelClassName,
|
|
42
42
|
typeof className === "function" ? className(renderProps) : className
|
|
43
43
|
),
|
|
@@ -52,7 +52,7 @@ function PopoverPanelHeader({
|
|
|
52
52
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
53
53
|
"div",
|
|
54
54
|
{
|
|
55
|
-
className:
|
|
55
|
+
className: chunkNWGG5WFL_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:
|
|
68
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_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:
|
|
77
|
+
className: chunkNWGG5WFL_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:
|
|
160
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("text-ink-4", className), children: "\u2014" });
|
|
161
161
|
}
|
|
162
162
|
if (isUploading) {
|
|
163
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
163
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_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(
|
|
183
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_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
|
-
|
|
197
|
+
chunkNWGG5WFL_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:
|
|
207
|
+
className: chunkNWGG5WFL_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
|
-
|
|
221
|
+
chunkNWGG5WFL_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(
|
|
241
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { variant: "ghost", size: "sm", onPress: close, children: "Cancel" }),
|
|
242
242
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
243
|
-
|
|
243
|
+
chunkNWGG5WFL_cjs.Button,
|
|
244
244
|
{
|
|
245
245
|
variant: "primary",
|
|
246
246
|
size: "sm",
|
|
247
|
-
className:
|
|
247
|
+
className: chunkNWGG5WFL_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:
|
|
297
|
+
className: chunkNWGG5WFL_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:
|
|
302
|
+
meta ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_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:
|
|
307
|
+
className: chunkNWGG5WFL_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:
|
|
328
|
+
className: chunkNWGG5WFL_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:
|
|
399
|
+
className: chunkNWGG5WFL_cjs.cn("size-3.5", className),
|
|
400
400
|
...props
|
|
401
401
|
}
|
|
402
402
|
);
|
|
@@ -404,7 +404,7 @@ function AttributeTypeIcon({
|
|
|
404
404
|
var avatarStyles = tailwindVariants.tv({
|
|
405
405
|
base: [
|
|
406
406
|
"inline-grid place-items-center shrink-0 select-none overflow-hidden",
|
|
407
|
-
"
|
|
407
|
+
"border",
|
|
408
408
|
"font-mono font-medium tracking-[-0.005em]"
|
|
409
409
|
],
|
|
410
410
|
variants: {
|
|
@@ -416,17 +416,22 @@ var avatarStyles = tailwindVariants.tv({
|
|
|
416
416
|
},
|
|
417
417
|
tone: {
|
|
418
418
|
paper: "bg-surface-3 text-ink border-rule",
|
|
419
|
-
indigo: "bg-
|
|
420
|
-
moss: "bg-
|
|
421
|
-
terra: "bg-
|
|
422
|
-
slate: "bg-
|
|
419
|
+
indigo: "bg-tile-indigo text-tile-fg border-transparent",
|
|
420
|
+
moss: "bg-tile-moss text-tile-fg border-transparent",
|
|
421
|
+
terra: "bg-tile-terra text-tile-fg border-transparent",
|
|
422
|
+
slate: "bg-tile-slate text-tile-fg border-transparent"
|
|
423
|
+
},
|
|
424
|
+
shape: {
|
|
425
|
+
circle: "rounded-full",
|
|
426
|
+
square: "rounded-md"
|
|
423
427
|
}
|
|
424
428
|
},
|
|
425
|
-
defaultVariants: { size: "md", tone: "paper" }
|
|
429
|
+
defaultVariants: { size: "md", tone: "paper", shape: "circle" }
|
|
426
430
|
});
|
|
427
431
|
function Avatar({
|
|
428
432
|
size,
|
|
429
433
|
tone,
|
|
434
|
+
shape,
|
|
430
435
|
initials,
|
|
431
436
|
src,
|
|
432
437
|
alt = "",
|
|
@@ -436,7 +441,7 @@ function Avatar({
|
|
|
436
441
|
}) {
|
|
437
442
|
const [failedSrc, setFailedSrc] = react.useState(null);
|
|
438
443
|
const showsImage = Boolean(src) && failedSrc !== src;
|
|
439
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { ...props, className:
|
|
444
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { ...props, className: chunkNWGG5WFL_cjs.cn(avatarStyles({ size, tone, shape }), className), children: showsImage ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
440
445
|
"img",
|
|
441
446
|
{
|
|
442
447
|
src: src ?? void 0,
|
|
@@ -466,7 +471,7 @@ function AvatarGroup({
|
|
|
466
471
|
}) {
|
|
467
472
|
const shown = avatars.slice(0, max);
|
|
468
473
|
const overflow = avatars.length - shown.length;
|
|
469
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("span", { ...props, className:
|
|
474
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { ...props, className: chunkNWGG5WFL_cjs.cn(avatarGroupStyles({ size }), className), children: [
|
|
470
475
|
shown.map((avatar, index) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full ring-[1.5px] ring-surface", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
471
476
|
Avatar,
|
|
472
477
|
{
|
|
@@ -642,7 +647,7 @@ function IconPicker({
|
|
|
642
647
|
open(false);
|
|
643
648
|
triggerRef.current?.focus();
|
|
644
649
|
};
|
|
645
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
650
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("grid grid-cols-1 gap-1.5", className), children: [
|
|
646
651
|
label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
|
|
647
652
|
compact ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
648
653
|
"button",
|
|
@@ -656,7 +661,7 @@ function IconPicker({
|
|
|
656
661
|
disabled: isDisabled,
|
|
657
662
|
onClick: () => open(!isOpen),
|
|
658
663
|
"data-invalid": isInvalid || void 0,
|
|
659
|
-
className:
|
|
664
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
660
665
|
styles4.box(),
|
|
661
666
|
"flex shrink-0 items-center justify-center cursor-pointer",
|
|
662
667
|
appearance === "cell" ? "size-[29px]" : COMPACT_SIZE[size],
|
|
@@ -675,7 +680,7 @@ function IconPicker({
|
|
|
675
680
|
disabled: isDisabled,
|
|
676
681
|
onClick: () => open(!isOpen),
|
|
677
682
|
"data-invalid": isInvalid || void 0,
|
|
678
|
-
className:
|
|
683
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
679
684
|
// box carries no padding by contract — content is what gives a
|
|
680
685
|
// single-element control its interior (padding, font, text-size).
|
|
681
686
|
styles4.box(),
|
|
@@ -685,7 +690,7 @@ function IconPicker({
|
|
|
685
690
|
),
|
|
686
691
|
children: [
|
|
687
692
|
SelectedIcon ? /* @__PURE__ */ jsxRuntime.jsx(SelectedIcon, { "aria-hidden": true, className: "size-4 shrink-0 text-ink-2" }) : null,
|
|
688
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
693
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("min-w-0 flex-1 truncate", selectedName ? "text-ink" : "text-ink-4"), children: selectedName ?? placeholder }),
|
|
689
694
|
/* @__PURE__ */ jsxRuntime.jsx(FieldCaret, {})
|
|
690
695
|
]
|
|
691
696
|
}
|
|
@@ -700,18 +705,18 @@ function IconPicker({
|
|
|
700
705
|
triggerRef,
|
|
701
706
|
offset: 6,
|
|
702
707
|
placement: "bottom start",
|
|
703
|
-
className:
|
|
708
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
704
709
|
"w-[316px] rounded-md border border-rule bg-surface p-2",
|
|
705
710
|
"shadow-[var(--shadow-raised)]",
|
|
706
|
-
"entering:animate-
|
|
707
|
-
"exiting:animate-
|
|
711
|
+
"entering:animate-enter-slide-down",
|
|
712
|
+
"exiting:animate-exit-slide-up"
|
|
708
713
|
),
|
|
709
714
|
children: [
|
|
710
715
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 pb-2", children: [
|
|
711
716
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
712
717
|
"div",
|
|
713
718
|
{
|
|
714
|
-
className:
|
|
719
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
715
720
|
fieldControlStyles({ size: "sm" }).box(),
|
|
716
721
|
"flex min-w-0 flex-1 items-center gap-1.5 px-2.5 py-1.5",
|
|
717
722
|
"focus-within:border-accent focus-within:shadow-[var(--shadow-focus)]"
|
|
@@ -726,7 +731,7 @@ function IconPicker({
|
|
|
726
731
|
value: query,
|
|
727
732
|
onChange: (event) => search(event.target.value),
|
|
728
733
|
placeholder: "Search icons\u2026",
|
|
729
|
-
className:
|
|
734
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
730
735
|
"min-w-0 flex-1 bg-transparent font-sans outline-none",
|
|
731
736
|
"text-ink placeholder:text-ink-4",
|
|
732
737
|
fieldTextStyles.sm
|
|
@@ -741,7 +746,7 @@ function IconPicker({
|
|
|
741
746
|
{
|
|
742
747
|
type: "button",
|
|
743
748
|
onClick: () => pick(null),
|
|
744
|
-
className:
|
|
749
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
745
750
|
"flex shrink-0 items-center gap-1 rounded-[6px] px-2 py-1.5 cursor-pointer",
|
|
746
751
|
"font-sans text-[12px] text-ink-3 transition-colors",
|
|
747
752
|
"hover:bg-surface-2 hover:text-ink",
|
|
@@ -772,7 +777,7 @@ function IconPicker({
|
|
|
772
777
|
if (next !== void 0) pick(next);
|
|
773
778
|
},
|
|
774
779
|
className: "grid grid-cols-8 gap-0.5 outline-none",
|
|
775
|
-
renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
780
|
+
renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn("col-span-8 px-2 py-3 text-center", fieldHintStyles), children: "No icons match" }),
|
|
776
781
|
children: visible.map((name) => {
|
|
777
782
|
const Icon = lucideReact.icons[name];
|
|
778
783
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -781,7 +786,7 @@ function IconPicker({
|
|
|
781
786
|
id: name,
|
|
782
787
|
textValue: name,
|
|
783
788
|
"aria-label": name,
|
|
784
|
-
className:
|
|
789
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
785
790
|
"flex size-[34px] items-center justify-center rounded-[6px]",
|
|
786
791
|
"cursor-pointer outline-none",
|
|
787
792
|
"data-[hovered]:bg-surface-2 data-[focused]:bg-surface-2",
|
|
@@ -798,7 +803,7 @@ function IconPicker({
|
|
|
798
803
|
)
|
|
799
804
|
}
|
|
800
805
|
),
|
|
801
|
-
hiddenCount > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("p", { className:
|
|
806
|
+
hiddenCount > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("p", { className: chunkNWGG5WFL_cjs.cn("px-1 pt-2", fieldHintStyles), children: [
|
|
802
807
|
hiddenCount.toLocaleString(),
|
|
803
808
|
" more \u2014 keep scrolling, or search."
|
|
804
809
|
] }) : null
|
|
@@ -888,13 +893,13 @@ function Badge({
|
|
|
888
893
|
{
|
|
889
894
|
...props,
|
|
890
895
|
style: mergedStyle,
|
|
891
|
-
className:
|
|
896
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
892
897
|
badgeStyles({ variant: register2, shape, hasDot }),
|
|
893
898
|
showDot ? null : "before:hidden",
|
|
894
899
|
className
|
|
895
900
|
),
|
|
896
901
|
children: [
|
|
897
|
-
Icon ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { "aria-hidden": true, className:
|
|
902
|
+
Icon ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { "aria-hidden": true, className: chunkNWGG5WFL_cjs.cn("size-3 shrink-0", ICON_TONE[register2]) }) : null,
|
|
898
903
|
children,
|
|
899
904
|
actions ? (
|
|
900
905
|
// Pulled flush with the trailing edge so the chip still reads
|
|
@@ -916,7 +921,7 @@ function BadgeAction({ label, onPress, isDisabled = false, children }) {
|
|
|
916
921
|
event.stopPropagation();
|
|
917
922
|
onPress();
|
|
918
923
|
},
|
|
919
|
-
className:
|
|
924
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
920
925
|
"inline-flex items-center justify-center shrink-0",
|
|
921
926
|
"size-3.5 rounded-full",
|
|
922
927
|
"text-current/70 hover:text-current hover:bg-current/10",
|
|
@@ -949,13 +954,13 @@ function Tooltip({ className, offset = 6, ...props }) {
|
|
|
949
954
|
{
|
|
950
955
|
...props,
|
|
951
956
|
offset,
|
|
952
|
-
className: (renderProps) =>
|
|
957
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
953
958
|
"z-50 max-w-xs",
|
|
954
959
|
"rounded-md border border-rule bg-surface shadow-[var(--shadow-raised)]",
|
|
955
960
|
"px-2.5 py-1.5",
|
|
956
961
|
"font-mono text-[11.5px] text-ink-2",
|
|
957
|
-
"entering:animate-
|
|
958
|
-
"exiting:animate-
|
|
962
|
+
"entering:animate-enter-slide-down",
|
|
963
|
+
"exiting:animate-exit-fade",
|
|
959
964
|
typeof className === "function" ? className(renderProps) : className
|
|
960
965
|
)
|
|
961
966
|
}
|
|
@@ -1056,7 +1061,7 @@ function BadgeGroup({ children, className, ...props }) {
|
|
|
1056
1061
|
{
|
|
1057
1062
|
...props,
|
|
1058
1063
|
ref: rootRef,
|
|
1059
|
-
className:
|
|
1064
|
+
className: chunkNWGG5WFL_cjs.cn(badgeGroupStyles({ isMeasuring: measuring }), className),
|
|
1060
1065
|
children: [
|
|
1061
1066
|
shown.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1062
1067
|
"span",
|
|
@@ -1225,7 +1230,7 @@ function BadgeMultiSelect({
|
|
|
1225
1230
|
setIsOpen(false);
|
|
1226
1231
|
}
|
|
1227
1232
|
};
|
|
1228
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
1233
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("grid grid-cols-1 gap-1.5", className), children: [
|
|
1229
1234
|
label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
|
|
1230
1235
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1231
1236
|
"div",
|
|
@@ -1242,7 +1247,7 @@ function BadgeMultiSelect({
|
|
|
1242
1247
|
onKeyDown: onTriggerKeyDown,
|
|
1243
1248
|
"data-invalid": isInvalid || void 0,
|
|
1244
1249
|
"data-disabled": isDisabled || void 0,
|
|
1245
|
-
className:
|
|
1250
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1246
1251
|
styles4.box(),
|
|
1247
1252
|
"flex items-stretch cursor-pointer",
|
|
1248
1253
|
// Cell editor: one table row (29px under a 32px row) while the chips
|
|
@@ -1257,7 +1262,7 @@ function BadgeMultiSelect({
|
|
|
1257
1262
|
"div",
|
|
1258
1263
|
{
|
|
1259
1264
|
ref: chipsRef,
|
|
1260
|
-
className:
|
|
1265
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1261
1266
|
"flex flex-1 flex-wrap items-center gap-1.5 min-w-0",
|
|
1262
1267
|
isCell && (hasWrapped ? "content-start overflow-y-auto" : "content-center overflow-hidden")
|
|
1263
1268
|
),
|
|
@@ -1265,7 +1270,7 @@ function BadgeMultiSelect({
|
|
|
1265
1270
|
// No vertical padding — wrapper's p-1.5 + min-h-[size] govern the
|
|
1266
1271
|
// overall height so it matches the Input/Select trigger at the same
|
|
1267
1272
|
// size.
|
|
1268
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
1273
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("text-ink-4 font-sans px-1", fieldTextStyles[size]), children: placeholder })
|
|
1269
1274
|
) : selectedOptions.map((o) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1270
1275
|
Badge,
|
|
1271
1276
|
{
|
|
@@ -1301,7 +1306,7 @@ function BadgeMultiSelect({
|
|
|
1301
1306
|
placement: "bottom start",
|
|
1302
1307
|
isNonModal: true,
|
|
1303
1308
|
shouldCloseOnInteractOutside: (element) => !triggerRef.current?.contains(element),
|
|
1304
|
-
className:
|
|
1309
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1305
1310
|
// At least as wide as the trigger, wider when a badge needs it —
|
|
1306
1311
|
// a narrow table column must not clip its own options.
|
|
1307
1312
|
"min-w-[var(--trigger-width)] w-max max-w-[min(28rem,calc(100vw-2rem))]",
|
|
@@ -1311,8 +1316,8 @@ function BadgeMultiSelect({
|
|
|
1311
1316
|
// (defaultOpen) — no browser outline around the whole panel.
|
|
1312
1317
|
"outline-none rounded-md border border-rule bg-surface p-1",
|
|
1313
1318
|
"shadow-[var(--shadow-raised)]",
|
|
1314
|
-
"entering:animate-
|
|
1315
|
-
"exiting:animate-
|
|
1319
|
+
"entering:animate-enter-slide-down",
|
|
1320
|
+
"exiting:animate-exit-slide-up"
|
|
1316
1321
|
),
|
|
1317
1322
|
children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref: popoverRef, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1318
1323
|
reactAriaComponents.ListBox,
|
|
@@ -1330,14 +1335,14 @@ function BadgeMultiSelect({
|
|
|
1330
1335
|
},
|
|
1331
1336
|
autoFocus: "first",
|
|
1332
1337
|
className: "outline-none max-h-72 overflow-auto",
|
|
1333
|
-
renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
1338
|
+
renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn("px-3 py-2", fieldHintStyles), children: "All options selected" }),
|
|
1334
1339
|
children: listboxOptions.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1335
1340
|
reactAriaComponents.ListBoxItem,
|
|
1336
1341
|
{
|
|
1337
1342
|
id: option.id,
|
|
1338
1343
|
textValue: option.label,
|
|
1339
1344
|
...option.isDisabled ? { isDisabled: true } : {},
|
|
1340
|
-
className:
|
|
1345
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1341
1346
|
"group flex items-center gap-2.5",
|
|
1342
1347
|
"rounded-[6px] px-2.5 py-1.5",
|
|
1343
1348
|
"cursor-pointer outline-none select-none",
|
|
@@ -1364,7 +1369,7 @@ function Breadcrumbs({ items, separator = "/", className, ...props }) {
|
|
|
1364
1369
|
reactAriaComponents.Breadcrumbs,
|
|
1365
1370
|
{
|
|
1366
1371
|
...props,
|
|
1367
|
-
className:
|
|
1372
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1368
1373
|
"flex items-center gap-2",
|
|
1369
1374
|
"font-mono text-[12px] text-ink-3",
|
|
1370
1375
|
// RAC renders Breadcrumbs as <ol> — neutralise list defaults.
|
|
@@ -1383,7 +1388,7 @@ function Breadcrumbs({ items, separator = "/", className, ...props }) {
|
|
|
1383
1388
|
reactAriaComponents.Link,
|
|
1384
1389
|
{
|
|
1385
1390
|
href: item.href,
|
|
1386
|
-
className:
|
|
1391
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1387
1392
|
"rounded-sm outline-none cursor-pointer",
|
|
1388
1393
|
"transition-colors duration-150",
|
|
1389
1394
|
"hover:text-ink",
|
|
@@ -1395,7 +1400,7 @@ function Breadcrumbs({ items, separator = "/", className, ...props }) {
|
|
|
1395
1400
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1396
1401
|
"span",
|
|
1397
1402
|
{
|
|
1398
|
-
className:
|
|
1403
|
+
className: chunkNWGG5WFL_cjs.cn(isLast && "text-ink font-semibold"),
|
|
1399
1404
|
"aria-current": isLast ? "page" : void 0,
|
|
1400
1405
|
children: item.label
|
|
1401
1406
|
}
|
|
@@ -1433,7 +1438,7 @@ var cardStyles2 = tailwindVariants.tv({
|
|
|
1433
1438
|
}
|
|
1434
1439
|
});
|
|
1435
1440
|
function Card({ variant, className, ...props }) {
|
|
1436
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className:
|
|
1441
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunkNWGG5WFL_cjs.cn(cardStyles2({ variant }), className) });
|
|
1437
1442
|
}
|
|
1438
1443
|
var pressableCardStyles = tailwindVariants.tv({
|
|
1439
1444
|
extend: cardStyles2,
|
|
@@ -1451,7 +1456,7 @@ function PressableCard({ variant, className, ...props }) {
|
|
|
1451
1456
|
reactAriaComponents.Button,
|
|
1452
1457
|
{
|
|
1453
1458
|
...props,
|
|
1454
|
-
className: (renderProps) =>
|
|
1459
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
1455
1460
|
pressableCardStyles({ variant }),
|
|
1456
1461
|
typeof className === "function" ? className(renderProps) : className
|
|
1457
1462
|
)
|
|
@@ -1463,7 +1468,7 @@ function CardHeader({ className, ...props }) {
|
|
|
1463
1468
|
"div",
|
|
1464
1469
|
{
|
|
1465
1470
|
...props,
|
|
1466
|
-
className:
|
|
1471
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1467
1472
|
"flex justify-between items-center",
|
|
1468
1473
|
"px-5 py-3 border-b border-rule",
|
|
1469
1474
|
"bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]",
|
|
@@ -1474,14 +1479,14 @@ function CardHeader({ className, ...props }) {
|
|
|
1474
1479
|
);
|
|
1475
1480
|
}
|
|
1476
1481
|
function CardContent({ className, ...props }) {
|
|
1477
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className:
|
|
1482
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunkNWGG5WFL_cjs.cn("flex flex-col gap-3 p-5", className) });
|
|
1478
1483
|
}
|
|
1479
1484
|
function CardFooter({ className, ...props }) {
|
|
1480
1485
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1481
1486
|
"div",
|
|
1482
1487
|
{
|
|
1483
1488
|
...props,
|
|
1484
|
-
className:
|
|
1489
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1485
1490
|
"mt-auto flex justify-between items-center",
|
|
1486
1491
|
"px-5 py-4",
|
|
1487
1492
|
"font-mono text-[11.5px] text-ink-4",
|
|
@@ -1495,7 +1500,7 @@ function CardEyebrow({ className, ...props }) {
|
|
|
1495
1500
|
"div",
|
|
1496
1501
|
{
|
|
1497
1502
|
...props,
|
|
1498
|
-
className:
|
|
1503
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1499
1504
|
"flex justify-between items-center",
|
|
1500
1505
|
"font-mono text-[11px] uppercase tracking-[0.08em] text-ink-4",
|
|
1501
1506
|
className
|
|
@@ -1508,7 +1513,7 @@ function CardTitle({ className, ...props }) {
|
|
|
1508
1513
|
"h3",
|
|
1509
1514
|
{
|
|
1510
1515
|
...props,
|
|
1511
|
-
className:
|
|
1516
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1512
1517
|
"font-sans font-medium text-[20px] leading-[1.25] tracking-[-0.015em] text-ink",
|
|
1513
1518
|
className
|
|
1514
1519
|
)
|
|
@@ -1520,7 +1525,7 @@ function CardFeatureTitle({ className, ...props }) {
|
|
|
1520
1525
|
"h3",
|
|
1521
1526
|
{
|
|
1522
1527
|
...props,
|
|
1523
|
-
className:
|
|
1528
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1524
1529
|
"font-sans font-medium text-[26px] leading-[1.2] tracking-[-0.02em] text-ink",
|
|
1525
1530
|
className
|
|
1526
1531
|
)
|
|
@@ -1528,7 +1533,7 @@ function CardFeatureTitle({ className, ...props }) {
|
|
|
1528
1533
|
);
|
|
1529
1534
|
}
|
|
1530
1535
|
function CardBody({ className, ...props }) {
|
|
1531
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className:
|
|
1536
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunkNWGG5WFL_cjs.cn("text-[14px] leading-[1.55] text-ink-3", className) });
|
|
1532
1537
|
}
|
|
1533
1538
|
var CHANNEL_ICONS = {
|
|
1534
1539
|
slack: lucideReact.Hash,
|
|
@@ -1552,14 +1557,14 @@ function channelIcon(channel) {
|
|
|
1552
1557
|
}
|
|
1553
1558
|
function ChannelIcon({ channel, className, label }) {
|
|
1554
1559
|
const Icon = channelIcon(channel);
|
|
1555
|
-
return label !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(Icon, { className:
|
|
1560
|
+
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 });
|
|
1556
1561
|
}
|
|
1557
1562
|
function Checkbox({ children, className, ...props }) {
|
|
1558
1563
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1559
1564
|
reactAriaComponents.Checkbox,
|
|
1560
1565
|
{
|
|
1561
1566
|
...props,
|
|
1562
|
-
className: (renderProps) =>
|
|
1567
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
1563
1568
|
// `relative` so RAC's visually-hidden <input> — which is absolutely
|
|
1564
1569
|
// positioned and is the element that actually receives focus — is
|
|
1565
1570
|
// laid out against THIS checkbox. Without a positioned ancestor here
|
|
@@ -1577,7 +1582,7 @@ function Checkbox({ children, className, ...props }) {
|
|
|
1577
1582
|
"span",
|
|
1578
1583
|
{
|
|
1579
1584
|
"aria-hidden": true,
|
|
1580
|
-
className:
|
|
1585
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1581
1586
|
"relative inline-flex items-center justify-center shrink-0",
|
|
1582
1587
|
"size-[18px] rounded-[4px] border bg-surface",
|
|
1583
1588
|
"border-ink-4",
|
|
@@ -1594,7 +1599,7 @@ function Checkbox({ children, className, ...props }) {
|
|
|
1594
1599
|
"svg",
|
|
1595
1600
|
{
|
|
1596
1601
|
viewBox: "0 0 12 12",
|
|
1597
|
-
className:
|
|
1602
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1598
1603
|
"size-3 text-surface transition-opacity duration-150",
|
|
1599
1604
|
renderProps.isSelected ? "opacity-100" : "opacity-0"
|
|
1600
1605
|
),
|
|
@@ -1631,7 +1636,7 @@ function CheckboxGroup({
|
|
|
1631
1636
|
reactAriaComponents.CheckboxGroup,
|
|
1632
1637
|
{
|
|
1633
1638
|
...props,
|
|
1634
|
-
className: (renderProps) =>
|
|
1639
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn("grid gap-2", typeof className === "function" ? className(renderProps) : className),
|
|
1635
1640
|
children: [
|
|
1636
1641
|
label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
|
|
1637
1642
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-3", children }),
|
|
@@ -1710,14 +1715,14 @@ function ColorInput({
|
|
|
1710
1715
|
isInvalid: invalid,
|
|
1711
1716
|
onBlur: settle,
|
|
1712
1717
|
...ariaLabel ? { "aria-label": ariaLabel } : {},
|
|
1713
|
-
className:
|
|
1718
|
+
className: chunkNWGG5WFL_cjs.cn("grid grid-cols-1 gap-1.5", className),
|
|
1714
1719
|
children: [
|
|
1715
1720
|
label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
|
|
1716
1721
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1717
1722
|
"div",
|
|
1718
1723
|
{
|
|
1719
1724
|
"data-disabled": isDisabled || void 0,
|
|
1720
|
-
className:
|
|
1725
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1721
1726
|
styles4.box(),
|
|
1722
1727
|
"flex items-center gap-2",
|
|
1723
1728
|
size === "sm" ? "pl-2" : "pl-2.5",
|
|
@@ -1731,7 +1736,7 @@ function ColorInput({
|
|
|
1731
1736
|
"aria-label": "Pick color",
|
|
1732
1737
|
disabled: isDisabled,
|
|
1733
1738
|
onClick: () => nativeRef.current?.click(),
|
|
1734
|
-
className:
|
|
1739
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1735
1740
|
"relative flex shrink-0 items-center justify-center rounded-sm border border-rule",
|
|
1736
1741
|
"cursor-pointer outline-none",
|
|
1737
1742
|
"focus-visible:ring-2 focus-visible:ring-[var(--color-accent)]",
|
|
@@ -1764,7 +1769,7 @@ function ColorInput({
|
|
|
1764
1769
|
placeholder,
|
|
1765
1770
|
spellCheck: false,
|
|
1766
1771
|
autoComplete: "off",
|
|
1767
|
-
className:
|
|
1772
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1768
1773
|
styles4.content(),
|
|
1769
1774
|
"min-w-0 flex-1 bg-transparent font-mono outline-none",
|
|
1770
1775
|
"pl-0",
|
|
@@ -1805,7 +1810,7 @@ function Combobox({
|
|
|
1805
1810
|
{
|
|
1806
1811
|
...props,
|
|
1807
1812
|
allowsEmptyCollection,
|
|
1808
|
-
className: (renderProps) =>
|
|
1813
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
1809
1814
|
"grid grid-cols-1 gap-1.5",
|
|
1810
1815
|
typeof className === "function" ? className(renderProps) : className
|
|
1811
1816
|
),
|
|
@@ -1814,7 +1819,7 @@ function Combobox({
|
|
|
1814
1819
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1815
1820
|
"div",
|
|
1816
1821
|
{
|
|
1817
|
-
className:
|
|
1822
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1818
1823
|
// Box chrome on the wrapper; the inner <input> carries the padding
|
|
1819
1824
|
// + font so the chevron button sits inside the same border + ring.
|
|
1820
1825
|
styles4.box(),
|
|
@@ -1827,7 +1832,7 @@ function Combobox({
|
|
|
1827
1832
|
reactAriaComponents.Input,
|
|
1828
1833
|
{
|
|
1829
1834
|
placeholder,
|
|
1830
|
-
className:
|
|
1835
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1831
1836
|
"flex-1 min-w-0 bg-transparent outline-none",
|
|
1832
1837
|
styles4.content(),
|
|
1833
1838
|
inputClassName
|
|
@@ -1837,7 +1842,7 @@ function Combobox({
|
|
|
1837
1842
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1838
1843
|
reactAriaComponents.Button,
|
|
1839
1844
|
{
|
|
1840
|
-
className:
|
|
1845
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1841
1846
|
"shrink-0 flex items-center justify-center",
|
|
1842
1847
|
"size-7 rounded-pill",
|
|
1843
1848
|
"text-ink-3 hover:text-ink outline-none cursor-pointer"
|
|
@@ -1854,18 +1859,18 @@ function Combobox({
|
|
|
1854
1859
|
reactAriaComponents.Popover,
|
|
1855
1860
|
{
|
|
1856
1861
|
offset: 6,
|
|
1857
|
-
className:
|
|
1862
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1858
1863
|
"min-w-[var(--trigger-width)]",
|
|
1859
1864
|
"rounded-md border border-rule bg-surface p-1",
|
|
1860
1865
|
"shadow-[var(--shadow-raised)]",
|
|
1861
|
-
"entering:animate-
|
|
1862
|
-
"exiting:animate-
|
|
1866
|
+
"entering:animate-enter-slide-down",
|
|
1867
|
+
"exiting:animate-exit-slide-up"
|
|
1863
1868
|
),
|
|
1864
1869
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1865
1870
|
reactAriaComponents.ListBox,
|
|
1866
1871
|
{
|
|
1867
1872
|
className: "outline-none max-h-72 overflow-auto",
|
|
1868
|
-
renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
1873
|
+
renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn("px-3 py-2", fieldHintStyles), children: emptyMessage }),
|
|
1869
1874
|
children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1870
1875
|
ComboboxItem,
|
|
1871
1876
|
{
|
|
@@ -1893,7 +1898,7 @@ function TrailingSlot({ children }) {
|
|
|
1893
1898
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1894
1899
|
"span",
|
|
1895
1900
|
{
|
|
1896
|
-
className:
|
|
1901
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1897
1902
|
"ml-auto pl-2 shrink-0 inline-flex items-center",
|
|
1898
1903
|
// Hidden by default; revealed when the row is hovered or
|
|
1899
1904
|
// keyboard-focused. `group/combobox-item` is set on ComboboxItem.
|
|
@@ -1919,7 +1924,7 @@ function ComboboxItem(props) {
|
|
|
1919
1924
|
reactAriaComponents.ListBoxItem,
|
|
1920
1925
|
{
|
|
1921
1926
|
...props,
|
|
1922
|
-
className:
|
|
1927
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
1923
1928
|
// `group/combobox-item` exposes hover/focus state to the trailing
|
|
1924
1929
|
// slot so it can reveal itself only when the row is engaged.
|
|
1925
1930
|
"group/combobox-item",
|
|
@@ -2151,7 +2156,7 @@ function Kbd({ className, children, ...props }) {
|
|
|
2151
2156
|
"kbd",
|
|
2152
2157
|
{
|
|
2153
2158
|
...props,
|
|
2154
|
-
className:
|
|
2159
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2155
2160
|
"inline-flex items-center justify-center",
|
|
2156
2161
|
"font-mono text-[10.5px] leading-none text-ink-4",
|
|
2157
2162
|
"bg-surface-2 border border-rule rounded-[4px]",
|
|
@@ -2171,7 +2176,7 @@ function CommandHint({ combo, tone = "subtle", className }) {
|
|
|
2171
2176
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2172
2177
|
Kbd,
|
|
2173
2178
|
{
|
|
2174
|
-
className:
|
|
2179
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2175
2180
|
tone === "prominent" && "bg-ink text-surface border-transparent",
|
|
2176
2181
|
className
|
|
2177
2182
|
),
|
|
@@ -2192,7 +2197,7 @@ function Command({ combo, target, className, children }) {
|
|
|
2192
2197
|
const el = target ? root.querySelector(target) : root.firstElementChild;
|
|
2193
2198
|
el?.click();
|
|
2194
2199
|
});
|
|
2195
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: wrapperRef, className:
|
|
2200
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: wrapperRef, className: chunkNWGG5WFL_cjs.cn("relative inline-block", className), children: [
|
|
2196
2201
|
children,
|
|
2197
2202
|
discoveryActive ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2198
2203
|
"div",
|
|
@@ -2277,7 +2282,7 @@ function ConversationBriefCard({
|
|
|
2277
2282
|
isOpenDisabled = false,
|
|
2278
2283
|
className
|
|
2279
2284
|
}) {
|
|
2280
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
2285
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(styles.root(), className), children: [
|
|
2281
2286
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: styles.icon(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Phone, { className: "size-4", "aria-hidden": true }) }),
|
|
2282
2287
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.body(), children: [
|
|
2283
2288
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: styles.eyebrow(), children: eyebrow }),
|
|
@@ -2315,7 +2320,7 @@ function Select({
|
|
|
2315
2320
|
reactAriaComponents.Select,
|
|
2316
2321
|
{
|
|
2317
2322
|
...props,
|
|
2318
|
-
className: (renderProps) =>
|
|
2323
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
2319
2324
|
"grid grid-cols-1 gap-1.5",
|
|
2320
2325
|
typeof className === "function" ? className(renderProps) : className
|
|
2321
2326
|
),
|
|
@@ -2324,7 +2329,7 @@ function Select({
|
|
|
2324
2329
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2325
2330
|
reactAriaComponents.Button,
|
|
2326
2331
|
{
|
|
2327
|
-
className:
|
|
2332
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2328
2333
|
styles4.box(),
|
|
2329
2334
|
styles4.content(),
|
|
2330
2335
|
"flex items-center justify-between gap-3 text-left cursor-pointer",
|
|
@@ -2342,7 +2347,7 @@ function Select({
|
|
|
2342
2347
|
reactAriaComponents.Popover,
|
|
2343
2348
|
{
|
|
2344
2349
|
offset: 6,
|
|
2345
|
-
className:
|
|
2350
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2346
2351
|
// Match the trigger width exactly (RAC exposes --trigger-width on
|
|
2347
2352
|
// the Popover when anchored to a Select button).
|
|
2348
2353
|
"w-[var(--trigger-width)]",
|
|
@@ -2351,8 +2356,8 @@ function Select({
|
|
|
2351
2356
|
"z-[1300]",
|
|
2352
2357
|
"rounded-md border border-rule bg-surface p-1",
|
|
2353
2358
|
"shadow-[var(--shadow-raised)]",
|
|
2354
|
-
"entering:animate-
|
|
2355
|
-
"exiting:animate-
|
|
2359
|
+
"entering:animate-enter-slide-down",
|
|
2360
|
+
"exiting:animate-exit-slide-up",
|
|
2356
2361
|
popoverClassName
|
|
2357
2362
|
),
|
|
2358
2363
|
children: [
|
|
@@ -2366,7 +2371,7 @@ function Select({
|
|
|
2366
2371
|
},
|
|
2367
2372
|
option.id
|
|
2368
2373
|
)) }),
|
|
2369
|
-
options.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
2374
|
+
options.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn("px-3 py-2", fieldHintStyles), children: placeholder }) : null
|
|
2370
2375
|
]
|
|
2371
2376
|
}
|
|
2372
2377
|
)
|
|
@@ -2379,7 +2384,7 @@ function SelectItem(props) {
|
|
|
2379
2384
|
reactAriaComponents.ListBoxItem,
|
|
2380
2385
|
{
|
|
2381
2386
|
...props,
|
|
2382
|
-
className:
|
|
2387
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2383
2388
|
"flex items-center justify-between gap-3",
|
|
2384
2389
|
"rounded-[6px] px-3 py-2 text-[14px] text-ink-2",
|
|
2385
2390
|
"cursor-pointer outline-none select-none",
|
|
@@ -2436,7 +2441,7 @@ function ConversationBriefPreview({
|
|
|
2436
2441
|
react.useEffect(() => {
|
|
2437
2442
|
onSelectionChangeRef.current?.(contact, phoneNumber);
|
|
2438
2443
|
}, [contact, phoneNumber]);
|
|
2439
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
2444
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("flex flex-col gap-3", className), children: [
|
|
2440
2445
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
2441
2446
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[14px] font-semibold text-ink", children: brief.subject || names || "Prepared conversation" }),
|
|
2442
2447
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-mono text-[10.5px] text-ink-4", children: [
|
|
@@ -2450,7 +2455,7 @@ function ConversationBriefPreview({
|
|
|
2450
2455
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2451
2456
|
"div",
|
|
2452
2457
|
{
|
|
2453
|
-
className:
|
|
2458
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2454
2459
|
"rounded-md border border-rule-2 bg-surface-2/60 px-3 py-2.5",
|
|
2455
2460
|
"text-[13px] leading-relaxed text-ink-2 overflow-y-auto [scrollbar-width:thin]",
|
|
2456
2461
|
renderContent ? null : "whitespace-pre-wrap",
|
|
@@ -2464,7 +2469,7 @@ function ConversationBriefPreview({
|
|
|
2464
2469
|
{
|
|
2465
2470
|
"aria-label": "Edit brief",
|
|
2466
2471
|
onPress: onEdit,
|
|
2467
|
-
className:
|
|
2472
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2468
2473
|
"absolute right-1.5 top-1.5 inline-flex size-7 cursor-pointer items-center justify-center",
|
|
2469
2474
|
"rounded-md bg-surface/80 text-ink-3 outline-none transition-opacity",
|
|
2470
2475
|
"opacity-0 group-hover/brief-content:opacity-100 focus-visible:opacity-100",
|
|
@@ -2500,7 +2505,7 @@ function ConversationBriefPreview({
|
|
|
2500
2505
|
controls,
|
|
2501
2506
|
callDisabledReason ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-warning", children: callDisabledReason }) : null,
|
|
2502
2507
|
isCallButtonHidden ? null : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2503
|
-
|
|
2508
|
+
chunkNWGG5WFL_cjs.Button,
|
|
2504
2509
|
{
|
|
2505
2510
|
isDisabled: isCallDisabled || !isOpen || phoneNumber === "" || !contact,
|
|
2506
2511
|
onPress: () => contact && onCall(contact, phoneNumber),
|
|
@@ -2528,18 +2533,18 @@ function ModalContent({
|
|
|
2528
2533
|
{
|
|
2529
2534
|
isDismissable,
|
|
2530
2535
|
...props,
|
|
2531
|
-
className: (renderProps) =>
|
|
2536
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
2532
2537
|
"fixed inset-0 z-50 flex items-center justify-center p-4",
|
|
2533
2538
|
// Warm ink scrim — stays in the Proteos palette (no pure black).
|
|
2534
2539
|
"bg-[color-mix(in_oklab,var(--color-ink)_40%,transparent)]",
|
|
2535
|
-
"entering:animate-
|
|
2536
|
-
"exiting:animate-
|
|
2540
|
+
"entering:animate-enter-fade",
|
|
2541
|
+
"exiting:animate-exit-fade",
|
|
2537
2542
|
typeof className === "function" ? className(renderProps) : className
|
|
2538
2543
|
),
|
|
2539
2544
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2540
2545
|
reactAriaComponents.Modal,
|
|
2541
2546
|
{
|
|
2542
|
-
className:
|
|
2547
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2543
2548
|
"w-full max-w-lg",
|
|
2544
2549
|
// Cap the panel at the viewport (minus the overlay's p-4) and lay it
|
|
2545
2550
|
// out as a column so a tall body scrolls instead of overflowing the
|
|
@@ -2547,8 +2552,8 @@ function ModalContent({
|
|
|
2547
2552
|
"flex flex-col max-h-[calc(100dvh-2rem)]",
|
|
2548
2553
|
"bg-surface border border-rule rounded-lg",
|
|
2549
2554
|
"shadow-[var(--shadow-float)]",
|
|
2550
|
-
"entering:animate-
|
|
2551
|
-
"exiting:animate-
|
|
2555
|
+
"entering:animate-enter-zoom",
|
|
2556
|
+
"exiting:animate-exit-zoom",
|
|
2552
2557
|
modalClassName
|
|
2553
2558
|
),
|
|
2554
2559
|
children: /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Dialog, { className: "outline-none flex flex-col min-h-0 overflow-hidden", children })
|
|
@@ -2558,7 +2563,7 @@ function ModalContent({
|
|
|
2558
2563
|
);
|
|
2559
2564
|
}
|
|
2560
2565
|
function ModalHeader({ className, ...props }) {
|
|
2561
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className:
|
|
2566
|
+
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) });
|
|
2562
2567
|
}
|
|
2563
2568
|
function ModalTitle({ className, ...props }) {
|
|
2564
2569
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2566,7 +2571,7 @@ function ModalTitle({ className, ...props }) {
|
|
|
2566
2571
|
{
|
|
2567
2572
|
slot: "title",
|
|
2568
2573
|
...props,
|
|
2569
|
-
className:
|
|
2574
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2570
2575
|
"font-sans font-medium text-[20px] leading-[1.25] tracking-[-0.015em] text-ink",
|
|
2571
2576
|
className
|
|
2572
2577
|
)
|
|
@@ -2574,14 +2579,14 @@ function ModalTitle({ className, ...props }) {
|
|
|
2574
2579
|
);
|
|
2575
2580
|
}
|
|
2576
2581
|
function ModalDescription({ className, ...props }) {
|
|
2577
|
-
return /* @__PURE__ */ jsxRuntime.jsx("p", { ...props, className:
|
|
2582
|
+
return /* @__PURE__ */ jsxRuntime.jsx("p", { ...props, className: chunkNWGG5WFL_cjs.cn("text-[14px] leading-[1.55] text-ink-3", className) });
|
|
2578
2583
|
}
|
|
2579
2584
|
function ModalBody({ className, ...props }) {
|
|
2580
2585
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2581
2586
|
"div",
|
|
2582
2587
|
{
|
|
2583
2588
|
...props,
|
|
2584
|
-
className:
|
|
2589
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2585
2590
|
// The scroll region: caps at the panel's spare height and scrolls when
|
|
2586
2591
|
// the content is taller, leaving header + footer pinned.
|
|
2587
2592
|
"min-h-0 overflow-y-auto px-5 py-3 flex flex-col gap-3 text-[14px] text-ink-2",
|
|
@@ -2595,7 +2600,7 @@ function ModalFooter({ className, ...props }) {
|
|
|
2595
2600
|
"div",
|
|
2596
2601
|
{
|
|
2597
2602
|
...props,
|
|
2598
|
-
className:
|
|
2603
|
+
className: chunkNWGG5WFL_cjs.cn("shrink-0 flex justify-end items-center gap-2", "px-5 pt-3 pb-5", className)
|
|
2599
2604
|
}
|
|
2600
2605
|
);
|
|
2601
2606
|
}
|
|
@@ -2757,12 +2762,12 @@ function CurrencyInput({
|
|
|
2757
2762
|
const selectedSymbol = currencyOptions.find((option) => option.code === code)?.symbol ?? code;
|
|
2758
2763
|
const styles4 = fieldControlStyles({ size, appearance, ...isInvalid ? { invalid: true } : {} });
|
|
2759
2764
|
const focusWithin = appearance === "cell" ? "focus-within:border-accent focus-within:shadow-none" : "focus-within:border-accent focus-within:shadow-[var(--shadow-focus)]";
|
|
2760
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
2761
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
2765
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("grid grid-cols-1 gap-1.5", className), children: [
|
|
2766
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(styles4.box(), "flex items-center gap-1 pr-1", focusWithin), children: [
|
|
2762
2767
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2763
2768
|
"input",
|
|
2764
2769
|
{
|
|
2765
|
-
className:
|
|
2770
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2766
2771
|
"min-w-0 flex-1 bg-transparent text-ink outline-none tabular-nums",
|
|
2767
2772
|
styles4.content(),
|
|
2768
2773
|
// Sit a touch lower than a standard field by trimming the vertical
|
|
@@ -2803,7 +2808,7 @@ function CurrencyInput({
|
|
|
2803
2808
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2804
2809
|
reactAriaComponents.Button,
|
|
2805
2810
|
{
|
|
2806
|
-
className:
|
|
2811
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2807
2812
|
"inline-flex h-6 shrink-0 items-center gap-0.5 rounded-md px-1.5",
|
|
2808
2813
|
"text-ink-2 outline-none hover:bg-surface-2 hover:text-ink",
|
|
2809
2814
|
"cursor-pointer focus-visible:shadow-[var(--shadow-focus)]",
|
|
@@ -2819,18 +2824,18 @@ function CurrencyInput({
|
|
|
2819
2824
|
reactAriaComponents.Popover,
|
|
2820
2825
|
{
|
|
2821
2826
|
offset: 6,
|
|
2822
|
-
className:
|
|
2827
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2823
2828
|
"min-w-[9rem] rounded-md border border-rule bg-surface p-1",
|
|
2824
2829
|
"shadow-[var(--shadow-raised)]",
|
|
2825
|
-
"entering:animate-
|
|
2826
|
-
"exiting:animate-
|
|
2830
|
+
"entering:animate-enter-slide-down",
|
|
2831
|
+
"exiting:animate-exit-slide-up"
|
|
2827
2832
|
),
|
|
2828
2833
|
children: /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.ListBox, { className: "max-h-72 overflow-auto outline-none", children: currencyOptions.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2829
2834
|
reactAriaComponents.ListBoxItem,
|
|
2830
2835
|
{
|
|
2831
2836
|
id: option.code,
|
|
2832
2837
|
textValue: `${option.symbol ?? ""} ${option.code}`,
|
|
2833
|
-
className:
|
|
2838
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2834
2839
|
"flex items-center gap-2 rounded-[6px] px-2.5 py-1.5 text-[14px] text-ink-2",
|
|
2835
2840
|
"cursor-pointer select-none outline-none",
|
|
2836
2841
|
"data-[hovered]:bg-surface-2 data-[hovered]:text-ink",
|
|
@@ -2892,12 +2897,12 @@ function DateTimeCell({
|
|
|
2892
2897
|
}
|
|
2893
2898
|
function BooleanCell({ value, className }) {
|
|
2894
2899
|
if (value === true) {
|
|
2895
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-label": "true", className:
|
|
2900
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-label": "true", className: chunkNWGG5WFL_cjs.cn("text-success", className), children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, {}) });
|
|
2896
2901
|
}
|
|
2897
2902
|
if (value === false) {
|
|
2898
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-label": "false", className:
|
|
2903
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-label": "false", className: chunkNWGG5WFL_cjs.cn("text-ink-4", className), children: /* @__PURE__ */ jsxRuntime.jsx(MinusIcon, {}) });
|
|
2899
2904
|
}
|
|
2900
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
2905
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("text-ink-4", className), children: "\u2014" });
|
|
2901
2906
|
}
|
|
2902
2907
|
function CheckIcon() {
|
|
2903
2908
|
return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2916,7 +2921,7 @@ function MinusIcon() {
|
|
|
2916
2921
|
}
|
|
2917
2922
|
function TruncateCell({ value, title, className }) {
|
|
2918
2923
|
const tooltip = title ?? (typeof value === "string" ? value : void 0);
|
|
2919
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
2924
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("truncate min-w-0", className), title: tooltip, children: value ?? "\u2014" });
|
|
2920
2925
|
}
|
|
2921
2926
|
function LinkCell({ children, onClick, className, ...props }) {
|
|
2922
2927
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2927,7 +2932,7 @@ function LinkCell({ children, onClick, className, ...props }) {
|
|
|
2927
2932
|
e.stopPropagation();
|
|
2928
2933
|
onClick?.(e);
|
|
2929
2934
|
},
|
|
2930
|
-
className:
|
|
2935
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2931
2936
|
"text-ink underline decoration-rule underline-offset-2 hover:decoration-ink",
|
|
2932
2937
|
className
|
|
2933
2938
|
),
|
|
@@ -2948,7 +2953,7 @@ var tableStyles = tailwindVariants.tv({
|
|
|
2948
2953
|
defaultVariants: { variant: "panel" }
|
|
2949
2954
|
});
|
|
2950
2955
|
function Table({ variant, className, ...props }) {
|
|
2951
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "grid", ...props, className:
|
|
2956
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "grid", ...props, className: chunkNWGG5WFL_cjs.cn(tableStyles({ variant }), className) });
|
|
2952
2957
|
}
|
|
2953
2958
|
var tableHeaderStyles = tailwindVariants.tv({
|
|
2954
2959
|
base: [
|
|
@@ -2964,7 +2969,7 @@ var tableHeaderStyles = tailwindVariants.tv({
|
|
|
2964
2969
|
defaultVariants: { sticky: false }
|
|
2965
2970
|
});
|
|
2966
2971
|
function TableHeader({ sticky, className, ...props }) {
|
|
2967
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "row", ...props, className:
|
|
2972
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "row", ...props, className: chunkNWGG5WFL_cjs.cn(tableHeaderStyles({ sticky }), className) });
|
|
2968
2973
|
}
|
|
2969
2974
|
var tableHeaderCellStyles = tailwindVariants.tv({
|
|
2970
2975
|
base: [
|
|
@@ -3141,7 +3146,7 @@ function TableHeaderCell({
|
|
|
3141
3146
|
style: { ...widthStyle, ...style },
|
|
3142
3147
|
onClick: handleClick,
|
|
3143
3148
|
onKeyDown: handleKeyDown,
|
|
3144
|
-
className:
|
|
3149
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3145
3150
|
tableHeaderCellStyles({ align, interactive: isSortable, active, sticky }),
|
|
3146
3151
|
"group/header",
|
|
3147
3152
|
dragState.kind === "dragging" ? "opacity-40" : "",
|
|
@@ -3154,7 +3159,7 @@ function TableHeaderCell({
|
|
|
3154
3159
|
ref: handleRef,
|
|
3155
3160
|
"data-dnd-handle": "true",
|
|
3156
3161
|
"aria-hidden": "true",
|
|
3157
|
-
className:
|
|
3162
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3158
3163
|
"inline-flex items-center justify-center shrink-0 -ml-1.5",
|
|
3159
3164
|
"cursor-grab active:cursor-grabbing text-ink-4",
|
|
3160
3165
|
"opacity-0 group-hover/header:opacity-100 transition-opacity"
|
|
@@ -3165,7 +3170,7 @@ function TableHeaderCell({
|
|
|
3165
3170
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3166
3171
|
"span",
|
|
3167
3172
|
{
|
|
3168
|
-
className:
|
|
3173
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3169
3174
|
"flex items-center gap-[7px] min-w-0 flex-1",
|
|
3170
3175
|
align === "right" ? "justify-end" : align === "center" ? "justify-center" : "justify-start"
|
|
3171
3176
|
),
|
|
@@ -3185,7 +3190,7 @@ function TableHeaderCell({
|
|
|
3185
3190
|
e.stopPropagation();
|
|
3186
3191
|
onRemove();
|
|
3187
3192
|
},
|
|
3188
|
-
className:
|
|
3193
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3189
3194
|
"inline-flex items-center justify-center shrink-0 size-4 rounded",
|
|
3190
3195
|
"text-ink-4 hover:text-ink hover:bg-surface-2",
|
|
3191
3196
|
"opacity-0 group-hover/header:opacity-100 focus-visible:opacity-100",
|
|
@@ -3198,7 +3203,7 @@ function TableHeaderCell({
|
|
|
3198
3203
|
"div",
|
|
3199
3204
|
{
|
|
3200
3205
|
"aria-hidden": "true",
|
|
3201
|
-
className:
|
|
3206
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3202
3207
|
"pointer-events-none absolute inset-y-0 z-10 w-0.5 bg-accent",
|
|
3203
3208
|
dragState.edge === "left" ? "-left-px" : "-right-px"
|
|
3204
3209
|
)
|
|
@@ -3223,7 +3228,7 @@ function TableHeaderCell({
|
|
|
3223
3228
|
onPointerDown: startResize,
|
|
3224
3229
|
onKeyDown: resizeByKey,
|
|
3225
3230
|
onClick: (e) => e.stopPropagation(),
|
|
3226
|
-
className:
|
|
3231
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3227
3232
|
"group/resize absolute inset-y-0 -right-1 z-10 w-2 cursor-col-resize outline-none",
|
|
3228
3233
|
"flex justify-center"
|
|
3229
3234
|
),
|
|
@@ -3231,7 +3236,7 @@ function TableHeaderCell({
|
|
|
3231
3236
|
"span",
|
|
3232
3237
|
{
|
|
3233
3238
|
"aria-hidden": "true",
|
|
3234
|
-
className:
|
|
3239
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3235
3240
|
"h-full w-0.5 transition-colors",
|
|
3236
3241
|
isResizing ? "bg-accent" : "bg-transparent group-hover/resize:bg-accent group-focus-visible/resize:bg-accent"
|
|
3237
3242
|
)
|
|
@@ -3252,7 +3257,7 @@ function SortIcon({ dir, active }) {
|
|
|
3252
3257
|
height: "11",
|
|
3253
3258
|
viewBox: "0 0 8 11",
|
|
3254
3259
|
"aria-hidden": "true",
|
|
3255
|
-
className:
|
|
3260
|
+
className: chunkNWGG5WFL_cjs.cn("shrink-0", active ? "text-accent" : "text-ink-4"),
|
|
3256
3261
|
children: [
|
|
3257
3262
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 0.5 L7.5 4 L0.5 4 Z", fill: "currentColor", opacity: dir === "asc" ? 1 : 0.22 }),
|
|
3258
3263
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 10.5 L0.5 7 L7.5 7 Z", fill: "currentColor", opacity: dir === "desc" ? 1 : 0.22 })
|
|
@@ -3266,7 +3271,7 @@ function TableHeaderSpacer({ className, ...props }) {
|
|
|
3266
3271
|
{
|
|
3267
3272
|
"aria-hidden": "true",
|
|
3268
3273
|
...props,
|
|
3269
|
-
className:
|
|
3274
|
+
className: chunkNWGG5WFL_cjs.cn("flex-1 h-[36px] border-r-0", "bg-transparent pointer-events-none", className)
|
|
3270
3275
|
}
|
|
3271
3276
|
);
|
|
3272
3277
|
}
|
|
@@ -3286,7 +3291,7 @@ var tableBodyStyles = tailwindVariants.tv({
|
|
|
3286
3291
|
base: ["flex-1 min-h-0 overflow-auto relative", ...scrollbarChrome]
|
|
3287
3292
|
});
|
|
3288
3293
|
function TableBody({ className, ref, ...props }) {
|
|
3289
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "rowgroup", ref, ...props, className:
|
|
3294
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "rowgroup", ref, ...props, className: chunkNWGG5WFL_cjs.cn(tableBodyStyles(), className) });
|
|
3290
3295
|
}
|
|
3291
3296
|
var tableScrollerStyles = tailwindVariants.tv({
|
|
3292
3297
|
base: ["relative flex-1 min-h-0 overflow-auto", ...scrollbarChrome]
|
|
@@ -3298,7 +3303,7 @@ function TableScroller({ className, ref, ...props }) {
|
|
|
3298
3303
|
role: "presentation",
|
|
3299
3304
|
ref,
|
|
3300
3305
|
...props,
|
|
3301
|
-
className:
|
|
3306
|
+
className: chunkNWGG5WFL_cjs.cn(tableScrollerStyles(), className)
|
|
3302
3307
|
}
|
|
3303
3308
|
);
|
|
3304
3309
|
}
|
|
@@ -3350,7 +3355,7 @@ function TableRow({
|
|
|
3350
3355
|
onClick?.(e);
|
|
3351
3356
|
onRowClick?.(e);
|
|
3352
3357
|
},
|
|
3353
|
-
className:
|
|
3358
|
+
className: chunkNWGG5WFL_cjs.cn(tableRowStyles({ alt, interactive, absolute }), className)
|
|
3354
3359
|
}
|
|
3355
3360
|
);
|
|
3356
3361
|
}
|
|
@@ -3404,7 +3409,7 @@ function TableCell({
|
|
|
3404
3409
|
role: "gridcell",
|
|
3405
3410
|
...props,
|
|
3406
3411
|
style: { ...widthStyle, ...style },
|
|
3407
|
-
className:
|
|
3412
|
+
className: chunkNWGG5WFL_cjs.cn(tableCellStyles({ align, mono, ink, sticky }), className)
|
|
3408
3413
|
}
|
|
3409
3414
|
);
|
|
3410
3415
|
}
|
|
@@ -3419,7 +3424,7 @@ function DataTableEmpty({
|
|
|
3419
3424
|
"div",
|
|
3420
3425
|
{
|
|
3421
3426
|
role: "status",
|
|
3422
|
-
className:
|
|
3427
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3423
3428
|
"flex flex-col items-center justify-center gap-2",
|
|
3424
3429
|
"px-5 py-16 text-center",
|
|
3425
3430
|
"font-sans text-[13px] text-ink-3",
|
|
@@ -3439,7 +3444,7 @@ function DataTableError({ error, onRetry, className }) {
|
|
|
3439
3444
|
"div",
|
|
3440
3445
|
{
|
|
3441
3446
|
role: "alert",
|
|
3442
|
-
className:
|
|
3447
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3443
3448
|
"flex flex-col items-center justify-center gap-3",
|
|
3444
3449
|
"px-5 py-16 text-center",
|
|
3445
3450
|
"font-sans text-[13px] text-ink-3",
|
|
@@ -3448,7 +3453,7 @@ function DataTableError({ error, onRetry, className }) {
|
|
|
3448
3453
|
children: [
|
|
3449
3454
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-danger text-[14px]", children: "Something went wrong" }),
|
|
3450
3455
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-ink-3 max-w-[48ch] font-mono text-[12px]", children: error.message }),
|
|
3451
|
-
onRetry ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3456
|
+
onRetry ? /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { variant: "ghost", size: "sm", onPress: onRetry, children: "Retry" }) : null
|
|
3452
3457
|
]
|
|
3453
3458
|
}
|
|
3454
3459
|
);
|
|
@@ -3467,7 +3472,7 @@ function DataTableSkeleton({
|
|
|
3467
3472
|
TableCell,
|
|
3468
3473
|
{
|
|
3469
3474
|
width: w,
|
|
3470
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3475
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Skeleton, { shape: "text", className: "h-3 max-w-[60%]" })
|
|
3471
3476
|
},
|
|
3472
3477
|
colIdx
|
|
3473
3478
|
))
|
|
@@ -3746,12 +3751,12 @@ function DataTable({
|
|
|
3746
3751
|
{
|
|
3747
3752
|
...ariaLabel !== void 0 ? { "aria-label": ariaLabel } : {},
|
|
3748
3753
|
variant,
|
|
3749
|
-
className:
|
|
3754
|
+
className: chunkNWGG5WFL_cjs.cn("flex-1 min-h-0", className),
|
|
3750
3755
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3751
3756
|
TableScroller,
|
|
3752
3757
|
{
|
|
3753
3758
|
ref: scrollerRef,
|
|
3754
|
-
className:
|
|
3759
|
+
className: chunkNWGG5WFL_cjs.cn("scroll-pt-[36px]", bodyAfter ? "scroll-pb-8" : void 0),
|
|
3755
3760
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", style: { minWidth: minPanelWidth }, children: [
|
|
3756
3761
|
headerGroups.map((group) => /* @__PURE__ */ jsxRuntime.jsxs(TableHeader, { sticky: true, children: [
|
|
3757
3762
|
group.headers.map((header) => {
|
|
@@ -3838,7 +3843,7 @@ function DataTable({
|
|
|
3838
3843
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3839
3844
|
"div",
|
|
3840
3845
|
{
|
|
3841
|
-
className:
|
|
3846
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3842
3847
|
"sticky bottom-0 z-[4] flex items-center h-8 px-0.5",
|
|
3843
3848
|
"border-t border-rule-2 bg-bg"
|
|
3844
3849
|
),
|
|
@@ -3858,7 +3863,7 @@ function GroupHeaderRow({ style, children }) {
|
|
|
3858
3863
|
{
|
|
3859
3864
|
absolute: true,
|
|
3860
3865
|
style,
|
|
3861
|
-
className:
|
|
3866
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3862
3867
|
"bg-surface-2 border-b border-rule",
|
|
3863
3868
|
"font-mono text-[11px] uppercase tracking-[0.06em] text-ink-3"
|
|
3864
3869
|
),
|
|
@@ -3880,7 +3885,7 @@ function DataRow({
|
|
|
3880
3885
|
const cells = row.getVisibleCells().map((cell) => {
|
|
3881
3886
|
const meta = cell.column.columnDef.meta;
|
|
3882
3887
|
const cellSize = cell.column.getSize() || void 0;
|
|
3883
|
-
const cellClassName =
|
|
3888
|
+
const cellClassName = chunkNWGG5WFL_cjs.cn(
|
|
3884
3889
|
columnBorders ? "border-r border-rule-2" : void 0,
|
|
3885
3890
|
meta?.cellClassName
|
|
3886
3891
|
);
|
|
@@ -3923,7 +3928,7 @@ function LoaderRow() {
|
|
|
3923
3928
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3924
3929
|
"div",
|
|
3925
3930
|
{
|
|
3926
|
-
className:
|
|
3931
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3927
3932
|
"flex items-center justify-center gap-3",
|
|
3928
3933
|
"h-8 font-mono text-[11px] tracking-[0.04em]",
|
|
3929
3934
|
"text-ink-4"
|
|
@@ -4015,7 +4020,7 @@ function CalendarSurface() {
|
|
|
4015
4020
|
{
|
|
4016
4021
|
slot: "previous",
|
|
4017
4022
|
"aria-label": "Previous month",
|
|
4018
|
-
className:
|
|
4023
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4019
4024
|
"size-7 rounded-md inline-flex items-center justify-center",
|
|
4020
4025
|
"text-ink-3 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
|
|
4021
4026
|
"focus-visible:shadow-[var(--shadow-focus)]"
|
|
@@ -4029,7 +4034,7 @@ function CalendarSurface() {
|
|
|
4029
4034
|
{
|
|
4030
4035
|
slot: "next",
|
|
4031
4036
|
"aria-label": "Next month",
|
|
4032
|
-
className:
|
|
4037
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4033
4038
|
"size-7 rounded-md inline-flex items-center justify-center",
|
|
4034
4039
|
"text-ink-3 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
|
|
4035
4040
|
"focus-visible:shadow-[var(--shadow-focus)]"
|
|
@@ -4042,7 +4047,7 @@ function CalendarSurface() {
|
|
|
4042
4047
|
/* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.CalendarGridHeader, { children: (day) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
4043
4048
|
reactAriaComponents.CalendarHeaderCell,
|
|
4044
4049
|
{
|
|
4045
|
-
className:
|
|
4050
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4046
4051
|
"font-mono text-[10.5px] uppercase tracking-[0.08em] text-ink-4",
|
|
4047
4052
|
"pb-2 text-center"
|
|
4048
4053
|
),
|
|
@@ -4053,7 +4058,7 @@ function CalendarSurface() {
|
|
|
4053
4058
|
reactAriaComponents.CalendarCell,
|
|
4054
4059
|
{
|
|
4055
4060
|
date,
|
|
4056
|
-
className:
|
|
4061
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4057
4062
|
// aspect-square + table-fixed makes each cell a perfect
|
|
4058
4063
|
// square that scales with popover width.
|
|
4059
4064
|
"aspect-square flex items-center justify-center cursor-pointer",
|
|
@@ -4062,7 +4067,7 @@ function CalendarSurface() {
|
|
|
4062
4067
|
"data-[outside-month]:text-ink-4",
|
|
4063
4068
|
"data-[hovered]:bg-surface-2 data-[hovered]:text-ink",
|
|
4064
4069
|
"data-[focus-visible]:shadow-[var(--shadow-focus)]",
|
|
4065
|
-
"data-[selected]:bg-accent data-[selected]:text-
|
|
4070
|
+
"data-[selected]:bg-accent data-[selected]:text-tile-fg",
|
|
4066
4071
|
"data-[selected]:data-[hovered]:bg-accent-2",
|
|
4067
4072
|
"data-[disabled]:opacity-30 data-[disabled]:cursor-not-allowed",
|
|
4068
4073
|
"data-[unavailable]:line-through data-[unavailable]:text-ink-4"
|
|
@@ -4087,7 +4092,7 @@ function DatePicker({
|
|
|
4087
4092
|
reactAriaComponents.DatePicker,
|
|
4088
4093
|
{
|
|
4089
4094
|
...props,
|
|
4090
|
-
className: (renderProps) =>
|
|
4095
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
4091
4096
|
"grid grid-cols-1 gap-1.5",
|
|
4092
4097
|
typeof className === "function" ? className(renderProps) : className
|
|
4093
4098
|
),
|
|
@@ -4096,7 +4101,7 @@ function DatePicker({
|
|
|
4096
4101
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4097
4102
|
reactAriaComponents.Group,
|
|
4098
4103
|
{
|
|
4099
|
-
className:
|
|
4104
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4100
4105
|
// Box chrome on the wrapper; the DateInput inside carries padding +
|
|
4101
4106
|
// font so the calendar trigger sits inside the same border + ring.
|
|
4102
4107
|
styles4.box(),
|
|
@@ -4107,7 +4112,7 @@ function DatePicker({
|
|
|
4107
4112
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4108
4113
|
reactAriaComponents.DateInput,
|
|
4109
4114
|
{
|
|
4110
|
-
className:
|
|
4115
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4111
4116
|
"flex-1 flex items-center min-w-0 text-ink",
|
|
4112
4117
|
styles4.content(),
|
|
4113
4118
|
// Tabular alignment for date segments — overrides content's
|
|
@@ -4118,12 +4123,12 @@ function DatePicker({
|
|
|
4118
4123
|
reactAriaComponents.DateSegment,
|
|
4119
4124
|
{
|
|
4120
4125
|
segment,
|
|
4121
|
-
className:
|
|
4126
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4122
4127
|
"px-px tabular-nums outline-none select-none",
|
|
4123
4128
|
"data-[placeholder]:text-ink-4",
|
|
4124
4129
|
"data-[type=literal]:text-ink-4",
|
|
4125
4130
|
// segment focus treatment: indigo fill, paper text
|
|
4126
|
-
"data-[focused]:bg-accent data-[focused]:text-
|
|
4131
|
+
"data-[focused]:bg-accent data-[focused]:text-tile-fg data-[focused]:rounded-[3px]",
|
|
4127
4132
|
"data-[disabled]:cursor-not-allowed"
|
|
4128
4133
|
)
|
|
4129
4134
|
}
|
|
@@ -4133,7 +4138,7 @@ function DatePicker({
|
|
|
4133
4138
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4134
4139
|
reactAriaComponents.Button,
|
|
4135
4140
|
{
|
|
4136
|
-
className:
|
|
4141
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4137
4142
|
"shrink-0 inline-flex items-center justify-center",
|
|
4138
4143
|
"size-7 rounded-md",
|
|
4139
4144
|
"text-ink-3 hover:text-ink hover:bg-surface-2",
|
|
@@ -4153,7 +4158,7 @@ function DatePicker({
|
|
|
4153
4158
|
reactAriaComponents.Popover,
|
|
4154
4159
|
{
|
|
4155
4160
|
offset: 6,
|
|
4156
|
-
className:
|
|
4161
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4157
4162
|
// Match the anchoring field's width exactly. `--trigger-width` is
|
|
4158
4163
|
// set by RAC on the Popover when it's inside a DatePicker. Floor at
|
|
4159
4164
|
// 18rem so the calendar stays legible when the input is unusually
|
|
@@ -4162,8 +4167,8 @@ function DatePicker({
|
|
|
4162
4167
|
"w-[var(--trigger-width)] min-w-[18rem] max-w-[500px]",
|
|
4163
4168
|
"rounded-md border border-rule bg-surface p-4",
|
|
4164
4169
|
"shadow-[var(--shadow-raised)]",
|
|
4165
|
-
"entering:animate-
|
|
4166
|
-
"exiting:animate-
|
|
4170
|
+
"entering:animate-enter-slide-down",
|
|
4171
|
+
"exiting:animate-exit-slide-up"
|
|
4167
4172
|
),
|
|
4168
4173
|
children: /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Dialog, { className: "outline-none", children: /* @__PURE__ */ jsxRuntime.jsx(CalendarSurface, {}) })
|
|
4169
4174
|
}
|
|
@@ -4172,12 +4177,12 @@ function DatePicker({
|
|
|
4172
4177
|
}
|
|
4173
4178
|
);
|
|
4174
4179
|
}
|
|
4175
|
-
var segmentStyles =
|
|
4180
|
+
var segmentStyles = chunkNWGG5WFL_cjs.cn(
|
|
4176
4181
|
"px-px tabular-nums outline-none select-none",
|
|
4177
4182
|
"data-[placeholder]:text-ink-4",
|
|
4178
4183
|
"data-[type=literal]:text-ink-4",
|
|
4179
4184
|
// segment focus treatment: indigo fill, paper text
|
|
4180
|
-
"data-[focused]:bg-accent data-[focused]:text-
|
|
4185
|
+
"data-[focused]:bg-accent data-[focused]:text-tile-fg data-[focused]:rounded-[3px]",
|
|
4181
4186
|
"data-[disabled]:cursor-not-allowed"
|
|
4182
4187
|
);
|
|
4183
4188
|
function PopoverTimeField({
|
|
@@ -4203,7 +4208,7 @@ function PopoverTimeField({
|
|
|
4203
4208
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4204
4209
|
reactAriaComponents.DateInput,
|
|
4205
4210
|
{
|
|
4206
|
-
className:
|
|
4211
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4207
4212
|
"inline-flex items-center rounded-md border border-rule bg-surface px-2.5 py-1.5",
|
|
4208
4213
|
"font-mono text-[13px] text-ink",
|
|
4209
4214
|
"focus-within:border-accent focus-within:shadow-[var(--shadow-focus)]",
|
|
@@ -4242,7 +4247,7 @@ function DateTimePicker({
|
|
|
4242
4247
|
granularity,
|
|
4243
4248
|
hideTimeZone,
|
|
4244
4249
|
shouldCloseOnSelect,
|
|
4245
|
-
className: (renderProps) =>
|
|
4250
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
4246
4251
|
"grid grid-cols-1 gap-1.5",
|
|
4247
4252
|
typeof className === "function" ? className(renderProps) : className
|
|
4248
4253
|
),
|
|
@@ -4251,7 +4256,7 @@ function DateTimePicker({
|
|
|
4251
4256
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4252
4257
|
reactAriaComponents.Group,
|
|
4253
4258
|
{
|
|
4254
|
-
className:
|
|
4259
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4255
4260
|
// Box chrome on the wrapper; the DateInput inside carries padding +
|
|
4256
4261
|
// font so the calendar trigger sits inside the same border + ring.
|
|
4257
4262
|
styles4.box(),
|
|
@@ -4262,7 +4267,7 @@ function DateTimePicker({
|
|
|
4262
4267
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4263
4268
|
reactAriaComponents.DateInput,
|
|
4264
4269
|
{
|
|
4265
|
-
className:
|
|
4270
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4266
4271
|
"flex-1 flex items-center min-w-0 text-ink",
|
|
4267
4272
|
styles4.content(),
|
|
4268
4273
|
// Tabular alignment for date/time segments — overrides content's
|
|
@@ -4275,7 +4280,7 @@ function DateTimePicker({
|
|
|
4275
4280
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4276
4281
|
reactAriaComponents.Button,
|
|
4277
4282
|
{
|
|
4278
|
-
className:
|
|
4283
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4279
4284
|
"shrink-0 inline-flex items-center justify-center",
|
|
4280
4285
|
"size-7 rounded-md",
|
|
4281
4286
|
"text-ink-3 hover:text-ink hover:bg-surface-2",
|
|
@@ -4295,7 +4300,7 @@ function DateTimePicker({
|
|
|
4295
4300
|
reactAriaComponents.Popover,
|
|
4296
4301
|
{
|
|
4297
4302
|
offset: 6,
|
|
4298
|
-
className:
|
|
4303
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4299
4304
|
// Match the anchoring field's width exactly. `--trigger-width` is
|
|
4300
4305
|
// set by RAC on the Popover when it's inside a DatePicker. Floor at
|
|
4301
4306
|
// 18rem so the calendar stays legible when the input is unusually
|
|
@@ -4304,8 +4309,8 @@ function DateTimePicker({
|
|
|
4304
4309
|
"w-[var(--trigger-width)] min-w-[18rem] max-w-[500px]",
|
|
4305
4310
|
"rounded-md border border-rule bg-surface p-4",
|
|
4306
4311
|
"shadow-[var(--shadow-raised)]",
|
|
4307
|
-
"entering:animate-
|
|
4308
|
-
"exiting:animate-
|
|
4312
|
+
"entering:animate-enter-slide-down",
|
|
4313
|
+
"exiting:animate-exit-slide-up"
|
|
4309
4314
|
),
|
|
4310
4315
|
children: /* @__PURE__ */ jsxRuntime.jsxs(reactAriaComponents.Dialog, { className: "outline-none", children: [
|
|
4311
4316
|
/* @__PURE__ */ jsxRuntime.jsx(CalendarSurface, {}),
|
|
@@ -4365,7 +4370,7 @@ function DraftMessageCard({
|
|
|
4365
4370
|
isPreviewDisabled = false,
|
|
4366
4371
|
className
|
|
4367
4372
|
}) {
|
|
4368
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
4373
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(styles2.root(), className), children: [
|
|
4369
4374
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: styles2.icon(), children: /* @__PURE__ */ jsxRuntime.jsx(ChannelIcon, { channel }) }),
|
|
4370
4375
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles2.body(), children: [
|
|
4371
4376
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: styles2.eyebrow(), children: eyebrow }),
|
|
@@ -4486,7 +4491,7 @@ function MultiSelect({
|
|
|
4486
4491
|
openPopover(true);
|
|
4487
4492
|
}
|
|
4488
4493
|
};
|
|
4489
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
4494
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("grid grid-cols-1 gap-1.5", className), children: [
|
|
4490
4495
|
label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
|
|
4491
4496
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4492
4497
|
"div",
|
|
@@ -4502,7 +4507,7 @@ function MultiSelect({
|
|
|
4502
4507
|
onKeyDown: onTriggerKeyDown,
|
|
4503
4508
|
"data-invalid": isInvalid || void 0,
|
|
4504
4509
|
"data-disabled": isDisabled || void 0,
|
|
4505
|
-
className:
|
|
4510
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4506
4511
|
styles4.box(),
|
|
4507
4512
|
"flex flex-wrap items-center gap-1.5 cursor-pointer",
|
|
4508
4513
|
minHeight,
|
|
@@ -4517,7 +4522,7 @@ function MultiSelect({
|
|
|
4517
4522
|
// No vertical padding — wrapper's p-1.5 + min-h-[size] govern the
|
|
4518
4523
|
// overall height so it matches the Input/Select trigger at the same
|
|
4519
4524
|
// size.
|
|
4520
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
4525
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("text-ink-4 font-sans px-1", fieldTextStyles[size]), children: placeholder })
|
|
4521
4526
|
) : selectedOptions.map((o) => /* @__PURE__ */ jsxRuntime.jsx(Chip, { onRemove: () => remove(o.id), isDisabled, children: o.content ?? o.label }, o.id)),
|
|
4522
4527
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto pr-1", children: /* @__PURE__ */ jsxRuntime.jsx(FieldCaret, {}) })
|
|
4523
4528
|
]
|
|
@@ -4533,14 +4538,14 @@ function MultiSelect({
|
|
|
4533
4538
|
triggerRef,
|
|
4534
4539
|
offset: 6,
|
|
4535
4540
|
placement: "bottom start",
|
|
4536
|
-
className:
|
|
4541
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4537
4542
|
"w-[var(--trigger-width)]",
|
|
4538
4543
|
// The popover element itself takes focus when opened programmatically
|
|
4539
4544
|
// (defaultOpen) — no browser outline around the whole panel.
|
|
4540
4545
|
"outline-none rounded-md border border-rule bg-surface p-1",
|
|
4541
4546
|
"shadow-[var(--shadow-raised)]",
|
|
4542
|
-
"entering:animate-
|
|
4543
|
-
"exiting:animate-
|
|
4547
|
+
"entering:animate-enter-slide-down",
|
|
4548
|
+
"exiting:animate-exit-slide-up"
|
|
4544
4549
|
),
|
|
4545
4550
|
children: [
|
|
4546
4551
|
isSearchable ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-rule-2 px-1 pb-1 mb-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4551,7 +4556,7 @@ function MultiSelect({
|
|
|
4551
4556
|
onChange: (e) => updateSearch(e.target.value),
|
|
4552
4557
|
placeholder: "Search\u2026",
|
|
4553
4558
|
"aria-label": "Search options",
|
|
4554
|
-
className:
|
|
4559
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4555
4560
|
"w-full bg-transparent outline-none rounded-[6px] px-2 py-1.5",
|
|
4556
4561
|
"font-sans text-[13px] text-ink placeholder:text-ink-4"
|
|
4557
4562
|
)
|
|
@@ -4572,14 +4577,14 @@ function MultiSelect({
|
|
|
4572
4577
|
onSelectionChange(keys);
|
|
4573
4578
|
},
|
|
4574
4579
|
className: "outline-none max-h-72 overflow-auto",
|
|
4575
|
-
renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
4580
|
+
renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn("px-3 py-2", fieldHintStyles), children: needle !== "" ? "No matches" : "All options selected" }),
|
|
4576
4581
|
children: listboxOptions.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4577
4582
|
reactAriaComponents.ListBoxItem,
|
|
4578
4583
|
{
|
|
4579
4584
|
id: option.id,
|
|
4580
4585
|
textValue: option.label,
|
|
4581
4586
|
...option.isDisabled ? { isDisabled: true } : {},
|
|
4582
|
-
className:
|
|
4587
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4583
4588
|
"group flex items-center gap-2.5",
|
|
4584
4589
|
"rounded-[6px] px-3 py-2 text-[14px] text-ink-2",
|
|
4585
4590
|
"cursor-pointer outline-none select-none",
|
|
@@ -4609,7 +4614,7 @@ function Chip({
|
|
|
4609
4614
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4610
4615
|
"span",
|
|
4611
4616
|
{
|
|
4612
|
-
className:
|
|
4617
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4613
4618
|
"inline-flex items-center gap-1.5",
|
|
4614
4619
|
"pl-2 pr-1 py-0.5 rounded-[6px]",
|
|
4615
4620
|
"bg-surface-2 border border-rule",
|
|
@@ -4627,7 +4632,7 @@ function Chip({
|
|
|
4627
4632
|
e.stopPropagation();
|
|
4628
4633
|
onRemove();
|
|
4629
4634
|
},
|
|
4630
|
-
className:
|
|
4635
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4631
4636
|
"inline-flex items-center justify-center shrink-0",
|
|
4632
4637
|
"size-4 rounded-[3px]",
|
|
4633
4638
|
"text-ink-3 hover:text-ink hover:bg-surface-3 cursor-pointer",
|
|
@@ -4807,7 +4812,7 @@ function MessageComposer({
|
|
|
4807
4812
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-[18px] py-3", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4808
4813
|
"p",
|
|
4809
4814
|
{
|
|
4810
|
-
className:
|
|
4815
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4811
4816
|
"rounded-[10px] border border-rule bg-surface-2 px-3.5 py-2.5",
|
|
4812
4817
|
"text-[12.5px] text-ink-3 text-center"
|
|
4813
4818
|
),
|
|
@@ -4832,7 +4837,7 @@ function MessageComposer({
|
|
|
4832
4837
|
}
|
|
4833
4838
|
) : null;
|
|
4834
4839
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-[18px] pb-3.5 pt-1", children: [
|
|
4835
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
4840
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(messageComposerStyles(), className), children: [
|
|
4836
4841
|
connectionPicker ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 border-b border-rule-2 px-3.5 py-1.5", children: [
|
|
4837
4842
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: ROW_LABEL, children: "Via" }),
|
|
4838
4843
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4936,7 +4941,7 @@ function MessageComposer({
|
|
|
4936
4941
|
rows: 1,
|
|
4937
4942
|
onChange: (event) => onValueChange({ ...value, text: event.target.value }),
|
|
4938
4943
|
onKeyDown: onKeyDown2,
|
|
4939
|
-
className:
|
|
4944
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4940
4945
|
"w-full resize-none bg-transparent outline-none",
|
|
4941
4946
|
"min-h-[40px] max-h-48 text-[14px] leading-[1.5] text-ink placeholder:text-ink-4",
|
|
4942
4947
|
bodyClassName
|
|
@@ -4953,7 +4958,7 @@ function MessageComposer({
|
|
|
4953
4958
|
if (files) onAddFiles(Array.from(files));
|
|
4954
4959
|
},
|
|
4955
4960
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4956
|
-
|
|
4961
|
+
chunkNWGG5WFL_cjs.Button,
|
|
4957
4962
|
{
|
|
4958
4963
|
variant: "subtle",
|
|
4959
4964
|
size: "icon-md",
|
|
@@ -4972,7 +4977,7 @@ function MessageComposer({
|
|
|
4972
4977
|
"aria-label": "Send",
|
|
4973
4978
|
isDisabled: !canSend || isSending,
|
|
4974
4979
|
onPress: () => void submit(),
|
|
4975
|
-
className:
|
|
4980
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4976
4981
|
"grid place-items-center size-8 rounded-[8px] cursor-pointer",
|
|
4977
4982
|
"bg-accent text-tile-fg transition-opacity duration-150",
|
|
4978
4983
|
"disabled:opacity-40 disabled:cursor-default",
|
|
@@ -5287,10 +5292,10 @@ function DraftMessageComposer({
|
|
|
5287
5292
|
[message?.attachments]
|
|
5288
5293
|
);
|
|
5289
5294
|
if (phase === "loading") {
|
|
5290
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
5295
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn(styles3.root(), className), children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: styles3.terminal(), children: "Loading draft\u2026" }) });
|
|
5291
5296
|
}
|
|
5292
5297
|
if (phase === "load-error") {
|
|
5293
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
5298
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn(styles3.root(), className), children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: styles3.terminal(), children: [
|
|
5294
5299
|
loadError ?? "Loading the draft failed.",
|
|
5295
5300
|
" ",
|
|
5296
5301
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -5305,9 +5310,9 @@ function DraftMessageComposer({
|
|
|
5305
5310
|
}
|
|
5306
5311
|
if (phase === "terminal" || !message) {
|
|
5307
5312
|
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.";
|
|
5308
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
5313
|
+
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 }) });
|
|
5309
5314
|
}
|
|
5310
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
5315
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(styles3.root(), className), children: [
|
|
5311
5316
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles3.header(), children: [
|
|
5312
5317
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: styles3.badge(), children: "Draft \xB7 awaiting review" }),
|
|
5313
5318
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: styles3.sender(), children: [
|
|
@@ -5349,7 +5354,7 @@ function DraftMessageComposer({
|
|
|
5349
5354
|
isConfirmingReject ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
5350
5355
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[12.5px] text-ink-3", children: "Reject draft?" }),
|
|
5351
5356
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5352
|
-
|
|
5357
|
+
chunkNWGG5WFL_cjs.Button,
|
|
5353
5358
|
{
|
|
5354
5359
|
size: "sm",
|
|
5355
5360
|
variant: "ghost",
|
|
@@ -5358,9 +5363,9 @@ function DraftMessageComposer({
|
|
|
5358
5363
|
children: "Confirm reject"
|
|
5359
5364
|
}
|
|
5360
5365
|
),
|
|
5361
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5366
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { size: "sm", variant: "subtle", onPress: () => setIsConfirmingReject(false), children: "Cancel" })
|
|
5362
5367
|
] }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
5363
|
-
|
|
5368
|
+
chunkNWGG5WFL_cjs.Button,
|
|
5364
5369
|
{
|
|
5365
5370
|
size: "sm",
|
|
5366
5371
|
variant: "ghost",
|
|
@@ -5370,7 +5375,7 @@ function DraftMessageComposer({
|
|
|
5370
5375
|
}
|
|
5371
5376
|
),
|
|
5372
5377
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5373
|
-
|
|
5378
|
+
chunkNWGG5WFL_cjs.Button,
|
|
5374
5379
|
{
|
|
5375
5380
|
size: "sm",
|
|
5376
5381
|
variant: "subtle",
|
|
@@ -5528,7 +5533,7 @@ function EmptyState({
|
|
|
5528
5533
|
className
|
|
5529
5534
|
}) {
|
|
5530
5535
|
const styles4 = emptyStateStyles({ size });
|
|
5531
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
5536
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(styles4.root(), className), children: [
|
|
5532
5537
|
icon ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.art(), children: icon }) : null,
|
|
5533
5538
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.title(), children: title }),
|
|
5534
5539
|
description ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.description(), children: description }) : null,
|
|
@@ -5540,7 +5545,7 @@ function ErrorAnimation({ className }) {
|
|
|
5540
5545
|
"div",
|
|
5541
5546
|
{
|
|
5542
5547
|
"aria-hidden": true,
|
|
5543
|
-
className:
|
|
5548
|
+
className: chunkNWGG5WFL_cjs.cn("size-24 text-danger motion-safe:animate-status-pop", className),
|
|
5544
5549
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleX, { className: "size-full", strokeWidth: 1.5 })
|
|
5545
5550
|
}
|
|
5546
5551
|
);
|
|
@@ -5563,13 +5568,13 @@ function FileViewerFallbackCard({
|
|
|
5563
5568
|
const Icon = iconForContentType(contentType);
|
|
5564
5569
|
const size = formatFileSize(sizeInBytes);
|
|
5565
5570
|
const meta = [size, note].filter(Boolean).join(" \xB7 ");
|
|
5566
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
5571
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(fileViewerFallbackCardStyles(), className), children: [
|
|
5567
5572
|
/* @__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" }) }),
|
|
5568
5573
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
5569
5574
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate font-sans text-[13px] font-medium text-ink", children: name }),
|
|
5570
5575
|
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
|
|
5571
5576
|
] }),
|
|
5572
|
-
onDownload ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5577
|
+
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
|
|
5573
5578
|
] });
|
|
5574
5579
|
}
|
|
5575
5580
|
var imageLightboxStyles = tailwindVariants.tv({
|
|
@@ -5577,8 +5582,8 @@ var imageLightboxStyles = tailwindVariants.tv({
|
|
|
5577
5582
|
"fixed inset-0 z-50 flex items-center justify-center p-4",
|
|
5578
5583
|
// Deeper scrim than Modal's 40% — the image needs the page fully dimmed.
|
|
5579
5584
|
"bg-[color-mix(in_oklab,var(--color-ink)_72%,transparent)]",
|
|
5580
|
-
"entering:animate-
|
|
5581
|
-
"exiting:animate-
|
|
5585
|
+
"entering:animate-enter-fade",
|
|
5586
|
+
"exiting:animate-exit-fade"
|
|
5582
5587
|
]
|
|
5583
5588
|
});
|
|
5584
5589
|
function ImageLightbox({ isOpen, onOpenChange, src, name, onDownload }) {
|
|
@@ -5606,7 +5611,7 @@ function ImageLightbox({ isOpen, onOpenChange, src, name, onDownload }) {
|
|
|
5606
5611
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5607
5612
|
"div",
|
|
5608
5613
|
{
|
|
5609
|
-
className:
|
|
5614
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
5610
5615
|
"flex items-center gap-1.5",
|
|
5611
5616
|
"rounded-[8px] border border-rule bg-surface py-1 pl-3 pr-1",
|
|
5612
5617
|
"shadow-[var(--shadow-float)]"
|
|
@@ -5614,7 +5619,7 @@ function ImageLightbox({ isOpen, onOpenChange, src, name, onDownload }) {
|
|
|
5614
5619
|
children: [
|
|
5615
5620
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "max-w-[320px] truncate font-sans text-[12.5px] text-ink", children: name }),
|
|
5616
5621
|
onDownload ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5617
|
-
|
|
5622
|
+
chunkNWGG5WFL_cjs.Button,
|
|
5618
5623
|
{
|
|
5619
5624
|
variant: "ghost",
|
|
5620
5625
|
size: "icon-sm",
|
|
@@ -5623,7 +5628,7 @@ function ImageLightbox({ isOpen, onOpenChange, src, name, onDownload }) {
|
|
|
5623
5628
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Download, { "aria-hidden": true })
|
|
5624
5629
|
}
|
|
5625
5630
|
) : null,
|
|
5626
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5631
|
+
/* @__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 }) })
|
|
5627
5632
|
]
|
|
5628
5633
|
}
|
|
5629
5634
|
)
|
|
@@ -5663,7 +5668,7 @@ function VideoView({ name, src }) {
|
|
|
5663
5668
|
/* @__PURE__ */ jsxRuntime.jsx("video", { controls: true, src, "aria-label": name, className: "h-full w-full object-contain" })
|
|
5664
5669
|
);
|
|
5665
5670
|
}
|
|
5666
|
-
var PdfView = react.lazy(() => import('./pdf-view-
|
|
5671
|
+
var PdfView = react.lazy(() => import('./pdf-view-RRMAUK3L.cjs'));
|
|
5667
5672
|
var fileViewerStyles = tailwindVariants.tv({
|
|
5668
5673
|
base: [
|
|
5669
5674
|
"relative flex w-full flex-col overflow-hidden",
|
|
@@ -5703,8 +5708,8 @@ function FileViewer({
|
|
|
5703
5708
|
}
|
|
5704
5709
|
);
|
|
5705
5710
|
if (kind === "none" || errorMessage || isOversized) return fallback;
|
|
5706
|
-
const skeleton = /* @__PURE__ */ jsxRuntime.jsx(
|
|
5707
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
5711
|
+
const skeleton = /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Skeleton, { "aria-label": `Loading preview of ${name}`, className: "h-full w-full rounded-none" });
|
|
5712
|
+
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 } : {} }) }) });
|
|
5708
5713
|
}
|
|
5709
5714
|
var imageAttachmentStyles = tailwindVariants.tv({
|
|
5710
5715
|
base: [
|
|
@@ -5727,7 +5732,7 @@ function ImageAttachment({
|
|
|
5727
5732
|
{
|
|
5728
5733
|
"aria-label": `Preview ${name}`,
|
|
5729
5734
|
...onPress ? { onPress } : {},
|
|
5730
|
-
className:
|
|
5735
|
+
className: chunkNWGG5WFL_cjs.cn(imageAttachmentStyles(), className),
|
|
5731
5736
|
children: [
|
|
5732
5737
|
src ? (
|
|
5733
5738
|
// Kept in the DOM (invisible) while loading so onLoad still fires
|
|
@@ -5740,14 +5745,14 @@ function ImageAttachment({
|
|
|
5740
5745
|
loading: "lazy",
|
|
5741
5746
|
onLoad: () => setLoadedSrc(src),
|
|
5742
5747
|
onError: () => onLoadError?.(),
|
|
5743
|
-
className:
|
|
5748
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
5744
5749
|
"block max-h-[220px] max-w-[280px] object-contain",
|
|
5745
5750
|
!isLoaded && "invisible absolute inset-0"
|
|
5746
5751
|
)
|
|
5747
5752
|
}
|
|
5748
5753
|
)
|
|
5749
5754
|
) : null,
|
|
5750
|
-
!isLoaded ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5755
|
+
!isLoaded ? /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Skeleton, { className: "h-[140px] w-[200px]" }) : null
|
|
5751
5756
|
]
|
|
5752
5757
|
}
|
|
5753
5758
|
);
|
|
@@ -5778,7 +5783,7 @@ function Input({
|
|
|
5778
5783
|
reactAriaComponents.TextField,
|
|
5779
5784
|
{
|
|
5780
5785
|
...props,
|
|
5781
|
-
className: (renderProps) =>
|
|
5786
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
5782
5787
|
"grid grid-cols-1 gap-1.5",
|
|
5783
5788
|
typeof className === "function" ? className(renderProps) : className
|
|
5784
5789
|
),
|
|
@@ -5789,7 +5794,7 @@ function Input({
|
|
|
5789
5794
|
{
|
|
5790
5795
|
...inputProps,
|
|
5791
5796
|
placeholder: placeholder ?? "",
|
|
5792
|
-
className:
|
|
5797
|
+
className: chunkNWGG5WFL_cjs.cn(styles4.box(), styles4.content(), inputClassName)
|
|
5793
5798
|
}
|
|
5794
5799
|
),
|
|
5795
5800
|
description ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Text, { slot: "description", className: fieldHintStyles, children: description }) : null,
|
|
@@ -5807,11 +5812,11 @@ function MenuPopover({ className, offset = 4, placement = "bottom start", ...pro
|
|
|
5807
5812
|
offset,
|
|
5808
5813
|
placement,
|
|
5809
5814
|
...props,
|
|
5810
|
-
className: (renderProps) =>
|
|
5815
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
5811
5816
|
"min-w-[200px] p-1 bg-surface border border-rule rounded-md",
|
|
5812
5817
|
"shadow-[var(--shadow-float)] outline-none z-[1200]",
|
|
5813
|
-
"entering:animate-
|
|
5814
|
-
"exiting:animate-
|
|
5818
|
+
"entering:animate-enter-zoom",
|
|
5819
|
+
"exiting:animate-exit-zoom",
|
|
5815
5820
|
typeof className === "function" ? className(renderProps) : className
|
|
5816
5821
|
)
|
|
5817
5822
|
}
|
|
@@ -5822,14 +5827,14 @@ function Menu({ className, ...props }) {
|
|
|
5822
5827
|
reactAriaComponents.Menu,
|
|
5823
5828
|
{
|
|
5824
5829
|
...props,
|
|
5825
|
-
className: (renderProps) =>
|
|
5830
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
5826
5831
|
"flex flex-col gap-px outline-none",
|
|
5827
5832
|
typeof className === "function" ? className(renderProps) : className
|
|
5828
5833
|
)
|
|
5829
5834
|
}
|
|
5830
5835
|
);
|
|
5831
5836
|
}
|
|
5832
|
-
var menuItemStyles =
|
|
5837
|
+
var menuItemStyles = chunkNWGG5WFL_cjs.cn(
|
|
5833
5838
|
"flex items-center gap-2.5 px-2.5 py-1.5 rounded-md cursor-pointer outline-none",
|
|
5834
5839
|
"font-sans text-[13px] text-ink-2 select-none",
|
|
5835
5840
|
"hover:bg-surface-2 hover:text-ink focus:bg-surface-2 focus:text-ink",
|
|
@@ -5843,7 +5848,7 @@ function MenuItem({ icon, hasSubmenu, children, className, ...props }) {
|
|
|
5843
5848
|
reactAriaComponents.MenuItem,
|
|
5844
5849
|
{
|
|
5845
5850
|
...props,
|
|
5846
|
-
className: (renderProps) =>
|
|
5851
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(menuItemStyles, typeof className === "function" ? className(renderProps) : className),
|
|
5847
5852
|
children: [
|
|
5848
5853
|
icon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex shrink-0 items-center", children: icon }) : null,
|
|
5849
5854
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 truncate", children }),
|
|
@@ -5865,7 +5870,7 @@ function NavSection({
|
|
|
5865
5870
|
"data-testid": dataTestid
|
|
5866
5871
|
}) {
|
|
5867
5872
|
const hasHead = label !== void 0 || count !== void 0 || action !== void 0;
|
|
5868
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
5873
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("mt-[18px] first:mt-1", className), "data-testid": dataTestid, children: [
|
|
5869
5874
|
hasHead ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between px-2 pt-1 pb-2", children: [
|
|
5870
5875
|
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", {}),
|
|
5871
5876
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
@@ -5920,7 +5925,7 @@ function NavItem({ icon, badge, isActive, className, children, ...props }) {
|
|
|
5920
5925
|
reactAriaComponents.Button,
|
|
5921
5926
|
{
|
|
5922
5927
|
...props,
|
|
5923
|
-
className: (renderProps) =>
|
|
5928
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
5924
5929
|
navItemStyles({ isActive, isNested }),
|
|
5925
5930
|
typeof className === "function" ? className(renderProps) : className
|
|
5926
5931
|
),
|
|
@@ -5929,7 +5934,7 @@ function NavItem({ icon, badge, isActive, className, children, ...props }) {
|
|
|
5929
5934
|
"span",
|
|
5930
5935
|
{
|
|
5931
5936
|
"aria-hidden": true,
|
|
5932
|
-
className:
|
|
5937
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
5933
5938
|
"grid place-items-center shrink-0 size-4",
|
|
5934
5939
|
isActive ? "text-accent" : "text-ink-3",
|
|
5935
5940
|
"[&>svg]:size-4"
|
|
@@ -5944,12 +5949,12 @@ function NavItem({ icon, badge, isActive, className, children, ...props }) {
|
|
|
5944
5949
|
);
|
|
5945
5950
|
}
|
|
5946
5951
|
function NavGroup({ icon, label, children, className, ...props }) {
|
|
5947
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(reactAriaComponents.Disclosure, { ...props, className:
|
|
5952
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(reactAriaComponents.Disclosure, { ...props, className: chunkNWGG5WFL_cjs.cn("group/nav-group my-px", className), children: [
|
|
5948
5953
|
/* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Heading, { className: "m-0", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5949
5954
|
reactAriaComponents.Button,
|
|
5950
5955
|
{
|
|
5951
5956
|
slot: "trigger",
|
|
5952
|
-
className:
|
|
5957
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
5953
5958
|
"flex w-full items-center gap-2.5",
|
|
5954
5959
|
"px-2 py-[7px] rounded-[7px]",
|
|
5955
5960
|
"text-[13.5px] tracking-[-0.005em] text-ink-2 text-left",
|
|
@@ -5993,7 +5998,7 @@ function NavGroup({ icon, label, children, className, ...props }) {
|
|
|
5993
5998
|
/* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.DisclosurePanel, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5994
5999
|
"div",
|
|
5995
6000
|
{
|
|
5996
|
-
className:
|
|
6001
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
5997
6002
|
"relative pl-[22px] py-px",
|
|
5998
6003
|
// Vertical guide rule — sits under where the parent's icon center
|
|
5999
6004
|
// would be (14px from the panel's left edge).
|
|
@@ -6017,7 +6022,7 @@ function Orb({ size = "sm", state = "solving", speed, theme, className, label })
|
|
|
6017
6022
|
size: design,
|
|
6018
6023
|
...speed !== void 0 ? { speed } : {},
|
|
6019
6024
|
...theme !== void 0 ? { theme } : {},
|
|
6020
|
-
className:
|
|
6025
|
+
className: chunkNWGG5WFL_cjs.cn("inline-block shrink-0", className),
|
|
6021
6026
|
...px !== design ? { style: { width: px, height: px } } : {},
|
|
6022
6027
|
...label ? { "aria-label": label } : { "aria-hidden": true }
|
|
6023
6028
|
}
|
|
@@ -6038,10 +6043,10 @@ var progressBarStyles = tailwindVariants.tv({
|
|
|
6038
6043
|
});
|
|
6039
6044
|
function ProgressBar({ size, className, ...props }) {
|
|
6040
6045
|
const { track, fill } = progressBarStyles({ size });
|
|
6041
|
-
return /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.ProgressBar, { ...props, className:
|
|
6046
|
+
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(
|
|
6042
6047
|
"div",
|
|
6043
6048
|
{
|
|
6044
|
-
className:
|
|
6049
|
+
className: chunkNWGG5WFL_cjs.cn(fill(), "transition-[width] duration-150"),
|
|
6045
6050
|
style: { width: `${percentage ?? 0}%` }
|
|
6046
6051
|
}
|
|
6047
6052
|
) }) });
|
|
@@ -6060,13 +6065,13 @@ function RadioGroup({
|
|
|
6060
6065
|
{
|
|
6061
6066
|
...props,
|
|
6062
6067
|
orientation,
|
|
6063
|
-
className: (renderProps) =>
|
|
6068
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn("grid gap-2", typeof className === "function" ? className(renderProps) : className),
|
|
6064
6069
|
children: [
|
|
6065
6070
|
label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
|
|
6066
6071
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6067
6072
|
"div",
|
|
6068
6073
|
{
|
|
6069
|
-
className:
|
|
6074
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6070
6075
|
orientation === "horizontal" ? "flex flex-wrap items-center gap-x-4 gap-y-2" : "grid gap-3"
|
|
6071
6076
|
),
|
|
6072
6077
|
children
|
|
@@ -6083,7 +6088,7 @@ function Radio({ children, className, ...props }) {
|
|
|
6083
6088
|
reactAriaComponents.Radio,
|
|
6084
6089
|
{
|
|
6085
6090
|
...props,
|
|
6086
|
-
className: (renderProps) =>
|
|
6091
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
6087
6092
|
// `relative` for the same reason as Checkbox / Switch: RAC's
|
|
6088
6093
|
// visually-hidden <input> is absolutely positioned and must resolve
|
|
6089
6094
|
// against this radio, not a far-away shell, or focusing it scrolls
|
|
@@ -6098,7 +6103,7 @@ function Radio({ children, className, ...props }) {
|
|
|
6098
6103
|
"span",
|
|
6099
6104
|
{
|
|
6100
6105
|
"aria-hidden": true,
|
|
6101
|
-
className:
|
|
6106
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6102
6107
|
"relative inline-flex items-center justify-center shrink-0",
|
|
6103
6108
|
"size-[18px] rounded-full border bg-surface border-ink-4",
|
|
6104
6109
|
"transition-[border-color,box-shadow] duration-150",
|
|
@@ -6109,7 +6114,7 @@ function Radio({ children, className, ...props }) {
|
|
|
6109
6114
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6110
6115
|
"span",
|
|
6111
6116
|
{
|
|
6112
|
-
className:
|
|
6117
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6113
6118
|
"block size-[10px] rounded-full bg-accent",
|
|
6114
6119
|
"transition-opacity duration-150 opacity-0",
|
|
6115
6120
|
"group-data-[selected]:opacity-100"
|
|
@@ -6153,7 +6158,7 @@ function AttributePicker({
|
|
|
6153
6158
|
autoFocus,
|
|
6154
6159
|
size,
|
|
6155
6160
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
6156
|
-
className:
|
|
6161
|
+
className: chunkNWGG5WFL_cjs.cn("w-full", className)
|
|
6157
6162
|
}
|
|
6158
6163
|
);
|
|
6159
6164
|
}
|
|
@@ -6422,7 +6427,7 @@ function ChipItem({
|
|
|
6422
6427
|
}
|
|
6423
6428
|
);
|
|
6424
6429
|
}
|
|
6425
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
6430
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("font-mono text-[12px] text-ink max-w-[10rem] truncate"), children: formatValue(field, operator, value) });
|
|
6426
6431
|
}
|
|
6427
6432
|
function Em({ children }) {
|
|
6428
6433
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-[12px] text-ink-4", children });
|
|
@@ -6459,53 +6464,62 @@ var segmentedControlStyles = tailwindVariants.tv({
|
|
|
6459
6464
|
// stretching parent (e.g. a `flex flex-col` card body, whose default
|
|
6460
6465
|
// align-items:stretch would otherwise pull it to full width). Consumers
|
|
6461
6466
|
// can still opt into full width by passing `w-full` via className.
|
|
6462
|
-
group: "inline-flex w-fit
|
|
6467
|
+
group: "inline-flex w-fit gap-px p-0.5 rounded-chip bg-surface-2 border border-rule",
|
|
6463
6468
|
segment: [
|
|
6464
|
-
"inline-flex items-center justify-center cursor-pointer",
|
|
6465
|
-
"font-
|
|
6466
|
-
"transition-[background-color,color] duration-150",
|
|
6467
|
-
|
|
6468
|
-
|
|
6469
|
+
"inline-flex items-center justify-center gap-1 cursor-pointer select-none",
|
|
6470
|
+
"font-sans font-medium tracking-[-0.005em] rounded-sm outline-none text-ink-3",
|
|
6471
|
+
"transition-[background-color,color,box-shadow] duration-150",
|
|
6472
|
+
// Unselected: hover/press tint into the track colour. `selected` is
|
|
6473
|
+
// declared after `hovered` in styles.css, so the pill wins over these.
|
|
6474
|
+
"hovered:text-ink hovered:bg-[color-mix(in_oklab,var(--color-ink)_6%,var(--color-surface-2))]",
|
|
6475
|
+
"pressed:bg-[color-mix(in_oklab,var(--color-ink)_10%,var(--color-surface-2))]",
|
|
6476
|
+
// Selected: lifted white pill, static.
|
|
6477
|
+
"selected:bg-surface selected:text-ink selected:shadow-[var(--shadow-rest)]",
|
|
6469
6478
|
"data-[focus-visible]:shadow-[var(--shadow-focus)]",
|
|
6479
|
+
"selected:data-[focus-visible]:shadow-[var(--shadow-focus),var(--shadow-rest)]",
|
|
6470
6480
|
"data-[disabled]:opacity-45 data-[disabled]:cursor-not-allowed"
|
|
6471
6481
|
]
|
|
6472
6482
|
},
|
|
6473
6483
|
variants: {
|
|
6474
6484
|
size: {
|
|
6475
|
-
sm: { segment: "px-2 py-0.5 text-[
|
|
6476
|
-
md: { segment: "px-2.5 py-1 text-[
|
|
6485
|
+
sm: { segment: "px-2 py-0.5 text-[11.5px] min-h-[22px]" },
|
|
6486
|
+
md: { segment: "px-2.5 py-1 text-[12.5px] min-h-[26px]" }
|
|
6477
6487
|
},
|
|
6478
|
-
|
|
6479
|
-
|
|
6480
|
-
|
|
6488
|
+
// Dense flow-wrapping register (designer inspector): the group becomes a
|
|
6489
|
+
// wrapping flex row and every segment grows to share the line.
|
|
6490
|
+
wrap: {
|
|
6491
|
+
true: { group: "flex flex-wrap w-auto", segment: "flex-1 min-w-7 px-1.5" },
|
|
6492
|
+
false: {}
|
|
6481
6493
|
}
|
|
6482
6494
|
},
|
|
6483
|
-
defaultVariants: { size: "sm",
|
|
6495
|
+
defaultVariants: { size: "sm", wrap: false }
|
|
6484
6496
|
});
|
|
6485
6497
|
function SegmentedControl({
|
|
6486
6498
|
options,
|
|
6487
6499
|
value,
|
|
6488
6500
|
onChange,
|
|
6489
6501
|
size,
|
|
6502
|
+
wrap = false,
|
|
6490
6503
|
autoFocus = false,
|
|
6491
6504
|
className,
|
|
6492
6505
|
orientation = "horizontal",
|
|
6493
6506
|
...props
|
|
6494
6507
|
}) {
|
|
6495
|
-
const styles4 = segmentedControlStyles({ size });
|
|
6508
|
+
const styles4 = segmentedControlStyles({ size, wrap });
|
|
6496
6509
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6497
6510
|
reactAriaComponents.RadioGroup,
|
|
6498
6511
|
{
|
|
6499
6512
|
...props,
|
|
6500
6513
|
orientation,
|
|
6501
|
-
value: String(value),
|
|
6514
|
+
value: value === null ? null : String(value),
|
|
6502
6515
|
onChange: (next) => onChange(next),
|
|
6503
|
-
className:
|
|
6516
|
+
className: chunkNWGG5WFL_cjs.cn(styles4.group(), className),
|
|
6504
6517
|
children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
6505
6518
|
reactAriaComponents.Radio,
|
|
6506
6519
|
{
|
|
6507
6520
|
value: String(option.id),
|
|
6508
6521
|
...option.isDisabled ? { isDisabled: true } : {},
|
|
6522
|
+
...option["aria-label"] !== void 0 ? { "aria-label": option["aria-label"] } : {},
|
|
6509
6523
|
...autoFocus && option.id === value ? { autoFocus: true } : {},
|
|
6510
6524
|
className: styles4.segment(),
|
|
6511
6525
|
children: option.label
|
|
@@ -6574,14 +6588,14 @@ function TagInput({
|
|
|
6574
6588
|
onChange(value.slice(0, -1));
|
|
6575
6589
|
}
|
|
6576
6590
|
};
|
|
6577
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
6591
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("grid grid-cols-1 gap-1.5", className), children: [
|
|
6578
6592
|
label ? /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: inputId, className: fieldLabelStyles, children: label }) : null,
|
|
6579
6593
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6580
6594
|
"div",
|
|
6581
6595
|
{
|
|
6582
6596
|
"data-invalid": isInvalid || void 0,
|
|
6583
6597
|
"data-disabled": isDisabled || void 0,
|
|
6584
|
-
className:
|
|
6598
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6585
6599
|
styles4.box(),
|
|
6586
6600
|
"flex",
|
|
6587
6601
|
// Cell editor: one table row (29px under a 32px row) while the chips
|
|
@@ -6595,7 +6609,7 @@ function TagInput({
|
|
|
6595
6609
|
"div",
|
|
6596
6610
|
{
|
|
6597
6611
|
ref: chipsRef,
|
|
6598
|
-
className:
|
|
6612
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6599
6613
|
"flex flex-1 flex-wrap items-center gap-1.5 min-w-0",
|
|
6600
6614
|
isCell && (hasWrapped ? "content-start overflow-y-auto" : "content-center overflow-hidden")
|
|
6601
6615
|
),
|
|
@@ -6634,7 +6648,7 @@ function TagInput({
|
|
|
6634
6648
|
onBlur: commit,
|
|
6635
6649
|
disabled: isDisabled,
|
|
6636
6650
|
placeholder: value.length === 0 ? placeholder : "",
|
|
6637
|
-
className:
|
|
6651
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6638
6652
|
"flex-1 min-w-[6rem] bg-transparent outline-none",
|
|
6639
6653
|
"font-sans text-ink placeholder:text-ink-4",
|
|
6640
6654
|
fieldTextStyles[size],
|
|
@@ -6767,7 +6781,7 @@ function FilterValueInput({
|
|
|
6767
6781
|
onChange: (next) => onChange(next ? next.toString() : ""),
|
|
6768
6782
|
autoFocus,
|
|
6769
6783
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
6770
|
-
className:
|
|
6784
|
+
className: chunkNWGG5WFL_cjs.cn("w-full", className)
|
|
6771
6785
|
}
|
|
6772
6786
|
);
|
|
6773
6787
|
}
|
|
@@ -6784,7 +6798,7 @@ function FilterValueInput({
|
|
|
6784
6798
|
...autoFocus ? { autoFocus: true } : {}
|
|
6785
6799
|
},
|
|
6786
6800
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
6787
|
-
className:
|
|
6801
|
+
className: chunkNWGG5WFL_cjs.cn("w-full", className)
|
|
6788
6802
|
}
|
|
6789
6803
|
);
|
|
6790
6804
|
})();
|
|
@@ -6824,7 +6838,7 @@ function EnumSingleValue({
|
|
|
6824
6838
|
},
|
|
6825
6839
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
6826
6840
|
...autoFocus ? { autoFocus: true } : {},
|
|
6827
|
-
className:
|
|
6841
|
+
className: chunkNWGG5WFL_cjs.cn("w-full", className)
|
|
6828
6842
|
}
|
|
6829
6843
|
);
|
|
6830
6844
|
}
|
|
@@ -6853,7 +6867,7 @@ function EnumMultiValue({
|
|
|
6853
6867
|
placeholder: "Select values\u2026",
|
|
6854
6868
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
6855
6869
|
...autoFocus ? { autoFocus: true } : {},
|
|
6856
|
-
className:
|
|
6870
|
+
className: chunkNWGG5WFL_cjs.cn("w-full", className)
|
|
6857
6871
|
}
|
|
6858
6872
|
);
|
|
6859
6873
|
}
|
|
@@ -6911,7 +6925,7 @@ function OperatorPicker({
|
|
|
6911
6925
|
size,
|
|
6912
6926
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
6913
6927
|
...autoFocus ? { autoFocus: true } : {},
|
|
6914
|
-
className:
|
|
6928
|
+
className: chunkNWGG5WFL_cjs.cn("w-full", className),
|
|
6915
6929
|
triggerClassName: "min-w-0"
|
|
6916
6930
|
}
|
|
6917
6931
|
);
|
|
@@ -6941,7 +6955,7 @@ function FilterRow({
|
|
|
6941
6955
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6942
6956
|
"div",
|
|
6943
6957
|
{
|
|
6944
|
-
className:
|
|
6958
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6945
6959
|
"group flex items-center gap-2 px-1.5 py-1 rounded-sm",
|
|
6946
6960
|
"hover:bg-[color-mix(in_oklab,var(--color-surface-2)_50%,var(--color-surface))]"
|
|
6947
6961
|
),
|
|
@@ -6949,7 +6963,7 @@ function FilterRow({
|
|
|
6949
6963
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-12 shrink-0 inline-flex justify-end pr-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6950
6964
|
"span",
|
|
6951
6965
|
{
|
|
6952
|
-
className:
|
|
6966
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6953
6967
|
"font-mono text-[10.5px] tracking-[0.08em]",
|
|
6954
6968
|
index === 0 ? "text-ink-4" : "text-accent-ink"
|
|
6955
6969
|
),
|
|
@@ -7017,7 +7031,7 @@ function FilterRow({
|
|
|
7017
7031
|
onClick: onWrap,
|
|
7018
7032
|
"aria-label": "Wrap in group",
|
|
7019
7033
|
title: "Wrap in a group with the opposite operator",
|
|
7020
|
-
className:
|
|
7034
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7021
7035
|
"shrink-0 size-6 inline-flex items-center justify-center rounded-sm",
|
|
7022
7036
|
"text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
|
|
7023
7037
|
"opacity-0 group-hover:opacity-100 focus-visible:opacity-100"
|
|
@@ -7044,7 +7058,7 @@ function FilterRow({
|
|
|
7044
7058
|
type: "button",
|
|
7045
7059
|
onClick: onRemove,
|
|
7046
7060
|
"aria-label": field ? "Remove filter" : "Cancel",
|
|
7047
|
-
className:
|
|
7061
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7048
7062
|
"shrink-0 size-6 inline-flex items-center justify-center rounded-sm",
|
|
7049
7063
|
"text-ink-4 hover:text-danger hover:bg-surface-2 cursor-pointer outline-none",
|
|
7050
7064
|
field ? "opacity-0 group-hover:opacity-100 focus-visible:opacity-100" : "opacity-100"
|
|
@@ -7173,7 +7187,7 @@ function GroupAddControls({
|
|
|
7173
7187
|
{
|
|
7174
7188
|
type: "button",
|
|
7175
7189
|
onClick: onAddFilter,
|
|
7176
|
-
className:
|
|
7190
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7177
7191
|
"inline-flex items-center gap-1.5 px-2 py-1 rounded-sm",
|
|
7178
7192
|
"text-ink-2 hover:bg-surface-2 hover:text-ink cursor-pointer outline-none"
|
|
7179
7193
|
),
|
|
@@ -7201,7 +7215,7 @@ function GroupAddControls({
|
|
|
7201
7215
|
type: "button",
|
|
7202
7216
|
onClick: onAddGroup,
|
|
7203
7217
|
title: "Add a nested group with its own logical operator",
|
|
7204
|
-
className:
|
|
7218
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7205
7219
|
"inline-flex items-center gap-1.5 px-2 py-1 rounded-sm",
|
|
7206
7220
|
"text-ink-2 hover:bg-surface-2 hover:text-ink cursor-pointer outline-none"
|
|
7207
7221
|
),
|
|
@@ -7247,7 +7261,7 @@ function NestedGroup({
|
|
|
7247
7261
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-12 shrink-0 inline-flex justify-end pr-1 pt-2", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7248
7262
|
"span",
|
|
7249
7263
|
{
|
|
7250
|
-
className:
|
|
7264
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7251
7265
|
"font-mono text-[10.5px] tracking-[0.08em]",
|
|
7252
7266
|
index === 0 ? "text-ink-4" : "text-accent-ink"
|
|
7253
7267
|
),
|
|
@@ -7257,7 +7271,7 @@ function NestedGroup({
|
|
|
7257
7271
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7258
7272
|
"div",
|
|
7259
7273
|
{
|
|
7260
|
-
className:
|
|
7274
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7261
7275
|
"flex-1 min-w-0 rounded-sm border border-rule",
|
|
7262
7276
|
"bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]"
|
|
7263
7277
|
),
|
|
@@ -7270,8 +7284,8 @@ function NestedGroup({
|
|
|
7270
7284
|
{
|
|
7271
7285
|
"aria-label": "Group joiner",
|
|
7272
7286
|
options: [
|
|
7273
|
-
{ id: "and", label: "
|
|
7274
|
-
{ id: "or", label: "
|
|
7287
|
+
{ id: "and", label: "and" },
|
|
7288
|
+
{ id: "or", label: "or" }
|
|
7275
7289
|
],
|
|
7276
7290
|
value: group.logicalOperator,
|
|
7277
7291
|
onChange: (next) => onChange({ ...group, logicalOperator: next })
|
|
@@ -7284,7 +7298,7 @@ function NestedGroup({
|
|
|
7284
7298
|
type: "button",
|
|
7285
7299
|
onClick: onRemove,
|
|
7286
7300
|
"aria-label": "Remove group",
|
|
7287
|
-
className:
|
|
7301
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7288
7302
|
"size-6 inline-flex items-center justify-center rounded-sm",
|
|
7289
7303
|
"text-ink-4 hover:text-danger hover:bg-surface cursor-pointer outline-none"
|
|
7290
7304
|
),
|
|
@@ -7507,8 +7521,8 @@ function RecordFilterBuilderPanel({
|
|
|
7507
7521
|
{
|
|
7508
7522
|
"aria-label": "Joiner",
|
|
7509
7523
|
options: [
|
|
7510
|
-
{ id: "and", label: "
|
|
7511
|
-
{ id: "or", label: "
|
|
7524
|
+
{ id: "and", label: "and" },
|
|
7525
|
+
{ id: "or", label: "or" }
|
|
7512
7526
|
],
|
|
7513
7527
|
value: filter.logicalOperator,
|
|
7514
7528
|
onChange: setJoiner2
|
|
@@ -7527,7 +7541,7 @@ function RecordFilterBuilderPanel({
|
|
|
7527
7541
|
type: "button",
|
|
7528
7542
|
onClick: onExpand,
|
|
7529
7543
|
title: "Show filter chips inline above the table",
|
|
7530
|
-
className:
|
|
7544
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7531
7545
|
"inline-flex items-center gap-1 px-2 py-1 rounded-sm",
|
|
7532
7546
|
"font-mono text-[11.5px] text-ink-3 hover:text-ink hover:bg-surface-2",
|
|
7533
7547
|
"cursor-pointer outline-none"
|
|
@@ -7557,7 +7571,7 @@ function RecordFilterBuilderPanel({
|
|
|
7557
7571
|
type: "button",
|
|
7558
7572
|
onClick: onClose,
|
|
7559
7573
|
"aria-label": "Close",
|
|
7560
|
-
className:
|
|
7574
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7561
7575
|
"size-6 inline-flex items-center justify-center rounded-sm",
|
|
7562
7576
|
"text-ink-3 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none"
|
|
7563
7577
|
),
|
|
@@ -7592,7 +7606,7 @@ function RecordFilterBuilderPanel({
|
|
|
7592
7606
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7593
7607
|
"div",
|
|
7594
7608
|
{
|
|
7595
|
-
className:
|
|
7609
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7596
7610
|
"flex items-center justify-between px-3.5 py-2.5 border-t border-rule rounded-b-md",
|
|
7597
7611
|
"bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]"
|
|
7598
7612
|
),
|
|
@@ -7603,7 +7617,7 @@ function RecordFilterBuilderPanel({
|
|
|
7603
7617
|
type: "button",
|
|
7604
7618
|
onClick: clearAll,
|
|
7605
7619
|
disabled: totalChildren === 0,
|
|
7606
|
-
className:
|
|
7620
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7607
7621
|
"font-mono text-[11.5px] text-ink-3 hover:text-ink",
|
|
7608
7622
|
"disabled:opacity-40 disabled:pointer-events-none",
|
|
7609
7623
|
"outline-none cursor-pointer"
|
|
@@ -7613,17 +7627,12 @@ function RecordFilterBuilderPanel({
|
|
|
7613
7627
|
),
|
|
7614
7628
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
7615
7629
|
onSaveView ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7616
|
-
|
|
7630
|
+
chunkNWGG5WFL_cjs.Button,
|
|
7617
7631
|
{
|
|
7618
|
-
|
|
7619
|
-
|
|
7620
|
-
|
|
7621
|
-
|
|
7622
|
-
"inline-flex items-center gap-1.5 px-2.5 py-1.5 rounded-sm",
|
|
7623
|
-
"font-sans text-[13px] text-ink-2 hover:bg-surface-2 hover:text-ink",
|
|
7624
|
-
"disabled:opacity-40 disabled:pointer-events-none",
|
|
7625
|
-
"outline-none cursor-pointer"
|
|
7626
|
-
),
|
|
7632
|
+
variant: "ghost",
|
|
7633
|
+
size: "sm",
|
|
7634
|
+
onPress: onSaveView,
|
|
7635
|
+
isDisabled: totalChildren === 0,
|
|
7627
7636
|
children: [
|
|
7628
7637
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7629
7638
|
"svg",
|
|
@@ -7646,19 +7655,7 @@ function RecordFilterBuilderPanel({
|
|
|
7646
7655
|
]
|
|
7647
7656
|
}
|
|
7648
7657
|
) : null,
|
|
7649
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7650
|
-
"button",
|
|
7651
|
-
{
|
|
7652
|
-
type: "button",
|
|
7653
|
-
onClick: onClose,
|
|
7654
|
-
className: chunkMWAXK66H_cjs.cn(
|
|
7655
|
-
"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-sm",
|
|
7656
|
-
"bg-ink text-surface font-mono text-[12px]",
|
|
7657
|
-
"hover:bg-accent-ink outline-none cursor-pointer"
|
|
7658
|
-
),
|
|
7659
|
-
children: "Done"
|
|
7660
|
-
}
|
|
7661
|
-
)
|
|
7658
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { variant: "cta", size: "sm", onPress: onClose, children: "Done" })
|
|
7662
7659
|
] })
|
|
7663
7660
|
]
|
|
7664
7661
|
}
|
|
@@ -7732,11 +7729,11 @@ function RecordFilterButton({
|
|
|
7732
7729
|
type: "button",
|
|
7733
7730
|
"data-filter-trigger": "collapsed",
|
|
7734
7731
|
onClick: () => setOpen((v) => !v),
|
|
7735
|
-
className:
|
|
7732
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7736
7733
|
"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md border",
|
|
7737
7734
|
"font-mono text-[12px] cursor-pointer outline-none",
|
|
7738
7735
|
"focus-visible:shadow-[var(--shadow-focus)]",
|
|
7739
|
-
hasFilters ?
|
|
7736
|
+
hasFilters ? chunkNWGG5WFL_cjs.cn(
|
|
7740
7737
|
"border-[color-mix(in_oklab,var(--color-accent)_35%,var(--color-rule))]",
|
|
7741
7738
|
"bg-[color-mix(in_oklab,var(--color-accent)_8%,var(--color-surface))]",
|
|
7742
7739
|
"text-accent-ink"
|
|
@@ -7835,7 +7832,7 @@ function RecordFilterChips({
|
|
|
7835
7832
|
logicalOperator: filter.logicalOperator === "and" ? "or" : "and"
|
|
7836
7833
|
}),
|
|
7837
7834
|
title: "Toggle joiner",
|
|
7838
|
-
className:
|
|
7835
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7839
7836
|
"inline-flex items-center px-1.5 py-0.5 rounded-sm border border-dashed border-rule",
|
|
7840
7837
|
"font-mono text-[10.5px] tracking-[0.08em] text-ink-3",
|
|
7841
7838
|
"hover:text-ink hover:border-ink-4 cursor-pointer outline-none"
|
|
@@ -7908,7 +7905,7 @@ function RecordFilterChips({
|
|
|
7908
7905
|
elements: elements.filter((_, idx) => idx !== i)
|
|
7909
7906
|
});
|
|
7910
7907
|
},
|
|
7911
|
-
className:
|
|
7908
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7912
7909
|
"size-5 inline-flex items-center justify-center rounded-[3px]",
|
|
7913
7910
|
"text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none"
|
|
7914
7911
|
),
|
|
@@ -7953,7 +7950,7 @@ function GroupPill({ group }) {
|
|
|
7953
7950
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7954
7951
|
"span",
|
|
7955
7952
|
{
|
|
7956
|
-
className:
|
|
7953
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7957
7954
|
"inline-flex items-center gap-1.5 px-2 py-1 rounded-sm border border-dashed border-rule",
|
|
7958
7955
|
"bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]"
|
|
7959
7956
|
),
|
|
@@ -7991,7 +7988,7 @@ function CollapseToggle({ onClick }) {
|
|
|
7991
7988
|
{
|
|
7992
7989
|
type: "button",
|
|
7993
7990
|
onClick,
|
|
7994
|
-
className:
|
|
7991
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7995
7992
|
"inline-flex items-center gap-1",
|
|
7996
7993
|
"font-mono text-[11px] uppercase tracking-[0.08em]",
|
|
7997
7994
|
"text-ink-3 hover:text-ink cursor-pointer outline-none"
|
|
@@ -8051,7 +8048,7 @@ function Chip2({
|
|
|
8051
8048
|
setEditing((v) => !v);
|
|
8052
8049
|
}
|
|
8053
8050
|
},
|
|
8054
|
-
className:
|
|
8051
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8055
8052
|
"group inline-flex items-center gap-1.5 pl-2 pr-1 py-1 rounded-sm border cursor-pointer",
|
|
8056
8053
|
editing ? "border-accent shadow-[var(--shadow-focus)] bg-surface" : "border-rule bg-surface hover:border-ink-4"
|
|
8057
8054
|
),
|
|
@@ -8084,7 +8081,7 @@ function Chip2({
|
|
|
8084
8081
|
onRemove();
|
|
8085
8082
|
if (editing) setEditing(false);
|
|
8086
8083
|
},
|
|
8087
|
-
className:
|
|
8084
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8088
8085
|
"ml-0.5 size-4 inline-flex items-center justify-center rounded-[3px]",
|
|
8089
8086
|
"text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none"
|
|
8090
8087
|
),
|
|
@@ -8165,19 +8162,7 @@ function ChipMiniEditor({
|
|
|
8165
8162
|
onChange: onChangeValue
|
|
8166
8163
|
}
|
|
8167
8164
|
) }),
|
|
8168
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8169
|
-
"button",
|
|
8170
|
-
{
|
|
8171
|
-
type: "submit",
|
|
8172
|
-
className: chunkMWAXK66H_cjs.cn(
|
|
8173
|
-
"shrink-0 inline-flex items-center px-2.5 py-1.5 rounded-md",
|
|
8174
|
-
"bg-ink text-surface font-mono text-[12px]",
|
|
8175
|
-
"hover:bg-accent-ink cursor-pointer outline-none",
|
|
8176
|
-
"focus-visible:shadow-[var(--shadow-focus)]"
|
|
8177
|
-
),
|
|
8178
|
-
children: "Save"
|
|
8179
|
-
}
|
|
8180
|
-
)
|
|
8165
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { type: "submit", variant: "cta", size: "sm", className: "shrink-0", children: "Save" })
|
|
8181
8166
|
]
|
|
8182
8167
|
}
|
|
8183
8168
|
);
|
|
@@ -8189,7 +8174,7 @@ function InlineAddFilter({ onClick }) {
|
|
|
8189
8174
|
type: "button",
|
|
8190
8175
|
"data-filter-trigger": "expanded",
|
|
8191
8176
|
onClick,
|
|
8192
|
-
className:
|
|
8177
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8193
8178
|
"inline-flex items-center gap-1 px-2 py-1 rounded-sm",
|
|
8194
8179
|
"text-ink-3 hover:bg-surface-2 hover:text-ink cursor-pointer outline-none"
|
|
8195
8180
|
),
|
|
@@ -8240,7 +8225,7 @@ function Separator({
|
|
|
8240
8225
|
{
|
|
8241
8226
|
...props,
|
|
8242
8227
|
orientation,
|
|
8243
|
-
className:
|
|
8228
|
+
className: chunkNWGG5WFL_cjs.cn(separatorStyles({ orientation, variant }), className)
|
|
8244
8229
|
}
|
|
8245
8230
|
);
|
|
8246
8231
|
}
|
|
@@ -8249,7 +8234,7 @@ function SuccessAnimation({ className }) {
|
|
|
8249
8234
|
"div",
|
|
8250
8235
|
{
|
|
8251
8236
|
"aria-hidden": true,
|
|
8252
|
-
className:
|
|
8237
|
+
className: chunkNWGG5WFL_cjs.cn("size-24 text-success motion-safe:animate-status-pop", className),
|
|
8253
8238
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleCheck, { className: "size-full", strokeWidth: 1.5 })
|
|
8254
8239
|
}
|
|
8255
8240
|
);
|
|
@@ -8259,7 +8244,7 @@ function Switch({ children, labelPlacement = "end", className, ...props }) {
|
|
|
8259
8244
|
reactAriaComponents.Switch,
|
|
8260
8245
|
{
|
|
8261
8246
|
...props,
|
|
8262
|
-
className: (renderProps) =>
|
|
8247
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
8263
8248
|
// `relative`: RAC's visually-hidden <input> is absolutely positioned;
|
|
8264
8249
|
// without a positioned label it escapes an overflow-auto ancestor and
|
|
8265
8250
|
// its containing block becomes the page shell, so focusing it (any
|
|
@@ -8275,7 +8260,7 @@ function Switch({ children, labelPlacement = "end", className, ...props }) {
|
|
|
8275
8260
|
"span",
|
|
8276
8261
|
{
|
|
8277
8262
|
"aria-hidden": true,
|
|
8278
|
-
className:
|
|
8263
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8279
8264
|
"relative inline-block shrink-0",
|
|
8280
8265
|
"w-[38px] h-[22px] rounded-pill border",
|
|
8281
8266
|
"bg-surface-3 border-rule",
|
|
@@ -8286,7 +8271,7 @@ function Switch({ children, labelPlacement = "end", className, ...props }) {
|
|
|
8286
8271
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8287
8272
|
"span",
|
|
8288
8273
|
{
|
|
8289
|
-
className:
|
|
8274
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8290
8275
|
"absolute top-[1px] left-[1px]",
|
|
8291
8276
|
"block size-[18px] rounded-full bg-surface",
|
|
8292
8277
|
"transition-transform duration-200",
|
|
@@ -8336,7 +8321,7 @@ function Root({ size, className, children, ...props }) {
|
|
|
8336
8321
|
reactAriaComponents.Tabs,
|
|
8337
8322
|
{
|
|
8338
8323
|
...props,
|
|
8339
|
-
className: (rp) =>
|
|
8324
|
+
className: (rp) => chunkNWGG5WFL_cjs.cn(styles4.root(), typeof className === "function" ? className(rp) : className),
|
|
8340
8325
|
children
|
|
8341
8326
|
}
|
|
8342
8327
|
);
|
|
@@ -8347,7 +8332,7 @@ function List({ size, className, children, ...props }) {
|
|
|
8347
8332
|
reactAriaComponents.TabList,
|
|
8348
8333
|
{
|
|
8349
8334
|
...props,
|
|
8350
|
-
className: (rp) =>
|
|
8335
|
+
className: (rp) => chunkNWGG5WFL_cjs.cn(styles4.list(), typeof className === "function" ? className(rp) : className),
|
|
8351
8336
|
children
|
|
8352
8337
|
}
|
|
8353
8338
|
);
|
|
@@ -8358,7 +8343,7 @@ function Trigger({ size, className, children, ...props }) {
|
|
|
8358
8343
|
reactAriaComponents.Tab,
|
|
8359
8344
|
{
|
|
8360
8345
|
...props,
|
|
8361
|
-
className: (rp) =>
|
|
8346
|
+
className: (rp) => chunkNWGG5WFL_cjs.cn(styles4.trigger(), typeof className === "function" ? className(rp) : className),
|
|
8362
8347
|
children
|
|
8363
8348
|
}
|
|
8364
8349
|
);
|
|
@@ -8369,7 +8354,7 @@ function Panel({ className, children, ...props }) {
|
|
|
8369
8354
|
reactAriaComponents.TabPanel,
|
|
8370
8355
|
{
|
|
8371
8356
|
...props,
|
|
8372
|
-
className: (rp) =>
|
|
8357
|
+
className: (rp) => chunkNWGG5WFL_cjs.cn(styles4.panel(), typeof className === "function" ? className(rp) : className),
|
|
8373
8358
|
children
|
|
8374
8359
|
}
|
|
8375
8360
|
);
|
|
@@ -8398,7 +8383,7 @@ function Textarea({
|
|
|
8398
8383
|
reactAriaComponents.TextField,
|
|
8399
8384
|
{
|
|
8400
8385
|
...props,
|
|
8401
|
-
className: (renderProps) =>
|
|
8386
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
8402
8387
|
"grid grid-cols-1 gap-1.5",
|
|
8403
8388
|
typeof className === "function" ? className(renderProps) : className
|
|
8404
8389
|
),
|
|
@@ -8410,7 +8395,7 @@ function Textarea({
|
|
|
8410
8395
|
...textareaProps,
|
|
8411
8396
|
rows,
|
|
8412
8397
|
placeholder: placeholder ?? "",
|
|
8413
|
-
className:
|
|
8398
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8414
8399
|
// Same hairline chrome as Input, but allow vertical resize and set a
|
|
8415
8400
|
// sensible minimum height so short content doesn't collapse.
|
|
8416
8401
|
styles4.box(),
|
|
@@ -8441,7 +8426,7 @@ function TimeField({
|
|
|
8441
8426
|
reactAriaComponents.TimeField,
|
|
8442
8427
|
{
|
|
8443
8428
|
...props,
|
|
8444
|
-
className: (renderProps) =>
|
|
8429
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
8445
8430
|
"grid grid-cols-1 gap-1.5",
|
|
8446
8431
|
typeof className === "function" ? className(renderProps) : className
|
|
8447
8432
|
),
|
|
@@ -8450,7 +8435,7 @@ function TimeField({
|
|
|
8450
8435
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8451
8436
|
reactAriaComponents.DateInput,
|
|
8452
8437
|
{
|
|
8453
|
-
className:
|
|
8438
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8454
8439
|
styles4.box(),
|
|
8455
8440
|
styles4.content(),
|
|
8456
8441
|
"flex items-center min-w-0 text-ink",
|
|
@@ -8463,12 +8448,12 @@ function TimeField({
|
|
|
8463
8448
|
reactAriaComponents.DateSegment,
|
|
8464
8449
|
{
|
|
8465
8450
|
segment,
|
|
8466
|
-
className:
|
|
8451
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8467
8452
|
"px-px tabular-nums outline-none select-none",
|
|
8468
8453
|
"data-[placeholder]:text-ink-4",
|
|
8469
8454
|
"data-[type=literal]:text-ink-4",
|
|
8470
8455
|
// segment focus treatment: indigo fill, paper text
|
|
8471
|
-
"data-[focused]:bg-accent data-[focused]:text-
|
|
8456
|
+
"data-[focused]:bg-accent data-[focused]:text-tile-fg data-[focused]:rounded-[3px]",
|
|
8472
8457
|
"data-[disabled]:cursor-not-allowed"
|
|
8473
8458
|
)
|
|
8474
8459
|
}
|
|
@@ -8491,8 +8476,8 @@ var toastStyles = tailwindVariants.tv({
|
|
|
8491
8476
|
"rounded-lg border border-rule bg-surface shadow-float",
|
|
8492
8477
|
"px-3.5 py-3 outline-none",
|
|
8493
8478
|
"focus-visible:shadow-focus",
|
|
8494
|
-
"entering:animate-
|
|
8495
|
-
"exiting:animate-
|
|
8479
|
+
"entering:animate-enter-slide-up",
|
|
8480
|
+
"exiting:animate-exit-fade"
|
|
8496
8481
|
],
|
|
8497
8482
|
icon: "size-4 shrink-0 mt-0.5",
|
|
8498
8483
|
title: "font-sans text-[13px] font-medium leading-[1.4] text-ink",
|
|
@@ -8517,7 +8502,7 @@ function ToastRegion({ queue, className }) {
|
|
|
8517
8502
|
reactAriaComponents.UNSTABLE_ToastRegion,
|
|
8518
8503
|
{
|
|
8519
8504
|
queue,
|
|
8520
|
-
className:
|
|
8505
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8521
8506
|
"fixed bottom-4 right-4 z-[1300] flex flex-col-reverse gap-2 outline-none",
|
|
8522
8507
|
className
|
|
8523
8508
|
),
|
|
@@ -8536,7 +8521,7 @@ function ToastRegion({ queue, className }) {
|
|
|
8536
8521
|
{
|
|
8537
8522
|
slot: "close",
|
|
8538
8523
|
"aria-label": "Dismiss",
|
|
8539
|
-
className:
|
|
8524
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8540
8525
|
"shrink-0 inline-flex items-center justify-center size-6 rounded-md",
|
|
8541
8526
|
"text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
|
|
8542
8527
|
"focus-visible:shadow-focus"
|
|
@@ -8552,23 +8537,23 @@ function ToastRegion({ queue, className }) {
|
|
|
8552
8537
|
|
|
8553
8538
|
Object.defineProperty(exports, "Button", {
|
|
8554
8539
|
enumerable: true,
|
|
8555
|
-
get: function () { return
|
|
8540
|
+
get: function () { return chunkNWGG5WFL_cjs.Button; }
|
|
8556
8541
|
});
|
|
8557
8542
|
Object.defineProperty(exports, "Skeleton", {
|
|
8558
8543
|
enumerable: true,
|
|
8559
|
-
get: function () { return
|
|
8544
|
+
get: function () { return chunkNWGG5WFL_cjs.Skeleton; }
|
|
8560
8545
|
});
|
|
8561
8546
|
Object.defineProperty(exports, "buttonStyles", {
|
|
8562
8547
|
enumerable: true,
|
|
8563
|
-
get: function () { return
|
|
8548
|
+
get: function () { return chunkNWGG5WFL_cjs.buttonStyles; }
|
|
8564
8549
|
});
|
|
8565
8550
|
Object.defineProperty(exports, "cn", {
|
|
8566
8551
|
enumerable: true,
|
|
8567
|
-
get: function () { return
|
|
8552
|
+
get: function () { return chunkNWGG5WFL_cjs.cn; }
|
|
8568
8553
|
});
|
|
8569
8554
|
Object.defineProperty(exports, "skeletonStyles", {
|
|
8570
8555
|
enumerable: true,
|
|
8571
|
-
get: function () { return
|
|
8556
|
+
get: function () { return chunkNWGG5WFL_cjs.skeletonStyles; }
|
|
8572
8557
|
});
|
|
8573
8558
|
exports.ATTRIBUTE_TYPES = ATTRIBUTE_TYPES;
|
|
8574
8559
|
exports.ATTRIBUTE_TYPE_ICONS = ATTRIBUTE_TYPE_ICONS;
|