@proteos/ui 0.61.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 +811 -304
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +365 -15
- package/dist/index.d.ts +365 -15
- package/dist/index.js +537 -39
- 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/availability-calendar/availability-calendar.stories.tsx +78 -0
- package/src/components/availability-calendar/availability-calendar.test.tsx +89 -0
- package/src/components/availability-calendar/availability-calendar.tsx +182 -0
- package/src/components/availability-calendar/index.ts +5 -0
- 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/conversation-brief-card/conversation-brief-preview.tsx +176 -47
- package/src/components/conversation-brief-card/conversation-brief-review.test.tsx +58 -1
- package/src/components/data-table/data-table.test.tsx +65 -0
- package/src/components/data-table/data-table.tsx +33 -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/components/stepper/index.ts +8 -0
- package/src/components/stepper/stepper.stories.tsx +84 -0
- package/src/components/stepper/stepper.test.tsx +79 -0
- package/src/components/stepper/stepper.tsx +127 -0
- package/src/components/time-slot-list/index.ts +2 -0
- package/src/components/time-slot-list/time-slot-list.stories.tsx +100 -0
- package/src/components/time-slot-list/time-slot-list.test.tsx +120 -0
- package/src/components/time-slot-list/time-slot-list.tsx +154 -0
- package/src/components/tooltip/tooltip.tsx +4 -1
- package/src/index.ts +4 -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,11 +396,113 @@ 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
|
);
|
|
403
403
|
}
|
|
404
|
+
var availabilityCalendarStyles = tailwindVariants.tv({
|
|
405
|
+
slots: {
|
|
406
|
+
root: "flex flex-col",
|
|
407
|
+
header: "flex items-center justify-between mb-3.5",
|
|
408
|
+
heading: "font-sans text-[15px] text-ink tracking-[-0.01em]",
|
|
409
|
+
headingYear: "ml-1 text-ink-3",
|
|
410
|
+
nav: "flex gap-1",
|
|
411
|
+
navButton: [
|
|
412
|
+
"size-7 rounded-md inline-flex items-center justify-center cursor-pointer outline-none",
|
|
413
|
+
"text-ink-3 hovered:text-ink hovered:bg-surface-3 pressed:bg-surface-4",
|
|
414
|
+
"data-[focus-visible]:shadow-[var(--shadow-focus)]",
|
|
415
|
+
"data-[disabled]:opacity-40 data-[disabled]:cursor-default data-[disabled]:hover:bg-transparent"
|
|
416
|
+
],
|
|
417
|
+
grid: "w-full border-separate border-spacing-1 table-fixed -m-1",
|
|
418
|
+
weekday: "font-mono text-[11px] font-medium uppercase tracking-[0.08em] text-ink-3 pb-2 text-center",
|
|
419
|
+
cell: [
|
|
420
|
+
"relative aspect-square flex items-center justify-center cursor-pointer outline-none",
|
|
421
|
+
"font-sans text-[14px] font-medium rounded-sm border border-transparent",
|
|
422
|
+
"transition-[background-color,color,border-color] duration-150",
|
|
423
|
+
// Available (the default when neither unavailable nor disabled).
|
|
424
|
+
"bg-surface-2 text-ink",
|
|
425
|
+
"data-[hovered]:bg-surface-3 data-[hovered]:border-rule-strong",
|
|
426
|
+
"data-[focus-visible]:shadow-[var(--shadow-focus)]",
|
|
427
|
+
// Selected: the one ink fill on the page.
|
|
428
|
+
"data-[selected]:bg-ink data-[selected]:text-surface data-[selected]:border-ink",
|
|
429
|
+
"data-[selected]:data-[hovered]:bg-ink data-[selected]:data-[hovered]:border-ink",
|
|
430
|
+
// Unavailable / past: quiet text, no fill, no hover.
|
|
431
|
+
"data-[unavailable]:bg-transparent data-[unavailable]:text-ink-4 data-[unavailable]:font-normal data-[unavailable]:cursor-default",
|
|
432
|
+
"data-[unavailable]:data-[hovered]:bg-transparent data-[unavailable]:data-[hovered]:border-transparent",
|
|
433
|
+
"data-[disabled]:bg-transparent data-[disabled]:text-ink-4 data-[disabled]:font-normal data-[disabled]:cursor-default",
|
|
434
|
+
"data-[disabled]:data-[hovered]:bg-transparent data-[disabled]:data-[hovered]:border-transparent",
|
|
435
|
+
// Days of the neighbouring months are blank in a month-aligned grid.
|
|
436
|
+
"data-[outside-month]:invisible"
|
|
437
|
+
],
|
|
438
|
+
dot: "absolute bottom-1.5 left-1/2 -translate-x-1/2 size-1 rounded-full bg-current",
|
|
439
|
+
cellSkeleton: "absolute inset-0 rounded-sm"
|
|
440
|
+
},
|
|
441
|
+
variants: {
|
|
442
|
+
isLoading: {
|
|
443
|
+
true: { cell: "bg-transparent cursor-default" },
|
|
444
|
+
false: {}
|
|
445
|
+
}
|
|
446
|
+
},
|
|
447
|
+
defaultVariants: { isLoading: false }
|
|
448
|
+
});
|
|
449
|
+
function AvailabilityCalendar({
|
|
450
|
+
value,
|
|
451
|
+
onChange,
|
|
452
|
+
isLoading = false,
|
|
453
|
+
className,
|
|
454
|
+
isDateUnavailable,
|
|
455
|
+
weekdayStyle = "short",
|
|
456
|
+
...props
|
|
457
|
+
}) {
|
|
458
|
+
const styles4 = availabilityCalendarStyles({ isLoading });
|
|
459
|
+
const unavailable = isLoading ? () => true : isDateUnavailable;
|
|
460
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
461
|
+
reactAriaComponents.Calendar,
|
|
462
|
+
{
|
|
463
|
+
...props,
|
|
464
|
+
value,
|
|
465
|
+
onChange: (next) => onChange(next),
|
|
466
|
+
...unavailable ? { isDateUnavailable: unavailable } : {},
|
|
467
|
+
visibleDuration: { months: 1 },
|
|
468
|
+
className: chunk4ACELYEP_cjs.cn(styles4.root(), className),
|
|
469
|
+
children: [
|
|
470
|
+
/* @__PURE__ */ jsxRuntime.jsxs("header", { className: styles4.header(), children: [
|
|
471
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Heading, { className: styles4.heading(), children: /* @__PURE__ */ jsxRuntime.jsx(MonthHeading, { yearClassName: styles4.headingYear() }) }),
|
|
472
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles4.nav(), children: [
|
|
473
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Button, { slot: "previous", "aria-label": "Previous month", className: styles4.navButton(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: "size-4", "aria-hidden": "true" }) }),
|
|
474
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Button, { slot: "next", "aria-label": "Next month", className: styles4.navButton(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "size-4", "aria-hidden": "true" }) })
|
|
475
|
+
] })
|
|
476
|
+
] }),
|
|
477
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { "aria-busy": isLoading, children: /* @__PURE__ */ jsxRuntime.jsxs(reactAriaComponents.CalendarGrid, { weekdayStyle, className: styles4.grid(), children: [
|
|
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(chunk4ACELYEP_cjs.Skeleton, { className: styles4.cellSkeleton() }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
480
|
+
formattedDate,
|
|
481
|
+
isToday && /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles4.dot(), "aria-hidden": "true" })
|
|
482
|
+
] }) }) })
|
|
483
|
+
] }) })
|
|
484
|
+
]
|
|
485
|
+
}
|
|
486
|
+
);
|
|
487
|
+
}
|
|
488
|
+
function MonthHeading({ yearClassName }) {
|
|
489
|
+
const state = react.useContext(reactAriaComponents.CalendarStateContext);
|
|
490
|
+
if (!state) return null;
|
|
491
|
+
const start = state.visibleRange.start;
|
|
492
|
+
const date = start.toDate(state.timeZone);
|
|
493
|
+
const month = new Intl.DateTimeFormat(void 0, {
|
|
494
|
+
month: "long",
|
|
495
|
+
timeZone: state.timeZone
|
|
496
|
+
}).format(date);
|
|
497
|
+
const year = new Intl.DateTimeFormat(void 0, {
|
|
498
|
+
year: "numeric",
|
|
499
|
+
timeZone: state.timeZone
|
|
500
|
+
}).format(date);
|
|
501
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
502
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: month }),
|
|
503
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: yearClassName, children: year })
|
|
504
|
+
] });
|
|
505
|
+
}
|
|
404
506
|
var avatarStyles = tailwindVariants.tv({
|
|
405
507
|
base: [
|
|
406
508
|
"inline-grid place-items-center shrink-0 select-none overflow-hidden",
|
|
@@ -441,7 +543,7 @@ function Avatar({
|
|
|
441
543
|
}) {
|
|
442
544
|
const [failedSrc, setFailedSrc] = react.useState(null);
|
|
443
545
|
const showsImage = Boolean(src) && failedSrc !== src;
|
|
444
|
-
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(
|
|
445
547
|
"img",
|
|
446
548
|
{
|
|
447
549
|
src: src ?? void 0,
|
|
@@ -471,7 +573,7 @@ function AvatarGroup({
|
|
|
471
573
|
}) {
|
|
472
574
|
const shown = avatars.slice(0, max);
|
|
473
575
|
const overflow = avatars.length - shown.length;
|
|
474
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("span", { ...props, className:
|
|
576
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("span", { ...props, className: chunk4ACELYEP_cjs.cn(avatarGroupStyles({ size }), className), children: [
|
|
475
577
|
shown.map((avatar, index) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded-full ring-[1.5px] ring-surface", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
476
578
|
Avatar,
|
|
477
579
|
{
|
|
@@ -647,7 +749,7 @@ function IconPicker({
|
|
|
647
749
|
open(false);
|
|
648
750
|
triggerRef.current?.focus();
|
|
649
751
|
};
|
|
650
|
-
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: [
|
|
651
753
|
label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
|
|
652
754
|
compact ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
653
755
|
"button",
|
|
@@ -661,7 +763,7 @@ function IconPicker({
|
|
|
661
763
|
disabled: isDisabled,
|
|
662
764
|
onClick: () => open(!isOpen),
|
|
663
765
|
"data-invalid": isInvalid || void 0,
|
|
664
|
-
className:
|
|
766
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
665
767
|
styles4.box(),
|
|
666
768
|
"flex shrink-0 items-center justify-center cursor-pointer",
|
|
667
769
|
appearance === "cell" ? "size-[29px]" : COMPACT_SIZE[size],
|
|
@@ -680,7 +782,7 @@ function IconPicker({
|
|
|
680
782
|
disabled: isDisabled,
|
|
681
783
|
onClick: () => open(!isOpen),
|
|
682
784
|
"data-invalid": isInvalid || void 0,
|
|
683
|
-
className:
|
|
785
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
684
786
|
// box carries no padding by contract — content is what gives a
|
|
685
787
|
// single-element control its interior (padding, font, text-size).
|
|
686
788
|
styles4.box(),
|
|
@@ -690,7 +792,7 @@ function IconPicker({
|
|
|
690
792
|
),
|
|
691
793
|
children: [
|
|
692
794
|
SelectedIcon ? /* @__PURE__ */ jsxRuntime.jsx(SelectedIcon, { "aria-hidden": true, className: "size-4 shrink-0 text-ink-2" }) : null,
|
|
693
|
-
/* @__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 }),
|
|
694
796
|
/* @__PURE__ */ jsxRuntime.jsx(FieldCaret, {})
|
|
695
797
|
]
|
|
696
798
|
}
|
|
@@ -705,7 +807,7 @@ function IconPicker({
|
|
|
705
807
|
triggerRef,
|
|
706
808
|
offset: 6,
|
|
707
809
|
placement: "bottom start",
|
|
708
|
-
className:
|
|
810
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
709
811
|
"w-[316px] rounded-md border border-rule bg-surface p-2",
|
|
710
812
|
"shadow-[var(--shadow-raised)]",
|
|
711
813
|
"entering:animate-enter-slide-down",
|
|
@@ -716,7 +818,7 @@ function IconPicker({
|
|
|
716
818
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
717
819
|
"div",
|
|
718
820
|
{
|
|
719
|
-
className:
|
|
821
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
720
822
|
fieldControlStyles({ size: "sm" }).box(),
|
|
721
823
|
"flex min-w-0 flex-1 items-center gap-1.5 px-2.5 py-1.5",
|
|
722
824
|
"focus-within:border-accent focus-within:shadow-[var(--shadow-focus)]"
|
|
@@ -731,7 +833,7 @@ function IconPicker({
|
|
|
731
833
|
value: query,
|
|
732
834
|
onChange: (event) => search(event.target.value),
|
|
733
835
|
placeholder: "Search icons\u2026",
|
|
734
|
-
className:
|
|
836
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
735
837
|
"min-w-0 flex-1 bg-transparent font-sans outline-none",
|
|
736
838
|
"text-ink placeholder:text-ink-4",
|
|
737
839
|
fieldTextStyles.sm
|
|
@@ -746,7 +848,7 @@ function IconPicker({
|
|
|
746
848
|
{
|
|
747
849
|
type: "button",
|
|
748
850
|
onClick: () => pick(null),
|
|
749
|
-
className:
|
|
851
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
750
852
|
"flex shrink-0 items-center gap-1 rounded-[6px] px-2 py-1.5 cursor-pointer",
|
|
751
853
|
"font-sans text-[12px] text-ink-3 transition-colors",
|
|
752
854
|
"hover:bg-surface-2 hover:text-ink",
|
|
@@ -777,7 +879,7 @@ function IconPicker({
|
|
|
777
879
|
if (next !== void 0) pick(next);
|
|
778
880
|
},
|
|
779
881
|
className: "grid grid-cols-8 gap-0.5 outline-none",
|
|
780
|
-
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" }),
|
|
781
883
|
children: visible.map((name) => {
|
|
782
884
|
const Icon = lucideReact.icons[name];
|
|
783
885
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -786,7 +888,7 @@ function IconPicker({
|
|
|
786
888
|
id: name,
|
|
787
889
|
textValue: name,
|
|
788
890
|
"aria-label": name,
|
|
789
|
-
className:
|
|
891
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
790
892
|
"flex size-[34px] items-center justify-center rounded-[6px]",
|
|
791
893
|
"cursor-pointer outline-none",
|
|
792
894
|
"data-[hovered]:bg-surface-2 data-[focused]:bg-surface-2",
|
|
@@ -803,7 +905,7 @@ function IconPicker({
|
|
|
803
905
|
)
|
|
804
906
|
}
|
|
805
907
|
),
|
|
806
|
-
hiddenCount > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("p", { className:
|
|
908
|
+
hiddenCount > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("p", { className: chunk4ACELYEP_cjs.cn("px-1 pt-2", fieldHintStyles), children: [
|
|
807
909
|
hiddenCount.toLocaleString(),
|
|
808
910
|
" more \u2014 keep scrolling, or search."
|
|
809
911
|
] }) : null
|
|
@@ -893,13 +995,13 @@ function Badge({
|
|
|
893
995
|
{
|
|
894
996
|
...props,
|
|
895
997
|
style: mergedStyle,
|
|
896
|
-
className:
|
|
998
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
897
999
|
badgeStyles({ variant: register2, shape, hasDot }),
|
|
898
1000
|
showDot ? null : "before:hidden",
|
|
899
1001
|
className
|
|
900
1002
|
),
|
|
901
1003
|
children: [
|
|
902
|
-
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,
|
|
903
1005
|
children,
|
|
904
1006
|
actions ? (
|
|
905
1007
|
// Pulled flush with the trailing edge so the chip still reads
|
|
@@ -921,7 +1023,7 @@ function BadgeAction({ label, onPress, isDisabled = false, children }) {
|
|
|
921
1023
|
event.stopPropagation();
|
|
922
1024
|
onPress();
|
|
923
1025
|
},
|
|
924
|
-
className:
|
|
1026
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
925
1027
|
"inline-flex items-center justify-center shrink-0",
|
|
926
1028
|
"size-3.5 rounded-full",
|
|
927
1029
|
"text-current/70 hover:text-current hover:bg-current/10",
|
|
@@ -954,8 +1056,11 @@ function Tooltip({ className, offset = 6, ...props }) {
|
|
|
954
1056
|
{
|
|
955
1057
|
...props,
|
|
956
1058
|
offset,
|
|
957
|
-
className: (renderProps) =>
|
|
958
|
-
|
|
1059
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
1060
|
+
// Above the floating chat / softphone windows (1100 / 1200) and their
|
|
1061
|
+
// full-screen workspace, like Select and Toast — a page inside the
|
|
1062
|
+
// window keeps its tooltips.
|
|
1063
|
+
"z-[1300] max-w-xs",
|
|
959
1064
|
"rounded-md border border-rule bg-surface shadow-[var(--shadow-raised)]",
|
|
960
1065
|
"px-2.5 py-1.5",
|
|
961
1066
|
"font-mono text-[11.5px] text-ink-2",
|
|
@@ -1061,7 +1166,7 @@ function BadgeGroup({ children, className, ...props }) {
|
|
|
1061
1166
|
{
|
|
1062
1167
|
...props,
|
|
1063
1168
|
ref: rootRef,
|
|
1064
|
-
className:
|
|
1169
|
+
className: chunk4ACELYEP_cjs.cn(badgeGroupStyles({ isMeasuring: measuring }), className),
|
|
1065
1170
|
children: [
|
|
1066
1171
|
shown.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1067
1172
|
"span",
|
|
@@ -1230,7 +1335,7 @@ function BadgeMultiSelect({
|
|
|
1230
1335
|
setIsOpen(false);
|
|
1231
1336
|
}
|
|
1232
1337
|
};
|
|
1233
|
-
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: [
|
|
1234
1339
|
label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
|
|
1235
1340
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1236
1341
|
"div",
|
|
@@ -1247,7 +1352,7 @@ function BadgeMultiSelect({
|
|
|
1247
1352
|
onKeyDown: onTriggerKeyDown,
|
|
1248
1353
|
"data-invalid": isInvalid || void 0,
|
|
1249
1354
|
"data-disabled": isDisabled || void 0,
|
|
1250
|
-
className:
|
|
1355
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1251
1356
|
styles4.box(),
|
|
1252
1357
|
"flex items-stretch cursor-pointer",
|
|
1253
1358
|
// Cell editor: one table row (29px under a 32px row) while the chips
|
|
@@ -1262,7 +1367,7 @@ function BadgeMultiSelect({
|
|
|
1262
1367
|
"div",
|
|
1263
1368
|
{
|
|
1264
1369
|
ref: chipsRef,
|
|
1265
|
-
className:
|
|
1370
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1266
1371
|
"flex flex-1 flex-wrap items-center gap-1.5 min-w-0",
|
|
1267
1372
|
isCell && (hasWrapped ? "content-start overflow-y-auto" : "content-center overflow-hidden")
|
|
1268
1373
|
),
|
|
@@ -1270,7 +1375,7 @@ function BadgeMultiSelect({
|
|
|
1270
1375
|
// No vertical padding — wrapper's p-1.5 + min-h-[size] govern the
|
|
1271
1376
|
// overall height so it matches the Input/Select trigger at the same
|
|
1272
1377
|
// size.
|
|
1273
|
-
/* @__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 })
|
|
1274
1379
|
) : selectedOptions.map((o) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1275
1380
|
Badge,
|
|
1276
1381
|
{
|
|
@@ -1306,7 +1411,7 @@ function BadgeMultiSelect({
|
|
|
1306
1411
|
placement: "bottom start",
|
|
1307
1412
|
isNonModal: true,
|
|
1308
1413
|
shouldCloseOnInteractOutside: (element) => !triggerRef.current?.contains(element),
|
|
1309
|
-
className:
|
|
1414
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1310
1415
|
// At least as wide as the trigger, wider when a badge needs it —
|
|
1311
1416
|
// a narrow table column must not clip its own options.
|
|
1312
1417
|
"min-w-[var(--trigger-width)] w-max max-w-[min(28rem,calc(100vw-2rem))]",
|
|
@@ -1335,14 +1440,14 @@ function BadgeMultiSelect({
|
|
|
1335
1440
|
},
|
|
1336
1441
|
autoFocus: "first",
|
|
1337
1442
|
className: "outline-none max-h-72 overflow-auto",
|
|
1338
|
-
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" }),
|
|
1339
1444
|
children: listboxOptions.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1340
1445
|
reactAriaComponents.ListBoxItem,
|
|
1341
1446
|
{
|
|
1342
1447
|
id: option.id,
|
|
1343
1448
|
textValue: option.label,
|
|
1344
1449
|
...option.isDisabled ? { isDisabled: true } : {},
|
|
1345
|
-
className:
|
|
1450
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1346
1451
|
"group flex items-center gap-2.5",
|
|
1347
1452
|
"rounded-[6px] px-2.5 py-1.5",
|
|
1348
1453
|
"cursor-pointer outline-none select-none",
|
|
@@ -1369,7 +1474,7 @@ function Breadcrumbs({ items, separator = "/", className, ...props }) {
|
|
|
1369
1474
|
reactAriaComponents.Breadcrumbs,
|
|
1370
1475
|
{
|
|
1371
1476
|
...props,
|
|
1372
|
-
className:
|
|
1477
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1373
1478
|
"flex items-center gap-2",
|
|
1374
1479
|
"font-mono text-[12px] text-ink-3",
|
|
1375
1480
|
// RAC renders Breadcrumbs as <ol> — neutralise list defaults.
|
|
@@ -1388,7 +1493,7 @@ function Breadcrumbs({ items, separator = "/", className, ...props }) {
|
|
|
1388
1493
|
reactAriaComponents.Link,
|
|
1389
1494
|
{
|
|
1390
1495
|
href: item.href,
|
|
1391
|
-
className:
|
|
1496
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1392
1497
|
"rounded-sm outline-none cursor-pointer",
|
|
1393
1498
|
"transition-colors duration-150",
|
|
1394
1499
|
"hover:text-ink",
|
|
@@ -1400,7 +1505,7 @@ function Breadcrumbs({ items, separator = "/", className, ...props }) {
|
|
|
1400
1505
|
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1401
1506
|
"span",
|
|
1402
1507
|
{
|
|
1403
|
-
className:
|
|
1508
|
+
className: chunk4ACELYEP_cjs.cn(isLast && "text-ink font-semibold"),
|
|
1404
1509
|
"aria-current": isLast ? "page" : void 0,
|
|
1405
1510
|
children: item.label
|
|
1406
1511
|
}
|
|
@@ -1438,7 +1543,7 @@ var cardStyles2 = tailwindVariants.tv({
|
|
|
1438
1543
|
}
|
|
1439
1544
|
});
|
|
1440
1545
|
function Card({ variant, className, ...props }) {
|
|
1441
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className:
|
|
1546
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunk4ACELYEP_cjs.cn(cardStyles2({ variant }), className) });
|
|
1442
1547
|
}
|
|
1443
1548
|
var pressableCardStyles = tailwindVariants.tv({
|
|
1444
1549
|
extend: cardStyles2,
|
|
@@ -1456,7 +1561,7 @@ function PressableCard({ variant, className, ...props }) {
|
|
|
1456
1561
|
reactAriaComponents.Button,
|
|
1457
1562
|
{
|
|
1458
1563
|
...props,
|
|
1459
|
-
className: (renderProps) =>
|
|
1564
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
1460
1565
|
pressableCardStyles({ variant }),
|
|
1461
1566
|
typeof className === "function" ? className(renderProps) : className
|
|
1462
1567
|
)
|
|
@@ -1468,7 +1573,7 @@ function CardHeader({ className, ...props }) {
|
|
|
1468
1573
|
"div",
|
|
1469
1574
|
{
|
|
1470
1575
|
...props,
|
|
1471
|
-
className:
|
|
1576
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1472
1577
|
"flex justify-between items-center",
|
|
1473
1578
|
"px-5 py-3 border-b border-rule",
|
|
1474
1579
|
"bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]",
|
|
@@ -1479,14 +1584,14 @@ function CardHeader({ className, ...props }) {
|
|
|
1479
1584
|
);
|
|
1480
1585
|
}
|
|
1481
1586
|
function CardContent({ className, ...props }) {
|
|
1482
|
-
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) });
|
|
1483
1588
|
}
|
|
1484
1589
|
function CardFooter({ className, ...props }) {
|
|
1485
1590
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1486
1591
|
"div",
|
|
1487
1592
|
{
|
|
1488
1593
|
...props,
|
|
1489
|
-
className:
|
|
1594
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1490
1595
|
"mt-auto flex justify-between items-center",
|
|
1491
1596
|
"px-5 py-4",
|
|
1492
1597
|
"font-mono text-[11.5px] text-ink-4",
|
|
@@ -1500,7 +1605,7 @@ function CardEyebrow({ className, ...props }) {
|
|
|
1500
1605
|
"div",
|
|
1501
1606
|
{
|
|
1502
1607
|
...props,
|
|
1503
|
-
className:
|
|
1608
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1504
1609
|
"flex justify-between items-center",
|
|
1505
1610
|
"font-mono text-[11px] uppercase tracking-[0.08em] text-ink-4",
|
|
1506
1611
|
className
|
|
@@ -1513,7 +1618,7 @@ function CardTitle({ className, ...props }) {
|
|
|
1513
1618
|
"h3",
|
|
1514
1619
|
{
|
|
1515
1620
|
...props,
|
|
1516
|
-
className:
|
|
1621
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1517
1622
|
"font-sans font-medium text-[20px] leading-[1.25] tracking-[-0.015em] text-ink",
|
|
1518
1623
|
className
|
|
1519
1624
|
)
|
|
@@ -1525,7 +1630,7 @@ function CardFeatureTitle({ className, ...props }) {
|
|
|
1525
1630
|
"h3",
|
|
1526
1631
|
{
|
|
1527
1632
|
...props,
|
|
1528
|
-
className:
|
|
1633
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1529
1634
|
"font-sans font-medium text-[26px] leading-[1.2] tracking-[-0.02em] text-ink",
|
|
1530
1635
|
className
|
|
1531
1636
|
)
|
|
@@ -1533,7 +1638,7 @@ function CardFeatureTitle({ className, ...props }) {
|
|
|
1533
1638
|
);
|
|
1534
1639
|
}
|
|
1535
1640
|
function CardBody({ className, ...props }) {
|
|
1536
|
-
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) });
|
|
1537
1642
|
}
|
|
1538
1643
|
var CHANNEL_ICONS = {
|
|
1539
1644
|
slack: lucideReact.Hash,
|
|
@@ -1557,14 +1662,14 @@ function channelIcon(channel) {
|
|
|
1557
1662
|
}
|
|
1558
1663
|
function ChannelIcon({ channel, className, label }) {
|
|
1559
1664
|
const Icon = channelIcon(channel);
|
|
1560
|
-
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 });
|
|
1561
1666
|
}
|
|
1562
1667
|
function Checkbox({ children, className, ...props }) {
|
|
1563
1668
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1564
1669
|
reactAriaComponents.Checkbox,
|
|
1565
1670
|
{
|
|
1566
1671
|
...props,
|
|
1567
|
-
className: (renderProps) =>
|
|
1672
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
1568
1673
|
// `relative` so RAC's visually-hidden <input> — which is absolutely
|
|
1569
1674
|
// positioned and is the element that actually receives focus — is
|
|
1570
1675
|
// laid out against THIS checkbox. Without a positioned ancestor here
|
|
@@ -1582,7 +1687,7 @@ function Checkbox({ children, className, ...props }) {
|
|
|
1582
1687
|
"span",
|
|
1583
1688
|
{
|
|
1584
1689
|
"aria-hidden": true,
|
|
1585
|
-
className:
|
|
1690
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1586
1691
|
"relative inline-flex items-center justify-center shrink-0",
|
|
1587
1692
|
"size-[18px] rounded-[4px] border bg-surface",
|
|
1588
1693
|
"border-ink-4",
|
|
@@ -1599,7 +1704,7 @@ function Checkbox({ children, className, ...props }) {
|
|
|
1599
1704
|
"svg",
|
|
1600
1705
|
{
|
|
1601
1706
|
viewBox: "0 0 12 12",
|
|
1602
|
-
className:
|
|
1707
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1603
1708
|
"size-3 text-surface transition-opacity duration-150",
|
|
1604
1709
|
renderProps.isSelected ? "opacity-100" : "opacity-0"
|
|
1605
1710
|
),
|
|
@@ -1636,7 +1741,7 @@ function CheckboxGroup({
|
|
|
1636
1741
|
reactAriaComponents.CheckboxGroup,
|
|
1637
1742
|
{
|
|
1638
1743
|
...props,
|
|
1639
|
-
className: (renderProps) =>
|
|
1744
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
1640
1745
|
"grid gap-2 content-start",
|
|
1641
1746
|
typeof className === "function" ? className(renderProps) : className
|
|
1642
1747
|
),
|
|
@@ -1718,14 +1823,14 @@ function ColorInput({
|
|
|
1718
1823
|
isInvalid: invalid,
|
|
1719
1824
|
onBlur: settle,
|
|
1720
1825
|
...ariaLabel ? { "aria-label": ariaLabel } : {},
|
|
1721
|
-
className:
|
|
1826
|
+
className: chunk4ACELYEP_cjs.cn("grid grid-cols-1 gap-1.5 content-start", className),
|
|
1722
1827
|
children: [
|
|
1723
1828
|
label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
|
|
1724
1829
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1725
1830
|
"div",
|
|
1726
1831
|
{
|
|
1727
1832
|
"data-disabled": isDisabled || void 0,
|
|
1728
|
-
className:
|
|
1833
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1729
1834
|
styles4.box(),
|
|
1730
1835
|
"flex items-center gap-2",
|
|
1731
1836
|
size === "sm" ? "pl-2" : "pl-2.5",
|
|
@@ -1739,7 +1844,7 @@ function ColorInput({
|
|
|
1739
1844
|
"aria-label": "Pick color",
|
|
1740
1845
|
disabled: isDisabled,
|
|
1741
1846
|
onClick: () => nativeRef.current?.click(),
|
|
1742
|
-
className:
|
|
1847
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1743
1848
|
"relative flex shrink-0 items-center justify-center rounded-sm border border-rule",
|
|
1744
1849
|
"cursor-pointer outline-none",
|
|
1745
1850
|
"focus-visible:ring-2 focus-visible:ring-[var(--color-accent)]",
|
|
@@ -1772,7 +1877,7 @@ function ColorInput({
|
|
|
1772
1877
|
placeholder,
|
|
1773
1878
|
spellCheck: false,
|
|
1774
1879
|
autoComplete: "off",
|
|
1775
|
-
className:
|
|
1880
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1776
1881
|
styles4.content(),
|
|
1777
1882
|
"min-w-0 flex-1 bg-transparent font-mono outline-none",
|
|
1778
1883
|
"pl-0",
|
|
@@ -1813,7 +1918,7 @@ function Combobox({
|
|
|
1813
1918
|
{
|
|
1814
1919
|
...props,
|
|
1815
1920
|
allowsEmptyCollection,
|
|
1816
|
-
className: (renderProps) =>
|
|
1921
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
1817
1922
|
"grid grid-cols-1 gap-1.5 content-start",
|
|
1818
1923
|
typeof className === "function" ? className(renderProps) : className
|
|
1819
1924
|
),
|
|
@@ -1822,7 +1927,7 @@ function Combobox({
|
|
|
1822
1927
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1823
1928
|
"div",
|
|
1824
1929
|
{
|
|
1825
|
-
className:
|
|
1930
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1826
1931
|
// Box chrome on the wrapper; the inner <input> carries the padding
|
|
1827
1932
|
// + font so the chevron button sits inside the same border + ring.
|
|
1828
1933
|
styles4.box(),
|
|
@@ -1835,7 +1940,7 @@ function Combobox({
|
|
|
1835
1940
|
reactAriaComponents.Input,
|
|
1836
1941
|
{
|
|
1837
1942
|
placeholder,
|
|
1838
|
-
className:
|
|
1943
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1839
1944
|
"flex-1 min-w-0 bg-transparent outline-none",
|
|
1840
1945
|
styles4.content(),
|
|
1841
1946
|
inputClassName
|
|
@@ -1845,7 +1950,7 @@ function Combobox({
|
|
|
1845
1950
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1846
1951
|
reactAriaComponents.Button,
|
|
1847
1952
|
{
|
|
1848
|
-
className:
|
|
1953
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1849
1954
|
"shrink-0 flex items-center justify-center",
|
|
1850
1955
|
"size-7 rounded-pill",
|
|
1851
1956
|
"text-ink-3 hover:text-ink outline-none cursor-pointer"
|
|
@@ -1862,7 +1967,7 @@ function Combobox({
|
|
|
1862
1967
|
reactAriaComponents.Popover,
|
|
1863
1968
|
{
|
|
1864
1969
|
offset: 6,
|
|
1865
|
-
className:
|
|
1970
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1866
1971
|
"min-w-[var(--trigger-width)]",
|
|
1867
1972
|
"rounded-md border border-rule bg-surface p-1",
|
|
1868
1973
|
"shadow-[var(--shadow-raised)]",
|
|
@@ -1873,7 +1978,7 @@ function Combobox({
|
|
|
1873
1978
|
reactAriaComponents.ListBox,
|
|
1874
1979
|
{
|
|
1875
1980
|
className: "outline-none max-h-72 overflow-auto",
|
|
1876
|
-
renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
1981
|
+
renderEmptyState: () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunk4ACELYEP_cjs.cn("px-3 py-2", fieldHintStyles), children: emptyMessage }),
|
|
1877
1982
|
children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1878
1983
|
ComboboxItem,
|
|
1879
1984
|
{
|
|
@@ -1901,7 +2006,7 @@ function TrailingSlot({ children }) {
|
|
|
1901
2006
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1902
2007
|
"span",
|
|
1903
2008
|
{
|
|
1904
|
-
className:
|
|
2009
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1905
2010
|
"ml-auto pl-2 shrink-0 inline-flex items-center",
|
|
1906
2011
|
// Hidden by default; revealed when the row is hovered or
|
|
1907
2012
|
// keyboard-focused. `group/combobox-item` is set on ComboboxItem.
|
|
@@ -1927,7 +2032,7 @@ function ComboboxItem(props) {
|
|
|
1927
2032
|
reactAriaComponents.ListBoxItem,
|
|
1928
2033
|
{
|
|
1929
2034
|
...props,
|
|
1930
|
-
className:
|
|
2035
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
1931
2036
|
// `group/combobox-item` exposes hover/focus state to the trailing
|
|
1932
2037
|
// slot so it can reveal itself only when the row is engaged.
|
|
1933
2038
|
"group/combobox-item",
|
|
@@ -2255,7 +2360,7 @@ function Kbd({ className, children, ...props }) {
|
|
|
2255
2360
|
"kbd",
|
|
2256
2361
|
{
|
|
2257
2362
|
...props,
|
|
2258
|
-
className:
|
|
2363
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2259
2364
|
"inline-flex items-center justify-center",
|
|
2260
2365
|
"font-mono text-[10.5px] leading-none text-ink-4",
|
|
2261
2366
|
"bg-surface-2 border border-rule rounded-[4px]",
|
|
@@ -2275,7 +2380,7 @@ function CommandHint({ combo, tone = "subtle", className }) {
|
|
|
2275
2380
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2276
2381
|
Kbd,
|
|
2277
2382
|
{
|
|
2278
|
-
className:
|
|
2383
|
+
className: chunk4ACELYEP_cjs.cn(tone === "prominent" && "bg-ink text-surface border-transparent", className),
|
|
2279
2384
|
children: label
|
|
2280
2385
|
}
|
|
2281
2386
|
);
|
|
@@ -2299,7 +2404,7 @@ function Command({ combo, target, className, label, children }) {
|
|
|
2299
2404
|
},
|
|
2300
2405
|
{ label: () => label ?? accessibleName(resolveTarget()) }
|
|
2301
2406
|
);
|
|
2302
|
-
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: [
|
|
2303
2408
|
children,
|
|
2304
2409
|
discoveryActive ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2305
2410
|
"div",
|
|
@@ -2374,7 +2479,7 @@ function ConversationBriefCard({
|
|
|
2374
2479
|
isOpenDisabled = false,
|
|
2375
2480
|
className
|
|
2376
2481
|
}) {
|
|
2377
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
2482
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn(styles.root(), className), children: [
|
|
2378
2483
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: styles.icon(), children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Phone, { className: "size-4", "aria-hidden": true }) }),
|
|
2379
2484
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles.body(), children: [
|
|
2380
2485
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: styles.eyebrow(), children: eyebrow }),
|
|
@@ -2412,7 +2517,7 @@ function Select({
|
|
|
2412
2517
|
reactAriaComponents.Select,
|
|
2413
2518
|
{
|
|
2414
2519
|
...props,
|
|
2415
|
-
className: (renderProps) =>
|
|
2520
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
2416
2521
|
"grid grid-cols-1 gap-1.5 content-start",
|
|
2417
2522
|
typeof className === "function" ? className(renderProps) : className
|
|
2418
2523
|
),
|
|
@@ -2421,7 +2526,7 @@ function Select({
|
|
|
2421
2526
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2422
2527
|
reactAriaComponents.Button,
|
|
2423
2528
|
{
|
|
2424
|
-
className:
|
|
2529
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2425
2530
|
styles4.box(),
|
|
2426
2531
|
styles4.content(),
|
|
2427
2532
|
"flex items-center justify-between gap-3 text-left cursor-pointer",
|
|
@@ -2439,7 +2544,7 @@ function Select({
|
|
|
2439
2544
|
reactAriaComponents.Popover,
|
|
2440
2545
|
{
|
|
2441
2546
|
offset: 6,
|
|
2442
|
-
className:
|
|
2547
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2443
2548
|
// Match the trigger width exactly (RAC exposes --trigger-width on
|
|
2444
2549
|
// the Popover when anchored to a Select button).
|
|
2445
2550
|
"w-[var(--trigger-width)]",
|
|
@@ -2463,7 +2568,7 @@ function Select({
|
|
|
2463
2568
|
},
|
|
2464
2569
|
option.id
|
|
2465
2570
|
)) }),
|
|
2466
|
-
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
|
|
2467
2572
|
]
|
|
2468
2573
|
}
|
|
2469
2574
|
)
|
|
@@ -2476,7 +2581,7 @@ function SelectItem(props) {
|
|
|
2476
2581
|
reactAriaComponents.ListBoxItem,
|
|
2477
2582
|
{
|
|
2478
2583
|
...props,
|
|
2479
|
-
className:
|
|
2584
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2480
2585
|
"flex items-center justify-between gap-3",
|
|
2481
2586
|
"rounded-[6px] px-3 py-2 text-[14px] text-ink-2",
|
|
2482
2587
|
"cursor-pointer outline-none select-none",
|
|
@@ -2519,9 +2624,13 @@ function ConversationBriefPreview({
|
|
|
2519
2624
|
contentClassName,
|
|
2520
2625
|
renderContent,
|
|
2521
2626
|
onEdit,
|
|
2522
|
-
editor
|
|
2627
|
+
editor,
|
|
2628
|
+
aside,
|
|
2629
|
+
isMetaHidden = false,
|
|
2630
|
+
isSubjectHidden = false
|
|
2523
2631
|
}) {
|
|
2524
2632
|
const [pickedContactId, setPickedContactId] = react.useState("");
|
|
2633
|
+
const [isPickingTarget, setIsPickingTarget] = react.useState(false);
|
|
2525
2634
|
const contact = contacts.find((entry) => entry.id === pickedContactId) ?? contacts[0] ?? null;
|
|
2526
2635
|
const numbers = react.useMemo(() => contactPhoneNumbers(contact), [contact]);
|
|
2527
2636
|
const [pickedNumber, setPickedNumber] = react.useState("");
|
|
@@ -2533,23 +2642,26 @@ function ConversationBriefPreview({
|
|
|
2533
2642
|
react.useEffect(() => {
|
|
2534
2643
|
onSelectionChangeRef.current?.(contact, phoneNumber);
|
|
2535
2644
|
}, [contact, phoneNumber]);
|
|
2536
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
2537
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
2645
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn("flex flex-col gap-3", className), children: [
|
|
2646
|
+
isSubjectHidden ? null : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
2538
2647
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-[14px] font-semibold text-ink", children: brief.subject || names || "Prepared conversation" }),
|
|
2539
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-mono text-[10.5px] text-ink-4", children: [
|
|
2648
|
+
isMetaHidden ? null : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-mono text-[10.5px] text-ink-4", children: [
|
|
2540
2649
|
brief.subject ? names : "",
|
|
2541
2650
|
brief.channel ? `Channel ${brief.channel}` : "Any channel",
|
|
2542
2651
|
brief.type_key ? `Type ${brief.type_key}` : "",
|
|
2543
2652
|
brief.status === "prepared" ? "Prepared" : brief.status === "used" ? "Call held" : "Discarded"
|
|
2544
2653
|
].filter(Boolean).join(" \xB7 ") })
|
|
2545
2654
|
] }),
|
|
2546
|
-
editor ??
|
|
2655
|
+
editor ?? // A flex column of its own so a host that gives the box `flex-1`
|
|
2656
|
+
// (the call window) gets a scrolling box that fills the remaining
|
|
2657
|
+
// height; in an unconstrained host (a modal) it just wraps.
|
|
2658
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "group/brief-content relative flex min-h-0 flex-1 flex-col", children: [
|
|
2547
2659
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2548
2660
|
"div",
|
|
2549
2661
|
{
|
|
2550
|
-
className:
|
|
2662
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2551
2663
|
"rounded-md border border-rule-2 bg-surface-2/60 px-3 py-2.5",
|
|
2552
|
-
"text-[13px] leading-relaxed text-ink-2 overflow-y-auto [scrollbar-width:thin]",
|
|
2664
|
+
"min-h-0 text-[13px] leading-relaxed text-ink-2 overflow-y-auto [scrollbar-width:thin]",
|
|
2553
2665
|
renderContent ? null : "whitespace-pre-wrap",
|
|
2554
2666
|
contentClassName
|
|
2555
2667
|
),
|
|
@@ -2561,7 +2673,7 @@ function ConversationBriefPreview({
|
|
|
2561
2673
|
{
|
|
2562
2674
|
"aria-label": "Edit brief",
|
|
2563
2675
|
onPress: onEdit,
|
|
2564
|
-
className:
|
|
2676
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2565
2677
|
"absolute right-1.5 top-1.5 inline-flex size-7 cursor-pointer items-center justify-center",
|
|
2566
2678
|
"rounded-md bg-surface/80 text-ink-3 outline-none transition-opacity",
|
|
2567
2679
|
"opacity-0 group-hover/brief-content:opacity-100 focus-visible:opacity-100",
|
|
@@ -2573,31 +2685,124 @@ function ConversationBriefPreview({
|
|
|
2573
2685
|
) : null
|
|
2574
2686
|
] }),
|
|
2575
2687
|
onCall ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2 border-t border-rule-2 pt-3", children: [
|
|
2576
|
-
|
|
2577
|
-
|
|
2578
|
-
{
|
|
2579
|
-
"aria-label": "Who to call",
|
|
2580
|
-
selectedKey: contact?.id ?? "",
|
|
2581
|
-
onSelectionChange: (key) => {
|
|
2582
|
-
setPickedContactId(String(key));
|
|
2583
|
-
setPickedNumber("");
|
|
2584
|
-
},
|
|
2585
|
-
options: contacts.map((entry) => ({ id: entry.id, label: entry.name || entry.id }))
|
|
2586
|
-
}
|
|
2587
|
-
) : null,
|
|
2588
|
-
numbers.length > 1 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2589
|
-
Select,
|
|
2688
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2689
|
+
"div",
|
|
2590
2690
|
{
|
|
2591
|
-
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
2691
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2692
|
+
"grid gap-3",
|
|
2693
|
+
aside ? "grid-cols-[minmax(0,1fr)_minmax(0,1fr)]" : "grid-cols-1"
|
|
2694
|
+
),
|
|
2695
|
+
children: [
|
|
2696
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col gap-2", children: [
|
|
2697
|
+
isPickingTarget && (contacts.length > 1 || numbers.length > 1) ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col gap-1", children: [
|
|
2698
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-mono text-[10px] uppercase tracking-[0.08em] text-ink-4", children: "Calling" }),
|
|
2699
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-start gap-1.5", children: [
|
|
2700
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1.5", children: [
|
|
2701
|
+
contacts.length > 1 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2702
|
+
Select,
|
|
2703
|
+
{
|
|
2704
|
+
"aria-label": "Who to call",
|
|
2705
|
+
size: "sm",
|
|
2706
|
+
autoFocus: true,
|
|
2707
|
+
selectedKey: contact?.id ?? "",
|
|
2708
|
+
onSelectionChange: (key) => {
|
|
2709
|
+
setPickedContactId(String(key));
|
|
2710
|
+
setPickedNumber("");
|
|
2711
|
+
const picked = contacts.find((entry) => entry.id === String(key));
|
|
2712
|
+
if (contactPhoneNumbers(picked).length <= 1) setIsPickingTarget(false);
|
|
2713
|
+
},
|
|
2714
|
+
options: contacts.map((entry) => ({
|
|
2715
|
+
id: entry.id,
|
|
2716
|
+
label: entry.name || entry.id
|
|
2717
|
+
}))
|
|
2718
|
+
}
|
|
2719
|
+
) : null,
|
|
2720
|
+
numbers.length > 1 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2721
|
+
Select,
|
|
2722
|
+
{
|
|
2723
|
+
"aria-label": "Number to dial",
|
|
2724
|
+
size: "sm",
|
|
2725
|
+
...contacts.length > 1 ? {} : { autoFocus: true },
|
|
2726
|
+
selectedKey: phoneNumber,
|
|
2727
|
+
onSelectionChange: (key) => {
|
|
2728
|
+
if (key !== null) setPickedNumber(String(key));
|
|
2729
|
+
setIsPickingTarget(false);
|
|
2730
|
+
},
|
|
2731
|
+
options: numbers.map((number) => ({ id: number, label: number }))
|
|
2732
|
+
}
|
|
2733
|
+
) : null
|
|
2734
|
+
] }),
|
|
2735
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2736
|
+
chunk4ACELYEP_cjs.Button,
|
|
2737
|
+
{
|
|
2738
|
+
variant: "ghost",
|
|
2739
|
+
size: "icon-sm",
|
|
2740
|
+
"aria-label": "Keep the current number",
|
|
2741
|
+
onPress: () => setIsPickingTarget(false),
|
|
2742
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.X, { "aria-hidden": true })
|
|
2743
|
+
}
|
|
2744
|
+
)
|
|
2745
|
+
] })
|
|
2746
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "group/dial flex min-w-0 flex-col gap-1", children: [
|
|
2747
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-mono text-[10px] uppercase tracking-[0.08em] text-ink-4", children: "Calling" }),
|
|
2748
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-9 min-w-0 items-center gap-2", children: [
|
|
2749
|
+
(() => {
|
|
2750
|
+
const hasChoice = contacts.length > 1 || numbers.length > 1;
|
|
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 = chunk4ACELYEP_cjs.cn(
|
|
2753
|
+
"min-w-0 truncate text-[12px] tabular-nums",
|
|
2754
|
+
phoneNumber ? "text-ink-2" : "text-warning"
|
|
2755
|
+
);
|
|
2756
|
+
const icon = /* @__PURE__ */ jsxRuntime.jsx(
|
|
2757
|
+
lucideReact.Phone,
|
|
2758
|
+
{
|
|
2759
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2760
|
+
"size-3 shrink-0",
|
|
2761
|
+
phoneNumber ? "text-ink-4" : "text-warning"
|
|
2762
|
+
),
|
|
2763
|
+
"aria-hidden": true
|
|
2764
|
+
}
|
|
2765
|
+
);
|
|
2766
|
+
return hasChoice ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2767
|
+
reactAriaComponents.Button,
|
|
2768
|
+
{
|
|
2769
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2770
|
+
"flex min-w-0 cursor-pointer items-center gap-2 rounded-sm text-left outline-none",
|
|
2771
|
+
"hover:text-ink focus-visible:shadow-[var(--shadow-focus)]"
|
|
2772
|
+
),
|
|
2773
|
+
onPress: () => setIsPickingTarget(true),
|
|
2774
|
+
children: [
|
|
2775
|
+
icon,
|
|
2776
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: valueClassName, title: phoneNumber, children: valueText })
|
|
2777
|
+
]
|
|
2778
|
+
}
|
|
2779
|
+
) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2780
|
+
icon,
|
|
2781
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: valueClassName, title: phoneNumber, children: valueText })
|
|
2782
|
+
] });
|
|
2783
|
+
})(),
|
|
2784
|
+
contacts.length > 1 || numbers.length > 1 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2785
|
+
chunk4ACELYEP_cjs.Button,
|
|
2786
|
+
{
|
|
2787
|
+
variant: "ghost",
|
|
2788
|
+
size: "icon-sm",
|
|
2789
|
+
"aria-label": "Change the number to dial",
|
|
2790
|
+
className: "opacity-0 transition-opacity group-hover/dial:opacity-100 focus-visible:opacity-100",
|
|
2791
|
+
onPress: () => setIsPickingTarget(true),
|
|
2792
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Pencil, { "aria-hidden": true })
|
|
2793
|
+
}
|
|
2794
|
+
) : null
|
|
2795
|
+
] })
|
|
2796
|
+
] }),
|
|
2797
|
+
controls
|
|
2798
|
+
] }),
|
|
2799
|
+
aside ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 min-w-0", children: aside }) : null
|
|
2800
|
+
]
|
|
2595
2801
|
}
|
|
2596
|
-
)
|
|
2597
|
-
controls,
|
|
2802
|
+
),
|
|
2598
2803
|
callDisabledReason ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[12px] text-warning", children: callDisabledReason }) : null,
|
|
2599
2804
|
isCallButtonHidden ? null : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2600
|
-
|
|
2805
|
+
chunk4ACELYEP_cjs.Button,
|
|
2601
2806
|
{
|
|
2602
2807
|
isDisabled: isCallDisabled || !isOpen || phoneNumber === "" || !contact,
|
|
2603
2808
|
onPress: () => contact && onCall(contact, phoneNumber),
|
|
@@ -2627,7 +2832,7 @@ function ModalContent({
|
|
|
2627
2832
|
{
|
|
2628
2833
|
isDismissable,
|
|
2629
2834
|
...props,
|
|
2630
|
-
className: (renderProps) =>
|
|
2835
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
2631
2836
|
"fixed inset-0 z-50 flex items-center justify-center p-4",
|
|
2632
2837
|
// Warm ink scrim — stays in the Proteos palette (no pure black).
|
|
2633
2838
|
"bg-[color-mix(in_oklab,var(--color-ink)_40%,transparent)]",
|
|
@@ -2638,7 +2843,7 @@ function ModalContent({
|
|
|
2638
2843
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2639
2844
|
reactAriaComponents.Modal,
|
|
2640
2845
|
{
|
|
2641
|
-
className:
|
|
2846
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2642
2847
|
"w-full max-w-lg",
|
|
2643
2848
|
// Cap the panel at the viewport (minus the overlay's p-4) and lay it
|
|
2644
2849
|
// out as a column so a tall body scrolls instead of overflowing the
|
|
@@ -2653,7 +2858,7 @@ function ModalContent({
|
|
|
2653
2858
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2654
2859
|
reactAriaComponents.Dialog,
|
|
2655
2860
|
{
|
|
2656
|
-
className:
|
|
2861
|
+
className: chunk4ACELYEP_cjs.cn("outline-none flex flex-col min-h-0 overflow-hidden", dialogClassName),
|
|
2657
2862
|
...ariaLabel !== void 0 ? { "aria-label": ariaLabel } : {},
|
|
2658
2863
|
children
|
|
2659
2864
|
}
|
|
@@ -2664,7 +2869,7 @@ function ModalContent({
|
|
|
2664
2869
|
);
|
|
2665
2870
|
}
|
|
2666
2871
|
function ModalHeader({ className, ...props }) {
|
|
2667
|
-
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) });
|
|
2668
2873
|
}
|
|
2669
2874
|
function ModalTitle({ className, ...props }) {
|
|
2670
2875
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2672,7 +2877,7 @@ function ModalTitle({ className, ...props }) {
|
|
|
2672
2877
|
{
|
|
2673
2878
|
slot: "title",
|
|
2674
2879
|
...props,
|
|
2675
|
-
className:
|
|
2880
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2676
2881
|
"font-sans font-medium text-[20px] leading-[1.25] tracking-[-0.015em] text-ink",
|
|
2677
2882
|
className
|
|
2678
2883
|
)
|
|
@@ -2680,14 +2885,14 @@ function ModalTitle({ className, ...props }) {
|
|
|
2680
2885
|
);
|
|
2681
2886
|
}
|
|
2682
2887
|
function ModalDescription({ className, ...props }) {
|
|
2683
|
-
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) });
|
|
2684
2889
|
}
|
|
2685
2890
|
function ModalBody({ className, ...props }) {
|
|
2686
2891
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2687
2892
|
"div",
|
|
2688
2893
|
{
|
|
2689
2894
|
...props,
|
|
2690
|
-
className:
|
|
2895
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2691
2896
|
// The scroll region: caps at the panel's spare height and scrolls when
|
|
2692
2897
|
// the content is taller, leaving header + footer pinned.
|
|
2693
2898
|
"min-h-0 overflow-y-auto px-5 py-3 flex flex-col gap-3 text-[14px] text-ink-2",
|
|
@@ -2701,7 +2906,7 @@ function ModalFooter({ className, ...props }) {
|
|
|
2701
2906
|
"div",
|
|
2702
2907
|
{
|
|
2703
2908
|
...props,
|
|
2704
|
-
className:
|
|
2909
|
+
className: chunk4ACELYEP_cjs.cn("shrink-0 flex justify-end items-center gap-2", "px-5 pt-3 pb-5", className)
|
|
2705
2910
|
}
|
|
2706
2911
|
);
|
|
2707
2912
|
}
|
|
@@ -2863,12 +3068,12 @@ function CurrencyInput({
|
|
|
2863
3068
|
const selectedSymbol = currencyOptions.find((option) => option.code === code)?.symbol ?? code;
|
|
2864
3069
|
const styles4 = fieldControlStyles({ size, appearance, ...isInvalid ? { invalid: true } : {} });
|
|
2865
3070
|
const focusWithin = appearance === "cell" ? "focus-within:border-accent focus-within:shadow-none" : "focus-within:border-accent focus-within:shadow-[var(--shadow-focus)]";
|
|
2866
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
2867
|
-
/* @__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: [
|
|
2868
3073
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2869
3074
|
"input",
|
|
2870
3075
|
{
|
|
2871
|
-
className:
|
|
3076
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2872
3077
|
"min-w-0 flex-1 bg-transparent text-ink outline-none tabular-nums",
|
|
2873
3078
|
styles4.content(),
|
|
2874
3079
|
// Sit a touch lower than a standard field by trimming the vertical
|
|
@@ -2909,7 +3114,7 @@ function CurrencyInput({
|
|
|
2909
3114
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2910
3115
|
reactAriaComponents.Button,
|
|
2911
3116
|
{
|
|
2912
|
-
className:
|
|
3117
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2913
3118
|
"inline-flex h-6 shrink-0 items-center gap-0.5 rounded-md px-1.5",
|
|
2914
3119
|
"text-ink-2 outline-none hover:bg-surface-2 hover:text-ink",
|
|
2915
3120
|
"cursor-pointer focus-visible:shadow-[var(--shadow-focus)]",
|
|
@@ -2925,7 +3130,7 @@ function CurrencyInput({
|
|
|
2925
3130
|
reactAriaComponents.Popover,
|
|
2926
3131
|
{
|
|
2927
3132
|
offset: 6,
|
|
2928
|
-
className:
|
|
3133
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2929
3134
|
"min-w-[9rem] rounded-md border border-rule bg-surface p-1",
|
|
2930
3135
|
"shadow-[var(--shadow-raised)]",
|
|
2931
3136
|
"entering:animate-enter-slide-down",
|
|
@@ -2936,7 +3141,7 @@ function CurrencyInput({
|
|
|
2936
3141
|
{
|
|
2937
3142
|
id: option.code,
|
|
2938
3143
|
textValue: `${option.symbol ?? ""} ${option.code}`,
|
|
2939
|
-
className:
|
|
3144
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
2940
3145
|
"flex items-center gap-2 rounded-[6px] px-2.5 py-1.5 text-[14px] text-ink-2",
|
|
2941
3146
|
"cursor-pointer select-none outline-none",
|
|
2942
3147
|
"data-[hovered]:bg-surface-2 data-[hovered]:text-ink",
|
|
@@ -2998,12 +3203,12 @@ function DateTimeCell({
|
|
|
2998
3203
|
}
|
|
2999
3204
|
function BooleanCell({ value, className }) {
|
|
3000
3205
|
if (value === true) {
|
|
3001
|
-
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, {}) });
|
|
3002
3207
|
}
|
|
3003
3208
|
if (value === false) {
|
|
3004
|
-
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, {}) });
|
|
3005
3210
|
}
|
|
3006
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { className:
|
|
3211
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunk4ACELYEP_cjs.cn("text-ink-4", className), children: "\u2014" });
|
|
3007
3212
|
}
|
|
3008
3213
|
function CheckIcon() {
|
|
3009
3214
|
return /* @__PURE__ */ jsxRuntime.jsx("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3022,7 +3227,7 @@ function MinusIcon() {
|
|
|
3022
3227
|
}
|
|
3023
3228
|
function TruncateCell({ value, title, className }) {
|
|
3024
3229
|
const tooltip = title ?? (typeof value === "string" ? value : void 0);
|
|
3025
|
-
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" });
|
|
3026
3231
|
}
|
|
3027
3232
|
function LinkCell({ children, onClick, className, ...props }) {
|
|
3028
3233
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -3033,7 +3238,7 @@ function LinkCell({ children, onClick, className, ...props }) {
|
|
|
3033
3238
|
e.stopPropagation();
|
|
3034
3239
|
onClick?.(e);
|
|
3035
3240
|
},
|
|
3036
|
-
className:
|
|
3241
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
3037
3242
|
"text-ink underline decoration-rule underline-offset-2 hover:decoration-ink",
|
|
3038
3243
|
className
|
|
3039
3244
|
),
|
|
@@ -3054,7 +3259,7 @@ var tableStyles = tailwindVariants.tv({
|
|
|
3054
3259
|
defaultVariants: { variant: "panel" }
|
|
3055
3260
|
});
|
|
3056
3261
|
function Table({ variant, className, ...props }) {
|
|
3057
|
-
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) });
|
|
3058
3263
|
}
|
|
3059
3264
|
var tableHeaderStyles = tailwindVariants.tv({
|
|
3060
3265
|
base: [
|
|
@@ -3070,7 +3275,7 @@ var tableHeaderStyles = tailwindVariants.tv({
|
|
|
3070
3275
|
defaultVariants: { sticky: false }
|
|
3071
3276
|
});
|
|
3072
3277
|
function TableHeader({ sticky, className, ...props }) {
|
|
3073
|
-
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) });
|
|
3074
3279
|
}
|
|
3075
3280
|
var tableHeaderCellStyles = tailwindVariants.tv({
|
|
3076
3281
|
base: [
|
|
@@ -3247,7 +3452,7 @@ function TableHeaderCell({
|
|
|
3247
3452
|
style: { ...widthStyle, ...style },
|
|
3248
3453
|
onClick: handleClick,
|
|
3249
3454
|
onKeyDown: handleKeyDown,
|
|
3250
|
-
className:
|
|
3455
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
3251
3456
|
tableHeaderCellStyles({ align, interactive: isSortable, active, sticky }),
|
|
3252
3457
|
"group/header",
|
|
3253
3458
|
dragState.kind === "dragging" ? "opacity-40" : "",
|
|
@@ -3260,7 +3465,7 @@ function TableHeaderCell({
|
|
|
3260
3465
|
ref: handleRef,
|
|
3261
3466
|
"data-dnd-handle": "true",
|
|
3262
3467
|
"aria-hidden": "true",
|
|
3263
|
-
className:
|
|
3468
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
3264
3469
|
"inline-flex items-center justify-center shrink-0 -ml-1.5",
|
|
3265
3470
|
"cursor-grab active:cursor-grabbing text-ink-4",
|
|
3266
3471
|
"opacity-0 group-hover/header:opacity-100 transition-opacity"
|
|
@@ -3271,7 +3476,7 @@ function TableHeaderCell({
|
|
|
3271
3476
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
3272
3477
|
"span",
|
|
3273
3478
|
{
|
|
3274
|
-
className:
|
|
3479
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
3275
3480
|
"flex items-center gap-[7px] min-w-0 flex-1",
|
|
3276
3481
|
align === "right" ? "justify-end" : align === "center" ? "justify-center" : "justify-start"
|
|
3277
3482
|
),
|
|
@@ -3291,7 +3496,7 @@ function TableHeaderCell({
|
|
|
3291
3496
|
e.stopPropagation();
|
|
3292
3497
|
onRemove();
|
|
3293
3498
|
},
|
|
3294
|
-
className:
|
|
3499
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
3295
3500
|
"inline-flex items-center justify-center shrink-0 size-4 rounded",
|
|
3296
3501
|
"text-ink-4 hover:text-ink hover:bg-surface-2",
|
|
3297
3502
|
"opacity-0 group-hover/header:opacity-100 focus-visible:opacity-100",
|
|
@@ -3304,7 +3509,7 @@ function TableHeaderCell({
|
|
|
3304
3509
|
"div",
|
|
3305
3510
|
{
|
|
3306
3511
|
"aria-hidden": "true",
|
|
3307
|
-
className:
|
|
3512
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
3308
3513
|
"pointer-events-none absolute inset-y-0 z-10 w-0.5 bg-accent",
|
|
3309
3514
|
dragState.edge === "left" ? "-left-px" : "-right-px"
|
|
3310
3515
|
)
|
|
@@ -3329,7 +3534,7 @@ function TableHeaderCell({
|
|
|
3329
3534
|
onPointerDown: startResize,
|
|
3330
3535
|
onKeyDown: resizeByKey,
|
|
3331
3536
|
onClick: (e) => e.stopPropagation(),
|
|
3332
|
-
className:
|
|
3537
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
3333
3538
|
"group/resize absolute inset-y-0 -right-1 z-10 w-2 cursor-col-resize outline-none",
|
|
3334
3539
|
"flex justify-center"
|
|
3335
3540
|
),
|
|
@@ -3337,7 +3542,7 @@ function TableHeaderCell({
|
|
|
3337
3542
|
"span",
|
|
3338
3543
|
{
|
|
3339
3544
|
"aria-hidden": "true",
|
|
3340
|
-
className:
|
|
3545
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
3341
3546
|
"h-full w-0.5 transition-colors",
|
|
3342
3547
|
isResizing ? "bg-accent" : "bg-transparent group-hover/resize:bg-accent group-focus-visible/resize:bg-accent"
|
|
3343
3548
|
)
|
|
@@ -3358,7 +3563,7 @@ function SortIcon({ dir, active }) {
|
|
|
3358
3563
|
height: "11",
|
|
3359
3564
|
viewBox: "0 0 8 11",
|
|
3360
3565
|
"aria-hidden": "true",
|
|
3361
|
-
className:
|
|
3566
|
+
className: chunk4ACELYEP_cjs.cn("shrink-0", active ? "text-accent" : "text-ink-4"),
|
|
3362
3567
|
children: [
|
|
3363
3568
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 0.5 L7.5 4 L0.5 4 Z", fill: "currentColor", opacity: dir === "asc" ? 1 : 0.22 }),
|
|
3364
3569
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M4 10.5 L0.5 7 L7.5 7 Z", fill: "currentColor", opacity: dir === "desc" ? 1 : 0.22 })
|
|
@@ -3372,7 +3577,7 @@ function TableHeaderSpacer({ className, ...props }) {
|
|
|
3372
3577
|
{
|
|
3373
3578
|
"aria-hidden": "true",
|
|
3374
3579
|
...props,
|
|
3375
|
-
className:
|
|
3580
|
+
className: chunk4ACELYEP_cjs.cn("flex-1 h-[36px] border-r-0", "bg-transparent pointer-events-none", className)
|
|
3376
3581
|
}
|
|
3377
3582
|
);
|
|
3378
3583
|
}
|
|
@@ -3392,7 +3597,7 @@ var tableBodyStyles = tailwindVariants.tv({
|
|
|
3392
3597
|
base: ["flex-1 min-h-0 overflow-auto relative", ...scrollbarChrome]
|
|
3393
3598
|
});
|
|
3394
3599
|
function TableBody({ className, ref, ...props }) {
|
|
3395
|
-
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) });
|
|
3396
3601
|
}
|
|
3397
3602
|
var tableScrollerStyles = tailwindVariants.tv({
|
|
3398
3603
|
base: ["relative flex-1 min-h-0 overflow-auto", ...scrollbarChrome]
|
|
@@ -3404,7 +3609,7 @@ function TableScroller({ className, ref, ...props }) {
|
|
|
3404
3609
|
role: "presentation",
|
|
3405
3610
|
ref,
|
|
3406
3611
|
...props,
|
|
3407
|
-
className:
|
|
3612
|
+
className: chunk4ACELYEP_cjs.cn(tableScrollerStyles(), className)
|
|
3408
3613
|
}
|
|
3409
3614
|
);
|
|
3410
3615
|
}
|
|
@@ -3456,7 +3661,7 @@ function TableRow({
|
|
|
3456
3661
|
onClick?.(e);
|
|
3457
3662
|
onRowClick?.(e);
|
|
3458
3663
|
},
|
|
3459
|
-
className:
|
|
3664
|
+
className: chunk4ACELYEP_cjs.cn(tableRowStyles({ alt, interactive, absolute }), className)
|
|
3460
3665
|
}
|
|
3461
3666
|
);
|
|
3462
3667
|
}
|
|
@@ -3510,7 +3715,7 @@ function TableCell({
|
|
|
3510
3715
|
role: "gridcell",
|
|
3511
3716
|
...props,
|
|
3512
3717
|
style: { ...widthStyle, ...style },
|
|
3513
|
-
className:
|
|
3718
|
+
className: chunk4ACELYEP_cjs.cn(tableCellStyles({ align, mono, ink, sticky }), className)
|
|
3514
3719
|
}
|
|
3515
3720
|
);
|
|
3516
3721
|
}
|
|
@@ -3525,7 +3730,7 @@ function DataTableEmpty({
|
|
|
3525
3730
|
"div",
|
|
3526
3731
|
{
|
|
3527
3732
|
role: "status",
|
|
3528
|
-
className:
|
|
3733
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
3529
3734
|
"flex flex-col items-center justify-center gap-2",
|
|
3530
3735
|
"px-5 py-16 text-center",
|
|
3531
3736
|
"font-sans text-[13px] text-ink-3",
|
|
@@ -3545,7 +3750,7 @@ function DataTableError({ error, onRetry, className }) {
|
|
|
3545
3750
|
"div",
|
|
3546
3751
|
{
|
|
3547
3752
|
role: "alert",
|
|
3548
|
-
className:
|
|
3753
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
3549
3754
|
"flex flex-col items-center justify-center gap-3",
|
|
3550
3755
|
"px-5 py-16 text-center",
|
|
3551
3756
|
"font-sans text-[13px] text-ink-3",
|
|
@@ -3554,7 +3759,7 @@ function DataTableError({ error, onRetry, className }) {
|
|
|
3554
3759
|
children: [
|
|
3555
3760
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-danger text-[14px]", children: "Something went wrong" }),
|
|
3556
3761
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-ink-3 max-w-[48ch] font-mono text-[12px]", children: error.message }),
|
|
3557
|
-
onRetry ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3762
|
+
onRetry ? /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Button, { variant: "ghost", size: "sm", onPress: onRetry, children: "Retry" }) : null
|
|
3558
3763
|
]
|
|
3559
3764
|
}
|
|
3560
3765
|
);
|
|
@@ -3573,7 +3778,7 @@ function DataTableSkeleton({
|
|
|
3573
3778
|
TableCell,
|
|
3574
3779
|
{
|
|
3575
3780
|
width: w,
|
|
3576
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3781
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Skeleton, { shape: "text", className: "h-3 max-w-[60%]" })
|
|
3577
3782
|
},
|
|
3578
3783
|
colIdx
|
|
3579
3784
|
))
|
|
@@ -3616,6 +3821,8 @@ function DataTable({
|
|
|
3616
3821
|
onSortingChange,
|
|
3617
3822
|
rowHeight = DEFAULT_ROW_HEIGHT,
|
|
3618
3823
|
overscan = 8,
|
|
3824
|
+
scrollRestorationId,
|
|
3825
|
+
initialScrollOffset,
|
|
3619
3826
|
onRowClick,
|
|
3620
3827
|
zebra = true,
|
|
3621
3828
|
emptyState,
|
|
@@ -3778,7 +3985,10 @@ function DataTable({
|
|
|
3778
3985
|
return items;
|
|
3779
3986
|
}, [tableRows, groupBy]);
|
|
3780
3987
|
const scrollerRef = react.useRef(null);
|
|
3988
|
+
const mountedSorting = react.useRef(sorting);
|
|
3781
3989
|
react.useEffect(() => {
|
|
3990
|
+
if (sorting === mountedSorting.current) return;
|
|
3991
|
+
mountedSorting.current = sorting;
|
|
3782
3992
|
scrollerRef.current?.scrollTo({ top: 0 });
|
|
3783
3993
|
}, [sorting]);
|
|
3784
3994
|
const listRef = react.useRef(null);
|
|
@@ -3793,7 +4003,8 @@ function DataTable({
|
|
|
3793
4003
|
getScrollElement: () => scrollerRef.current,
|
|
3794
4004
|
estimateSize: (index) => listItems[index]?.kind === "group" ? headingHeight : rowHeight,
|
|
3795
4005
|
overscan,
|
|
3796
|
-
scrollMargin: listOffset
|
|
4006
|
+
scrollMargin: listOffset,
|
|
4007
|
+
...initialScrollOffset !== void 0 ? { initialOffset: initialScrollOffset } : {}
|
|
3797
4008
|
});
|
|
3798
4009
|
const sentinelRef = useInfiniteScrollSentinel({
|
|
3799
4010
|
onIntersect: () => {
|
|
@@ -3852,12 +4063,13 @@ function DataTable({
|
|
|
3852
4063
|
{
|
|
3853
4064
|
...ariaLabel !== void 0 ? { "aria-label": ariaLabel } : {},
|
|
3854
4065
|
variant,
|
|
3855
|
-
className:
|
|
4066
|
+
className: chunk4ACELYEP_cjs.cn("flex-1 min-h-0", className),
|
|
3856
4067
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
3857
4068
|
TableScroller,
|
|
3858
4069
|
{
|
|
3859
4070
|
ref: scrollerRef,
|
|
3860
|
-
|
|
4071
|
+
...scrollRestorationId !== void 0 ? { "data-scroll-restoration-id": scrollRestorationId } : {},
|
|
4072
|
+
className: chunk4ACELYEP_cjs.cn("scroll-pt-[36px]", bodyAfter ? "scroll-pb-8" : void 0),
|
|
3861
4073
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", style: { minWidth: minPanelWidth }, children: [
|
|
3862
4074
|
headerGroups.map((group) => /* @__PURE__ */ jsxRuntime.jsxs(TableHeader, { sticky: true, children: [
|
|
3863
4075
|
group.headers.map((header) => {
|
|
@@ -3903,6 +4115,11 @@ function DataTable({
|
|
|
3903
4115
|
{
|
|
3904
4116
|
ref: listRef,
|
|
3905
4117
|
role: "presentation",
|
|
4118
|
+
"aria-busy": query.isPlaceholderData ? true : void 0,
|
|
4119
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4120
|
+
"transition-opacity duration-150 motion-reduce:transition-none",
|
|
4121
|
+
query.isPlaceholderData && "opacity-50"
|
|
4122
|
+
),
|
|
3906
4123
|
style: { height: totalSize, position: "relative", width: "100%" },
|
|
3907
4124
|
children: virtualItems.map((vRow) => {
|
|
3908
4125
|
const item = listItems[vRow.index];
|
|
@@ -3944,7 +4161,7 @@ function DataTable({
|
|
|
3944
4161
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3945
4162
|
"div",
|
|
3946
4163
|
{
|
|
3947
|
-
className:
|
|
4164
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
3948
4165
|
"sticky bottom-0 z-[4] flex items-center h-8 px-0.5",
|
|
3949
4166
|
"border-t border-rule-2 bg-bg"
|
|
3950
4167
|
),
|
|
@@ -3964,7 +4181,7 @@ function GroupHeaderRow({ style, children }) {
|
|
|
3964
4181
|
{
|
|
3965
4182
|
absolute: true,
|
|
3966
4183
|
style,
|
|
3967
|
-
className:
|
|
4184
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
3968
4185
|
"bg-surface-2 border-b border-rule",
|
|
3969
4186
|
"font-mono text-[11px] uppercase tracking-[0.06em] text-ink-3"
|
|
3970
4187
|
),
|
|
@@ -3986,7 +4203,7 @@ function DataRow({
|
|
|
3986
4203
|
const cells = row.getVisibleCells().map((cell) => {
|
|
3987
4204
|
const meta = cell.column.columnDef.meta;
|
|
3988
4205
|
const cellSize = cell.column.getSize() || void 0;
|
|
3989
|
-
const cellClassName =
|
|
4206
|
+
const cellClassName = chunk4ACELYEP_cjs.cn(
|
|
3990
4207
|
columnBorders ? "border-r border-rule-2" : void 0,
|
|
3991
4208
|
meta?.cellClassName
|
|
3992
4209
|
);
|
|
@@ -4029,7 +4246,7 @@ function LoaderRow() {
|
|
|
4029
4246
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4030
4247
|
"div",
|
|
4031
4248
|
{
|
|
4032
|
-
className:
|
|
4249
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4033
4250
|
"flex items-center justify-center gap-3",
|
|
4034
4251
|
"h-8 font-mono text-[11px] tracking-[0.04em]",
|
|
4035
4252
|
"text-ink-4"
|
|
@@ -4089,7 +4306,7 @@ function CalendarGlyph() {
|
|
|
4089
4306
|
/* @__PURE__ */ jsxRuntime.jsx("path", { d: "M5.5 2V5M10.5 2V5", stroke: "currentColor", strokeWidth: "1.2", strokeLinecap: "round" })
|
|
4090
4307
|
] });
|
|
4091
4308
|
}
|
|
4092
|
-
function
|
|
4309
|
+
function ChevronLeft2() {
|
|
4093
4310
|
return /* @__PURE__ */ jsxRuntime.jsx("svg", { "aria-hidden": true, viewBox: "0 0 12 12", className: "size-3", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4094
4311
|
"path",
|
|
4095
4312
|
{
|
|
@@ -4101,7 +4318,7 @@ function ChevronLeft() {
|
|
|
4101
4318
|
}
|
|
4102
4319
|
) });
|
|
4103
4320
|
}
|
|
4104
|
-
function
|
|
4321
|
+
function ChevronRight2() {
|
|
4105
4322
|
return /* @__PURE__ */ jsxRuntime.jsx("svg", { "aria-hidden": true, viewBox: "0 0 12 12", className: "size-3", fill: "none", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4106
4323
|
"path",
|
|
4107
4324
|
{
|
|
@@ -4121,12 +4338,12 @@ function CalendarSurface() {
|
|
|
4121
4338
|
{
|
|
4122
4339
|
slot: "previous",
|
|
4123
4340
|
"aria-label": "Previous month",
|
|
4124
|
-
className:
|
|
4341
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4125
4342
|
"size-7 rounded-md inline-flex items-center justify-center",
|
|
4126
4343
|
"text-ink-3 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
|
|
4127
4344
|
"focus-visible:shadow-[var(--shadow-focus)]"
|
|
4128
4345
|
),
|
|
4129
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4346
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ChevronLeft2, {})
|
|
4130
4347
|
}
|
|
4131
4348
|
),
|
|
4132
4349
|
/* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Heading, { className: "font-sans font-medium text-[14px] text-ink tracking-[-0.01em]" }),
|
|
@@ -4135,12 +4352,12 @@ function CalendarSurface() {
|
|
|
4135
4352
|
{
|
|
4136
4353
|
slot: "next",
|
|
4137
4354
|
"aria-label": "Next month",
|
|
4138
|
-
className:
|
|
4355
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4139
4356
|
"size-7 rounded-md inline-flex items-center justify-center",
|
|
4140
4357
|
"text-ink-3 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
|
|
4141
4358
|
"focus-visible:shadow-[var(--shadow-focus)]"
|
|
4142
4359
|
),
|
|
4143
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4360
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(ChevronRight2, {})
|
|
4144
4361
|
}
|
|
4145
4362
|
)
|
|
4146
4363
|
] }),
|
|
@@ -4148,7 +4365,7 @@ function CalendarSurface() {
|
|
|
4148
4365
|
/* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.CalendarGridHeader, { children: (day) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
4149
4366
|
reactAriaComponents.CalendarHeaderCell,
|
|
4150
4367
|
{
|
|
4151
|
-
className:
|
|
4368
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4152
4369
|
"font-mono text-[10.5px] uppercase tracking-[0.08em] text-ink-4",
|
|
4153
4370
|
"pb-2 text-center"
|
|
4154
4371
|
),
|
|
@@ -4159,7 +4376,7 @@ function CalendarSurface() {
|
|
|
4159
4376
|
reactAriaComponents.CalendarCell,
|
|
4160
4377
|
{
|
|
4161
4378
|
date,
|
|
4162
|
-
className:
|
|
4379
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4163
4380
|
// aspect-square + table-fixed makes each cell a perfect
|
|
4164
4381
|
// square that scales with popover width.
|
|
4165
4382
|
"aspect-square flex items-center justify-center cursor-pointer",
|
|
@@ -4193,7 +4410,7 @@ function DatePicker({
|
|
|
4193
4410
|
reactAriaComponents.DatePicker,
|
|
4194
4411
|
{
|
|
4195
4412
|
...props,
|
|
4196
|
-
className: (renderProps) =>
|
|
4413
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
4197
4414
|
"grid grid-cols-1 gap-1.5 content-start",
|
|
4198
4415
|
typeof className === "function" ? className(renderProps) : className
|
|
4199
4416
|
),
|
|
@@ -4202,7 +4419,7 @@ function DatePicker({
|
|
|
4202
4419
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4203
4420
|
reactAriaComponents.Group,
|
|
4204
4421
|
{
|
|
4205
|
-
className:
|
|
4422
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4206
4423
|
// Box chrome on the wrapper; the DateInput inside carries padding +
|
|
4207
4424
|
// font so the calendar trigger sits inside the same border + ring.
|
|
4208
4425
|
styles4.box(),
|
|
@@ -4213,7 +4430,7 @@ function DatePicker({
|
|
|
4213
4430
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4214
4431
|
reactAriaComponents.DateInput,
|
|
4215
4432
|
{
|
|
4216
|
-
className:
|
|
4433
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4217
4434
|
"flex-1 flex items-center min-w-0 text-ink",
|
|
4218
4435
|
styles4.content(),
|
|
4219
4436
|
// Tabular alignment for date segments — overrides content's
|
|
@@ -4224,7 +4441,7 @@ function DatePicker({
|
|
|
4224
4441
|
reactAriaComponents.DateSegment,
|
|
4225
4442
|
{
|
|
4226
4443
|
segment,
|
|
4227
|
-
className:
|
|
4444
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4228
4445
|
"px-px tabular-nums outline-none select-none",
|
|
4229
4446
|
"data-[placeholder]:text-ink-4",
|
|
4230
4447
|
"data-[type=literal]:text-ink-4",
|
|
@@ -4239,7 +4456,7 @@ function DatePicker({
|
|
|
4239
4456
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4240
4457
|
reactAriaComponents.Button,
|
|
4241
4458
|
{
|
|
4242
|
-
className:
|
|
4459
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4243
4460
|
"shrink-0 inline-flex items-center justify-center",
|
|
4244
4461
|
"size-7 rounded-md",
|
|
4245
4462
|
"text-ink-3 hover:text-ink hover:bg-surface-2",
|
|
@@ -4259,7 +4476,7 @@ function DatePicker({
|
|
|
4259
4476
|
reactAriaComponents.Popover,
|
|
4260
4477
|
{
|
|
4261
4478
|
offset: 6,
|
|
4262
|
-
className:
|
|
4479
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4263
4480
|
// Match the anchoring field's width exactly. `--trigger-width` is
|
|
4264
4481
|
// set by RAC on the Popover when it's inside a DatePicker. Floor at
|
|
4265
4482
|
// 18rem so the calendar stays legible when the input is unusually
|
|
@@ -4278,7 +4495,7 @@ function DatePicker({
|
|
|
4278
4495
|
}
|
|
4279
4496
|
);
|
|
4280
4497
|
}
|
|
4281
|
-
var segmentStyles =
|
|
4498
|
+
var segmentStyles = chunk4ACELYEP_cjs.cn(
|
|
4282
4499
|
"px-px tabular-nums outline-none select-none",
|
|
4283
4500
|
"data-[placeholder]:text-ink-4",
|
|
4284
4501
|
"data-[type=literal]:text-ink-4",
|
|
@@ -4309,7 +4526,7 @@ function PopoverTimeField({
|
|
|
4309
4526
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4310
4527
|
reactAriaComponents.DateInput,
|
|
4311
4528
|
{
|
|
4312
|
-
className:
|
|
4529
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4313
4530
|
"inline-flex items-center rounded-md border border-rule bg-surface px-2.5 py-1.5",
|
|
4314
4531
|
"font-mono text-[13px] text-ink",
|
|
4315
4532
|
"focus-within:border-accent focus-within:shadow-[var(--shadow-focus)]",
|
|
@@ -4348,7 +4565,7 @@ function DateTimePicker({
|
|
|
4348
4565
|
granularity,
|
|
4349
4566
|
hideTimeZone,
|
|
4350
4567
|
shouldCloseOnSelect,
|
|
4351
|
-
className: (renderProps) =>
|
|
4568
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
4352
4569
|
"grid grid-cols-1 gap-1.5 content-start",
|
|
4353
4570
|
typeof className === "function" ? className(renderProps) : className
|
|
4354
4571
|
),
|
|
@@ -4357,7 +4574,7 @@ function DateTimePicker({
|
|
|
4357
4574
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4358
4575
|
reactAriaComponents.Group,
|
|
4359
4576
|
{
|
|
4360
|
-
className:
|
|
4577
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4361
4578
|
// Box chrome on the wrapper; the DateInput inside carries padding +
|
|
4362
4579
|
// font so the calendar trigger sits inside the same border + ring.
|
|
4363
4580
|
styles4.box(),
|
|
@@ -4368,7 +4585,7 @@ function DateTimePicker({
|
|
|
4368
4585
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4369
4586
|
reactAriaComponents.DateInput,
|
|
4370
4587
|
{
|
|
4371
|
-
className:
|
|
4588
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4372
4589
|
"flex-1 flex items-center min-w-0 text-ink",
|
|
4373
4590
|
styles4.content(),
|
|
4374
4591
|
// Tabular alignment for date/time segments — overrides content's
|
|
@@ -4381,7 +4598,7 @@ function DateTimePicker({
|
|
|
4381
4598
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4382
4599
|
reactAriaComponents.Button,
|
|
4383
4600
|
{
|
|
4384
|
-
className:
|
|
4601
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4385
4602
|
"shrink-0 inline-flex items-center justify-center",
|
|
4386
4603
|
"size-7 rounded-md",
|
|
4387
4604
|
"text-ink-3 hover:text-ink hover:bg-surface-2",
|
|
@@ -4401,7 +4618,7 @@ function DateTimePicker({
|
|
|
4401
4618
|
reactAriaComponents.Popover,
|
|
4402
4619
|
{
|
|
4403
4620
|
offset: 6,
|
|
4404
|
-
className:
|
|
4621
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4405
4622
|
// Match the anchoring field's width exactly. `--trigger-width` is
|
|
4406
4623
|
// set by RAC on the Popover when it's inside a DatePicker. Floor at
|
|
4407
4624
|
// 18rem so the calendar stays legible when the input is unusually
|
|
@@ -4471,7 +4688,7 @@ function DraftMessageCard({
|
|
|
4471
4688
|
isPreviewDisabled = false,
|
|
4472
4689
|
className
|
|
4473
4690
|
}) {
|
|
4474
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
4691
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn(styles2.root(), className), children: [
|
|
4475
4692
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: styles2.icon(), children: /* @__PURE__ */ jsxRuntime.jsx(ChannelIcon, { channel }) }),
|
|
4476
4693
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles2.body(), children: [
|
|
4477
4694
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: styles2.eyebrow(), children: eyebrow }),
|
|
@@ -4592,7 +4809,7 @@ function MultiSelect({
|
|
|
4592
4809
|
openPopover(true);
|
|
4593
4810
|
}
|
|
4594
4811
|
};
|
|
4595
|
-
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: [
|
|
4596
4813
|
label ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Label, { className: fieldLabelStyles, children: label }) : null,
|
|
4597
4814
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
4598
4815
|
"div",
|
|
@@ -4608,7 +4825,7 @@ function MultiSelect({
|
|
|
4608
4825
|
onKeyDown: onTriggerKeyDown,
|
|
4609
4826
|
"data-invalid": isInvalid || void 0,
|
|
4610
4827
|
"data-disabled": isDisabled || void 0,
|
|
4611
|
-
className:
|
|
4828
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4612
4829
|
styles4.box(),
|
|
4613
4830
|
"flex flex-wrap items-center gap-1.5 cursor-pointer",
|
|
4614
4831
|
minHeight,
|
|
@@ -4623,7 +4840,7 @@ function MultiSelect({
|
|
|
4623
4840
|
// No vertical padding — wrapper's p-1.5 + min-h-[size] govern the
|
|
4624
4841
|
// overall height so it matches the Input/Select trigger at the same
|
|
4625
4842
|
// size.
|
|
4626
|
-
/* @__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 })
|
|
4627
4844
|
) : selectedOptions.map((o) => /* @__PURE__ */ jsxRuntime.jsx(Chip, { onRemove: () => remove(o.id), isDisabled, children: o.content ?? o.label }, o.id)),
|
|
4628
4845
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto pr-1", children: /* @__PURE__ */ jsxRuntime.jsx(FieldCaret, {}) })
|
|
4629
4846
|
]
|
|
@@ -4639,7 +4856,7 @@ function MultiSelect({
|
|
|
4639
4856
|
triggerRef,
|
|
4640
4857
|
offset: 6,
|
|
4641
4858
|
placement: "bottom start",
|
|
4642
|
-
className:
|
|
4859
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4643
4860
|
"w-[var(--trigger-width)]",
|
|
4644
4861
|
// The popover element itself takes focus when opened programmatically
|
|
4645
4862
|
// (defaultOpen) — no browser outline around the whole panel.
|
|
@@ -4657,7 +4874,7 @@ function MultiSelect({
|
|
|
4657
4874
|
onChange: (e) => updateSearch(e.target.value),
|
|
4658
4875
|
placeholder: "Search\u2026",
|
|
4659
4876
|
"aria-label": "Search options",
|
|
4660
|
-
className:
|
|
4877
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4661
4878
|
"w-full bg-transparent outline-none rounded-[6px] px-2 py-1.5",
|
|
4662
4879
|
"font-sans text-[13px] text-ink placeholder:text-ink-4"
|
|
4663
4880
|
)
|
|
@@ -4678,14 +4895,14 @@ function MultiSelect({
|
|
|
4678
4895
|
onSelectionChange(keys);
|
|
4679
4896
|
},
|
|
4680
4897
|
className: "outline-none max-h-72 overflow-auto",
|
|
4681
|
-
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" }),
|
|
4682
4899
|
children: listboxOptions.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4683
4900
|
reactAriaComponents.ListBoxItem,
|
|
4684
4901
|
{
|
|
4685
4902
|
id: option.id,
|
|
4686
4903
|
textValue: option.label,
|
|
4687
4904
|
...option.isDisabled ? { isDisabled: true } : {},
|
|
4688
|
-
className:
|
|
4905
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4689
4906
|
"group flex items-center gap-2.5",
|
|
4690
4907
|
"rounded-[6px] px-3 py-2 text-[14px] text-ink-2",
|
|
4691
4908
|
"cursor-pointer outline-none select-none",
|
|
@@ -4715,7 +4932,7 @@ function Chip({
|
|
|
4715
4932
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
4716
4933
|
"span",
|
|
4717
4934
|
{
|
|
4718
|
-
className:
|
|
4935
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4719
4936
|
"inline-flex items-center gap-1.5",
|
|
4720
4937
|
"pl-2 pr-1 py-0.5 rounded-[6px]",
|
|
4721
4938
|
"bg-surface-2 border border-rule",
|
|
@@ -4733,7 +4950,7 @@ function Chip({
|
|
|
4733
4950
|
e.stopPropagation();
|
|
4734
4951
|
onRemove();
|
|
4735
4952
|
},
|
|
4736
|
-
className:
|
|
4953
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4737
4954
|
"inline-flex items-center justify-center shrink-0",
|
|
4738
4955
|
"size-4 rounded-[3px]",
|
|
4739
4956
|
"text-ink-3 hover:text-ink hover:bg-surface-3 cursor-pointer",
|
|
@@ -4913,7 +5130,7 @@ function MessageComposer({
|
|
|
4913
5130
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-[18px] py-3", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
4914
5131
|
"p",
|
|
4915
5132
|
{
|
|
4916
|
-
className:
|
|
5133
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
4917
5134
|
"rounded-[10px] border border-rule bg-surface-2 px-3.5 py-2.5",
|
|
4918
5135
|
"text-[12.5px] text-ink-3 text-center"
|
|
4919
5136
|
),
|
|
@@ -4938,7 +5155,7 @@ function MessageComposer({
|
|
|
4938
5155
|
}
|
|
4939
5156
|
) : null;
|
|
4940
5157
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-[18px] pb-3.5 pt-1", children: [
|
|
4941
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
5158
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn(messageComposerStyles(), className), children: [
|
|
4942
5159
|
connectionPicker ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 border-b border-rule-2 px-3.5 py-1.5", children: [
|
|
4943
5160
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: ROW_LABEL, children: "Via" }),
|
|
4944
5161
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -5042,7 +5259,7 @@ function MessageComposer({
|
|
|
5042
5259
|
rows: 1,
|
|
5043
5260
|
onChange: (event) => onValueChange({ ...value, text: event.target.value }),
|
|
5044
5261
|
onKeyDown: onKeyDown2,
|
|
5045
|
-
className:
|
|
5262
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
5046
5263
|
"w-full resize-none bg-transparent outline-none",
|
|
5047
5264
|
"min-h-[40px] max-h-48 text-[14px] leading-[1.5] text-ink placeholder:text-ink-4",
|
|
5048
5265
|
bodyClassName
|
|
@@ -5059,7 +5276,7 @@ function MessageComposer({
|
|
|
5059
5276
|
if (files) onAddFiles(Array.from(files));
|
|
5060
5277
|
},
|
|
5061
5278
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
5062
|
-
|
|
5279
|
+
chunk4ACELYEP_cjs.Button,
|
|
5063
5280
|
{
|
|
5064
5281
|
variant: "subtle",
|
|
5065
5282
|
size: "icon-md",
|
|
@@ -5078,7 +5295,7 @@ function MessageComposer({
|
|
|
5078
5295
|
"aria-label": "Send",
|
|
5079
5296
|
isDisabled: !canSend || isSending,
|
|
5080
5297
|
onPress: () => void submit(),
|
|
5081
|
-
className:
|
|
5298
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
5082
5299
|
"grid place-items-center size-8 rounded-[8px] cursor-pointer",
|
|
5083
5300
|
"bg-accent text-tile-fg transition-opacity duration-150",
|
|
5084
5301
|
"disabled:opacity-40 disabled:cursor-default",
|
|
@@ -5393,10 +5610,10 @@ function DraftMessageComposer({
|
|
|
5393
5610
|
[message?.attachments]
|
|
5394
5611
|
);
|
|
5395
5612
|
if (phase === "loading") {
|
|
5396
|
-
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" }) });
|
|
5397
5614
|
}
|
|
5398
5615
|
if (phase === "load-error") {
|
|
5399
|
-
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: [
|
|
5400
5617
|
loadError ?? "Loading the draft failed.",
|
|
5401
5618
|
" ",
|
|
5402
5619
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -5411,9 +5628,9 @@ function DraftMessageComposer({
|
|
|
5411
5628
|
}
|
|
5412
5629
|
if (phase === "terminal" || !message) {
|
|
5413
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.";
|
|
5414
|
-
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 }) });
|
|
5415
5632
|
}
|
|
5416
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
5633
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn(styles3.root(), className), children: [
|
|
5417
5634
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles3.header(), children: [
|
|
5418
5635
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: styles3.badge(), children: "Draft \xB7 awaiting review" }),
|
|
5419
5636
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: styles3.sender(), children: [
|
|
@@ -5455,7 +5672,7 @@ function DraftMessageComposer({
|
|
|
5455
5672
|
isConfirmingReject ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
5456
5673
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-[12.5px] text-ink-3", children: "Reject draft?" }),
|
|
5457
5674
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5458
|
-
|
|
5675
|
+
chunk4ACELYEP_cjs.Button,
|
|
5459
5676
|
{
|
|
5460
5677
|
size: "sm",
|
|
5461
5678
|
variant: "ghost",
|
|
@@ -5464,9 +5681,9 @@ function DraftMessageComposer({
|
|
|
5464
5681
|
children: "Confirm reject"
|
|
5465
5682
|
}
|
|
5466
5683
|
),
|
|
5467
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5684
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Button, { size: "sm", variant: "subtle", onPress: () => setIsConfirmingReject(false), children: "Cancel" })
|
|
5468
5685
|
] }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
5469
|
-
|
|
5686
|
+
chunk4ACELYEP_cjs.Button,
|
|
5470
5687
|
{
|
|
5471
5688
|
size: "sm",
|
|
5472
5689
|
variant: "ghost",
|
|
@@ -5476,7 +5693,7 @@ function DraftMessageComposer({
|
|
|
5476
5693
|
}
|
|
5477
5694
|
),
|
|
5478
5695
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5479
|
-
|
|
5696
|
+
chunk4ACELYEP_cjs.Button,
|
|
5480
5697
|
{
|
|
5481
5698
|
size: "sm",
|
|
5482
5699
|
variant: "subtle",
|
|
@@ -5634,7 +5851,7 @@ function EmptyState({
|
|
|
5634
5851
|
className
|
|
5635
5852
|
}) {
|
|
5636
5853
|
const styles4 = emptyStateStyles({ size });
|
|
5637
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
5854
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn(styles4.root(), className), children: [
|
|
5638
5855
|
icon ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.art(), children: icon }) : null,
|
|
5639
5856
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.title(), children: title }),
|
|
5640
5857
|
description ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.description(), children: description }) : null,
|
|
@@ -5646,7 +5863,7 @@ function ErrorAnimation({ className }) {
|
|
|
5646
5863
|
"div",
|
|
5647
5864
|
{
|
|
5648
5865
|
"aria-hidden": true,
|
|
5649
|
-
className:
|
|
5866
|
+
className: chunk4ACELYEP_cjs.cn("size-24 text-danger motion-safe:animate-status-pop", className),
|
|
5650
5867
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleX, { className: "size-full", strokeWidth: 1.5 })
|
|
5651
5868
|
}
|
|
5652
5869
|
);
|
|
@@ -5669,13 +5886,13 @@ function FileViewerFallbackCard({
|
|
|
5669
5886
|
const Icon = iconForContentType(contentType);
|
|
5670
5887
|
const size = formatFileSize(sizeInBytes);
|
|
5671
5888
|
const meta = [size, note].filter(Boolean).join(" \xB7 ");
|
|
5672
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className:
|
|
5889
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunk4ACELYEP_cjs.cn(fileViewerFallbackCardStyles(), className), children: [
|
|
5673
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" }) }),
|
|
5674
5891
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex min-w-0 flex-1 flex-col", children: [
|
|
5675
5892
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate font-sans text-[13px] font-medium text-ink", children: name }),
|
|
5676
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
|
|
5677
5894
|
] }),
|
|
5678
|
-
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
|
|
5679
5896
|
] });
|
|
5680
5897
|
}
|
|
5681
5898
|
var imageLightboxStyles = tailwindVariants.tv({
|
|
@@ -5712,7 +5929,7 @@ function ImageLightbox({ isOpen, onOpenChange, src, name, onDownload }) {
|
|
|
5712
5929
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
5713
5930
|
"div",
|
|
5714
5931
|
{
|
|
5715
|
-
className:
|
|
5932
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
5716
5933
|
"flex items-center gap-1.5",
|
|
5717
5934
|
"rounded-[8px] border border-rule bg-surface py-1 pl-3 pr-1",
|
|
5718
5935
|
"shadow-[var(--shadow-float)]"
|
|
@@ -5720,7 +5937,7 @@ function ImageLightbox({ isOpen, onOpenChange, src, name, onDownload }) {
|
|
|
5720
5937
|
children: [
|
|
5721
5938
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "max-w-[320px] truncate font-sans text-[12.5px] text-ink", children: name }),
|
|
5722
5939
|
onDownload ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
5723
|
-
|
|
5940
|
+
chunk4ACELYEP_cjs.Button,
|
|
5724
5941
|
{
|
|
5725
5942
|
variant: "ghost",
|
|
5726
5943
|
size: "icon-sm",
|
|
@@ -5729,7 +5946,7 @@ function ImageLightbox({ isOpen, onOpenChange, src, name, onDownload }) {
|
|
|
5729
5946
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Download, { "aria-hidden": true })
|
|
5730
5947
|
}
|
|
5731
5948
|
) : null,
|
|
5732
|
-
/* @__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 }) })
|
|
5733
5950
|
]
|
|
5734
5951
|
}
|
|
5735
5952
|
)
|
|
@@ -5769,7 +5986,7 @@ function VideoView({ name, src }) {
|
|
|
5769
5986
|
/* @__PURE__ */ jsxRuntime.jsx("video", { controls: true, src, "aria-label": name, className: "h-full w-full object-contain" })
|
|
5770
5987
|
);
|
|
5771
5988
|
}
|
|
5772
|
-
var PdfView = react.lazy(() => import('./pdf-view-
|
|
5989
|
+
var PdfView = react.lazy(() => import('./pdf-view-2DSARHNQ.cjs'));
|
|
5773
5990
|
var fileViewerStyles = tailwindVariants.tv({
|
|
5774
5991
|
base: [
|
|
5775
5992
|
"relative flex w-full flex-col overflow-hidden",
|
|
@@ -5809,8 +6026,120 @@ function FileViewer({
|
|
|
5809
6026
|
}
|
|
5810
6027
|
);
|
|
5811
6028
|
if (kind === "none" || errorMessage || isOversized) return fallback;
|
|
5812
|
-
const skeleton = /* @__PURE__ */ jsxRuntime.jsx(
|
|
5813
|
-
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;
|
|
5814
6143
|
}
|
|
5815
6144
|
var imageAttachmentStyles = tailwindVariants.tv({
|
|
5816
6145
|
base: [
|
|
@@ -5833,7 +6162,7 @@ function ImageAttachment({
|
|
|
5833
6162
|
{
|
|
5834
6163
|
"aria-label": `Preview ${name}`,
|
|
5835
6164
|
...onPress ? { onPress } : {},
|
|
5836
|
-
className:
|
|
6165
|
+
className: chunk4ACELYEP_cjs.cn(imageAttachmentStyles(), className),
|
|
5837
6166
|
children: [
|
|
5838
6167
|
src ? (
|
|
5839
6168
|
// Kept in the DOM (invisible) while loading so onLoad still fires
|
|
@@ -5846,14 +6175,14 @@ function ImageAttachment({
|
|
|
5846
6175
|
loading: "lazy",
|
|
5847
6176
|
onLoad: () => setLoadedSrc(src),
|
|
5848
6177
|
onError: () => onLoadError?.(),
|
|
5849
|
-
className:
|
|
6178
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
5850
6179
|
"block max-h-[220px] max-w-[280px] object-contain",
|
|
5851
6180
|
!isLoaded && "invisible absolute inset-0"
|
|
5852
6181
|
)
|
|
5853
6182
|
}
|
|
5854
6183
|
)
|
|
5855
6184
|
) : null,
|
|
5856
|
-
!isLoaded ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
6185
|
+
!isLoaded ? /* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Skeleton, { className: "h-[140px] w-[200px]" }) : null
|
|
5857
6186
|
]
|
|
5858
6187
|
}
|
|
5859
6188
|
);
|
|
@@ -5884,7 +6213,7 @@ function Input({
|
|
|
5884
6213
|
reactAriaComponents.TextField,
|
|
5885
6214
|
{
|
|
5886
6215
|
...props,
|
|
5887
|
-
className: (renderProps) =>
|
|
6216
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
5888
6217
|
"grid grid-cols-1 gap-1.5 content-start",
|
|
5889
6218
|
typeof className === "function" ? className(renderProps) : className
|
|
5890
6219
|
),
|
|
@@ -5895,7 +6224,7 @@ function Input({
|
|
|
5895
6224
|
{
|
|
5896
6225
|
...inputProps,
|
|
5897
6226
|
placeholder: placeholder ?? "",
|
|
5898
|
-
className:
|
|
6227
|
+
className: chunk4ACELYEP_cjs.cn(styles4.box(), styles4.content(), inputClassName)
|
|
5899
6228
|
}
|
|
5900
6229
|
),
|
|
5901
6230
|
description ? /* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Text, { slot: "description", className: fieldHintStyles, children: description }) : null,
|
|
@@ -5913,7 +6242,7 @@ function MenuPopover({ className, offset = 4, placement = "bottom start", ...pro
|
|
|
5913
6242
|
offset,
|
|
5914
6243
|
placement,
|
|
5915
6244
|
...props,
|
|
5916
|
-
className: (renderProps) =>
|
|
6245
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
5917
6246
|
"min-w-[200px] p-1 bg-surface border border-rule rounded-md",
|
|
5918
6247
|
"shadow-[var(--shadow-float)] outline-none z-[1200]",
|
|
5919
6248
|
"entering:animate-enter-zoom",
|
|
@@ -5928,14 +6257,14 @@ function Menu({ className, ...props }) {
|
|
|
5928
6257
|
reactAriaComponents.Menu,
|
|
5929
6258
|
{
|
|
5930
6259
|
...props,
|
|
5931
|
-
className: (renderProps) =>
|
|
6260
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
5932
6261
|
"flex flex-col gap-px outline-none",
|
|
5933
6262
|
typeof className === "function" ? className(renderProps) : className
|
|
5934
6263
|
)
|
|
5935
6264
|
}
|
|
5936
6265
|
);
|
|
5937
6266
|
}
|
|
5938
|
-
var menuItemStyles =
|
|
6267
|
+
var menuItemStyles = chunk4ACELYEP_cjs.cn(
|
|
5939
6268
|
"flex items-center gap-2.5 px-2.5 py-1.5 rounded-md cursor-pointer outline-none",
|
|
5940
6269
|
"font-sans text-[13px] text-ink-2 select-none",
|
|
5941
6270
|
"hover:bg-surface-2 hover:text-ink focus:bg-surface-2 focus:text-ink",
|
|
@@ -5949,7 +6278,7 @@ function MenuItem({ icon, hasSubmenu, children, className, ...props }) {
|
|
|
5949
6278
|
reactAriaComponents.MenuItem,
|
|
5950
6279
|
{
|
|
5951
6280
|
...props,
|
|
5952
|
-
className: (renderProps) =>
|
|
6281
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(menuItemStyles, typeof className === "function" ? className(renderProps) : className),
|
|
5953
6282
|
children: [
|
|
5954
6283
|
icon ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex shrink-0 items-center", children: icon }) : null,
|
|
5955
6284
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-1 truncate", children }),
|
|
@@ -5971,7 +6300,7 @@ function NavSection({
|
|
|
5971
6300
|
"data-testid": dataTestid
|
|
5972
6301
|
}) {
|
|
5973
6302
|
const hasHead = label !== void 0 || count !== void 0 || action !== void 0;
|
|
5974
|
-
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: [
|
|
5975
6304
|
hasHead ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between px-2 pt-1 pb-2", children: [
|
|
5976
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", {}),
|
|
5977
6306
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
@@ -6026,7 +6355,7 @@ function NavItem({ icon, badge, isActive, className, children, ...props }) {
|
|
|
6026
6355
|
reactAriaComponents.Button,
|
|
6027
6356
|
{
|
|
6028
6357
|
...props,
|
|
6029
|
-
className: (renderProps) =>
|
|
6358
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
6030
6359
|
navItemStyles({ isActive, isNested }),
|
|
6031
6360
|
typeof className === "function" ? className(renderProps) : className
|
|
6032
6361
|
),
|
|
@@ -6035,7 +6364,7 @@ function NavItem({ icon, badge, isActive, className, children, ...props }) {
|
|
|
6035
6364
|
"span",
|
|
6036
6365
|
{
|
|
6037
6366
|
"aria-hidden": true,
|
|
6038
|
-
className:
|
|
6367
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
6039
6368
|
"grid place-items-center shrink-0 size-4",
|
|
6040
6369
|
isActive ? "text-accent" : "text-ink-3",
|
|
6041
6370
|
"[&>svg]:size-4"
|
|
@@ -6050,12 +6379,12 @@ function NavItem({ icon, badge, isActive, className, children, ...props }) {
|
|
|
6050
6379
|
);
|
|
6051
6380
|
}
|
|
6052
6381
|
function NavGroup({ icon, label, children, className, ...props }) {
|
|
6053
|
-
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: [
|
|
6054
6383
|
/* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.Heading, { className: "m-0", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6055
6384
|
reactAriaComponents.Button,
|
|
6056
6385
|
{
|
|
6057
6386
|
slot: "trigger",
|
|
6058
|
-
className:
|
|
6387
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
6059
6388
|
"flex w-full items-center gap-2.5",
|
|
6060
6389
|
"px-2 py-[7px] rounded-[7px]",
|
|
6061
6390
|
"text-[13.5px] tracking-[-0.005em] text-ink-2 text-left",
|
|
@@ -6099,7 +6428,7 @@ function NavGroup({ icon, label, children, className, ...props }) {
|
|
|
6099
6428
|
/* @__PURE__ */ jsxRuntime.jsx(reactAriaComponents.DisclosurePanel, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6100
6429
|
"div",
|
|
6101
6430
|
{
|
|
6102
|
-
className:
|
|
6431
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
6103
6432
|
"relative pl-[22px] py-px",
|
|
6104
6433
|
// Vertical guide rule — sits under where the parent's icon center
|
|
6105
6434
|
// would be (14px from the panel's left edge).
|
|
@@ -6123,7 +6452,7 @@ function Orb({ size = "sm", state = "solving", speed, theme, className, label })
|
|
|
6123
6452
|
size: design,
|
|
6124
6453
|
...speed !== void 0 ? { speed } : {},
|
|
6125
6454
|
...theme !== void 0 ? { theme } : {},
|
|
6126
|
-
className:
|
|
6455
|
+
className: chunk4ACELYEP_cjs.cn("inline-block shrink-0", className),
|
|
6127
6456
|
...px !== design ? { style: { width: px, height: px } } : {},
|
|
6128
6457
|
...label ? { "aria-label": label } : { "aria-hidden": true }
|
|
6129
6458
|
}
|
|
@@ -6146,10 +6475,10 @@ var progressBarStyles = tailwindVariants.tv({
|
|
|
6146
6475
|
});
|
|
6147
6476
|
function ProgressBar({ size, className, ...props }) {
|
|
6148
6477
|
const { track, fill } = progressBarStyles({ size });
|
|
6149
|
-
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(
|
|
6150
6479
|
"div",
|
|
6151
6480
|
{
|
|
6152
|
-
className:
|
|
6481
|
+
className: chunk4ACELYEP_cjs.cn(fill(), "transition-[width] duration-150"),
|
|
6153
6482
|
style: { width: `${percentage ?? 0}%` }
|
|
6154
6483
|
}
|
|
6155
6484
|
) }) });
|
|
@@ -6199,7 +6528,7 @@ function ProgressRing({ size, className, ...props }) {
|
|
|
6199
6528
|
const { box, stroke } = GEOMETRY[resolvedSize];
|
|
6200
6529
|
const center = box / 2;
|
|
6201
6530
|
const radius = (box - stroke) / 2;
|
|
6202
|
-
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 }) => {
|
|
6203
6532
|
const shown = isIndeterminate ? 25 : Math.max(0, Math.min(100, percentage ?? 0));
|
|
6204
6533
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
6205
6534
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -6207,7 +6536,7 @@ function ProgressRing({ size, className, ...props }) {
|
|
|
6207
6536
|
{
|
|
6208
6537
|
"aria-hidden": true,
|
|
6209
6538
|
viewBox: `0 0 ${box} ${box}`,
|
|
6210
|
-
className:
|
|
6539
|
+
className: chunk4ACELYEP_cjs.cn(svg(), isIndeterminate && "animate-spin"),
|
|
6211
6540
|
children: [
|
|
6212
6541
|
/* @__PURE__ */ jsxRuntime.jsx("circle", { cx: center, cy: center, r: radius, strokeWidth: stroke, className: track() }),
|
|
6213
6542
|
shown > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -6244,7 +6573,7 @@ function RadioGroup({
|
|
|
6244
6573
|
{
|
|
6245
6574
|
...props,
|
|
6246
6575
|
orientation,
|
|
6247
|
-
className: (renderProps) =>
|
|
6576
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
6248
6577
|
"grid gap-2 content-start",
|
|
6249
6578
|
typeof className === "function" ? className(renderProps) : className
|
|
6250
6579
|
),
|
|
@@ -6253,7 +6582,7 @@ function RadioGroup({
|
|
|
6253
6582
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6254
6583
|
"div",
|
|
6255
6584
|
{
|
|
6256
|
-
className:
|
|
6585
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
6257
6586
|
orientation === "horizontal" ? "flex flex-wrap items-center gap-x-4 gap-y-2" : "grid gap-3"
|
|
6258
6587
|
),
|
|
6259
6588
|
children
|
|
@@ -6270,7 +6599,7 @@ function Radio({ children, className, ...props }) {
|
|
|
6270
6599
|
reactAriaComponents.Radio,
|
|
6271
6600
|
{
|
|
6272
6601
|
...props,
|
|
6273
|
-
className: (renderProps) =>
|
|
6602
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
6274
6603
|
// `relative` for the same reason as Checkbox / Switch: RAC's
|
|
6275
6604
|
// visually-hidden <input> is absolutely positioned and must resolve
|
|
6276
6605
|
// against this radio, not a far-away shell, or focusing it scrolls
|
|
@@ -6285,7 +6614,7 @@ function Radio({ children, className, ...props }) {
|
|
|
6285
6614
|
"span",
|
|
6286
6615
|
{
|
|
6287
6616
|
"aria-hidden": true,
|
|
6288
|
-
className:
|
|
6617
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
6289
6618
|
"relative inline-flex items-center justify-center shrink-0",
|
|
6290
6619
|
"size-[18px] rounded-full border bg-surface border-ink-4",
|
|
6291
6620
|
"transition-[border-color,box-shadow] duration-150",
|
|
@@ -6296,7 +6625,7 @@ function Radio({ children, className, ...props }) {
|
|
|
6296
6625
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
6297
6626
|
"span",
|
|
6298
6627
|
{
|
|
6299
|
-
className:
|
|
6628
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
6300
6629
|
"block size-[10px] rounded-full bg-accent",
|
|
6301
6630
|
"transition-opacity duration-150 opacity-0",
|
|
6302
6631
|
"group-data-[selected]:opacity-100"
|
|
@@ -6340,7 +6669,7 @@ function AttributePicker({
|
|
|
6340
6669
|
autoFocus,
|
|
6341
6670
|
size,
|
|
6342
6671
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
6343
|
-
className:
|
|
6672
|
+
className: chunk4ACELYEP_cjs.cn("w-full", className)
|
|
6344
6673
|
}
|
|
6345
6674
|
);
|
|
6346
6675
|
}
|
|
@@ -6609,7 +6938,7 @@ function ChipItem({
|
|
|
6609
6938
|
}
|
|
6610
6939
|
);
|
|
6611
6940
|
}
|
|
6612
|
-
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) });
|
|
6613
6942
|
}
|
|
6614
6943
|
function Em({ children }) {
|
|
6615
6944
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-mono text-[12px] text-ink-4", children });
|
|
@@ -6695,7 +7024,7 @@ function SegmentedControl({
|
|
|
6695
7024
|
orientation,
|
|
6696
7025
|
value: value === null ? null : String(value),
|
|
6697
7026
|
onChange: (next) => onChange(next),
|
|
6698
|
-
className:
|
|
7027
|
+
className: chunk4ACELYEP_cjs.cn(styles4.group(), className),
|
|
6699
7028
|
children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
6700
7029
|
reactAriaComponents.Radio,
|
|
6701
7030
|
{
|
|
@@ -6770,14 +7099,14 @@ function TagInput({
|
|
|
6770
7099
|
onChange(value.slice(0, -1));
|
|
6771
7100
|
}
|
|
6772
7101
|
};
|
|
6773
|
-
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: [
|
|
6774
7103
|
label ? /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: inputId, className: fieldLabelStyles, children: label }) : null,
|
|
6775
7104
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
6776
7105
|
"div",
|
|
6777
7106
|
{
|
|
6778
7107
|
"data-invalid": isInvalid || void 0,
|
|
6779
7108
|
"data-disabled": isDisabled || void 0,
|
|
6780
|
-
className:
|
|
7109
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
6781
7110
|
styles4.box(),
|
|
6782
7111
|
"flex",
|
|
6783
7112
|
// Cell editor: one table row (29px under a 32px row) while the chips
|
|
@@ -6791,7 +7120,7 @@ function TagInput({
|
|
|
6791
7120
|
"div",
|
|
6792
7121
|
{
|
|
6793
7122
|
ref: chipsRef,
|
|
6794
|
-
className:
|
|
7123
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
6795
7124
|
"flex flex-1 flex-wrap items-center gap-1.5 min-w-0",
|
|
6796
7125
|
isCell && (hasWrapped ? "content-start overflow-y-auto" : "content-center overflow-hidden")
|
|
6797
7126
|
),
|
|
@@ -6830,7 +7159,7 @@ function TagInput({
|
|
|
6830
7159
|
onBlur: commit,
|
|
6831
7160
|
disabled: isDisabled,
|
|
6832
7161
|
placeholder: value.length === 0 ? placeholder : "",
|
|
6833
|
-
className:
|
|
7162
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
6834
7163
|
"flex-1 min-w-[6rem] bg-transparent outline-none",
|
|
6835
7164
|
"font-sans text-ink placeholder:text-ink-4",
|
|
6836
7165
|
fieldTextStyles[size],
|
|
@@ -6963,7 +7292,7 @@ function FilterValueInput({
|
|
|
6963
7292
|
onChange: (next) => onChange(next ? next.toString() : ""),
|
|
6964
7293
|
autoFocus,
|
|
6965
7294
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
6966
|
-
className:
|
|
7295
|
+
className: chunk4ACELYEP_cjs.cn("w-full", className)
|
|
6967
7296
|
}
|
|
6968
7297
|
);
|
|
6969
7298
|
}
|
|
@@ -6980,7 +7309,7 @@ function FilterValueInput({
|
|
|
6980
7309
|
...autoFocus ? { autoFocus: true } : {}
|
|
6981
7310
|
},
|
|
6982
7311
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
6983
|
-
className:
|
|
7312
|
+
className: chunk4ACELYEP_cjs.cn("w-full", className)
|
|
6984
7313
|
}
|
|
6985
7314
|
);
|
|
6986
7315
|
})();
|
|
@@ -7020,7 +7349,7 @@ function EnumSingleValue({
|
|
|
7020
7349
|
},
|
|
7021
7350
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
7022
7351
|
...autoFocus ? { autoFocus: true } : {},
|
|
7023
|
-
className:
|
|
7352
|
+
className: chunk4ACELYEP_cjs.cn("w-full", className)
|
|
7024
7353
|
}
|
|
7025
7354
|
);
|
|
7026
7355
|
}
|
|
@@ -7049,7 +7378,7 @@ function EnumMultiValue({
|
|
|
7049
7378
|
placeholder: "Select values\u2026",
|
|
7050
7379
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
7051
7380
|
...autoFocus ? { autoFocus: true } : {},
|
|
7052
|
-
className:
|
|
7381
|
+
className: chunk4ACELYEP_cjs.cn("w-full", className)
|
|
7053
7382
|
}
|
|
7054
7383
|
);
|
|
7055
7384
|
}
|
|
@@ -7107,7 +7436,7 @@ function OperatorPicker({
|
|
|
7107
7436
|
size,
|
|
7108
7437
|
...isDisabled !== void 0 ? { isDisabled } : {},
|
|
7109
7438
|
...autoFocus ? { autoFocus: true } : {},
|
|
7110
|
-
className:
|
|
7439
|
+
className: chunk4ACELYEP_cjs.cn("w-full", className),
|
|
7111
7440
|
triggerClassName: "min-w-0"
|
|
7112
7441
|
}
|
|
7113
7442
|
);
|
|
@@ -7137,7 +7466,7 @@ function FilterRow({
|
|
|
7137
7466
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7138
7467
|
"div",
|
|
7139
7468
|
{
|
|
7140
|
-
className:
|
|
7469
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
7141
7470
|
"group flex items-center gap-2 px-1.5 py-1 rounded-sm",
|
|
7142
7471
|
"hover:bg-[color-mix(in_oklab,var(--color-surface-2)_50%,var(--color-surface))]"
|
|
7143
7472
|
),
|
|
@@ -7145,7 +7474,7 @@ function FilterRow({
|
|
|
7145
7474
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-12 shrink-0 inline-flex justify-end pr-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7146
7475
|
"span",
|
|
7147
7476
|
{
|
|
7148
|
-
className:
|
|
7477
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
7149
7478
|
"font-mono text-[10.5px] tracking-[0.08em]",
|
|
7150
7479
|
index === 0 ? "text-ink-4" : "text-accent-ink"
|
|
7151
7480
|
),
|
|
@@ -7213,7 +7542,7 @@ function FilterRow({
|
|
|
7213
7542
|
onClick: onWrap,
|
|
7214
7543
|
"aria-label": "Wrap in group",
|
|
7215
7544
|
title: "Wrap in a group with the opposite operator",
|
|
7216
|
-
className:
|
|
7545
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
7217
7546
|
"shrink-0 size-6 inline-flex items-center justify-center rounded-sm",
|
|
7218
7547
|
"text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
|
|
7219
7548
|
"opacity-0 group-hover:opacity-100 focus-visible:opacity-100"
|
|
@@ -7240,7 +7569,7 @@ function FilterRow({
|
|
|
7240
7569
|
type: "button",
|
|
7241
7570
|
onClick: onRemove,
|
|
7242
7571
|
"aria-label": field ? "Remove filter" : "Cancel",
|
|
7243
|
-
className:
|
|
7572
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
7244
7573
|
"shrink-0 size-6 inline-flex items-center justify-center rounded-sm",
|
|
7245
7574
|
"text-ink-4 hover:text-danger hover:bg-surface-2 cursor-pointer outline-none",
|
|
7246
7575
|
field ? "opacity-0 group-hover:opacity-100 focus-visible:opacity-100" : "opacity-100"
|
|
@@ -7369,7 +7698,7 @@ function GroupAddControls({
|
|
|
7369
7698
|
{
|
|
7370
7699
|
type: "button",
|
|
7371
7700
|
onClick: onAddFilter,
|
|
7372
|
-
className:
|
|
7701
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
7373
7702
|
"inline-flex items-center gap-1.5 px-2 py-1 rounded-sm",
|
|
7374
7703
|
"text-ink-2 hover:bg-surface-2 hover:text-ink cursor-pointer outline-none"
|
|
7375
7704
|
),
|
|
@@ -7397,7 +7726,7 @@ function GroupAddControls({
|
|
|
7397
7726
|
type: "button",
|
|
7398
7727
|
onClick: onAddGroup,
|
|
7399
7728
|
title: "Add a nested group with its own logical operator",
|
|
7400
|
-
className:
|
|
7729
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
7401
7730
|
"inline-flex items-center gap-1.5 px-2 py-1 rounded-sm",
|
|
7402
7731
|
"text-ink-2 hover:bg-surface-2 hover:text-ink cursor-pointer outline-none"
|
|
7403
7732
|
),
|
|
@@ -7443,7 +7772,7 @@ function NestedGroup({
|
|
|
7443
7772
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-12 shrink-0 inline-flex justify-end pr-1 pt-2", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
7444
7773
|
"span",
|
|
7445
7774
|
{
|
|
7446
|
-
className:
|
|
7775
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
7447
7776
|
"font-mono text-[10.5px] tracking-[0.08em]",
|
|
7448
7777
|
index === 0 ? "text-ink-4" : "text-accent-ink"
|
|
7449
7778
|
),
|
|
@@ -7453,7 +7782,7 @@ function NestedGroup({
|
|
|
7453
7782
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7454
7783
|
"div",
|
|
7455
7784
|
{
|
|
7456
|
-
className:
|
|
7785
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
7457
7786
|
"flex-1 min-w-0 rounded-sm border border-rule",
|
|
7458
7787
|
"bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]"
|
|
7459
7788
|
),
|
|
@@ -7480,7 +7809,7 @@ function NestedGroup({
|
|
|
7480
7809
|
type: "button",
|
|
7481
7810
|
onClick: onRemove,
|
|
7482
7811
|
"aria-label": "Remove group",
|
|
7483
|
-
className:
|
|
7812
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
7484
7813
|
"size-6 inline-flex items-center justify-center rounded-sm",
|
|
7485
7814
|
"text-ink-4 hover:text-danger hover:bg-surface cursor-pointer outline-none"
|
|
7486
7815
|
),
|
|
@@ -7723,7 +8052,7 @@ function RecordFilterBuilderPanel({
|
|
|
7723
8052
|
type: "button",
|
|
7724
8053
|
onClick: onExpand,
|
|
7725
8054
|
title: "Show filter chips inline above the table",
|
|
7726
|
-
className:
|
|
8055
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
7727
8056
|
"inline-flex items-center gap-1 px-2 py-1 rounded-sm",
|
|
7728
8057
|
"font-mono text-[11.5px] text-ink-3 hover:text-ink hover:bg-surface-2",
|
|
7729
8058
|
"cursor-pointer outline-none"
|
|
@@ -7753,7 +8082,7 @@ function RecordFilterBuilderPanel({
|
|
|
7753
8082
|
type: "button",
|
|
7754
8083
|
onClick: onClose,
|
|
7755
8084
|
"aria-label": "Close",
|
|
7756
|
-
className:
|
|
8085
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
7757
8086
|
"size-6 inline-flex items-center justify-center rounded-sm",
|
|
7758
8087
|
"text-ink-3 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none"
|
|
7759
8088
|
),
|
|
@@ -7788,7 +8117,7 @@ function RecordFilterBuilderPanel({
|
|
|
7788
8117
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
7789
8118
|
"div",
|
|
7790
8119
|
{
|
|
7791
|
-
className:
|
|
8120
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
7792
8121
|
"flex items-center justify-between px-3.5 py-2.5 border-t border-rule rounded-b-md",
|
|
7793
8122
|
"bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]"
|
|
7794
8123
|
),
|
|
@@ -7799,7 +8128,7 @@ function RecordFilterBuilderPanel({
|
|
|
7799
8128
|
type: "button",
|
|
7800
8129
|
onClick: clearAll,
|
|
7801
8130
|
disabled: totalChildren === 0,
|
|
7802
|
-
className:
|
|
8131
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
7803
8132
|
"font-mono text-[11.5px] text-ink-3 hover:text-ink",
|
|
7804
8133
|
"disabled:opacity-40 disabled:pointer-events-none",
|
|
7805
8134
|
"outline-none cursor-pointer"
|
|
@@ -7809,7 +8138,7 @@ function RecordFilterBuilderPanel({
|
|
|
7809
8138
|
),
|
|
7810
8139
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
7811
8140
|
onSaveView ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
7812
|
-
|
|
8141
|
+
chunk4ACELYEP_cjs.Button,
|
|
7813
8142
|
{
|
|
7814
8143
|
variant: "ghost",
|
|
7815
8144
|
size: "sm",
|
|
@@ -7837,7 +8166,7 @@ function RecordFilterBuilderPanel({
|
|
|
7837
8166
|
]
|
|
7838
8167
|
}
|
|
7839
8168
|
) : null,
|
|
7840
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8169
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Button, { variant: "cta", size: "sm", onPress: onClose, children: "Done" })
|
|
7841
8170
|
] })
|
|
7842
8171
|
]
|
|
7843
8172
|
}
|
|
@@ -7911,11 +8240,11 @@ function RecordFilterButton({
|
|
|
7911
8240
|
type: "button",
|
|
7912
8241
|
"data-filter-trigger": "collapsed",
|
|
7913
8242
|
onClick: () => setOpen((v) => !v),
|
|
7914
|
-
className:
|
|
8243
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
7915
8244
|
"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-md border",
|
|
7916
8245
|
"font-mono text-[12px] cursor-pointer outline-none",
|
|
7917
8246
|
"focus-visible:shadow-[var(--shadow-focus)]",
|
|
7918
|
-
hasFilters ?
|
|
8247
|
+
hasFilters ? chunk4ACELYEP_cjs.cn(
|
|
7919
8248
|
"border-[color-mix(in_oklab,var(--color-accent)_35%,var(--color-rule))]",
|
|
7920
8249
|
"bg-[color-mix(in_oklab,var(--color-accent)_8%,var(--color-surface))]",
|
|
7921
8250
|
"text-accent-ink"
|
|
@@ -8014,7 +8343,7 @@ function RecordFilterChips({
|
|
|
8014
8343
|
logicalOperator: filter.logicalOperator === "and" ? "or" : "and"
|
|
8015
8344
|
}),
|
|
8016
8345
|
title: "Toggle joiner",
|
|
8017
|
-
className:
|
|
8346
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
8018
8347
|
"inline-flex items-center px-1.5 py-0.5 rounded-sm border border-dashed border-rule",
|
|
8019
8348
|
"font-mono text-[10.5px] tracking-[0.08em] text-ink-3",
|
|
8020
8349
|
"hover:text-ink hover:border-ink-4 cursor-pointer outline-none"
|
|
@@ -8087,7 +8416,7 @@ function RecordFilterChips({
|
|
|
8087
8416
|
elements: elements.filter((_, idx) => idx !== i)
|
|
8088
8417
|
});
|
|
8089
8418
|
},
|
|
8090
|
-
className:
|
|
8419
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
8091
8420
|
"size-5 inline-flex items-center justify-center rounded-[3px]",
|
|
8092
8421
|
"text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none"
|
|
8093
8422
|
),
|
|
@@ -8132,7 +8461,7 @@ function GroupPill({ group }) {
|
|
|
8132
8461
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8133
8462
|
"span",
|
|
8134
8463
|
{
|
|
8135
|
-
className:
|
|
8464
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
8136
8465
|
"inline-flex items-center gap-1.5 px-2 py-1 rounded-sm border border-dashed border-rule",
|
|
8137
8466
|
"bg-[color-mix(in_oklab,var(--color-surface-2)_60%,var(--color-surface))]"
|
|
8138
8467
|
),
|
|
@@ -8170,7 +8499,7 @@ function CollapseToggle({ onClick }) {
|
|
|
8170
8499
|
{
|
|
8171
8500
|
type: "button",
|
|
8172
8501
|
onClick,
|
|
8173
|
-
className:
|
|
8502
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
8174
8503
|
"inline-flex items-center gap-1",
|
|
8175
8504
|
"font-mono text-[11px] uppercase tracking-[0.08em]",
|
|
8176
8505
|
"text-ink-3 hover:text-ink cursor-pointer outline-none"
|
|
@@ -8230,7 +8559,7 @@ function Chip2({
|
|
|
8230
8559
|
setEditing((v) => !v);
|
|
8231
8560
|
}
|
|
8232
8561
|
},
|
|
8233
|
-
className:
|
|
8562
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
8234
8563
|
"group inline-flex items-center gap-1.5 pl-2 pr-1 py-1 rounded-sm border cursor-pointer",
|
|
8235
8564
|
editing ? "border-accent shadow-[var(--shadow-focus)] bg-surface" : "border-rule bg-surface hover:border-ink-4"
|
|
8236
8565
|
),
|
|
@@ -8263,7 +8592,7 @@ function Chip2({
|
|
|
8263
8592
|
onRemove();
|
|
8264
8593
|
if (editing) setEditing(false);
|
|
8265
8594
|
},
|
|
8266
|
-
className:
|
|
8595
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
8267
8596
|
"ml-0.5 size-4 inline-flex items-center justify-center rounded-[3px]",
|
|
8268
8597
|
"text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none"
|
|
8269
8598
|
),
|
|
@@ -8344,7 +8673,7 @@ function ChipMiniEditor({
|
|
|
8344
8673
|
onChange: onChangeValue
|
|
8345
8674
|
}
|
|
8346
8675
|
) }),
|
|
8347
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8676
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunk4ACELYEP_cjs.Button, { type: "submit", variant: "cta", size: "sm", className: "shrink-0", children: "Save" })
|
|
8348
8677
|
]
|
|
8349
8678
|
}
|
|
8350
8679
|
);
|
|
@@ -8356,7 +8685,7 @@ function InlineAddFilter({ onClick }) {
|
|
|
8356
8685
|
type: "button",
|
|
8357
8686
|
"data-filter-trigger": "expanded",
|
|
8358
8687
|
onClick,
|
|
8359
|
-
className:
|
|
8688
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
8360
8689
|
"inline-flex items-center gap-1 px-2 py-1 rounded-sm",
|
|
8361
8690
|
"text-ink-3 hover:bg-surface-2 hover:text-ink cursor-pointer outline-none"
|
|
8362
8691
|
),
|
|
@@ -8423,25 +8752,25 @@ var recordUpdateRowStyles = tailwindVariants.tv({
|
|
|
8423
8752
|
defaultVariants: { state: "changed" }
|
|
8424
8753
|
});
|
|
8425
8754
|
function RecordUpdate({ className, children, ...props }) {
|
|
8426
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className:
|
|
8755
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunk4ACELYEP_cjs.cn(recordUpdateStyles().root(), className), children });
|
|
8427
8756
|
}
|
|
8428
8757
|
function RecordUpdateSummary({
|
|
8429
8758
|
className,
|
|
8430
8759
|
children,
|
|
8431
8760
|
...props
|
|
8432
8761
|
}) {
|
|
8433
|
-
return /* @__PURE__ */ jsxRuntime.jsx("p", { ...props, className:
|
|
8762
|
+
return /* @__PURE__ */ jsxRuntime.jsx("p", { ...props, className: chunk4ACELYEP_cjs.cn(recordUpdateStyles().summary(), className), children });
|
|
8434
8763
|
}
|
|
8435
8764
|
function RecordUpdateRows({
|
|
8436
8765
|
className,
|
|
8437
8766
|
children,
|
|
8438
8767
|
...props
|
|
8439
8768
|
}) {
|
|
8440
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className:
|
|
8769
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunk4ACELYEP_cjs.cn(recordUpdateStyles().rows(), className), children });
|
|
8441
8770
|
}
|
|
8442
8771
|
function RecordUpdateErrors({ errors, className, ...props }) {
|
|
8443
8772
|
if (errors.length === 0) return null;
|
|
8444
|
-
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: [
|
|
8445
8774
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.AlertCircle, { className: "size-4 shrink-0 mt-px", "aria-hidden": true }),
|
|
8446
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)) })
|
|
8447
8776
|
] });
|
|
@@ -8451,7 +8780,7 @@ function RecordUpdateFooter({
|
|
|
8451
8780
|
children,
|
|
8452
8781
|
...props
|
|
8453
8782
|
}) {
|
|
8454
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className:
|
|
8783
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: chunk4ACELYEP_cjs.cn(recordUpdateStyles().footer(), className), children });
|
|
8455
8784
|
}
|
|
8456
8785
|
function RecordUpdateRow({
|
|
8457
8786
|
label,
|
|
@@ -8478,14 +8807,14 @@ function RecordUpdateRow({
|
|
|
8478
8807
|
...props,
|
|
8479
8808
|
"data-state": state,
|
|
8480
8809
|
...errorMessage ? { "aria-invalid": true } : {},
|
|
8481
|
-
className:
|
|
8810
|
+
className: chunk4ACELYEP_cjs.cn(styles4.root(), className),
|
|
8482
8811
|
children: [
|
|
8483
8812
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles4.labelRow(), children: [
|
|
8484
8813
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: label }),
|
|
8485
8814
|
state === "unresolved" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles4.tag(), children: unresolvedLabel }) : null,
|
|
8486
8815
|
state === "rejected" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles4.tag(), children: rejectedLabel }) : null,
|
|
8487
8816
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "ml-auto flex items-center", children: isRemoved ? onRestore && /* @__PURE__ */ jsxRuntime.jsx(
|
|
8488
|
-
|
|
8817
|
+
chunk4ACELYEP_cjs.Button,
|
|
8489
8818
|
{
|
|
8490
8819
|
variant: "ghost",
|
|
8491
8820
|
size: "icon-sm",
|
|
@@ -8493,7 +8822,7 @@ function RecordUpdateRow({
|
|
|
8493
8822
|
onPress: onRestore,
|
|
8494
8823
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Undo2, {})
|
|
8495
8824
|
}
|
|
8496
|
-
) : 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, {}) }) })
|
|
8497
8826
|
] }),
|
|
8498
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: [
|
|
8499
8828
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: styles4.from(), children: from }),
|
|
@@ -8534,16 +8863,91 @@ function Separator({
|
|
|
8534
8863
|
{
|
|
8535
8864
|
...props,
|
|
8536
8865
|
orientation,
|
|
8537
|
-
className:
|
|
8866
|
+
className: chunk4ACELYEP_cjs.cn(separatorStyles({ orientation, variant }), className)
|
|
8538
8867
|
}
|
|
8539
8868
|
);
|
|
8540
8869
|
}
|
|
8870
|
+
var stepperStyles = tailwindVariants.tv({
|
|
8871
|
+
slots: {
|
|
8872
|
+
root: "flex min-w-0 flex-wrap items-center gap-y-2 m-0 list-none p-0",
|
|
8873
|
+
item: "flex items-center",
|
|
8874
|
+
trigger: [
|
|
8875
|
+
"inline-flex items-center gap-[7px] rounded-sm border-0 bg-transparent p-0",
|
|
8876
|
+
"cursor-pointer select-none outline-none",
|
|
8877
|
+
"transition-colors duration-150",
|
|
8878
|
+
"data-[focus-visible]:shadow-[var(--shadow-focus)]",
|
|
8879
|
+
"data-[disabled]:cursor-default"
|
|
8880
|
+
],
|
|
8881
|
+
marker: [
|
|
8882
|
+
"grid size-[18px] shrink-0 place-items-center rounded-pill border-[1.5px]",
|
|
8883
|
+
"font-mono text-[10px] font-medium leading-none",
|
|
8884
|
+
"transition-[background-color,border-color,color] duration-150",
|
|
8885
|
+
"[&_svg]:size-[11px]"
|
|
8886
|
+
],
|
|
8887
|
+
label: "whitespace-nowrap text-[13px]",
|
|
8888
|
+
connector: "mx-2.5 h-px w-6 shrink-0 bg-rule"
|
|
8889
|
+
},
|
|
8890
|
+
variants: {
|
|
8891
|
+
orientation: {
|
|
8892
|
+
horizontal: {},
|
|
8893
|
+
vertical: {
|
|
8894
|
+
root: "flex-col flex-nowrap items-stretch gap-y-0",
|
|
8895
|
+
item: "flex-col items-start",
|
|
8896
|
+
// Centered under the 18px marker (9px in, minus half the line).
|
|
8897
|
+
connector: "mx-0 my-1 ml-[8.5px] h-4 w-px"
|
|
8898
|
+
}
|
|
8899
|
+
},
|
|
8900
|
+
state: {
|
|
8901
|
+
completed: {
|
|
8902
|
+
marker: "border-accent bg-accent text-surface",
|
|
8903
|
+
label: "text-ink-2 group-data-[hovered]:text-ink"
|
|
8904
|
+
},
|
|
8905
|
+
current: {
|
|
8906
|
+
marker: "border-accent bg-accent text-surface",
|
|
8907
|
+
label: "font-medium text-accent"
|
|
8908
|
+
},
|
|
8909
|
+
upcoming: {
|
|
8910
|
+
marker: "border-rule-strong bg-transparent text-ink-3",
|
|
8911
|
+
label: "text-ink-3 group-data-[hovered]:text-ink"
|
|
8912
|
+
}
|
|
8913
|
+
},
|
|
8914
|
+
isSelected: {
|
|
8915
|
+
true: { label: "underline decoration-accent/40 underline-offset-4" },
|
|
8916
|
+
false: {}
|
|
8917
|
+
}
|
|
8918
|
+
},
|
|
8919
|
+
defaultVariants: { orientation: "horizontal", state: "upcoming", isSelected: false }
|
|
8920
|
+
});
|
|
8921
|
+
function Stepper({ orientation, className, ...props }) {
|
|
8922
|
+
const { root } = stepperStyles({ orientation });
|
|
8923
|
+
return /* @__PURE__ */ jsxRuntime.jsx("ol", { ...props, className: chunk4ACELYEP_cjs.cn(root(), className) });
|
|
8924
|
+
}
|
|
8925
|
+
function StepperStep({
|
|
8926
|
+
state,
|
|
8927
|
+
orientation,
|
|
8928
|
+
index,
|
|
8929
|
+
icon,
|
|
8930
|
+
isSelected = false,
|
|
8931
|
+
isLast = false,
|
|
8932
|
+
children,
|
|
8933
|
+
className,
|
|
8934
|
+
...props
|
|
8935
|
+
}) {
|
|
8936
|
+
const styles4 = stepperStyles({ orientation, state, isSelected });
|
|
8937
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("li", { "aria-current": state === "current" ? "step" : void 0, className: styles4.item(), children: [
|
|
8938
|
+
/* @__PURE__ */ jsxRuntime.jsxs(reactAriaComponents.Button, { ...props, className: chunk4ACELYEP_cjs.cn("group", styles4.trigger(), className), children: [
|
|
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 }),
|
|
8940
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: styles4.label(), children })
|
|
8941
|
+
] }),
|
|
8942
|
+
!isLast && /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: styles4.connector() })
|
|
8943
|
+
] });
|
|
8944
|
+
}
|
|
8541
8945
|
function SuccessAnimation({ className }) {
|
|
8542
8946
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
8543
8947
|
"div",
|
|
8544
8948
|
{
|
|
8545
8949
|
"aria-hidden": true,
|
|
8546
|
-
className:
|
|
8950
|
+
className: chunk4ACELYEP_cjs.cn("size-24 text-success motion-safe:animate-status-pop", className),
|
|
8547
8951
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CircleCheck, { className: "size-full", strokeWidth: 1.5 })
|
|
8548
8952
|
}
|
|
8549
8953
|
);
|
|
@@ -8562,7 +8966,7 @@ function Switch({
|
|
|
8562
8966
|
{
|
|
8563
8967
|
...props,
|
|
8564
8968
|
...describedBy ? { "aria-describedby": describedBy } : {},
|
|
8565
|
-
className: (renderProps) =>
|
|
8969
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
8566
8970
|
// `relative`: RAC's visually-hidden <input> is absolutely positioned;
|
|
8567
8971
|
// without a positioned label it escapes an overflow-auto ancestor and
|
|
8568
8972
|
// its containing block becomes the page shell, so focusing it (any
|
|
@@ -8578,7 +8982,7 @@ function Switch({
|
|
|
8578
8982
|
"span",
|
|
8579
8983
|
{
|
|
8580
8984
|
"aria-hidden": true,
|
|
8581
|
-
className:
|
|
8985
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
8582
8986
|
"relative inline-block shrink-0",
|
|
8583
8987
|
"w-[38px] h-[22px] rounded-pill border",
|
|
8584
8988
|
"bg-surface-3 border-rule",
|
|
@@ -8589,7 +8993,7 @@ function Switch({
|
|
|
8589
8993
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
8590
8994
|
"span",
|
|
8591
8995
|
{
|
|
8592
|
-
className:
|
|
8996
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
8593
8997
|
"absolute top-[1px] left-[1px]",
|
|
8594
8998
|
"block size-[18px] rounded-full bg-surface",
|
|
8595
8999
|
"transition-transform duration-200",
|
|
@@ -8610,7 +9014,7 @@ function Switch({
|
|
|
8610
9014
|
"span",
|
|
8611
9015
|
{
|
|
8612
9016
|
id: descriptionId,
|
|
8613
|
-
className:
|
|
9017
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
8614
9018
|
fieldHintStyles,
|
|
8615
9019
|
"leading-[1.45]",
|
|
8616
9020
|
// Track (38px) + gap-3 (12px): the copy starts under the label text.
|
|
@@ -8657,7 +9061,7 @@ function Root({ size, className, children, ...props }) {
|
|
|
8657
9061
|
reactAriaComponents.Tabs,
|
|
8658
9062
|
{
|
|
8659
9063
|
...props,
|
|
8660
|
-
className: (rp) =>
|
|
9064
|
+
className: (rp) => chunk4ACELYEP_cjs.cn(styles4.root(), typeof className === "function" ? className(rp) : className),
|
|
8661
9065
|
children
|
|
8662
9066
|
}
|
|
8663
9067
|
);
|
|
@@ -8668,7 +9072,7 @@ function List({ size, className, children, ...props }) {
|
|
|
8668
9072
|
reactAriaComponents.TabList,
|
|
8669
9073
|
{
|
|
8670
9074
|
...props,
|
|
8671
|
-
className: (rp) =>
|
|
9075
|
+
className: (rp) => chunk4ACELYEP_cjs.cn(styles4.list(), typeof className === "function" ? className(rp) : className),
|
|
8672
9076
|
children
|
|
8673
9077
|
}
|
|
8674
9078
|
);
|
|
@@ -8679,7 +9083,7 @@ function Trigger({ size, className, children, ...props }) {
|
|
|
8679
9083
|
reactAriaComponents.Tab,
|
|
8680
9084
|
{
|
|
8681
9085
|
...props,
|
|
8682
|
-
className: (rp) =>
|
|
9086
|
+
className: (rp) => chunk4ACELYEP_cjs.cn(styles4.trigger(), typeof className === "function" ? className(rp) : className),
|
|
8683
9087
|
children
|
|
8684
9088
|
}
|
|
8685
9089
|
);
|
|
@@ -8690,7 +9094,7 @@ function Panel({ className, children, ...props }) {
|
|
|
8690
9094
|
reactAriaComponents.TabPanel,
|
|
8691
9095
|
{
|
|
8692
9096
|
...props,
|
|
8693
|
-
className: (rp) =>
|
|
9097
|
+
className: (rp) => chunk4ACELYEP_cjs.cn(styles4.panel(), typeof className === "function" ? className(rp) : className),
|
|
8694
9098
|
children
|
|
8695
9099
|
}
|
|
8696
9100
|
);
|
|
@@ -8718,7 +9122,7 @@ var textShimmerStyles = tailwindVariants.tv({
|
|
|
8718
9122
|
defaultVariants: { tone: "muted" }
|
|
8719
9123
|
});
|
|
8720
9124
|
function TextShimmer({ tone, className, children, ...props }) {
|
|
8721
|
-
return /* @__PURE__ */ jsxRuntime.jsx("span", { ...props, className:
|
|
9125
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { ...props, className: chunk4ACELYEP_cjs.cn(textShimmerStyles({ tone }), className), children });
|
|
8722
9126
|
}
|
|
8723
9127
|
function Textarea({
|
|
8724
9128
|
label,
|
|
@@ -8738,7 +9142,7 @@ function Textarea({
|
|
|
8738
9142
|
reactAriaComponents.TextField,
|
|
8739
9143
|
{
|
|
8740
9144
|
...props,
|
|
8741
|
-
className: (renderProps) =>
|
|
9145
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
8742
9146
|
"grid grid-cols-1 gap-1.5 content-start",
|
|
8743
9147
|
typeof className === "function" ? className(renderProps) : className
|
|
8744
9148
|
),
|
|
@@ -8750,7 +9154,7 @@ function Textarea({
|
|
|
8750
9154
|
...textareaProps,
|
|
8751
9155
|
rows,
|
|
8752
9156
|
placeholder: placeholder ?? "",
|
|
8753
|
-
className:
|
|
9157
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
8754
9158
|
// Same hairline chrome as Input, but allow vertical resize and set a
|
|
8755
9159
|
// sensible minimum height so short content doesn't collapse.
|
|
8756
9160
|
styles4.box(),
|
|
@@ -8781,7 +9185,7 @@ function TimeField({
|
|
|
8781
9185
|
reactAriaComponents.TimeField,
|
|
8782
9186
|
{
|
|
8783
9187
|
...props,
|
|
8784
|
-
className: (renderProps) =>
|
|
9188
|
+
className: (renderProps) => chunk4ACELYEP_cjs.cn(
|
|
8785
9189
|
"grid grid-cols-1 gap-1.5 content-start",
|
|
8786
9190
|
typeof className === "function" ? className(renderProps) : className
|
|
8787
9191
|
),
|
|
@@ -8790,7 +9194,7 @@ function TimeField({
|
|
|
8790
9194
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
8791
9195
|
reactAriaComponents.DateInput,
|
|
8792
9196
|
{
|
|
8793
|
-
className:
|
|
9197
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
8794
9198
|
styles4.box(),
|
|
8795
9199
|
styles4.content(),
|
|
8796
9200
|
"flex items-center min-w-0 text-ink",
|
|
@@ -8803,7 +9207,7 @@ function TimeField({
|
|
|
8803
9207
|
reactAriaComponents.DateSegment,
|
|
8804
9208
|
{
|
|
8805
9209
|
segment,
|
|
8806
|
-
className:
|
|
9210
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
8807
9211
|
"px-px tabular-nums outline-none select-none",
|
|
8808
9212
|
"data-[placeholder]:text-ink-4",
|
|
8809
9213
|
"data-[type=literal]:text-ink-4",
|
|
@@ -8821,6 +9225,100 @@ function TimeField({
|
|
|
8821
9225
|
}
|
|
8822
9226
|
);
|
|
8823
9227
|
}
|
|
9228
|
+
var timeSlotListStyles = tailwindVariants.tv({
|
|
9229
|
+
slots: {
|
|
9230
|
+
group: "flex flex-col gap-2",
|
|
9231
|
+
row: "flex gap-2 min-w-0",
|
|
9232
|
+
item: [
|
|
9233
|
+
"flex-1 min-h-9 px-3 inline-flex items-center justify-center cursor-pointer outline-none",
|
|
9234
|
+
"font-sans text-[13.5px] font-medium text-ink rounded-md",
|
|
9235
|
+
"bg-surface border border-rule-strong",
|
|
9236
|
+
"transition-[background-color,color,border-color,box-shadow] duration-150",
|
|
9237
|
+
"hovered:bg-surface-2 hovered:border-ink-3",
|
|
9238
|
+
"pressed:bg-surface-3",
|
|
9239
|
+
"selected:border-ink selected:bg-surface selected:shadow-[inset_0_0_0_1px_var(--color-ink)]",
|
|
9240
|
+
"selected:hovered:bg-surface",
|
|
9241
|
+
"data-[focus-visible]:shadow-[var(--shadow-focus)]",
|
|
9242
|
+
"selected:data-[focus-visible]:shadow-[var(--shadow-focus),inset_0_0_0_1px_var(--color-ink)]",
|
|
9243
|
+
// Taken while you looked: dashed and quiet.
|
|
9244
|
+
"data-[disabled]:border-dashed data-[disabled]:border-rule data-[disabled]:text-ink-4",
|
|
9245
|
+
"data-[disabled]:cursor-default data-[disabled]:bg-transparent"
|
|
9246
|
+
],
|
|
9247
|
+
confirm: "flex-1 min-h-9",
|
|
9248
|
+
empty: [
|
|
9249
|
+
"rounded-md border border-rule-2 bg-surface-2 px-4 py-5 text-center",
|
|
9250
|
+
"font-sans text-[13px] text-ink-3"
|
|
9251
|
+
]
|
|
9252
|
+
},
|
|
9253
|
+
variants: {
|
|
9254
|
+
columns: {
|
|
9255
|
+
1: { group: "grid grid-cols-1" },
|
|
9256
|
+
2: { group: "grid grid-cols-2" }
|
|
9257
|
+
}
|
|
9258
|
+
},
|
|
9259
|
+
defaultVariants: { columns: 1 }
|
|
9260
|
+
});
|
|
9261
|
+
function TimeSlotList({
|
|
9262
|
+
items,
|
|
9263
|
+
selectedId,
|
|
9264
|
+
onSelect,
|
|
9265
|
+
confirmLabel,
|
|
9266
|
+
onConfirm,
|
|
9267
|
+
emptyMessage = "Nothing available.",
|
|
9268
|
+
columns,
|
|
9269
|
+
autoFocus = false,
|
|
9270
|
+
isDisabled = false,
|
|
9271
|
+
className,
|
|
9272
|
+
orientation = "vertical",
|
|
9273
|
+
...props
|
|
9274
|
+
}) {
|
|
9275
|
+
const styles4 = timeSlotListStyles({ columns });
|
|
9276
|
+
if (items.length === 0) {
|
|
9277
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "status", className: chunk4ACELYEP_cjs.cn(styles4.empty(), className), children: emptyMessage });
|
|
9278
|
+
}
|
|
9279
|
+
const focusTarget = selectedId ?? items.find((item) => !item.isDisabled)?.id ?? null;
|
|
9280
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
9281
|
+
reactAriaComponents.ToggleButtonGroup,
|
|
9282
|
+
{
|
|
9283
|
+
...props,
|
|
9284
|
+
orientation,
|
|
9285
|
+
selectionMode: "single",
|
|
9286
|
+
disallowEmptySelection: true,
|
|
9287
|
+
isDisabled,
|
|
9288
|
+
selectedKeys: selectedId === null ? /* @__PURE__ */ new Set() : /* @__PURE__ */ new Set([selectedId]),
|
|
9289
|
+
onSelectionChange: (keys) => {
|
|
9290
|
+
const [next] = Array.from(keys);
|
|
9291
|
+
if (next !== void 0) onSelect(next);
|
|
9292
|
+
},
|
|
9293
|
+
className: chunk4ACELYEP_cjs.cn(styles4.group(), className),
|
|
9294
|
+
children: items.map((item) => {
|
|
9295
|
+
const isSelected = item.id === selectedId;
|
|
9296
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles4.row(), children: [
|
|
9297
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
9298
|
+
reactAriaComponents.ToggleButton,
|
|
9299
|
+
{
|
|
9300
|
+
id: item.id,
|
|
9301
|
+
...item.isDisabled ? { isDisabled: true } : {},
|
|
9302
|
+
...autoFocus && item.id === focusTarget ? { autoFocus: true } : {},
|
|
9303
|
+
className: styles4.item(),
|
|
9304
|
+
children: item.label
|
|
9305
|
+
}
|
|
9306
|
+
),
|
|
9307
|
+
isSelected && confirmLabel && /* @__PURE__ */ jsxRuntime.jsx(
|
|
9308
|
+
chunk4ACELYEP_cjs.Button,
|
|
9309
|
+
{
|
|
9310
|
+
variant: "cta",
|
|
9311
|
+
className: styles4.confirm(),
|
|
9312
|
+
isDisabled,
|
|
9313
|
+
onPress: () => onConfirm?.(item.id),
|
|
9314
|
+
children: confirmLabel
|
|
9315
|
+
}
|
|
9316
|
+
)
|
|
9317
|
+
] }, String(item.id));
|
|
9318
|
+
})
|
|
9319
|
+
}
|
|
9320
|
+
);
|
|
9321
|
+
}
|
|
8824
9322
|
function createToastQueue(options = {}) {
|
|
8825
9323
|
return new reactAriaComponents.UNSTABLE_ToastQueue({ maxVisibleToasts: options.maxVisibleToasts ?? 3 });
|
|
8826
9324
|
}
|
|
@@ -8857,7 +9355,7 @@ function ToastRegion({ queue, className }) {
|
|
|
8857
9355
|
reactAriaComponents.UNSTABLE_ToastRegion,
|
|
8858
9356
|
{
|
|
8859
9357
|
queue,
|
|
8860
|
-
className:
|
|
9358
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
8861
9359
|
"fixed bottom-4 right-4 z-[1300] flex flex-col-reverse gap-2 outline-none",
|
|
8862
9360
|
className
|
|
8863
9361
|
),
|
|
@@ -8876,7 +9374,7 @@ function ToastRegion({ queue, className }) {
|
|
|
8876
9374
|
{
|
|
8877
9375
|
slot: "close",
|
|
8878
9376
|
"aria-label": "Dismiss",
|
|
8879
|
-
className:
|
|
9377
|
+
className: chunk4ACELYEP_cjs.cn(
|
|
8880
9378
|
"shrink-0 inline-flex items-center justify-center size-6 rounded-md",
|
|
8881
9379
|
"text-ink-4 hover:text-ink hover:bg-surface-2 cursor-pointer outline-none",
|
|
8882
9380
|
"focus-visible:shadow-focus"
|
|
@@ -8892,23 +9390,23 @@ function ToastRegion({ queue, className }) {
|
|
|
8892
9390
|
|
|
8893
9391
|
Object.defineProperty(exports, "Button", {
|
|
8894
9392
|
enumerable: true,
|
|
8895
|
-
get: function () { return
|
|
9393
|
+
get: function () { return chunk4ACELYEP_cjs.Button; }
|
|
8896
9394
|
});
|
|
8897
9395
|
Object.defineProperty(exports, "Skeleton", {
|
|
8898
9396
|
enumerable: true,
|
|
8899
|
-
get: function () { return
|
|
9397
|
+
get: function () { return chunk4ACELYEP_cjs.Skeleton; }
|
|
8900
9398
|
});
|
|
8901
9399
|
Object.defineProperty(exports, "buttonStyles", {
|
|
8902
9400
|
enumerable: true,
|
|
8903
|
-
get: function () { return
|
|
9401
|
+
get: function () { return chunk4ACELYEP_cjs.buttonStyles; }
|
|
8904
9402
|
});
|
|
8905
9403
|
Object.defineProperty(exports, "cn", {
|
|
8906
9404
|
enumerable: true,
|
|
8907
|
-
get: function () { return
|
|
9405
|
+
get: function () { return chunk4ACELYEP_cjs.cn; }
|
|
8908
9406
|
});
|
|
8909
9407
|
Object.defineProperty(exports, "skeletonStyles", {
|
|
8910
9408
|
enumerable: true,
|
|
8911
|
-
get: function () { return
|
|
9409
|
+
get: function () { return chunk4ACELYEP_cjs.skeletonStyles; }
|
|
8912
9410
|
});
|
|
8913
9411
|
exports.ATTRIBUTE_TYPES = ATTRIBUTE_TYPES;
|
|
8914
9412
|
exports.ATTRIBUTE_TYPE_ICONS = ATTRIBUTE_TYPE_ICONS;
|
|
@@ -8916,6 +9414,7 @@ exports.AttachmentChip = AttachmentChip;
|
|
|
8916
9414
|
exports.AttributePicker = AttributePicker;
|
|
8917
9415
|
exports.AttributeType = AttributeType;
|
|
8918
9416
|
exports.AttributeTypeIcon = AttributeTypeIcon;
|
|
9417
|
+
exports.AvailabilityCalendar = AvailabilityCalendar;
|
|
8919
9418
|
exports.Avatar = Avatar;
|
|
8920
9419
|
exports.AvatarGroup = AvatarGroup;
|
|
8921
9420
|
exports.Badge = Badge;
|
|
@@ -8967,6 +9466,7 @@ exports.FileViewer = FileViewer;
|
|
|
8967
9466
|
exports.FileViewerFallbackCard = FileViewerFallbackCard;
|
|
8968
9467
|
exports.FilterRow = FilterRow;
|
|
8969
9468
|
exports.FilterValueInput = FilterValueInput;
|
|
9469
|
+
exports.GlowFrame = GlowFrame;
|
|
8970
9470
|
exports.IconPicker = IconPicker;
|
|
8971
9471
|
exports.ImageAttachment = ImageAttachment;
|
|
8972
9472
|
exports.ImageLightbox = ImageLightbox;
|
|
@@ -9021,6 +9521,8 @@ exports.SELECTION_COLUMN_ID = SELECTION_COLUMN_ID;
|
|
|
9021
9521
|
exports.SegmentedControl = SegmentedControl;
|
|
9022
9522
|
exports.Select = Select;
|
|
9023
9523
|
exports.Separator = Separator;
|
|
9524
|
+
exports.Stepper = Stepper;
|
|
9525
|
+
exports.StepperStep = StepperStep;
|
|
9024
9526
|
exports.SubmenuTrigger = SubmenuTrigger;
|
|
9025
9527
|
exports.SuccessAnimation = SuccessAnimation;
|
|
9026
9528
|
exports.Switch = Switch;
|
|
@@ -9037,6 +9539,7 @@ exports.TagInput = TagInput;
|
|
|
9037
9539
|
exports.TextShimmer = TextShimmer;
|
|
9038
9540
|
exports.Textarea = Textarea;
|
|
9039
9541
|
exports.TimeField = TimeField;
|
|
9542
|
+
exports.TimeSlotList = TimeSlotList;
|
|
9040
9543
|
exports.ToastRegion = ToastRegion;
|
|
9041
9544
|
exports.Tooltip = Tooltip;
|
|
9042
9545
|
exports.TooltipTrigger = TooltipTrigger;
|
|
@@ -9048,6 +9551,7 @@ exports.addPendingLeaf = addPendingLeaf;
|
|
|
9048
9551
|
exports.addSubgroup = addSubgroup;
|
|
9049
9552
|
exports.arityOf = arityOf;
|
|
9050
9553
|
exports.attachmentChipStyles = attachmentChipStyles;
|
|
9554
|
+
exports.availabilityCalendarStyles = availabilityCalendarStyles;
|
|
9051
9555
|
exports.avatarGroupStyles = avatarGroupStyles;
|
|
9052
9556
|
exports.avatarStyles = avatarStyles;
|
|
9053
9557
|
exports.badgeGroupOverflowStyles = badgeGroupOverflowStyles;
|
|
@@ -9077,6 +9581,7 @@ exports.fitBadgeCount = fitBadgeCount;
|
|
|
9077
9581
|
exports.formatFileSize = formatFileSize;
|
|
9078
9582
|
exports.formatValue = formatValue;
|
|
9079
9583
|
exports.getPlatform = getPlatform;
|
|
9584
|
+
exports.glowFrameStyles = glowFrameStyles;
|
|
9080
9585
|
exports.iconForContentType = iconForContentType;
|
|
9081
9586
|
exports.imageAttachmentStyles = imageAttachmentStyles;
|
|
9082
9587
|
exports.imageLightboxStyles = imageLightboxStyles;
|
|
@@ -9109,6 +9614,7 @@ exports.resolveLucideIcon = resolveLucideIcon;
|
|
|
9109
9614
|
exports.resolveLucideIconName = resolveLucideIconName;
|
|
9110
9615
|
exports.segmentedControlStyles = segmentedControlStyles;
|
|
9111
9616
|
exports.setJoiner = setJoiner;
|
|
9617
|
+
exports.stepperStyles = stepperStyles;
|
|
9112
9618
|
exports.subscribeDraftMessageOutcome = subscribeDraftMessageOutcome;
|
|
9113
9619
|
exports.summaryFor = summaryFor;
|
|
9114
9620
|
exports.tableCellStyles = tableCellStyles;
|
|
@@ -9116,6 +9622,7 @@ exports.tableHeaderCellStyles = tableHeaderCellStyles;
|
|
|
9116
9622
|
exports.tabsStyles = tabsStyles;
|
|
9117
9623
|
exports.terminalKindFor = terminalKindFor;
|
|
9118
9624
|
exports.textShimmerStyles = textShimmerStyles;
|
|
9625
|
+
exports.timeSlotListStyles = timeSlotListStyles;
|
|
9119
9626
|
exports.toastStyles = toastStyles;
|
|
9120
9627
|
exports.updateLeaf = updateLeaf;
|
|
9121
9628
|
exports.updateSubgroup = updateSubgroup;
|