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