@proteos/ui 0.56.0 → 0.57.1
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 +346 -352
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +49 -13
- package/dist/index.d.ts +49 -13
- package/dist/index.js +93 -99
- 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.test.tsx +9 -0
- package/src/components/modal/modal.tsx +17 -5
- 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),
|
|
@@ -2520,7 +2525,9 @@ function ModalContent({
|
|
|
2520
2525
|
children,
|
|
2521
2526
|
className,
|
|
2522
2527
|
modalClassName,
|
|
2528
|
+
dialogClassName,
|
|
2523
2529
|
isDismissable = true,
|
|
2530
|
+
"aria-label": ariaLabel,
|
|
2524
2531
|
...props
|
|
2525
2532
|
}) {
|
|
2526
2533
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2528,18 +2535,18 @@ function ModalContent({
|
|
|
2528
2535
|
{
|
|
2529
2536
|
isDismissable,
|
|
2530
2537
|
...props,
|
|
2531
|
-
className: (renderProps) =>
|
|
2538
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
2532
2539
|
"fixed inset-0 z-50 flex items-center justify-center p-4",
|
|
2533
2540
|
// Warm ink scrim — stays in the Proteos palette (no pure black).
|
|
2534
2541
|
"bg-[color-mix(in_oklab,var(--color-ink)_40%,transparent)]",
|
|
2535
|
-
"entering:animate-
|
|
2536
|
-
"exiting:animate-
|
|
2542
|
+
"entering:animate-enter-fade",
|
|
2543
|
+
"exiting:animate-exit-fade",
|
|
2537
2544
|
typeof className === "function" ? className(renderProps) : className
|
|
2538
2545
|
),
|
|
2539
2546
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2540
2547
|
reactAriaComponents.Modal,
|
|
2541
2548
|
{
|
|
2542
|
-
className:
|
|
2549
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2543
2550
|
"w-full max-w-lg",
|
|
2544
2551
|
// Cap the panel at the viewport (minus the overlay's p-4) and lay it
|
|
2545
2552
|
// out as a column so a tall body scrolls instead of overflowing the
|
|
@@ -2547,18 +2554,25 @@ function ModalContent({
|
|
|
2547
2554
|
"flex flex-col max-h-[calc(100dvh-2rem)]",
|
|
2548
2555
|
"bg-surface border border-rule rounded-lg",
|
|
2549
2556
|
"shadow-[var(--shadow-float)]",
|
|
2550
|
-
"entering:animate-
|
|
2551
|
-
"exiting:animate-
|
|
2557
|
+
"entering:animate-enter-zoom",
|
|
2558
|
+
"exiting:animate-exit-zoom",
|
|
2552
2559
|
modalClassName
|
|
2553
2560
|
),
|
|
2554
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2561
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2562
|
+
reactAriaComponents.Dialog,
|
|
2563
|
+
{
|
|
2564
|
+
className: chunkNWGG5WFL_cjs.cn("outline-none flex flex-col min-h-0 overflow-hidden", dialogClassName),
|
|
2565
|
+
...ariaLabel !== void 0 ? { "aria-label": ariaLabel } : {},
|
|
2566
|
+
children
|
|
2567
|
+
}
|
|
2568
|
+
)
|
|
2555
2569
|
}
|
|
2556
2570
|
)
|
|
2557
2571
|
}
|
|
2558
2572
|
);
|
|
2559
2573
|
}
|
|
2560
2574
|
function ModalHeader({ className, ...props }) {
|
|
2561
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className:
|
|
2575
|
+
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
2576
|
}
|
|
2563
2577
|
function ModalTitle({ className, ...props }) {
|
|
2564
2578
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2566,7 +2580,7 @@ function ModalTitle({ className, ...props }) {
|
|
|
2566
2580
|
{
|
|
2567
2581
|
slot: "title",
|
|
2568
2582
|
...props,
|
|
2569
|
-
className:
|
|
2583
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2570
2584
|
"font-sans font-medium text-[20px] leading-[1.25] tracking-[-0.015em] text-ink",
|
|
2571
2585
|
className
|
|
2572
2586
|
)
|
|
@@ -2574,14 +2588,14 @@ function ModalTitle({ className, ...props }) {
|
|
|
2574
2588
|
);
|
|
2575
2589
|
}
|
|
2576
2590
|
function ModalDescription({ className, ...props }) {
|
|
2577
|
-
return /* @__PURE__ */ jsxRuntime.jsx("p", { ...props, className:
|
|
2591
|
+
return /* @__PURE__ */ jsxRuntime.jsx("p", { ...props, className: chunkNWGG5WFL_cjs.cn("text-[14px] leading-[1.55] text-ink-3", className) });
|
|
2578
2592
|
}
|
|
2579
2593
|
function ModalBody({ className, ...props }) {
|
|
2580
2594
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2581
2595
|
"div",
|
|
2582
2596
|
{
|
|
2583
2597
|
...props,
|
|
2584
|
-
className:
|
|
2598
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2585
2599
|
// The scroll region: caps at the panel's spare height and scrolls when
|
|
2586
2600
|
// the content is taller, leaving header + footer pinned.
|
|
2587
2601
|
"min-h-0 overflow-y-auto px-5 py-3 flex flex-col gap-3 text-[14px] text-ink-2",
|
|
@@ -2595,7 +2609,7 @@ function ModalFooter({ className, ...props }) {
|
|
|
2595
2609
|
"div",
|
|
2596
2610
|
{
|
|
2597
2611
|
...props,
|
|
2598
|
-
className:
|
|
2612
|
+
className: chunkNWGG5WFL_cjs.cn("shrink-0 flex justify-end items-center gap-2", "px-5 pt-3 pb-5", className)
|
|
2599
2613
|
}
|
|
2600
2614
|
);
|
|
2601
2615
|
}
|
|
@@ -2757,12 +2771,12 @@ function CurrencyInput({
|
|
|
2757
2771
|
const selectedSymbol = currencyOptions.find((option) => option.code === code)?.symbol ?? code;
|
|
2758
2772
|
const styles4 = fieldControlStyles({ size, appearance, ...isInvalid ? { invalid: true } : {} });
|
|
2759
2773
|
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:
|
|
2774
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("grid grid-cols-1 gap-1.5", className), children: [
|
|
2775
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(styles4.box(), "flex items-center gap-1 pr-1", focusWithin), children: [
|
|
2762
2776
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2763
2777
|
"input",
|
|
2764
2778
|
{
|
|
2765
|
-
className:
|
|
2779
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2766
2780
|
"min-w-0 flex-1 bg-transparent text-ink outline-none tabular-nums",
|
|
2767
2781
|
styles4.content(),
|
|
2768
2782
|
// Sit a touch lower than a standard field by trimming the vertical
|
|
@@ -2803,7 +2817,7 @@ function CurrencyInput({
|
|
|
2803
2817
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2804
2818
|
reactAriaComponents.Button,
|
|
2805
2819
|
{
|
|
2806
|
-
className:
|
|
2820
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2807
2821
|
"inline-flex h-6 shrink-0 items-center gap-0.5 rounded-md px-1.5",
|
|
2808
2822
|
"text-ink-2 outline-none hover:bg-surface-2 hover:text-ink",
|
|
2809
2823
|
"cursor-pointer focus-visible:shadow-[var(--shadow-focus)]",
|
|
@@ -2819,18 +2833,18 @@ function CurrencyInput({
|
|
|
2819
2833
|
reactAriaComponents.Popover,
|
|
2820
2834
|
{
|
|
2821
2835
|
offset: 6,
|
|
2822
|
-
className:
|
|
2836
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2823
2837
|
"min-w-[9rem] rounded-md border border-rule bg-surface p-1",
|
|
2824
2838
|
"shadow-[var(--shadow-raised)]",
|
|
2825
|
-
"entering:animate-
|
|
2826
|
-
"exiting:animate-
|
|
2839
|
+
"entering:animate-enter-slide-down",
|
|
2840
|
+
"exiting:animate-exit-slide-up"
|
|
2827
2841
|
),
|
|
2828
2842
|
children: /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.ListBox, { className: "max-h-72 overflow-auto outline-none", children: currencyOptions.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2829
2843
|
reactAriaComponents.ListBoxItem,
|
|
2830
2844
|
{
|
|
2831
2845
|
id: option.code,
|
|
2832
2846
|
textValue: `${option.symbol ?? ""} ${option.code}`,
|
|
2833
|
-
className:
|
|
2847
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2834
2848
|
"flex items-center gap-2 rounded-[6px] px-2.5 py-1.5 text-[14px] text-ink-2",
|
|
2835
2849
|
"cursor-pointer select-none outline-none",
|
|
2836
2850
|
"data-[hovered]:bg-surface-2 data-[hovered]:text-ink",
|
|
@@ -2892,12 +2906,12 @@ function DateTimeCell({
|
|
|
2892
2906
|
}
|
|
2893
2907
|
function BooleanCell({ value, className }) {
|
|
2894
2908
|
if (value === true) {
|
|
2895
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-label": "true", className:
|
|
2909
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-label": "true", className: chunkNWGG5WFL_cjs.cn("text-success", className), children: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, {}) });
|
|
2896
2910
|
}
|
|
2897
2911
|
if (value === false) {
|
|
2898
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-label": "false", className:
|
|
2912
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-label": "false", className: chunkNWGG5WFL_cjs.cn("text-ink-4", className), children: /* @__PURE__ */ jsxRuntime.jsx(MinusIcon, {}) });
|
|
2899
2913
|
}
|
|
2900
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
2914
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("text-ink-4", className), children: "\u2014" });
|
|
2901
2915
|
}
|
|
2902
2916
|
function CheckIcon() {
|
|
2903
2917
|
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 +2930,7 @@ function MinusIcon() {
|
|
|
2916
2930
|
}
|
|
2917
2931
|
function TruncateCell({ value, title, className }) {
|
|
2918
2932
|
const tooltip = title ?? (typeof value === "string" ? value : void 0);
|
|
2919
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
2933
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("truncate min-w-0", className), title: tooltip, children: value ?? "\u2014" });
|
|
2920
2934
|
}
|
|
2921
2935
|
function LinkCell({ children, onClick, className, ...props }) {
|
|
2922
2936
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2927,7 +2941,7 @@ function LinkCell({ children, onClick, className, ...props }) {
|
|
|
2927
2941
|
e.stopPropagation();
|
|
2928
2942
|
onClick?.(e);
|
|
2929
2943
|
},
|
|
2930
|
-
className:
|
|
2944
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
2931
2945
|
"text-ink underline decoration-rule underline-offset-2 hover:decoration-ink",
|
|
2932
2946
|
className
|
|
2933
2947
|
),
|
|
@@ -2948,7 +2962,7 @@ var tableStyles = tailwindVariants.tv({
|
|
|
2948
2962
|
defaultVariants: { variant: "panel" }
|
|
2949
2963
|
});
|
|
2950
2964
|
function Table({ variant, className, ...props }) {
|
|
2951
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "grid", ...props, className:
|
|
2965
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "grid", ...props, className: chunkNWGG5WFL_cjs.cn(tableStyles({ variant }), className) });
|
|
2952
2966
|
}
|
|
2953
2967
|
var tableHeaderStyles = tailwindVariants.tv({
|
|
2954
2968
|
base: [
|
|
@@ -2964,7 +2978,7 @@ var tableHeaderStyles = tailwindVariants.tv({
|
|
|
2964
2978
|
defaultVariants: { sticky: false }
|
|
2965
2979
|
});
|
|
2966
2980
|
function TableHeader({ sticky, className, ...props }) {
|
|
2967
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "row", ...props, className:
|
|
2981
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "row", ...props, className: chunkNWGG5WFL_cjs.cn(tableHeaderStyles({ sticky }), className) });
|
|
2968
2982
|
}
|
|
2969
2983
|
var tableHeaderCellStyles = tailwindVariants.tv({
|
|
2970
2984
|
base: [
|
|
@@ -3141,7 +3155,7 @@ function TableHeaderCell({
|
|
|
3141
3155
|
style: { ...widthStyle, ...style },
|
|
3142
3156
|
onClick: handleClick,
|
|
3143
3157
|
onKeyDown: handleKeyDown,
|
|
3144
|
-
className:
|
|
3158
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3145
3159
|
tableHeaderCellStyles({ align, interactive: isSortable, active, sticky }),
|
|
3146
3160
|
"group/header",
|
|
3147
3161
|
dragState.kind === "dragging" ? "opacity-40" : "",
|
|
@@ -3154,7 +3168,7 @@ function TableHeaderCell({
|
|
|
3154
3168
|
ref: handleRef,
|
|
3155
3169
|
"data-dnd-handle": "true",
|
|
3156
3170
|
"aria-hidden": "true",
|
|
3157
|
-
className:
|
|
3171
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3158
3172
|
"inline-flex items-center justify-center shrink-0 -ml-1.5",
|
|
3159
3173
|
"cursor-grab active:cursor-grabbing text-ink-4",
|
|
3160
3174
|
"opacity-0 group-hover/header:opacity-100 transition-opacity"
|
|
@@ -3165,7 +3179,7 @@ function TableHeaderCell({
|
|
|
3165
3179
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3166
3180
|
"span",
|
|
3167
3181
|
{
|
|
3168
|
-
className:
|
|
3182
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3169
3183
|
"flex items-center gap-[7px] min-w-0 flex-1",
|
|
3170
3184
|
align === "right" ? "justify-end" : align === "center" ? "justify-center" : "justify-start"
|
|
3171
3185
|
),
|
|
@@ -3185,7 +3199,7 @@ function TableHeaderCell({
|
|
|
3185
3199
|
e.stopPropagation();
|
|
3186
3200
|
onRemove();
|
|
3187
3201
|
},
|
|
3188
|
-
className:
|
|
3202
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3189
3203
|
"inline-flex items-center justify-center shrink-0 size-4 rounded",
|
|
3190
3204
|
"text-ink-4 hover:text-ink hover:bg-surface-2",
|
|
3191
3205
|
"opacity-0 group-hover/header:opacity-100 focus-visible:opacity-100",
|
|
@@ -3198,7 +3212,7 @@ function TableHeaderCell({
|
|
|
3198
3212
|
"div",
|
|
3199
3213
|
{
|
|
3200
3214
|
"aria-hidden": "true",
|
|
3201
|
-
className:
|
|
3215
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3202
3216
|
"pointer-events-none absolute inset-y-0 z-10 w-0.5 bg-accent",
|
|
3203
3217
|
dragState.edge === "left" ? "-left-px" : "-right-px"
|
|
3204
3218
|
)
|
|
@@ -3223,7 +3237,7 @@ function TableHeaderCell({
|
|
|
3223
3237
|
onPointerDown: startResize,
|
|
3224
3238
|
onKeyDown: resizeByKey,
|
|
3225
3239
|
onClick: (e) => e.stopPropagation(),
|
|
3226
|
-
className:
|
|
3240
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3227
3241
|
"group/resize absolute inset-y-0 -right-1 z-10 w-2 cursor-col-resize outline-none",
|
|
3228
3242
|
"flex justify-center"
|
|
3229
3243
|
),
|
|
@@ -3231,7 +3245,7 @@ function TableHeaderCell({
|
|
|
3231
3245
|
"span",
|
|
3232
3246
|
{
|
|
3233
3247
|
"aria-hidden": "true",
|
|
3234
|
-
className:
|
|
3248
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3235
3249
|
"h-full w-0.5 transition-colors",
|
|
3236
3250
|
isResizing ? "bg-accent" : "bg-transparent group-hover/resize:bg-accent group-focus-visible/resize:bg-accent"
|
|
3237
3251
|
)
|
|
@@ -3252,7 +3266,7 @@ function SortIcon({ dir, active }) {
|
|
|
3252
3266
|
height: "11",
|
|
3253
3267
|
viewBox: "0 0 8 11",
|
|
3254
3268
|
"aria-hidden": "true",
|
|
3255
|
-
className:
|
|
3269
|
+
className: chunkNWGG5WFL_cjs.cn("shrink-0", active ? "text-accent" : "text-ink-4"),
|
|
3256
3270
|
children: [
|
|
3257
3271
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 0.5 L7.5 4 L0.5 4 Z", fill: "currentColor", opacity: dir === "asc" ? 1 : 0.22 }),
|
|
3258
3272
|
/* @__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 +3280,7 @@ function TableHeaderSpacer({ className, ...props }) {
|
|
|
3266
3280
|
{
|
|
3267
3281
|
"aria-hidden": "true",
|
|
3268
3282
|
...props,
|
|
3269
|
-
className:
|
|
3283
|
+
className: chunkNWGG5WFL_cjs.cn("flex-1 h-[36px] border-r-0", "bg-transparent pointer-events-none", className)
|
|
3270
3284
|
}
|
|
3271
3285
|
);
|
|
3272
3286
|
}
|
|
@@ -3286,7 +3300,7 @@ var tableBodyStyles = tailwindVariants.tv({
|
|
|
3286
3300
|
base: ["flex-1 min-h-0 overflow-auto relative", ...scrollbarChrome]
|
|
3287
3301
|
});
|
|
3288
3302
|
function TableBody({ className, ref, ...props }) {
|
|
3289
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "rowgroup", ref, ...props, className:
|
|
3303
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "rowgroup", ref, ...props, className: chunkNWGG5WFL_cjs.cn(tableBodyStyles(), className) });
|
|
3290
3304
|
}
|
|
3291
3305
|
var tableScrollerStyles = tailwindVariants.tv({
|
|
3292
3306
|
base: ["relative flex-1 min-h-0 overflow-auto", ...scrollbarChrome]
|
|
@@ -3298,7 +3312,7 @@ function TableScroller({ className, ref, ...props }) {
|
|
|
3298
3312
|
role: "presentation",
|
|
3299
3313
|
ref,
|
|
3300
3314
|
...props,
|
|
3301
|
-
className:
|
|
3315
|
+
className: chunkNWGG5WFL_cjs.cn(tableScrollerStyles(), className)
|
|
3302
3316
|
}
|
|
3303
3317
|
);
|
|
3304
3318
|
}
|
|
@@ -3350,7 +3364,7 @@ function TableRow({
|
|
|
3350
3364
|
onClick?.(e);
|
|
3351
3365
|
onRowClick?.(e);
|
|
3352
3366
|
},
|
|
3353
|
-
className:
|
|
3367
|
+
className: chunkNWGG5WFL_cjs.cn(tableRowStyles({ alt, interactive, absolute }), className)
|
|
3354
3368
|
}
|
|
3355
3369
|
);
|
|
3356
3370
|
}
|
|
@@ -3404,7 +3418,7 @@ function TableCell({
|
|
|
3404
3418
|
role: "gridcell",
|
|
3405
3419
|
...props,
|
|
3406
3420
|
style: { ...widthStyle, ...style },
|
|
3407
|
-
className:
|
|
3421
|
+
className: chunkNWGG5WFL_cjs.cn(tableCellStyles({ align, mono, ink, sticky }), className)
|
|
3408
3422
|
}
|
|
3409
3423
|
);
|
|
3410
3424
|
}
|
|
@@ -3419,7 +3433,7 @@ function DataTableEmpty({
|
|
|
3419
3433
|
"div",
|
|
3420
3434
|
{
|
|
3421
3435
|
role: "status",
|
|
3422
|
-
className:
|
|
3436
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3423
3437
|
"flex flex-col items-center justify-center gap-2",
|
|
3424
3438
|
"px-5 py-16 text-center",
|
|
3425
3439
|
"font-sans text-[13px] text-ink-3",
|
|
@@ -3439,7 +3453,7 @@ function DataTableError({ error, onRetry, className }) {
|
|
|
3439
3453
|
"div",
|
|
3440
3454
|
{
|
|
3441
3455
|
role: "alert",
|
|
3442
|
-
className:
|
|
3456
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3443
3457
|
"flex flex-col items-center justify-center gap-3",
|
|
3444
3458
|
"px-5 py-16 text-center",
|
|
3445
3459
|
"font-sans text-[13px] text-ink-3",
|
|
@@ -3448,7 +3462,7 @@ function DataTableError({ error, onRetry, className }) {
|
|
|
3448
3462
|
children: [
|
|
3449
3463
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-danger text-[14px]", children: "Something went wrong" }),
|
|
3450
3464
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-ink-3 max-w-[48ch] font-mono text-[12px]", children: error.message }),
|
|
3451
|
-
onRetry ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3465
|
+
onRetry ? /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { variant: "ghost", size: "sm", onPress: onRetry, children: "Retry" }) : null
|
|
3452
3466
|
]
|
|
3453
3467
|
}
|
|
3454
3468
|
);
|
|
@@ -3467,7 +3481,7 @@ function DataTableSkeleton({
|
|
|
3467
3481
|
TableCell,
|
|
3468
3482
|
{
|
|
3469
3483
|
width: w,
|
|
3470
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3484
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Skeleton, { shape: "text", className: "h-3 max-w-[60%]" })
|
|
3471
3485
|
},
|
|
3472
3486
|
colIdx
|
|
3473
3487
|
))
|
|
@@ -3746,12 +3760,12 @@ function DataTable({
|
|
|
3746
3760
|
{
|
|
3747
3761
|
...ariaLabel !== void 0 ? { "aria-label": ariaLabel } : {},
|
|
3748
3762
|
variant,
|
|
3749
|
-
className:
|
|
3763
|
+
className: chunkNWGG5WFL_cjs.cn("flex-1 min-h-0", className),
|
|
3750
3764
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3751
3765
|
TableScroller,
|
|
3752
3766
|
{
|
|
3753
3767
|
ref: scrollerRef,
|
|
3754
|
-
className:
|
|
3768
|
+
className: chunkNWGG5WFL_cjs.cn("scroll-pt-[36px]", bodyAfter ? "scroll-pb-8" : void 0),
|
|
3755
3769
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", style: { minWidth: minPanelWidth }, children: [
|
|
3756
3770
|
headerGroups.map((group) => /* @__PURE__ */ jsxRuntime.jsxs(TableHeader, { sticky: true, children: [
|
|
3757
3771
|
group.headers.map((header) => {
|
|
@@ -3838,7 +3852,7 @@ function DataTable({
|
|
|
3838
3852
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3839
3853
|
"div",
|
|
3840
3854
|
{
|
|
3841
|
-
className:
|
|
3855
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3842
3856
|
"sticky bottom-0 z-[4] flex items-center h-8 px-0.5",
|
|
3843
3857
|
"border-t border-rule-2 bg-bg"
|
|
3844
3858
|
),
|
|
@@ -3858,7 +3872,7 @@ function GroupHeaderRow({ style, children }) {
|
|
|
3858
3872
|
{
|
|
3859
3873
|
absolute: true,
|
|
3860
3874
|
style,
|
|
3861
|
-
className:
|
|
3875
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3862
3876
|
"bg-surface-2 border-b border-rule",
|
|
3863
3877
|
"font-mono text-[11px] uppercase tracking-[0.06em] text-ink-3"
|
|
3864
3878
|
),
|
|
@@ -3880,7 +3894,7 @@ function DataRow({
|
|
|
3880
3894
|
const cells = row.getVisibleCells().map((cell) => {
|
|
3881
3895
|
const meta = cell.column.columnDef.meta;
|
|
3882
3896
|
const cellSize = cell.column.getSize() || void 0;
|
|
3883
|
-
const cellClassName =
|
|
3897
|
+
const cellClassName = chunkNWGG5WFL_cjs.cn(
|
|
3884
3898
|
columnBorders ? "border-r border-rule-2" : void 0,
|
|
3885
3899
|
meta?.cellClassName
|
|
3886
3900
|
);
|
|
@@ -3923,7 +3937,7 @@ function LoaderRow() {
|
|
|
3923
3937
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3924
3938
|
"div",
|
|
3925
3939
|
{
|
|
3926
|
-
className:
|
|
3940
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
3927
3941
|
"flex items-center justify-center gap-3",
|
|
3928
3942
|
"h-8 font-mono text-[11px] tracking-[0.04em]",
|
|
3929
3943
|
"text-ink-4"
|
|
@@ -4015,7 +4029,7 @@ function CalendarSurface() {
|
|
|
4015
4029
|
{
|
|
4016
4030
|
slot: "previous",
|
|
4017
4031
|
"aria-label": "Previous month",
|
|
4018
|
-
className:
|
|
4032
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4019
4033
|
"size-7 rounded-md inline-flex items-center justify-center",
|
|
4020
4034
|
"text-ink-3 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
|
|
4021
4035
|
"focus-visible:shadow-[var(--shadow-focus)]"
|
|
@@ -4029,7 +4043,7 @@ function CalendarSurface() {
|
|
|
4029
4043
|
{
|
|
4030
4044
|
slot: "next",
|
|
4031
4045
|
"aria-label": "Next month",
|
|
4032
|
-
className:
|
|
4046
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4033
4047
|
"size-7 rounded-md inline-flex items-center justify-center",
|
|
4034
4048
|
"text-ink-3 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
|
|
4035
4049
|
"focus-visible:shadow-[var(--shadow-focus)]"
|
|
@@ -4042,7 +4056,7 @@ function CalendarSurface() {
|
|
|
4042
4056
|
/* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.CalendarGridHeader, { children: (day) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
4043
4057
|
reactAriaComponents.CalendarHeaderCell,
|
|
4044
4058
|
{
|
|
4045
|
-
className:
|
|
4059
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4046
4060
|
"font-mono text-[10.5px] uppercase tracking-[0.08em] text-ink-4",
|
|
4047
4061
|
"pb-2 text-center"
|
|
4048
4062
|
),
|
|
@@ -4053,7 +4067,7 @@ function CalendarSurface() {
|
|
|
4053
4067
|
reactAriaComponents.CalendarCell,
|
|
4054
4068
|
{
|
|
4055
4069
|
date,
|
|
4056
|
-
className:
|
|
4070
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4057
4071
|
// aspect-square + table-fixed makes each cell a perfect
|
|
4058
4072
|
// square that scales with popover width.
|
|
4059
4073
|
"aspect-square flex items-center justify-center cursor-pointer",
|
|
@@ -4062,7 +4076,7 @@ function CalendarSurface() {
|
|
|
4062
4076
|
"data-[outside-month]:text-ink-4",
|
|
4063
4077
|
"data-[hovered]:bg-surface-2 data-[hovered]:text-ink",
|
|
4064
4078
|
"data-[focus-visible]:shadow-[var(--shadow-focus)]",
|
|
4065
|
-
"data-[selected]:bg-accent data-[selected]:text-
|
|
4079
|
+
"data-[selected]:bg-accent data-[selected]:text-tile-fg",
|
|
4066
4080
|
"data-[selected]:data-[hovered]:bg-accent-2",
|
|
4067
4081
|
"data-[disabled]:opacity-30 data-[disabled]:cursor-not-allowed",
|
|
4068
4082
|
"data-[unavailable]:line-through data-[unavailable]:text-ink-4"
|
|
@@ -4087,7 +4101,7 @@ function DatePicker({
|
|
|
4087
4101
|
reactAriaComponents.DatePicker,
|
|
4088
4102
|
{
|
|
4089
4103
|
...props,
|
|
4090
|
-
className: (renderProps) =>
|
|
4104
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
4091
4105
|
"grid grid-cols-1 gap-1.5",
|
|
4092
4106
|
typeof className === "function" ? className(renderProps) : className
|
|
4093
4107
|
),
|
|
@@ -4096,7 +4110,7 @@ function DatePicker({
|
|
|
4096
4110
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4097
4111
|
reactAriaComponents.Group,
|
|
4098
4112
|
{
|
|
4099
|
-
className:
|
|
4113
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4100
4114
|
// Box chrome on the wrapper; the DateInput inside carries padding +
|
|
4101
4115
|
// font so the calendar trigger sits inside the same border + ring.
|
|
4102
4116
|
styles4.box(),
|
|
@@ -4107,7 +4121,7 @@ function DatePicker({
|
|
|
4107
4121
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4108
4122
|
reactAriaComponents.DateInput,
|
|
4109
4123
|
{
|
|
4110
|
-
className:
|
|
4124
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4111
4125
|
"flex-1 flex items-center min-w-0 text-ink",
|
|
4112
4126
|
styles4.content(),
|
|
4113
4127
|
// Tabular alignment for date segments — overrides content's
|
|
@@ -4118,12 +4132,12 @@ function DatePicker({
|
|
|
4118
4132
|
reactAriaComponents.DateSegment,
|
|
4119
4133
|
{
|
|
4120
4134
|
segment,
|
|
4121
|
-
className:
|
|
4135
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4122
4136
|
"px-px tabular-nums outline-none select-none",
|
|
4123
4137
|
"data-[placeholder]:text-ink-4",
|
|
4124
4138
|
"data-[type=literal]:text-ink-4",
|
|
4125
4139
|
// segment focus treatment: indigo fill, paper text
|
|
4126
|
-
"data-[focused]:bg-accent data-[focused]:text-
|
|
4140
|
+
"data-[focused]:bg-accent data-[focused]:text-tile-fg data-[focused]:rounded-[3px]",
|
|
4127
4141
|
"data-[disabled]:cursor-not-allowed"
|
|
4128
4142
|
)
|
|
4129
4143
|
}
|
|
@@ -4133,7 +4147,7 @@ function DatePicker({
|
|
|
4133
4147
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4134
4148
|
reactAriaComponents.Button,
|
|
4135
4149
|
{
|
|
4136
|
-
className:
|
|
4150
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4137
4151
|
"shrink-0 inline-flex items-center justify-center",
|
|
4138
4152
|
"size-7 rounded-md",
|
|
4139
4153
|
"text-ink-3 hover:text-ink hover:bg-surface-2",
|
|
@@ -4153,7 +4167,7 @@ function DatePicker({
|
|
|
4153
4167
|
reactAriaComponents.Popover,
|
|
4154
4168
|
{
|
|
4155
4169
|
offset: 6,
|
|
4156
|
-
className:
|
|
4170
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4157
4171
|
// Match the anchoring field's width exactly. `--trigger-width` is
|
|
4158
4172
|
// set by RAC on the Popover when it's inside a DatePicker. Floor at
|
|
4159
4173
|
// 18rem so the calendar stays legible when the input is unusually
|
|
@@ -4162,8 +4176,8 @@ function DatePicker({
|
|
|
4162
4176
|
"w-[var(--trigger-width)] min-w-[18rem] max-w-[500px]",
|
|
4163
4177
|
"rounded-md border border-rule bg-surface p-4",
|
|
4164
4178
|
"shadow-[var(--shadow-raised)]",
|
|
4165
|
-
"entering:animate-
|
|
4166
|
-
"exiting:animate-
|
|
4179
|
+
"entering:animate-enter-slide-down",
|
|
4180
|
+
"exiting:animate-exit-slide-up"
|
|
4167
4181
|
),
|
|
4168
4182
|
children: /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Dialog, { className: "outline-none", children: /* @__PURE__ */ jsxRuntime.jsx(CalendarSurface, {}) })
|
|
4169
4183
|
}
|
|
@@ -4172,12 +4186,12 @@ function DatePicker({
|
|
|
4172
4186
|
}
|
|
4173
4187
|
);
|
|
4174
4188
|
}
|
|
4175
|
-
var segmentStyles =
|
|
4189
|
+
var segmentStyles = chunkNWGG5WFL_cjs.cn(
|
|
4176
4190
|
"px-px tabular-nums outline-none select-none",
|
|
4177
4191
|
"data-[placeholder]:text-ink-4",
|
|
4178
4192
|
"data-[type=literal]:text-ink-4",
|
|
4179
4193
|
// segment focus treatment: indigo fill, paper text
|
|
4180
|
-
"data-[focused]:bg-accent data-[focused]:text-
|
|
4194
|
+
"data-[focused]:bg-accent data-[focused]:text-tile-fg data-[focused]:rounded-[3px]",
|
|
4181
4195
|
"data-[disabled]:cursor-not-allowed"
|
|
4182
4196
|
);
|
|
4183
4197
|
function PopoverTimeField({
|
|
@@ -4203,7 +4217,7 @@ function PopoverTimeField({
|
|
|
4203
4217
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4204
4218
|
reactAriaComponents.DateInput,
|
|
4205
4219
|
{
|
|
4206
|
-
className:
|
|
4220
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4207
4221
|
"inline-flex items-center rounded-md border border-rule bg-surface px-2.5 py-1.5",
|
|
4208
4222
|
"font-mono text-[13px] text-ink",
|
|
4209
4223
|
"focus-within:border-accent focus-within:shadow-[var(--shadow-focus)]",
|
|
@@ -4242,7 +4256,7 @@ function DateTimePicker({
|
|
|
4242
4256
|
granularity,
|
|
4243
4257
|
hideTimeZone,
|
|
4244
4258
|
shouldCloseOnSelect,
|
|
4245
|
-
className: (renderProps) =>
|
|
4259
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
4246
4260
|
"grid grid-cols-1 gap-1.5",
|
|
4247
4261
|
typeof className === "function" ? className(renderProps) : className
|
|
4248
4262
|
),
|
|
@@ -4251,7 +4265,7 @@ function DateTimePicker({
|
|
|
4251
4265
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4252
4266
|
reactAriaComponents.Group,
|
|
4253
4267
|
{
|
|
4254
|
-
className:
|
|
4268
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4255
4269
|
// Box chrome on the wrapper; the DateInput inside carries padding +
|
|
4256
4270
|
// font so the calendar trigger sits inside the same border + ring.
|
|
4257
4271
|
styles4.box(),
|
|
@@ -4262,7 +4276,7 @@ function DateTimePicker({
|
|
|
4262
4276
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4263
4277
|
reactAriaComponents.DateInput,
|
|
4264
4278
|
{
|
|
4265
|
-
className:
|
|
4279
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4266
4280
|
"flex-1 flex items-center min-w-0 text-ink",
|
|
4267
4281
|
styles4.content(),
|
|
4268
4282
|
// Tabular alignment for date/time segments — overrides content's
|
|
@@ -4275,7 +4289,7 @@ function DateTimePicker({
|
|
|
4275
4289
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4276
4290
|
reactAriaComponents.Button,
|
|
4277
4291
|
{
|
|
4278
|
-
className:
|
|
4292
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4279
4293
|
"shrink-0 inline-flex items-center justify-center",
|
|
4280
4294
|
"size-7 rounded-md",
|
|
4281
4295
|
"text-ink-3 hover:text-ink hover:bg-surface-2",
|
|
@@ -4295,7 +4309,7 @@ function DateTimePicker({
|
|
|
4295
4309
|
reactAriaComponents.Popover,
|
|
4296
4310
|
{
|
|
4297
4311
|
offset: 6,
|
|
4298
|
-
className:
|
|
4312
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4299
4313
|
// Match the anchoring field's width exactly. `--trigger-width` is
|
|
4300
4314
|
// set by RAC on the Popover when it's inside a DatePicker. Floor at
|
|
4301
4315
|
// 18rem so the calendar stays legible when the input is unusually
|
|
@@ -4304,8 +4318,8 @@ function DateTimePicker({
|
|
|
4304
4318
|
"w-[var(--trigger-width)] min-w-[18rem] max-w-[500px]",
|
|
4305
4319
|
"rounded-md border border-rule bg-surface p-4",
|
|
4306
4320
|
"shadow-[var(--shadow-raised)]",
|
|
4307
|
-
"entering:animate-
|
|
4308
|
-
"exiting:animate-
|
|
4321
|
+
"entering:animate-enter-slide-down",
|
|
4322
|
+
"exiting:animate-exit-slide-up"
|
|
4309
4323
|
),
|
|
4310
4324
|
children: /* @__PURE__ */ jsxRuntime.jsxs(reactAriaComponents.Dialog, { className: "outline-none", children: [
|
|
4311
4325
|
/* @__PURE__ */ jsxRuntime.jsx(CalendarSurface, {}),
|
|
@@ -4365,7 +4379,7 @@ function DraftMessageCard({
|
|
|
4365
4379
|
isPreviewDisabled = false,
|
|
4366
4380
|
className
|
|
4367
4381
|
}) {
|
|
4368
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
4382
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(styles2.root(), className), children: [
|
|
4369
4383
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: styles2.icon(), children: /* @__PURE__ */ jsxRuntime.jsx(ChannelIcon, { channel }) }),
|
|
4370
4384
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles2.body(), children: [
|
|
4371
4385
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: styles2.eyebrow(), children: eyebrow }),
|
|
@@ -4486,7 +4500,7 @@ function MultiSelect({
|
|
|
4486
4500
|
openPopover(true);
|
|
4487
4501
|
}
|
|
4488
4502
|
};
|
|
4489
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
4503
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("grid grid-cols-1 gap-1.5", className), children: [
|
|
4490
4504
|
label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
|
|
4491
4505
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4492
4506
|
"div",
|
|
@@ -4502,7 +4516,7 @@ function MultiSelect({
|
|
|
4502
4516
|
onKeyDown: onTriggerKeyDown,
|
|
4503
4517
|
"data-invalid": isInvalid || void 0,
|
|
4504
4518
|
"data-disabled": isDisabled || void 0,
|
|
4505
|
-
className:
|
|
4519
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4506
4520
|
styles4.box(),
|
|
4507
4521
|
"flex flex-wrap items-center gap-1.5 cursor-pointer",
|
|
4508
4522
|
minHeight,
|
|
@@ -4517,7 +4531,7 @@ function MultiSelect({
|
|
|
4517
4531
|
// No vertical padding — wrapper's p-1.5 + min-h-[size] govern the
|
|
4518
4532
|
// overall height so it matches the Input/Select trigger at the same
|
|
4519
4533
|
// size.
|
|
4520
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
4534
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkNWGG5WFL_cjs.cn("text-ink-4 font-sans px-1", fieldTextStyles[size]), children: placeholder })
|
|
4521
4535
|
) : selectedOptions.map((o) => /* @__PURE__ */ jsxRuntime.jsx(Chip, { onRemove: () => remove(o.id), isDisabled, children: o.content ?? o.label }, o.id)),
|
|
4522
4536
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto pr-1", children: /* @__PURE__ */ jsxRuntime.jsx(FieldCaret, {}) })
|
|
4523
4537
|
]
|
|
@@ -4533,14 +4547,14 @@ function MultiSelect({
|
|
|
4533
4547
|
triggerRef,
|
|
4534
4548
|
offset: 6,
|
|
4535
4549
|
placement: "bottom start",
|
|
4536
|
-
className:
|
|
4550
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4537
4551
|
"w-[var(--trigger-width)]",
|
|
4538
4552
|
// The popover element itself takes focus when opened programmatically
|
|
4539
4553
|
// (defaultOpen) — no browser outline around the whole panel.
|
|
4540
4554
|
"outline-none rounded-md border border-rule bg-surface p-1",
|
|
4541
4555
|
"shadow-[var(--shadow-raised)]",
|
|
4542
|
-
"entering:animate-
|
|
4543
|
-
"exiting:animate-
|
|
4556
|
+
"entering:animate-enter-slide-down",
|
|
4557
|
+
"exiting:animate-exit-slide-up"
|
|
4544
4558
|
),
|
|
4545
4559
|
children: [
|
|
4546
4560
|
isSearchable ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-rule-2 px-1 pb-1 mb-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4551,7 +4565,7 @@ function MultiSelect({
|
|
|
4551
4565
|
onChange: (e) => updateSearch(e.target.value),
|
|
4552
4566
|
placeholder: "Search\u2026",
|
|
4553
4567
|
"aria-label": "Search options",
|
|
4554
|
-
className:
|
|
4568
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4555
4569
|
"w-full bg-transparent outline-none rounded-[6px] px-2 py-1.5",
|
|
4556
4570
|
"font-sans text-[13px] text-ink placeholder:text-ink-4"
|
|
4557
4571
|
)
|
|
@@ -4572,14 +4586,14 @@ function MultiSelect({
|
|
|
4572
4586
|
onSelectionChange(keys);
|
|
4573
4587
|
},
|
|
4574
4588
|
className: "outline-none max-h-72 overflow-auto",
|
|
4575
|
-
renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
4589
|
+
renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn("px-3 py-2", fieldHintStyles), children: needle !== "" ? "No matches" : "All options selected" }),
|
|
4576
4590
|
children: listboxOptions.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4577
4591
|
reactAriaComponents.ListBoxItem,
|
|
4578
4592
|
{
|
|
4579
4593
|
id: option.id,
|
|
4580
4594
|
textValue: option.label,
|
|
4581
4595
|
...option.isDisabled ? { isDisabled: true } : {},
|
|
4582
|
-
className:
|
|
4596
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4583
4597
|
"group flex items-center gap-2.5",
|
|
4584
4598
|
"rounded-[6px] px-3 py-2 text-[14px] text-ink-2",
|
|
4585
4599
|
"cursor-pointer outline-none select-none",
|
|
@@ -4609,7 +4623,7 @@ function Chip({
|
|
|
4609
4623
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4610
4624
|
"span",
|
|
4611
4625
|
{
|
|
4612
|
-
className:
|
|
4626
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4613
4627
|
"inline-flex items-center gap-1.5",
|
|
4614
4628
|
"pl-2 pr-1 py-0.5 rounded-[6px]",
|
|
4615
4629
|
"bg-surface-2 border border-rule",
|
|
@@ -4627,7 +4641,7 @@ function Chip({
|
|
|
4627
4641
|
e.stopPropagation();
|
|
4628
4642
|
onRemove();
|
|
4629
4643
|
},
|
|
4630
|
-
className:
|
|
4644
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4631
4645
|
"inline-flex items-center justify-center shrink-0",
|
|
4632
4646
|
"size-4 rounded-[3px]",
|
|
4633
4647
|
"text-ink-3 hover:text-ink hover:bg-surface-3 cursor-pointer",
|
|
@@ -4807,7 +4821,7 @@ function MessageComposer({
|
|
|
4807
4821
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-[18px] py-3", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4808
4822
|
"p",
|
|
4809
4823
|
{
|
|
4810
|
-
className:
|
|
4824
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4811
4825
|
"rounded-[10px] border border-rule bg-surface-2 px-3.5 py-2.5",
|
|
4812
4826
|
"text-[12.5px] text-ink-3 text-center"
|
|
4813
4827
|
),
|
|
@@ -4832,7 +4846,7 @@ function MessageComposer({
|
|
|
4832
4846
|
}
|
|
4833
4847
|
) : null;
|
|
4834
4848
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-[18px] pb-3.5 pt-1", children: [
|
|
4835
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
4849
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(messageComposerStyles(), className), children: [
|
|
4836
4850
|
connectionPicker ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 border-b border-rule-2 px-3.5 py-1.5", children: [
|
|
4837
4851
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: ROW_LABEL, children: "Via" }),
|
|
4838
4852
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -4936,7 +4950,7 @@ function MessageComposer({
|
|
|
4936
4950
|
rows: 1,
|
|
4937
4951
|
onChange: (event) => onValueChange({ ...value, text: event.target.value }),
|
|
4938
4952
|
onKeyDown: onKeyDown2,
|
|
4939
|
-
className:
|
|
4953
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4940
4954
|
"w-full resize-none bg-transparent outline-none",
|
|
4941
4955
|
"min-h-[40px] max-h-48 text-[14px] leading-[1.5] text-ink placeholder:text-ink-4",
|
|
4942
4956
|
bodyClassName
|
|
@@ -4953,7 +4967,7 @@ function MessageComposer({
|
|
|
4953
4967
|
if (files) onAddFiles(Array.from(files));
|
|
4954
4968
|
},
|
|
4955
4969
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4956
|
-
|
|
4970
|
+
chunkNWGG5WFL_cjs.Button,
|
|
4957
4971
|
{
|
|
4958
4972
|
variant: "subtle",
|
|
4959
4973
|
size: "icon-md",
|
|
@@ -4972,7 +4986,7 @@ function MessageComposer({
|
|
|
4972
4986
|
"aria-label": "Send",
|
|
4973
4987
|
isDisabled: !canSend || isSending,
|
|
4974
4988
|
onPress: () => void submit(),
|
|
4975
|
-
className:
|
|
4989
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
4976
4990
|
"grid place-items-center size-8 rounded-[8px] cursor-pointer",
|
|
4977
4991
|
"bg-accent text-tile-fg transition-opacity duration-150",
|
|
4978
4992
|
"disabled:opacity-40 disabled:cursor-default",
|
|
@@ -5287,10 +5301,10 @@ function DraftMessageComposer({
|
|
|
5287
5301
|
[message?.attachments]
|
|
5288
5302
|
);
|
|
5289
5303
|
if (phase === "loading") {
|
|
5290
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
5304
|
+
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
5305
|
}
|
|
5292
5306
|
if (phase === "load-error") {
|
|
5293
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
5307
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkNWGG5WFL_cjs.cn(styles3.root(), className), children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: styles3.terminal(), children: [
|
|
5294
5308
|
loadError ?? "Loading the draft failed.",
|
|
5295
5309
|
" ",
|
|
5296
5310
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -5305,9 +5319,9 @@ function DraftMessageComposer({
|
|
|
5305
5319
|
}
|
|
5306
5320
|
if (phase === "terminal" || !message) {
|
|
5307
5321
|
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:
|
|
5322
|
+
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
5323
|
}
|
|
5310
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
5324
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(styles3.root(), className), children: [
|
|
5311
5325
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles3.header(), children: [
|
|
5312
5326
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: styles3.badge(), children: "Draft \xB7 awaiting review" }),
|
|
5313
5327
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: styles3.sender(), children: [
|
|
@@ -5349,7 +5363,7 @@ function DraftMessageComposer({
|
|
|
5349
5363
|
isConfirmingReject ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
5350
5364
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[12.5px] text-ink-3", children: "Reject draft?" }),
|
|
5351
5365
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5352
|
-
|
|
5366
|
+
chunkNWGG5WFL_cjs.Button,
|
|
5353
5367
|
{
|
|
5354
5368
|
size: "sm",
|
|
5355
5369
|
variant: "ghost",
|
|
@@ -5358,9 +5372,9 @@ function DraftMessageComposer({
|
|
|
5358
5372
|
children: "Confirm reject"
|
|
5359
5373
|
}
|
|
5360
5374
|
),
|
|
5361
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5375
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { size: "sm", variant: "subtle", onPress: () => setIsConfirmingReject(false), children: "Cancel" })
|
|
5362
5376
|
] }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
5363
|
-
|
|
5377
|
+
chunkNWGG5WFL_cjs.Button,
|
|
5364
5378
|
{
|
|
5365
5379
|
size: "sm",
|
|
5366
5380
|
variant: "ghost",
|
|
@@ -5370,7 +5384,7 @@ function DraftMessageComposer({
|
|
|
5370
5384
|
}
|
|
5371
5385
|
),
|
|
5372
5386
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5373
|
-
|
|
5387
|
+
chunkNWGG5WFL_cjs.Button,
|
|
5374
5388
|
{
|
|
5375
5389
|
size: "sm",
|
|
5376
5390
|
variant: "subtle",
|
|
@@ -5528,7 +5542,7 @@ function EmptyState({
|
|
|
5528
5542
|
className
|
|
5529
5543
|
}) {
|
|
5530
5544
|
const styles4 = emptyStateStyles({ size });
|
|
5531
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
5545
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(styles4.root(), className), children: [
|
|
5532
5546
|
icon ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.art(), children: icon }) : null,
|
|
5533
5547
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.title(), children: title }),
|
|
5534
5548
|
description ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.description(), children: description }) : null,
|
|
@@ -5540,7 +5554,7 @@ function ErrorAnimation({ className }) {
|
|
|
5540
5554
|
"div",
|
|
5541
5555
|
{
|
|
5542
5556
|
"aria-hidden": true,
|
|
5543
|
-
className:
|
|
5557
|
+
className: chunkNWGG5WFL_cjs.cn("size-24 text-danger motion-safe:animate-status-pop", className),
|
|
5544
5558
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleX, { className: "size-full", strokeWidth: 1.5 })
|
|
5545
5559
|
}
|
|
5546
5560
|
);
|
|
@@ -5563,13 +5577,13 @@ function FileViewerFallbackCard({
|
|
|
5563
5577
|
const Icon = iconForContentType(contentType);
|
|
5564
5578
|
const size = formatFileSize(sizeInBytes);
|
|
5565
5579
|
const meta = [size, note].filter(Boolean).join(" \xB7 ");
|
|
5566
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
5580
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn(fileViewerFallbackCardStyles(), className), children: [
|
|
5567
5581
|
/* @__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
5582
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
5569
5583
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate font-sans text-[13px] font-medium text-ink", children: name }),
|
|
5570
5584
|
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
5585
|
] }),
|
|
5572
|
-
onDownload ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5586
|
+
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
5587
|
] });
|
|
5574
5588
|
}
|
|
5575
5589
|
var imageLightboxStyles = tailwindVariants.tv({
|
|
@@ -5577,8 +5591,8 @@ var imageLightboxStyles = tailwindVariants.tv({
|
|
|
5577
5591
|
"fixed inset-0 z-50 flex items-center justify-center p-4",
|
|
5578
5592
|
// Deeper scrim than Modal's 40% — the image needs the page fully dimmed.
|
|
5579
5593
|
"bg-[color-mix(in_oklab,var(--color-ink)_72%,transparent)]",
|
|
5580
|
-
"entering:animate-
|
|
5581
|
-
"exiting:animate-
|
|
5594
|
+
"entering:animate-enter-fade",
|
|
5595
|
+
"exiting:animate-exit-fade"
|
|
5582
5596
|
]
|
|
5583
5597
|
});
|
|
5584
5598
|
function ImageLightbox({ isOpen, onOpenChange, src, name, onDownload }) {
|
|
@@ -5606,7 +5620,7 @@ function ImageLightbox({ isOpen, onOpenChange, src, name, onDownload }) {
|
|
|
5606
5620
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5607
5621
|
"div",
|
|
5608
5622
|
{
|
|
5609
|
-
className:
|
|
5623
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
5610
5624
|
"flex items-center gap-1.5",
|
|
5611
5625
|
"rounded-[8px] border border-rule bg-surface py-1 pl-3 pr-1",
|
|
5612
5626
|
"shadow-[var(--shadow-float)]"
|
|
@@ -5614,7 +5628,7 @@ function ImageLightbox({ isOpen, onOpenChange, src, name, onDownload }) {
|
|
|
5614
5628
|
children: [
|
|
5615
5629
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "max-w-[320px] truncate font-sans text-[12.5px] text-ink", children: name }),
|
|
5616
5630
|
onDownload ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5617
|
-
|
|
5631
|
+
chunkNWGG5WFL_cjs.Button,
|
|
5618
5632
|
{
|
|
5619
5633
|
variant: "ghost",
|
|
5620
5634
|
size: "icon-sm",
|
|
@@ -5623,7 +5637,7 @@ function ImageLightbox({ isOpen, onOpenChange, src, name, onDownload }) {
|
|
|
5623
5637
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Download, { "aria-hidden": true })
|
|
5624
5638
|
}
|
|
5625
5639
|
) : null,
|
|
5626
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5640
|
+
/* @__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
5641
|
]
|
|
5628
5642
|
}
|
|
5629
5643
|
)
|
|
@@ -5663,7 +5677,7 @@ function VideoView({ name, src }) {
|
|
|
5663
5677
|
/* @__PURE__ */ jsxRuntime.jsx("video", { controls: true, src, "aria-label": name, className: "h-full w-full object-contain" })
|
|
5664
5678
|
);
|
|
5665
5679
|
}
|
|
5666
|
-
var PdfView = react.lazy(() => import('./pdf-view-
|
|
5680
|
+
var PdfView = react.lazy(() => import('./pdf-view-RRMAUK3L.cjs'));
|
|
5667
5681
|
var fileViewerStyles = tailwindVariants.tv({
|
|
5668
5682
|
base: [
|
|
5669
5683
|
"relative flex w-full flex-col overflow-hidden",
|
|
@@ -5703,8 +5717,8 @@ function FileViewer({
|
|
|
5703
5717
|
}
|
|
5704
5718
|
);
|
|
5705
5719
|
if (kind === "none" || errorMessage || isOversized) return fallback;
|
|
5706
|
-
const skeleton = /* @__PURE__ */ jsxRuntime.jsx(
|
|
5707
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
5720
|
+
const skeleton = /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Skeleton, { "aria-label": `Loading preview of ${name}`, className: "h-full w-full rounded-none" });
|
|
5721
|
+
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
5722
|
}
|
|
5709
5723
|
var imageAttachmentStyles = tailwindVariants.tv({
|
|
5710
5724
|
base: [
|
|
@@ -5727,7 +5741,7 @@ function ImageAttachment({
|
|
|
5727
5741
|
{
|
|
5728
5742
|
"aria-label": `Preview ${name}`,
|
|
5729
5743
|
...onPress ? { onPress } : {},
|
|
5730
|
-
className:
|
|
5744
|
+
className: chunkNWGG5WFL_cjs.cn(imageAttachmentStyles(), className),
|
|
5731
5745
|
children: [
|
|
5732
5746
|
src ? (
|
|
5733
5747
|
// Kept in the DOM (invisible) while loading so onLoad still fires
|
|
@@ -5740,14 +5754,14 @@ function ImageAttachment({
|
|
|
5740
5754
|
loading: "lazy",
|
|
5741
5755
|
onLoad: () => setLoadedSrc(src),
|
|
5742
5756
|
onError: () => onLoadError?.(),
|
|
5743
|
-
className:
|
|
5757
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
5744
5758
|
"block max-h-[220px] max-w-[280px] object-contain",
|
|
5745
5759
|
!isLoaded && "invisible absolute inset-0"
|
|
5746
5760
|
)
|
|
5747
5761
|
}
|
|
5748
5762
|
)
|
|
5749
5763
|
) : null,
|
|
5750
|
-
!isLoaded ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5764
|
+
!isLoaded ? /* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Skeleton, { className: "h-[140px] w-[200px]" }) : null
|
|
5751
5765
|
]
|
|
5752
5766
|
}
|
|
5753
5767
|
);
|
|
@@ -5778,7 +5792,7 @@ function Input({
|
|
|
5778
5792
|
reactAriaComponents.TextField,
|
|
5779
5793
|
{
|
|
5780
5794
|
...props,
|
|
5781
|
-
className: (renderProps) =>
|
|
5795
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
5782
5796
|
"grid grid-cols-1 gap-1.5",
|
|
5783
5797
|
typeof className === "function" ? className(renderProps) : className
|
|
5784
5798
|
),
|
|
@@ -5789,7 +5803,7 @@ function Input({
|
|
|
5789
5803
|
{
|
|
5790
5804
|
...inputProps,
|
|
5791
5805
|
placeholder: placeholder ?? "",
|
|
5792
|
-
className:
|
|
5806
|
+
className: chunkNWGG5WFL_cjs.cn(styles4.box(), styles4.content(), inputClassName)
|
|
5793
5807
|
}
|
|
5794
5808
|
),
|
|
5795
5809
|
description ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Text, { slot: "description", className: fieldHintStyles, children: description }) : null,
|
|
@@ -5807,11 +5821,11 @@ function MenuPopover({ className, offset = 4, placement = "bottom start", ...pro
|
|
|
5807
5821
|
offset,
|
|
5808
5822
|
placement,
|
|
5809
5823
|
...props,
|
|
5810
|
-
className: (renderProps) =>
|
|
5824
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
5811
5825
|
"min-w-[200px] p-1 bg-surface border border-rule rounded-md",
|
|
5812
5826
|
"shadow-[var(--shadow-float)] outline-none z-[1200]",
|
|
5813
|
-
"entering:animate-
|
|
5814
|
-
"exiting:animate-
|
|
5827
|
+
"entering:animate-enter-zoom",
|
|
5828
|
+
"exiting:animate-exit-zoom",
|
|
5815
5829
|
typeof className === "function" ? className(renderProps) : className
|
|
5816
5830
|
)
|
|
5817
5831
|
}
|
|
@@ -5822,14 +5836,14 @@ function Menu({ className, ...props }) {
|
|
|
5822
5836
|
reactAriaComponents.Menu,
|
|
5823
5837
|
{
|
|
5824
5838
|
...props,
|
|
5825
|
-
className: (renderProps) =>
|
|
5839
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
5826
5840
|
"flex flex-col gap-px outline-none",
|
|
5827
5841
|
typeof className === "function" ? className(renderProps) : className
|
|
5828
5842
|
)
|
|
5829
5843
|
}
|
|
5830
5844
|
);
|
|
5831
5845
|
}
|
|
5832
|
-
var menuItemStyles =
|
|
5846
|
+
var menuItemStyles = chunkNWGG5WFL_cjs.cn(
|
|
5833
5847
|
"flex items-center gap-2.5 px-2.5 py-1.5 rounded-md cursor-pointer outline-none",
|
|
5834
5848
|
"font-sans text-[13px] text-ink-2 select-none",
|
|
5835
5849
|
"hover:bg-surface-2 hover:text-ink focus:bg-surface-2 focus:text-ink",
|
|
@@ -5843,7 +5857,7 @@ function MenuItem({ icon, hasSubmenu, children, className, ...props }) {
|
|
|
5843
5857
|
reactAriaComponents.MenuItem,
|
|
5844
5858
|
{
|
|
5845
5859
|
...props,
|
|
5846
|
-
className: (renderProps) =>
|
|
5860
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(menuItemStyles, typeof className === "function" ? className(renderProps) : className),
|
|
5847
5861
|
children: [
|
|
5848
5862
|
icon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex shrink-0 items-center", children: icon }) : null,
|
|
5849
5863
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 truncate", children }),
|
|
@@ -5865,7 +5879,7 @@ function NavSection({
|
|
|
5865
5879
|
"data-testid": dataTestid
|
|
5866
5880
|
}) {
|
|
5867
5881
|
const hasHead = label !== void 0 || count !== void 0 || action !== void 0;
|
|
5868
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
5882
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("mt-[18px] first:mt-1", className), "data-testid": dataTestid, children: [
|
|
5869
5883
|
hasHead ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between px-2 pt-1 pb-2", children: [
|
|
5870
5884
|
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
5885
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
@@ -5920,7 +5934,7 @@ function NavItem({ icon, badge, isActive, className, children, ...props }) {
|
|
|
5920
5934
|
reactAriaComponents.Button,
|
|
5921
5935
|
{
|
|
5922
5936
|
...props,
|
|
5923
|
-
className: (renderProps) =>
|
|
5937
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
5924
5938
|
navItemStyles({ isActive, isNested }),
|
|
5925
5939
|
typeof className === "function" ? className(renderProps) : className
|
|
5926
5940
|
),
|
|
@@ -5929,7 +5943,7 @@ function NavItem({ icon, badge, isActive, className, children, ...props }) {
|
|
|
5929
5943
|
"span",
|
|
5930
5944
|
{
|
|
5931
5945
|
"aria-hidden": true,
|
|
5932
|
-
className:
|
|
5946
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
5933
5947
|
"grid place-items-center shrink-0 size-4",
|
|
5934
5948
|
isActive ? "text-accent" : "text-ink-3",
|
|
5935
5949
|
"[&>svg]:size-4"
|
|
@@ -5944,12 +5958,12 @@ function NavItem({ icon, badge, isActive, className, children, ...props }) {
|
|
|
5944
5958
|
);
|
|
5945
5959
|
}
|
|
5946
5960
|
function NavGroup({ icon, label, children, className, ...props }) {
|
|
5947
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(reactAriaComponents.Disclosure, { ...props, className:
|
|
5961
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(reactAriaComponents.Disclosure, { ...props, className: chunkNWGG5WFL_cjs.cn("group/nav-group my-px", className), children: [
|
|
5948
5962
|
/* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Heading, { className: "m-0", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
5949
5963
|
reactAriaComponents.Button,
|
|
5950
5964
|
{
|
|
5951
5965
|
slot: "trigger",
|
|
5952
|
-
className:
|
|
5966
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
5953
5967
|
"flex w-full items-center gap-2.5",
|
|
5954
5968
|
"px-2 py-[7px] rounded-[7px]",
|
|
5955
5969
|
"text-[13.5px] tracking-[-0.005em] text-ink-2 text-left",
|
|
@@ -5993,7 +6007,7 @@ function NavGroup({ icon, label, children, className, ...props }) {
|
|
|
5993
6007
|
/* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.DisclosurePanel, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5994
6008
|
"div",
|
|
5995
6009
|
{
|
|
5996
|
-
className:
|
|
6010
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
5997
6011
|
"relative pl-[22px] py-px",
|
|
5998
6012
|
// Vertical guide rule — sits under where the parent's icon center
|
|
5999
6013
|
// would be (14px from the panel's left edge).
|
|
@@ -6017,7 +6031,7 @@ function Orb({ size = "sm", state = "solving", speed, theme, className, label })
|
|
|
6017
6031
|
size: design,
|
|
6018
6032
|
...speed !== void 0 ? { speed } : {},
|
|
6019
6033
|
...theme !== void 0 ? { theme } : {},
|
|
6020
|
-
className:
|
|
6034
|
+
className: chunkNWGG5WFL_cjs.cn("inline-block shrink-0", className),
|
|
6021
6035
|
...px !== design ? { style: { width: px, height: px } } : {},
|
|
6022
6036
|
...label ? { "aria-label": label } : { "aria-hidden": true }
|
|
6023
6037
|
}
|
|
@@ -6038,10 +6052,10 @@ var progressBarStyles = tailwindVariants.tv({
|
|
|
6038
6052
|
});
|
|
6039
6053
|
function ProgressBar({ size, className, ...props }) {
|
|
6040
6054
|
const { track, fill } = progressBarStyles({ size });
|
|
6041
|
-
return /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.ProgressBar, { ...props, className:
|
|
6055
|
+
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
6056
|
"div",
|
|
6043
6057
|
{
|
|
6044
|
-
className:
|
|
6058
|
+
className: chunkNWGG5WFL_cjs.cn(fill(), "transition-[width] duration-150"),
|
|
6045
6059
|
style: { width: `${percentage ?? 0}%` }
|
|
6046
6060
|
}
|
|
6047
6061
|
) }) });
|
|
@@ -6060,13 +6074,13 @@ function RadioGroup({
|
|
|
6060
6074
|
{
|
|
6061
6075
|
...props,
|
|
6062
6076
|
orientation,
|
|
6063
|
-
className: (renderProps) =>
|
|
6077
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn("grid gap-2", typeof className === "function" ? className(renderProps) : className),
|
|
6064
6078
|
children: [
|
|
6065
6079
|
label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
|
|
6066
6080
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6067
6081
|
"div",
|
|
6068
6082
|
{
|
|
6069
|
-
className:
|
|
6083
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6070
6084
|
orientation === "horizontal" ? "flex flex-wrap items-center gap-x-4 gap-y-2" : "grid gap-3"
|
|
6071
6085
|
),
|
|
6072
6086
|
children
|
|
@@ -6083,7 +6097,7 @@ function Radio({ children, className, ...props }) {
|
|
|
6083
6097
|
reactAriaComponents.Radio,
|
|
6084
6098
|
{
|
|
6085
6099
|
...props,
|
|
6086
|
-
className: (renderProps) =>
|
|
6100
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
6087
6101
|
// `relative` for the same reason as Checkbox / Switch: RAC's
|
|
6088
6102
|
// visually-hidden <input> is absolutely positioned and must resolve
|
|
6089
6103
|
// against this radio, not a far-away shell, or focusing it scrolls
|
|
@@ -6098,7 +6112,7 @@ function Radio({ children, className, ...props }) {
|
|
|
6098
6112
|
"span",
|
|
6099
6113
|
{
|
|
6100
6114
|
"aria-hidden": true,
|
|
6101
|
-
className:
|
|
6115
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6102
6116
|
"relative inline-flex items-center justify-center shrink-0",
|
|
6103
6117
|
"size-[18px] rounded-full border bg-surface border-ink-4",
|
|
6104
6118
|
"transition-[border-color,box-shadow] duration-150",
|
|
@@ -6109,7 +6123,7 @@ function Radio({ children, className, ...props }) {
|
|
|
6109
6123
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6110
6124
|
"span",
|
|
6111
6125
|
{
|
|
6112
|
-
className:
|
|
6126
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6113
6127
|
"block size-[10px] rounded-full bg-accent",
|
|
6114
6128
|
"transition-opacity duration-150 opacity-0",
|
|
6115
6129
|
"group-data-[selected]:opacity-100"
|
|
@@ -6153,7 +6167,7 @@ function AttributePicker({
|
|
|
6153
6167
|
autoFocus,
|
|
6154
6168
|
size,
|
|
6155
6169
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
6156
|
-
className:
|
|
6170
|
+
className: chunkNWGG5WFL_cjs.cn("w-full", className)
|
|
6157
6171
|
}
|
|
6158
6172
|
);
|
|
6159
6173
|
}
|
|
@@ -6422,7 +6436,7 @@ function ChipItem({
|
|
|
6422
6436
|
}
|
|
6423
6437
|
);
|
|
6424
6438
|
}
|
|
6425
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
6439
|
+
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
6440
|
}
|
|
6427
6441
|
function Em({ children }) {
|
|
6428
6442
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-[12px] text-ink-4", children });
|
|
@@ -6459,53 +6473,62 @@ var segmentedControlStyles = tailwindVariants.tv({
|
|
|
6459
6473
|
// stretching parent (e.g. a `flex flex-col` card body, whose default
|
|
6460
6474
|
// align-items:stretch would otherwise pull it to full width). Consumers
|
|
6461
6475
|
// can still opt into full width by passing `w-full` via className.
|
|
6462
|
-
group: "inline-flex w-fit
|
|
6476
|
+
group: "inline-flex w-fit gap-px p-0.5 rounded-chip bg-surface-2 border border-rule",
|
|
6463
6477
|
segment: [
|
|
6464
|
-
"inline-flex items-center justify-center cursor-pointer",
|
|
6465
|
-
"font-
|
|
6466
|
-
"transition-[background-color,color] duration-150",
|
|
6467
|
-
|
|
6468
|
-
|
|
6478
|
+
"inline-flex items-center justify-center gap-1 cursor-pointer select-none",
|
|
6479
|
+
"font-sans font-medium tracking-[-0.005em] rounded-sm outline-none text-ink-3",
|
|
6480
|
+
"transition-[background-color,color,box-shadow] duration-150",
|
|
6481
|
+
// Unselected: hover/press tint into the track colour. `selected` is
|
|
6482
|
+
// declared after `hovered` in styles.css, so the pill wins over these.
|
|
6483
|
+
"hovered:text-ink hovered:bg-[color-mix(in_oklab,var(--color-ink)_6%,var(--color-surface-2))]",
|
|
6484
|
+
"pressed:bg-[color-mix(in_oklab,var(--color-ink)_10%,var(--color-surface-2))]",
|
|
6485
|
+
// Selected: lifted white pill, static.
|
|
6486
|
+
"selected:bg-surface selected:text-ink selected:shadow-[var(--shadow-rest)]",
|
|
6469
6487
|
"data-[focus-visible]:shadow-[var(--shadow-focus)]",
|
|
6488
|
+
"selected:data-[focus-visible]:shadow-[var(--shadow-focus),var(--shadow-rest)]",
|
|
6470
6489
|
"data-[disabled]:opacity-45 data-[disabled]:cursor-not-allowed"
|
|
6471
6490
|
]
|
|
6472
6491
|
},
|
|
6473
6492
|
variants: {
|
|
6474
6493
|
size: {
|
|
6475
|
-
sm: { segment: "px-2 py-0.5 text-[
|
|
6476
|
-
md: { segment: "px-2.5 py-1 text-[
|
|
6494
|
+
sm: { segment: "px-2 py-0.5 text-[11.5px] min-h-[22px]" },
|
|
6495
|
+
md: { segment: "px-2.5 py-1 text-[12.5px] min-h-[26px]" }
|
|
6477
6496
|
},
|
|
6478
|
-
|
|
6479
|
-
|
|
6480
|
-
|
|
6497
|
+
// Dense flow-wrapping register (designer inspector): the group becomes a
|
|
6498
|
+
// wrapping flex row and every segment grows to share the line.
|
|
6499
|
+
wrap: {
|
|
6500
|
+
true: { group: "flex flex-wrap w-auto", segment: "flex-1 min-w-7 px-1.5" },
|
|
6501
|
+
false: {}
|
|
6481
6502
|
}
|
|
6482
6503
|
},
|
|
6483
|
-
defaultVariants: { size: "sm",
|
|
6504
|
+
defaultVariants: { size: "sm", wrap: false }
|
|
6484
6505
|
});
|
|
6485
6506
|
function SegmentedControl({
|
|
6486
6507
|
options,
|
|
6487
6508
|
value,
|
|
6488
6509
|
onChange,
|
|
6489
6510
|
size,
|
|
6511
|
+
wrap = false,
|
|
6490
6512
|
autoFocus = false,
|
|
6491
6513
|
className,
|
|
6492
6514
|
orientation = "horizontal",
|
|
6493
6515
|
...props
|
|
6494
6516
|
}) {
|
|
6495
|
-
const styles4 = segmentedControlStyles({ size });
|
|
6517
|
+
const styles4 = segmentedControlStyles({ size, wrap });
|
|
6496
6518
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6497
6519
|
reactAriaComponents.RadioGroup,
|
|
6498
6520
|
{
|
|
6499
6521
|
...props,
|
|
6500
6522
|
orientation,
|
|
6501
|
-
value: String(value),
|
|
6523
|
+
value: value === null ? null : String(value),
|
|
6502
6524
|
onChange: (next) => onChange(next),
|
|
6503
|
-
className:
|
|
6525
|
+
className: chunkNWGG5WFL_cjs.cn(styles4.group(), className),
|
|
6504
6526
|
children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
6505
6527
|
reactAriaComponents.Radio,
|
|
6506
6528
|
{
|
|
6507
6529
|
value: String(option.id),
|
|
6508
6530
|
...option.isDisabled ? { isDisabled: true } : {},
|
|
6531
|
+
...option["aria-label"] !== void 0 ? { "aria-label": option["aria-label"] } : {},
|
|
6509
6532
|
...autoFocus && option.id === value ? { autoFocus: true } : {},
|
|
6510
6533
|
className: styles4.segment(),
|
|
6511
6534
|
children: option.label
|
|
@@ -6574,14 +6597,14 @@ function TagInput({
|
|
|
6574
6597
|
onChange(value.slice(0, -1));
|
|
6575
6598
|
}
|
|
6576
6599
|
};
|
|
6577
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
6600
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkNWGG5WFL_cjs.cn("grid grid-cols-1 gap-1.5", className), children: [
|
|
6578
6601
|
label ? /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: inputId, className: fieldLabelStyles, children: label }) : null,
|
|
6579
6602
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6580
6603
|
"div",
|
|
6581
6604
|
{
|
|
6582
6605
|
"data-invalid": isInvalid || void 0,
|
|
6583
6606
|
"data-disabled": isDisabled || void 0,
|
|
6584
|
-
className:
|
|
6607
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6585
6608
|
styles4.box(),
|
|
6586
6609
|
"flex",
|
|
6587
6610
|
// Cell editor: one table row (29px under a 32px row) while the chips
|
|
@@ -6595,7 +6618,7 @@ function TagInput({
|
|
|
6595
6618
|
"div",
|
|
6596
6619
|
{
|
|
6597
6620
|
ref: chipsRef,
|
|
6598
|
-
className:
|
|
6621
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6599
6622
|
"flex flex-1 flex-wrap items-center gap-1.5 min-w-0",
|
|
6600
6623
|
isCell && (hasWrapped ? "content-start overflow-y-auto" : "content-center overflow-hidden")
|
|
6601
6624
|
),
|
|
@@ -6634,7 +6657,7 @@ function TagInput({
|
|
|
6634
6657
|
onBlur: commit,
|
|
6635
6658
|
disabled: isDisabled,
|
|
6636
6659
|
placeholder: value.length === 0 ? placeholder : "",
|
|
6637
|
-
className:
|
|
6660
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6638
6661
|
"flex-1 min-w-[6rem] bg-transparent outline-none",
|
|
6639
6662
|
"font-sans text-ink placeholder:text-ink-4",
|
|
6640
6663
|
fieldTextStyles[size],
|
|
@@ -6767,7 +6790,7 @@ function FilterValueInput({
|
|
|
6767
6790
|
onChange: (next) => onChange(next ? next.toString() : ""),
|
|
6768
6791
|
autoFocus,
|
|
6769
6792
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
6770
|
-
className:
|
|
6793
|
+
className: chunkNWGG5WFL_cjs.cn("w-full", className)
|
|
6771
6794
|
}
|
|
6772
6795
|
);
|
|
6773
6796
|
}
|
|
@@ -6784,7 +6807,7 @@ function FilterValueInput({
|
|
|
6784
6807
|
...autoFocus ? { autoFocus: true } : {}
|
|
6785
6808
|
},
|
|
6786
6809
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
6787
|
-
className:
|
|
6810
|
+
className: chunkNWGG5WFL_cjs.cn("w-full", className)
|
|
6788
6811
|
}
|
|
6789
6812
|
);
|
|
6790
6813
|
})();
|
|
@@ -6824,7 +6847,7 @@ function EnumSingleValue({
|
|
|
6824
6847
|
},
|
|
6825
6848
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
6826
6849
|
...autoFocus ? { autoFocus: true } : {},
|
|
6827
|
-
className:
|
|
6850
|
+
className: chunkNWGG5WFL_cjs.cn("w-full", className)
|
|
6828
6851
|
}
|
|
6829
6852
|
);
|
|
6830
6853
|
}
|
|
@@ -6853,7 +6876,7 @@ function EnumMultiValue({
|
|
|
6853
6876
|
placeholder: "Select values\u2026",
|
|
6854
6877
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
6855
6878
|
...autoFocus ? { autoFocus: true } : {},
|
|
6856
|
-
className:
|
|
6879
|
+
className: chunkNWGG5WFL_cjs.cn("w-full", className)
|
|
6857
6880
|
}
|
|
6858
6881
|
);
|
|
6859
6882
|
}
|
|
@@ -6911,7 +6934,7 @@ function OperatorPicker({
|
|
|
6911
6934
|
size,
|
|
6912
6935
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
6913
6936
|
...autoFocus ? { autoFocus: true } : {},
|
|
6914
|
-
className:
|
|
6937
|
+
className: chunkNWGG5WFL_cjs.cn("w-full", className),
|
|
6915
6938
|
triggerClassName: "min-w-0"
|
|
6916
6939
|
}
|
|
6917
6940
|
);
|
|
@@ -6941,7 +6964,7 @@ function FilterRow({
|
|
|
6941
6964
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6942
6965
|
"div",
|
|
6943
6966
|
{
|
|
6944
|
-
className:
|
|
6967
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6945
6968
|
"group flex items-center gap-2 px-1.5 py-1 rounded-sm",
|
|
6946
6969
|
"hover:bg-[color-mix(in_oklab,var(--color-surface-2)_50%,var(--color-surface))]"
|
|
6947
6970
|
),
|
|
@@ -6949,7 +6972,7 @@ function FilterRow({
|
|
|
6949
6972
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-12 shrink-0 inline-flex justify-end pr-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6950
6973
|
"span",
|
|
6951
6974
|
{
|
|
6952
|
-
className:
|
|
6975
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
6953
6976
|
"font-mono text-[10.5px] tracking-[0.08em]",
|
|
6954
6977
|
index === 0 ? "text-ink-4" : "text-accent-ink"
|
|
6955
6978
|
),
|
|
@@ -7017,7 +7040,7 @@ function FilterRow({
|
|
|
7017
7040
|
onClick: onWrap,
|
|
7018
7041
|
"aria-label": "Wrap in group",
|
|
7019
7042
|
title: "Wrap in a group with the opposite operator",
|
|
7020
|
-
className:
|
|
7043
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7021
7044
|
"shrink-0 size-6 inline-flex items-center justify-center rounded-sm",
|
|
7022
7045
|
"text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
|
|
7023
7046
|
"opacity-0 group-hover:opacity-100 focus-visible:opacity-100"
|
|
@@ -7044,7 +7067,7 @@ function FilterRow({
|
|
|
7044
7067
|
type: "button",
|
|
7045
7068
|
onClick: onRemove,
|
|
7046
7069
|
"aria-label": field ? "Remove filter" : "Cancel",
|
|
7047
|
-
className:
|
|
7070
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7048
7071
|
"shrink-0 size-6 inline-flex items-center justify-center rounded-sm",
|
|
7049
7072
|
"text-ink-4 hover:text-danger hover:bg-surface-2 cursor-pointer outline-none",
|
|
7050
7073
|
field ? "opacity-0 group-hover:opacity-100 focus-visible:opacity-100" : "opacity-100"
|
|
@@ -7173,7 +7196,7 @@ function GroupAddControls({
|
|
|
7173
7196
|
{
|
|
7174
7197
|
type: "button",
|
|
7175
7198
|
onClick: onAddFilter,
|
|
7176
|
-
className:
|
|
7199
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7177
7200
|
"inline-flex items-center gap-1.5 px-2 py-1 rounded-sm",
|
|
7178
7201
|
"text-ink-2 hover:bg-surface-2 hover:text-ink cursor-pointer outline-none"
|
|
7179
7202
|
),
|
|
@@ -7201,7 +7224,7 @@ function GroupAddControls({
|
|
|
7201
7224
|
type: "button",
|
|
7202
7225
|
onClick: onAddGroup,
|
|
7203
7226
|
title: "Add a nested group with its own logical operator",
|
|
7204
|
-
className:
|
|
7227
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7205
7228
|
"inline-flex items-center gap-1.5 px-2 py-1 rounded-sm",
|
|
7206
7229
|
"text-ink-2 hover:bg-surface-2 hover:text-ink cursor-pointer outline-none"
|
|
7207
7230
|
),
|
|
@@ -7247,7 +7270,7 @@ function NestedGroup({
|
|
|
7247
7270
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-12 shrink-0 inline-flex justify-end pr-1 pt-2", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7248
7271
|
"span",
|
|
7249
7272
|
{
|
|
7250
|
-
className:
|
|
7273
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7251
7274
|
"font-mono text-[10.5px] tracking-[0.08em]",
|
|
7252
7275
|
index === 0 ? "text-ink-4" : "text-accent-ink"
|
|
7253
7276
|
),
|
|
@@ -7257,7 +7280,7 @@ function NestedGroup({
|
|
|
7257
7280
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7258
7281
|
"div",
|
|
7259
7282
|
{
|
|
7260
|
-
className:
|
|
7283
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7261
7284
|
"flex-1 min-w-0 rounded-sm border border-rule",
|
|
7262
7285
|
"bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]"
|
|
7263
7286
|
),
|
|
@@ -7270,8 +7293,8 @@ function NestedGroup({
|
|
|
7270
7293
|
{
|
|
7271
7294
|
"aria-label": "Group joiner",
|
|
7272
7295
|
options: [
|
|
7273
|
-
{ id: "and", label: "
|
|
7274
|
-
{ id: "or", label: "
|
|
7296
|
+
{ id: "and", label: "and" },
|
|
7297
|
+
{ id: "or", label: "or" }
|
|
7275
7298
|
],
|
|
7276
7299
|
value: group.logicalOperator,
|
|
7277
7300
|
onChange: (next) => onChange({ ...group, logicalOperator: next })
|
|
@@ -7284,7 +7307,7 @@ function NestedGroup({
|
|
|
7284
7307
|
type: "button",
|
|
7285
7308
|
onClick: onRemove,
|
|
7286
7309
|
"aria-label": "Remove group",
|
|
7287
|
-
className:
|
|
7310
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7288
7311
|
"size-6 inline-flex items-center justify-center rounded-sm",
|
|
7289
7312
|
"text-ink-4 hover:text-danger hover:bg-surface cursor-pointer outline-none"
|
|
7290
7313
|
),
|
|
@@ -7507,8 +7530,8 @@ function RecordFilterBuilderPanel({
|
|
|
7507
7530
|
{
|
|
7508
7531
|
"aria-label": "Joiner",
|
|
7509
7532
|
options: [
|
|
7510
|
-
{ id: "and", label: "
|
|
7511
|
-
{ id: "or", label: "
|
|
7533
|
+
{ id: "and", label: "and" },
|
|
7534
|
+
{ id: "or", label: "or" }
|
|
7512
7535
|
],
|
|
7513
7536
|
value: filter.logicalOperator,
|
|
7514
7537
|
onChange: setJoiner2
|
|
@@ -7527,7 +7550,7 @@ function RecordFilterBuilderPanel({
|
|
|
7527
7550
|
type: "button",
|
|
7528
7551
|
onClick: onExpand,
|
|
7529
7552
|
title: "Show filter chips inline above the table",
|
|
7530
|
-
className:
|
|
7553
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7531
7554
|
"inline-flex items-center gap-1 px-2 py-1 rounded-sm",
|
|
7532
7555
|
"font-mono text-[11.5px] text-ink-3 hover:text-ink hover:bg-surface-2",
|
|
7533
7556
|
"cursor-pointer outline-none"
|
|
@@ -7557,7 +7580,7 @@ function RecordFilterBuilderPanel({
|
|
|
7557
7580
|
type: "button",
|
|
7558
7581
|
onClick: onClose,
|
|
7559
7582
|
"aria-label": "Close",
|
|
7560
|
-
className:
|
|
7583
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7561
7584
|
"size-6 inline-flex items-center justify-center rounded-sm",
|
|
7562
7585
|
"text-ink-3 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none"
|
|
7563
7586
|
),
|
|
@@ -7592,7 +7615,7 @@ function RecordFilterBuilderPanel({
|
|
|
7592
7615
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7593
7616
|
"div",
|
|
7594
7617
|
{
|
|
7595
|
-
className:
|
|
7618
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7596
7619
|
"flex items-center justify-between px-3.5 py-2.5 border-t border-rule rounded-b-md",
|
|
7597
7620
|
"bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]"
|
|
7598
7621
|
),
|
|
@@ -7603,7 +7626,7 @@ function RecordFilterBuilderPanel({
|
|
|
7603
7626
|
type: "button",
|
|
7604
7627
|
onClick: clearAll,
|
|
7605
7628
|
disabled: totalChildren === 0,
|
|
7606
|
-
className:
|
|
7629
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7607
7630
|
"font-mono text-[11.5px] text-ink-3 hover:text-ink",
|
|
7608
7631
|
"disabled:opacity-40 disabled:pointer-events-none",
|
|
7609
7632
|
"outline-none cursor-pointer"
|
|
@@ -7613,17 +7636,12 @@ function RecordFilterBuilderPanel({
|
|
|
7613
7636
|
),
|
|
7614
7637
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
7615
7638
|
onSaveView ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7616
|
-
|
|
7639
|
+
chunkNWGG5WFL_cjs.Button,
|
|
7617
7640
|
{
|
|
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
|
-
),
|
|
7641
|
+
variant: "ghost",
|
|
7642
|
+
size: "sm",
|
|
7643
|
+
onPress: onSaveView,
|
|
7644
|
+
isDisabled: totalChildren === 0,
|
|
7627
7645
|
children: [
|
|
7628
7646
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7629
7647
|
"svg",
|
|
@@ -7646,19 +7664,7 @@ function RecordFilterBuilderPanel({
|
|
|
7646
7664
|
]
|
|
7647
7665
|
}
|
|
7648
7666
|
) : 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
|
-
)
|
|
7667
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { variant: "cta", size: "sm", onPress: onClose, children: "Done" })
|
|
7662
7668
|
] })
|
|
7663
7669
|
]
|
|
7664
7670
|
}
|
|
@@ -7732,11 +7738,11 @@ function RecordFilterButton({
|
|
|
7732
7738
|
type: "button",
|
|
7733
7739
|
"data-filter-trigger": "collapsed",
|
|
7734
7740
|
onClick: () => setOpen((v) => !v),
|
|
7735
|
-
className:
|
|
7741
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7736
7742
|
"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md border",
|
|
7737
7743
|
"font-mono text-[12px] cursor-pointer outline-none",
|
|
7738
7744
|
"focus-visible:shadow-[var(--shadow-focus)]",
|
|
7739
|
-
hasFilters ?
|
|
7745
|
+
hasFilters ? chunkNWGG5WFL_cjs.cn(
|
|
7740
7746
|
"border-[color-mix(in_oklab,var(--color-accent)_35%,var(--color-rule))]",
|
|
7741
7747
|
"bg-[color-mix(in_oklab,var(--color-accent)_8%,var(--color-surface))]",
|
|
7742
7748
|
"text-accent-ink"
|
|
@@ -7835,7 +7841,7 @@ function RecordFilterChips({
|
|
|
7835
7841
|
logicalOperator: filter.logicalOperator === "and" ? "or" : "and"
|
|
7836
7842
|
}),
|
|
7837
7843
|
title: "Toggle joiner",
|
|
7838
|
-
className:
|
|
7844
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7839
7845
|
"inline-flex items-center px-1.5 py-0.5 rounded-sm border border-dashed border-rule",
|
|
7840
7846
|
"font-mono text-[10.5px] tracking-[0.08em] text-ink-3",
|
|
7841
7847
|
"hover:text-ink hover:border-ink-4 cursor-pointer outline-none"
|
|
@@ -7908,7 +7914,7 @@ function RecordFilterChips({
|
|
|
7908
7914
|
elements: elements.filter((_, idx) => idx !== i)
|
|
7909
7915
|
});
|
|
7910
7916
|
},
|
|
7911
|
-
className:
|
|
7917
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7912
7918
|
"size-5 inline-flex items-center justify-center rounded-[3px]",
|
|
7913
7919
|
"text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none"
|
|
7914
7920
|
),
|
|
@@ -7953,7 +7959,7 @@ function GroupPill({ group }) {
|
|
|
7953
7959
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7954
7960
|
"span",
|
|
7955
7961
|
{
|
|
7956
|
-
className:
|
|
7962
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7957
7963
|
"inline-flex items-center gap-1.5 px-2 py-1 rounded-sm border border-dashed border-rule",
|
|
7958
7964
|
"bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]"
|
|
7959
7965
|
),
|
|
@@ -7991,7 +7997,7 @@ function CollapseToggle({ onClick }) {
|
|
|
7991
7997
|
{
|
|
7992
7998
|
type: "button",
|
|
7993
7999
|
onClick,
|
|
7994
|
-
className:
|
|
8000
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
7995
8001
|
"inline-flex items-center gap-1",
|
|
7996
8002
|
"font-mono text-[11px] uppercase tracking-[0.08em]",
|
|
7997
8003
|
"text-ink-3 hover:text-ink cursor-pointer outline-none"
|
|
@@ -8051,7 +8057,7 @@ function Chip2({
|
|
|
8051
8057
|
setEditing((v) => !v);
|
|
8052
8058
|
}
|
|
8053
8059
|
},
|
|
8054
|
-
className:
|
|
8060
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8055
8061
|
"group inline-flex items-center gap-1.5 pl-2 pr-1 py-1 rounded-sm border cursor-pointer",
|
|
8056
8062
|
editing ? "border-accent shadow-[var(--shadow-focus)] bg-surface" : "border-rule bg-surface hover:border-ink-4"
|
|
8057
8063
|
),
|
|
@@ -8084,7 +8090,7 @@ function Chip2({
|
|
|
8084
8090
|
onRemove();
|
|
8085
8091
|
if (editing) setEditing(false);
|
|
8086
8092
|
},
|
|
8087
|
-
className:
|
|
8093
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8088
8094
|
"ml-0.5 size-4 inline-flex items-center justify-center rounded-[3px]",
|
|
8089
8095
|
"text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none"
|
|
8090
8096
|
),
|
|
@@ -8165,19 +8171,7 @@ function ChipMiniEditor({
|
|
|
8165
8171
|
onChange: onChangeValue
|
|
8166
8172
|
}
|
|
8167
8173
|
) }),
|
|
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
|
-
)
|
|
8174
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkNWGG5WFL_cjs.Button, { type: "submit", variant: "cta", size: "sm", className: "shrink-0", children: "Save" })
|
|
8181
8175
|
]
|
|
8182
8176
|
}
|
|
8183
8177
|
);
|
|
@@ -8189,7 +8183,7 @@ function InlineAddFilter({ onClick }) {
|
|
|
8189
8183
|
type: "button",
|
|
8190
8184
|
"data-filter-trigger": "expanded",
|
|
8191
8185
|
onClick,
|
|
8192
|
-
className:
|
|
8186
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8193
8187
|
"inline-flex items-center gap-1 px-2 py-1 rounded-sm",
|
|
8194
8188
|
"text-ink-3 hover:bg-surface-2 hover:text-ink cursor-pointer outline-none"
|
|
8195
8189
|
),
|
|
@@ -8240,7 +8234,7 @@ function Separator({
|
|
|
8240
8234
|
{
|
|
8241
8235
|
...props,
|
|
8242
8236
|
orientation,
|
|
8243
|
-
className:
|
|
8237
|
+
className: chunkNWGG5WFL_cjs.cn(separatorStyles({ orientation, variant }), className)
|
|
8244
8238
|
}
|
|
8245
8239
|
);
|
|
8246
8240
|
}
|
|
@@ -8249,7 +8243,7 @@ function SuccessAnimation({ className }) {
|
|
|
8249
8243
|
"div",
|
|
8250
8244
|
{
|
|
8251
8245
|
"aria-hidden": true,
|
|
8252
|
-
className:
|
|
8246
|
+
className: chunkNWGG5WFL_cjs.cn("size-24 text-success motion-safe:animate-status-pop", className),
|
|
8253
8247
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleCheck, { className: "size-full", strokeWidth: 1.5 })
|
|
8254
8248
|
}
|
|
8255
8249
|
);
|
|
@@ -8259,7 +8253,7 @@ function Switch({ children, labelPlacement = "end", className, ...props }) {
|
|
|
8259
8253
|
reactAriaComponents.Switch,
|
|
8260
8254
|
{
|
|
8261
8255
|
...props,
|
|
8262
|
-
className: (renderProps) =>
|
|
8256
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
8263
8257
|
// `relative`: RAC's visually-hidden <input> is absolutely positioned;
|
|
8264
8258
|
// without a positioned label it escapes an overflow-auto ancestor and
|
|
8265
8259
|
// its containing block becomes the page shell, so focusing it (any
|
|
@@ -8275,7 +8269,7 @@ function Switch({ children, labelPlacement = "end", className, ...props }) {
|
|
|
8275
8269
|
"span",
|
|
8276
8270
|
{
|
|
8277
8271
|
"aria-hidden": true,
|
|
8278
|
-
className:
|
|
8272
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8279
8273
|
"relative inline-block shrink-0",
|
|
8280
8274
|
"w-[38px] h-[22px] rounded-pill border",
|
|
8281
8275
|
"bg-surface-3 border-rule",
|
|
@@ -8286,7 +8280,7 @@ function Switch({ children, labelPlacement = "end", className, ...props }) {
|
|
|
8286
8280
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8287
8281
|
"span",
|
|
8288
8282
|
{
|
|
8289
|
-
className:
|
|
8283
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8290
8284
|
"absolute top-[1px] left-[1px]",
|
|
8291
8285
|
"block size-[18px] rounded-full bg-surface",
|
|
8292
8286
|
"transition-transform duration-200",
|
|
@@ -8336,7 +8330,7 @@ function Root({ size, className, children, ...props }) {
|
|
|
8336
8330
|
reactAriaComponents.Tabs,
|
|
8337
8331
|
{
|
|
8338
8332
|
...props,
|
|
8339
|
-
className: (rp) =>
|
|
8333
|
+
className: (rp) => chunkNWGG5WFL_cjs.cn(styles4.root(), typeof className === "function" ? className(rp) : className),
|
|
8340
8334
|
children
|
|
8341
8335
|
}
|
|
8342
8336
|
);
|
|
@@ -8347,7 +8341,7 @@ function List({ size, className, children, ...props }) {
|
|
|
8347
8341
|
reactAriaComponents.TabList,
|
|
8348
8342
|
{
|
|
8349
8343
|
...props,
|
|
8350
|
-
className: (rp) =>
|
|
8344
|
+
className: (rp) => chunkNWGG5WFL_cjs.cn(styles4.list(), typeof className === "function" ? className(rp) : className),
|
|
8351
8345
|
children
|
|
8352
8346
|
}
|
|
8353
8347
|
);
|
|
@@ -8358,7 +8352,7 @@ function Trigger({ size, className, children, ...props }) {
|
|
|
8358
8352
|
reactAriaComponents.Tab,
|
|
8359
8353
|
{
|
|
8360
8354
|
...props,
|
|
8361
|
-
className: (rp) =>
|
|
8355
|
+
className: (rp) => chunkNWGG5WFL_cjs.cn(styles4.trigger(), typeof className === "function" ? className(rp) : className),
|
|
8362
8356
|
children
|
|
8363
8357
|
}
|
|
8364
8358
|
);
|
|
@@ -8369,7 +8363,7 @@ function Panel({ className, children, ...props }) {
|
|
|
8369
8363
|
reactAriaComponents.TabPanel,
|
|
8370
8364
|
{
|
|
8371
8365
|
...props,
|
|
8372
|
-
className: (rp) =>
|
|
8366
|
+
className: (rp) => chunkNWGG5WFL_cjs.cn(styles4.panel(), typeof className === "function" ? className(rp) : className),
|
|
8373
8367
|
children
|
|
8374
8368
|
}
|
|
8375
8369
|
);
|
|
@@ -8398,7 +8392,7 @@ function Textarea({
|
|
|
8398
8392
|
reactAriaComponents.TextField,
|
|
8399
8393
|
{
|
|
8400
8394
|
...props,
|
|
8401
|
-
className: (renderProps) =>
|
|
8395
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
8402
8396
|
"grid grid-cols-1 gap-1.5",
|
|
8403
8397
|
typeof className === "function" ? className(renderProps) : className
|
|
8404
8398
|
),
|
|
@@ -8410,7 +8404,7 @@ function Textarea({
|
|
|
8410
8404
|
...textareaProps,
|
|
8411
8405
|
rows,
|
|
8412
8406
|
placeholder: placeholder ?? "",
|
|
8413
|
-
className:
|
|
8407
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8414
8408
|
// Same hairline chrome as Input, but allow vertical resize and set a
|
|
8415
8409
|
// sensible minimum height so short content doesn't collapse.
|
|
8416
8410
|
styles4.box(),
|
|
@@ -8441,7 +8435,7 @@ function TimeField({
|
|
|
8441
8435
|
reactAriaComponents.TimeField,
|
|
8442
8436
|
{
|
|
8443
8437
|
...props,
|
|
8444
|
-
className: (renderProps) =>
|
|
8438
|
+
className: (renderProps) => chunkNWGG5WFL_cjs.cn(
|
|
8445
8439
|
"grid grid-cols-1 gap-1.5",
|
|
8446
8440
|
typeof className === "function" ? className(renderProps) : className
|
|
8447
8441
|
),
|
|
@@ -8450,7 +8444,7 @@ function TimeField({
|
|
|
8450
8444
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8451
8445
|
reactAriaComponents.DateInput,
|
|
8452
8446
|
{
|
|
8453
|
-
className:
|
|
8447
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8454
8448
|
styles4.box(),
|
|
8455
8449
|
styles4.content(),
|
|
8456
8450
|
"flex items-center min-w-0 text-ink",
|
|
@@ -8463,12 +8457,12 @@ function TimeField({
|
|
|
8463
8457
|
reactAriaComponents.DateSegment,
|
|
8464
8458
|
{
|
|
8465
8459
|
segment,
|
|
8466
|
-
className:
|
|
8460
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8467
8461
|
"px-px tabular-nums outline-none select-none",
|
|
8468
8462
|
"data-[placeholder]:text-ink-4",
|
|
8469
8463
|
"data-[type=literal]:text-ink-4",
|
|
8470
8464
|
// segment focus treatment: indigo fill, paper text
|
|
8471
|
-
"data-[focused]:bg-accent data-[focused]:text-
|
|
8465
|
+
"data-[focused]:bg-accent data-[focused]:text-tile-fg data-[focused]:rounded-[3px]",
|
|
8472
8466
|
"data-[disabled]:cursor-not-allowed"
|
|
8473
8467
|
)
|
|
8474
8468
|
}
|
|
@@ -8491,8 +8485,8 @@ var toastStyles = tailwindVariants.tv({
|
|
|
8491
8485
|
"rounded-lg border border-rule bg-surface shadow-float",
|
|
8492
8486
|
"px-3.5 py-3 outline-none",
|
|
8493
8487
|
"focus-visible:shadow-focus",
|
|
8494
|
-
"entering:animate-
|
|
8495
|
-
"exiting:animate-
|
|
8488
|
+
"entering:animate-enter-slide-up",
|
|
8489
|
+
"exiting:animate-exit-fade"
|
|
8496
8490
|
],
|
|
8497
8491
|
icon: "size-4 shrink-0 mt-0.5",
|
|
8498
8492
|
title: "font-sans text-[13px] font-medium leading-[1.4] text-ink",
|
|
@@ -8517,7 +8511,7 @@ function ToastRegion({ queue, className }) {
|
|
|
8517
8511
|
reactAriaComponents.UNSTABLE_ToastRegion,
|
|
8518
8512
|
{
|
|
8519
8513
|
queue,
|
|
8520
|
-
className:
|
|
8514
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8521
8515
|
"fixed bottom-4 right-4 z-[1300] flex flex-col-reverse gap-2 outline-none",
|
|
8522
8516
|
className
|
|
8523
8517
|
),
|
|
@@ -8536,7 +8530,7 @@ function ToastRegion({ queue, className }) {
|
|
|
8536
8530
|
{
|
|
8537
8531
|
slot: "close",
|
|
8538
8532
|
"aria-label": "Dismiss",
|
|
8539
|
-
className:
|
|
8533
|
+
className: chunkNWGG5WFL_cjs.cn(
|
|
8540
8534
|
"shrink-0 inline-flex items-center justify-center size-6 rounded-md",
|
|
8541
8535
|
"text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
|
|
8542
8536
|
"focus-visible:shadow-focus"
|
|
@@ -8552,23 +8546,23 @@ function ToastRegion({ queue, className }) {
|
|
|
8552
8546
|
|
|
8553
8547
|
Object.defineProperty(exports, "Button", {
|
|
8554
8548
|
enumerable: true,
|
|
8555
|
-
get: function () { return
|
|
8549
|
+
get: function () { return chunkNWGG5WFL_cjs.Button; }
|
|
8556
8550
|
});
|
|
8557
8551
|
Object.defineProperty(exports, "Skeleton", {
|
|
8558
8552
|
enumerable: true,
|
|
8559
|
-
get: function () { return
|
|
8553
|
+
get: function () { return chunkNWGG5WFL_cjs.Skeleton; }
|
|
8560
8554
|
});
|
|
8561
8555
|
Object.defineProperty(exports, "buttonStyles", {
|
|
8562
8556
|
enumerable: true,
|
|
8563
|
-
get: function () { return
|
|
8557
|
+
get: function () { return chunkNWGG5WFL_cjs.buttonStyles; }
|
|
8564
8558
|
});
|
|
8565
8559
|
Object.defineProperty(exports, "cn", {
|
|
8566
8560
|
enumerable: true,
|
|
8567
|
-
get: function () { return
|
|
8561
|
+
get: function () { return chunkNWGG5WFL_cjs.cn; }
|
|
8568
8562
|
});
|
|
8569
8563
|
Object.defineProperty(exports, "skeletonStyles", {
|
|
8570
8564
|
enumerable: true,
|
|
8571
|
-
get: function () { return
|
|
8565
|
+
get: function () { return chunkNWGG5WFL_cjs.skeletonStyles; }
|
|
8572
8566
|
});
|
|
8573
8567
|
exports.ATTRIBUTE_TYPES = ATTRIBUTE_TYPES;
|
|
8574
8568
|
exports.ATTRIBUTE_TYPE_ICONS = ATTRIBUTE_TYPE_ICONS;
|