@ceebee/ui 0.3.3 → 0.5.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/client.d.ts +140 -20
- package/dist/client.js +443 -159
- package/dist/index.d.ts +58 -10
- package/dist/index.js +78 -18
- package/dist/styles.css +569 -249
- package/package.json +6 -6
package/dist/client.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { createContext, forwardRef, useContext, useMemo, useState, useRef, useEffect, useCallback, useId, useReducer, Children } from 'react';
|
|
3
|
-
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { createContext, forwardRef, useContext, useMemo, useState, useRef, useEffect, useCallback, useId, isValidElement, cloneElement, Fragment, useReducer, Children } from 'react';
|
|
3
|
+
import { jsxs, jsx, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
4
4
|
import { motion } from 'motion/react';
|
|
5
5
|
import { Select as Select$1 } from '@base-ui/react/select';
|
|
6
|
-
import { ChevronLeft, ChevronRight, ChevronsUpDown, Check, Minus, X, CalendarDays, Clock, Upload, Plus, Search, PanelLeftOpen, PanelLeftClose, ArrowUp, ArrowDown, XCircle, AlertTriangle, CheckCircle2, Info } from 'lucide-react';
|
|
6
|
+
import { ChevronLeft, ChevronRight, ChevronsUpDown, Check, Minus, X, CalendarDays, Clock, Upload as Upload$1, Plus, Search, Star, PanelLeftOpen, PanelLeftClose, ArrowUp, ArrowDown, XCircle, AlertTriangle, CheckCircle2, Info } from 'lucide-react';
|
|
7
7
|
import { Checkbox as Checkbox$1 } from '@base-ui/react/checkbox';
|
|
8
8
|
import { Radio } from '@base-ui/react/radio';
|
|
9
9
|
import { RadioGroup as RadioGroup$1 } from '@base-ui/react/radio-group';
|
|
10
10
|
import { Switch as Switch$1 } from '@base-ui/react/switch';
|
|
11
|
-
import { Combobox
|
|
11
|
+
import { Combobox } from '@base-ui/react/combobox';
|
|
12
12
|
import { Popover as Popover$1 } from '@base-ui/react/popover';
|
|
13
|
-
import { Dialog
|
|
13
|
+
import { Dialog } from '@base-ui/react/dialog';
|
|
14
14
|
import { Tooltip as Tooltip$1 } from '@base-ui/react/tooltip';
|
|
15
15
|
import { Toast } from '@base-ui/react/toast';
|
|
16
16
|
import { Tabs as Tabs$1 } from '@base-ui/react/tabs';
|
|
@@ -204,7 +204,7 @@ function Field({ label, hint, error, required = false, labelHidden = false, clas
|
|
|
204
204
|
error && error !== true ? /* @__PURE__ */ jsx("p", { className: "cb-field__error", id: errorId, role: "alert", children: error }) : null
|
|
205
205
|
] }) });
|
|
206
206
|
}
|
|
207
|
-
var
|
|
207
|
+
var Input = forwardRef(function Input2({ size = "md", invalid, className, ...rest }, ref) {
|
|
208
208
|
const field = useFieldWiring();
|
|
209
209
|
return /* @__PURE__ */ jsx(
|
|
210
210
|
"input",
|
|
@@ -271,10 +271,18 @@ function Select({
|
|
|
271
271
|
]
|
|
272
272
|
}
|
|
273
273
|
),
|
|
274
|
-
/* @__PURE__ */ jsx(Select$1.Portal, { children: /* @__PURE__ */ jsx(
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
274
|
+
/* @__PURE__ */ jsx(Select$1.Portal, { children: /* @__PURE__ */ jsx(
|
|
275
|
+
Select$1.Positioner,
|
|
276
|
+
{
|
|
277
|
+
sideOffset: 6,
|
|
278
|
+
alignItemWithTrigger: false,
|
|
279
|
+
className: "cb-select__positioner",
|
|
280
|
+
children: /* @__PURE__ */ jsx(Select$1.Popup, { className: "cb-select__popup", children: items.map((item) => /* @__PURE__ */ jsxs(Select$1.Item, { value: item.value, disabled: item.disabled, className: "cb-select__item", children: [
|
|
281
|
+
/* @__PURE__ */ jsx("span", { className: "cb-select__check", children: /* @__PURE__ */ jsx(Select$1.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { size: 14 }) }) }),
|
|
282
|
+
/* @__PURE__ */ jsx(Select$1.ItemText, { children: item.label })
|
|
283
|
+
] }, item.value)) })
|
|
284
|
+
}
|
|
285
|
+
) })
|
|
278
286
|
]
|
|
279
287
|
}
|
|
280
288
|
);
|
|
@@ -326,6 +334,7 @@ function RadioGroup({
|
|
|
326
334
|
name,
|
|
327
335
|
label,
|
|
328
336
|
direction = "column",
|
|
337
|
+
variant = "list",
|
|
329
338
|
disabled,
|
|
330
339
|
className
|
|
331
340
|
}) {
|
|
@@ -341,7 +350,12 @@ function RadioGroup({
|
|
|
341
350
|
disabled,
|
|
342
351
|
"aria-label": label,
|
|
343
352
|
"aria-describedby": field?.describedBy,
|
|
344
|
-
className: cn(
|
|
353
|
+
className: cn(
|
|
354
|
+
"cb-radio-group",
|
|
355
|
+
`cb-radio-group--${variant === "segmented" ? "row" : direction}`,
|
|
356
|
+
variant === "segmented" && "cb-radio-group--segmented",
|
|
357
|
+
className
|
|
358
|
+
),
|
|
345
359
|
children: options.map((option) => {
|
|
346
360
|
const id = `${groupId}-${option.value}`;
|
|
347
361
|
const descriptionId = option.description ? `${id}-description` : void 0;
|
|
@@ -416,57 +430,131 @@ function Switch({
|
|
|
416
430
|
) : null
|
|
417
431
|
] });
|
|
418
432
|
}
|
|
419
|
-
function
|
|
433
|
+
function AutoComplete({
|
|
420
434
|
items,
|
|
435
|
+
loadItems,
|
|
436
|
+
loadDelay = 250,
|
|
421
437
|
value,
|
|
422
438
|
defaultValue,
|
|
423
439
|
onValueChange,
|
|
424
440
|
placeholder = "Search\u2026",
|
|
425
441
|
emptyMessage = "Nothing matched",
|
|
442
|
+
loadingMessage = "Searching\u2026",
|
|
443
|
+
errorMessage = "Could not search",
|
|
426
444
|
size = "md",
|
|
427
445
|
disabled,
|
|
428
446
|
invalid,
|
|
429
447
|
name,
|
|
448
|
+
id,
|
|
430
449
|
className
|
|
431
450
|
}) {
|
|
432
451
|
const field = useFieldWiring();
|
|
433
452
|
const labels = useLabels();
|
|
434
|
-
const
|
|
453
|
+
const async = Boolean(loadItems);
|
|
454
|
+
const shell = useRef(null);
|
|
455
|
+
const [loaded, setLoaded] = useState([]);
|
|
456
|
+
const [loading, setLoading] = useState(false);
|
|
457
|
+
const [failed, setFailed] = useState(false);
|
|
458
|
+
const [chosen, setChosen] = useState(null);
|
|
459
|
+
const available = async ? loaded : items ?? [];
|
|
460
|
+
const optionFor = (candidate) => {
|
|
461
|
+
if (candidate == null) return null;
|
|
462
|
+
if (chosen?.value === candidate) return chosen;
|
|
463
|
+
return available.find((item) => item.value === candidate) ?? null;
|
|
464
|
+
};
|
|
465
|
+
const asked = useRef(0);
|
|
466
|
+
const inFlight = useRef(null);
|
|
467
|
+
const search = useCallback((query2) => {
|
|
468
|
+
if (!loadItems) return;
|
|
469
|
+
const seq = asked.current + 1;
|
|
470
|
+
asked.current = seq;
|
|
471
|
+
inFlight.current?.abort();
|
|
472
|
+
const controller = new AbortController();
|
|
473
|
+
inFlight.current = controller;
|
|
474
|
+
setLoading(true);
|
|
475
|
+
setFailed(false);
|
|
476
|
+
loadItems(query2, controller.signal).then(
|
|
477
|
+
(next) => {
|
|
478
|
+
if (seq !== asked.current) return;
|
|
479
|
+
setLoaded(next);
|
|
480
|
+
setLoading(false);
|
|
481
|
+
},
|
|
482
|
+
() => {
|
|
483
|
+
if (seq !== asked.current || controller.signal.aborted) return;
|
|
484
|
+
setLoaded([]);
|
|
485
|
+
setFailed(true);
|
|
486
|
+
setLoading(false);
|
|
487
|
+
}
|
|
488
|
+
);
|
|
489
|
+
}, [loadItems]);
|
|
490
|
+
const [query, setQuery] = useState("");
|
|
491
|
+
useEffect(() => {
|
|
492
|
+
if (!async) return void 0;
|
|
493
|
+
const id2 = setTimeout(() => search(query), loadDelay);
|
|
494
|
+
return () => clearTimeout(id2);
|
|
495
|
+
}, [async, query, loadDelay, search]);
|
|
496
|
+
useEffect(() => () => {
|
|
497
|
+
asked.current += 1;
|
|
498
|
+
inFlight.current?.abort();
|
|
499
|
+
}, []);
|
|
435
500
|
return /* @__PURE__ */ jsxs(
|
|
436
|
-
Combobox
|
|
501
|
+
Combobox.Root,
|
|
437
502
|
{
|
|
438
|
-
items,
|
|
503
|
+
items: available,
|
|
504
|
+
filter: async ? null : void 0,
|
|
505
|
+
onInputValueChange: async ? (next) => setQuery(next) : void 0,
|
|
439
506
|
value: value === void 0 ? void 0 : optionFor(value),
|
|
440
507
|
defaultValue: defaultValue === void 0 ? void 0 : optionFor(defaultValue),
|
|
441
|
-
onValueChange: (next) =>
|
|
508
|
+
onValueChange: (next) => {
|
|
509
|
+
const option = next;
|
|
510
|
+
setChosen(option);
|
|
511
|
+
onValueChange?.(option?.value ?? null);
|
|
512
|
+
},
|
|
442
513
|
isItemEqualToValue: (a, b) => a?.value === b?.value,
|
|
443
514
|
itemToStringLabel: (item) => typeof item === "string" ? item : item.label,
|
|
444
515
|
disabled,
|
|
445
516
|
name,
|
|
446
517
|
children: [
|
|
447
|
-
/* @__PURE__ */ jsxs(
|
|
448
|
-
|
|
449
|
-
|
|
518
|
+
/* @__PURE__ */ jsxs(
|
|
519
|
+
"div",
|
|
520
|
+
{
|
|
521
|
+
ref: shell,
|
|
522
|
+
className: cn("cb-autocomplete", `cb-autocomplete--${size}`, className),
|
|
523
|
+
"data-disabled": disabled || void 0,
|
|
524
|
+
children: [
|
|
525
|
+
/* @__PURE__ */ jsx(
|
|
526
|
+
Combobox.Input,
|
|
527
|
+
{
|
|
528
|
+
className: "cb-autocomplete__input",
|
|
529
|
+
placeholder,
|
|
530
|
+
id: id ?? field?.controlId,
|
|
531
|
+
"aria-describedby": field?.describedBy,
|
|
532
|
+
"aria-invalid": invalid ?? field?.invalid ? true : void 0
|
|
533
|
+
}
|
|
534
|
+
),
|
|
535
|
+
/* @__PURE__ */ jsx(Combobox.Clear, { className: "cb-autocomplete__clear", "aria-label": labels.clear, children: /* @__PURE__ */ jsx(X, { size: 14 }) }),
|
|
536
|
+
/* @__PURE__ */ jsx(Combobox.Trigger, { className: "cb-autocomplete__trigger", "aria-label": labels.open, children: /* @__PURE__ */ jsx(ChevronsUpDown, { size: 16 }) })
|
|
537
|
+
]
|
|
538
|
+
}
|
|
539
|
+
),
|
|
540
|
+
/* @__PURE__ */ jsx(Combobox.Portal, { children: /* @__PURE__ */ jsx(Combobox.Positioner, { anchor: shell, sideOffset: 6, className: "cb-autocomplete__positioner", children: /* @__PURE__ */ jsxs(Combobox.Popup, { className: "cb-autocomplete__popup", children: [
|
|
541
|
+
loading ? /* @__PURE__ */ jsx("p", { className: "cb-autocomplete__status", role: "status", children: loadingMessage }) : failed ? /* @__PURE__ */ jsx("p", { className: "cb-autocomplete__status", role: "alert", children: errorMessage }) : /* @__PURE__ */ jsx(Combobox.Empty, { className: "cb-autocomplete__empty", children: emptyMessage }),
|
|
542
|
+
/* @__PURE__ */ jsx(Combobox.List, { children: (item) => /* @__PURE__ */ jsxs(
|
|
543
|
+
Combobox.Item,
|
|
450
544
|
{
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
/* @__PURE__ */ jsx("span", { className: "cb-combobox__check", children: /* @__PURE__ */ jsx(Combobox$1.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { size: 14 }) }) }),
|
|
465
|
-
/* @__PURE__ */ jsxs("span", { className: "cb-combobox__text", children: [
|
|
466
|
-
/* @__PURE__ */ jsx("span", { className: "cb-combobox__label", children: item.label }),
|
|
467
|
-
item.description ? /* @__PURE__ */ jsx("span", { className: "cb-combobox__description", children: item.description }) : null
|
|
468
|
-
] })
|
|
469
|
-
] }, item.value) })
|
|
545
|
+
value: item,
|
|
546
|
+
disabled: item.disabled,
|
|
547
|
+
className: "cb-autocomplete__item",
|
|
548
|
+
children: [
|
|
549
|
+
/* @__PURE__ */ jsx("span", { className: "cb-autocomplete__check", children: /* @__PURE__ */ jsx(Combobox.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { size: 14 }) }) }),
|
|
550
|
+
/* @__PURE__ */ jsxs("span", { className: "cb-autocomplete__text", children: [
|
|
551
|
+
/* @__PURE__ */ jsx("span", { className: "cb-autocomplete__label", children: item.label }),
|
|
552
|
+
item.description ? /* @__PURE__ */ jsx("span", { className: "cb-autocomplete__description", children: item.description }) : null
|
|
553
|
+
] })
|
|
554
|
+
]
|
|
555
|
+
},
|
|
556
|
+
item.value
|
|
557
|
+
) })
|
|
470
558
|
] }) }) })
|
|
471
559
|
]
|
|
472
560
|
}
|
|
@@ -526,7 +614,7 @@ function isOutOfRange(date, min, max) {
|
|
|
526
614
|
return false;
|
|
527
615
|
}
|
|
528
616
|
var WEEKDAYS = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"];
|
|
529
|
-
function
|
|
617
|
+
function DatePicker({
|
|
530
618
|
value,
|
|
531
619
|
defaultValue = null,
|
|
532
620
|
onValueChange,
|
|
@@ -601,57 +689,67 @@ function DateInput({
|
|
|
601
689
|
]
|
|
602
690
|
}
|
|
603
691
|
),
|
|
604
|
-
/* @__PURE__ */ jsx(Popover$1.Portal, { children: /* @__PURE__ */ jsx(
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
692
|
+
/* @__PURE__ */ jsx(Popover$1.Portal, { children: /* @__PURE__ */ jsx(
|
|
693
|
+
Popover$1.Positioner,
|
|
694
|
+
{
|
|
695
|
+
anchor: fieldRef,
|
|
696
|
+
side: "bottom",
|
|
697
|
+
align: "start",
|
|
698
|
+
sideOffset: 6,
|
|
699
|
+
className: "cb-calendar__positioner",
|
|
700
|
+
children: /* @__PURE__ */ jsxs(Popover$1.Popup, { className: "cb-calendar", children: [
|
|
701
|
+
/* @__PURE__ */ jsxs("div", { className: "cb-calendar__head", children: [
|
|
702
|
+
/* @__PURE__ */ jsx(
|
|
703
|
+
"button",
|
|
704
|
+
{
|
|
705
|
+
type: "button",
|
|
706
|
+
className: "cb-calendar__nav",
|
|
707
|
+
"aria-label": labels.previousMonth,
|
|
708
|
+
onClick: () => setCursor(new Date(cursor.getFullYear(), cursor.getMonth() - 1, 1)),
|
|
709
|
+
children: /* @__PURE__ */ jsx(ChevronLeft, { size: 16 })
|
|
710
|
+
}
|
|
711
|
+
),
|
|
712
|
+
/* @__PURE__ */ jsx("p", { className: "cb-calendar__month", "aria-live": "polite", children: cursor.toLocaleDateString(void 0, { month: "long", year: "numeric" }) }),
|
|
713
|
+
/* @__PURE__ */ jsx(
|
|
714
|
+
"button",
|
|
715
|
+
{
|
|
716
|
+
type: "button",
|
|
717
|
+
className: "cb-calendar__nav",
|
|
718
|
+
"aria-label": labels.nextMonth,
|
|
719
|
+
onClick: () => setCursor(new Date(cursor.getFullYear(), cursor.getMonth() + 1, 1)),
|
|
720
|
+
children: /* @__PURE__ */ jsx(ChevronRight, { size: 16 })
|
|
721
|
+
}
|
|
722
|
+
)
|
|
723
|
+
] }),
|
|
724
|
+
/* @__PURE__ */ jsxs("table", { className: "cb-calendar__grid", children: [
|
|
725
|
+
/* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx("tr", { children: weekdays.map((day) => /* @__PURE__ */ jsx("th", { scope: "col", abbr: day, children: day }, day)) }) }),
|
|
726
|
+
/* @__PURE__ */ jsx("tbody", { children: weeks.map((week, weekIndex) => /* @__PURE__ */ jsx("tr", { children: week.map((cell) => {
|
|
727
|
+
const selected = isSameDay(cell.date, current);
|
|
728
|
+
const outside = isOutOfRange(cell.date, min, max);
|
|
729
|
+
return /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx(
|
|
730
|
+
"button",
|
|
731
|
+
{
|
|
732
|
+
type: "button",
|
|
733
|
+
className: "cb-calendar__day",
|
|
734
|
+
"data-outside": !cell.inMonth || void 0,
|
|
735
|
+
"data-selected": selected || void 0,
|
|
736
|
+
"data-today": isSameDay(cell.date, /* @__PURE__ */ new Date()) || void 0,
|
|
737
|
+
disabled: outside,
|
|
738
|
+
"aria-pressed": selected,
|
|
739
|
+
"aria-label": formatISO(cell.date),
|
|
740
|
+
onClick: () => {
|
|
741
|
+
commit(cell.date);
|
|
742
|
+
setCursor(cell.date);
|
|
743
|
+
setOpen(false);
|
|
744
|
+
},
|
|
745
|
+
children: cell.date.getDate()
|
|
746
|
+
}
|
|
747
|
+
) }, cell.date.toISOString());
|
|
748
|
+
}) }, weekIndex)) })
|
|
749
|
+
] })
|
|
750
|
+
] })
|
|
751
|
+
}
|
|
752
|
+
) })
|
|
655
753
|
] });
|
|
656
754
|
}
|
|
657
755
|
|
|
@@ -705,7 +803,7 @@ function isTimeOutOfRange(value, min, max) {
|
|
|
705
803
|
if (max && minutes > timeToMinutes(max)) return true;
|
|
706
804
|
return false;
|
|
707
805
|
}
|
|
708
|
-
function
|
|
806
|
+
function TimePicker({
|
|
709
807
|
value,
|
|
710
808
|
defaultValue = null,
|
|
711
809
|
onValueChange,
|
|
@@ -772,27 +870,37 @@ function TimeInput({
|
|
|
772
870
|
]
|
|
773
871
|
}
|
|
774
872
|
),
|
|
775
|
-
/* @__PURE__ */ jsx(Popover$1.Portal, { children: /* @__PURE__ */ jsx(
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
873
|
+
/* @__PURE__ */ jsx(Popover$1.Portal, { children: /* @__PURE__ */ jsx(
|
|
874
|
+
Popover$1.Positioner,
|
|
875
|
+
{
|
|
876
|
+
anchor: fieldRef,
|
|
877
|
+
side: "bottom",
|
|
878
|
+
align: "start",
|
|
879
|
+
sideOffset: 6,
|
|
880
|
+
className: "cb-times__positioner",
|
|
881
|
+
children: /* @__PURE__ */ jsx(Popover$1.Popup, { className: "cb-times", children: /* @__PURE__ */ jsx("ul", { className: "cb-times__list", children: options.map((option) => {
|
|
882
|
+
const selected = current ? timeToMinutes(current) === timeToMinutes(option) : false;
|
|
883
|
+
return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
884
|
+
"button",
|
|
885
|
+
{
|
|
886
|
+
type: "button",
|
|
887
|
+
className: "cb-times__option",
|
|
888
|
+
"data-selected": selected || void 0,
|
|
889
|
+
"aria-pressed": selected,
|
|
890
|
+
onClick: () => {
|
|
891
|
+
commit(option);
|
|
892
|
+
setOpen(false);
|
|
893
|
+
},
|
|
894
|
+
children: formatTime(option)
|
|
895
|
+
}
|
|
896
|
+
) }, formatTime(option));
|
|
897
|
+
}) }) })
|
|
898
|
+
}
|
|
899
|
+
) })
|
|
792
900
|
] });
|
|
793
901
|
}
|
|
794
902
|
|
|
795
|
-
// src/form/
|
|
903
|
+
// src/form/upload.util.ts
|
|
796
904
|
function matchesAccept(file, accept) {
|
|
797
905
|
if (!accept || accept.length === 0) return true;
|
|
798
906
|
const name = file.name.toLowerCase();
|
|
@@ -830,7 +938,7 @@ function describeAccept(rules) {
|
|
|
830
938
|
if (typeof rules.maxSize === "number") parts.push(`up to ${Math.round(rules.maxSize / (1024 * 1024))} MB`);
|
|
831
939
|
return parts.length > 0 ? ` \u2014 ${parts.join(" ")}` : "";
|
|
832
940
|
}
|
|
833
|
-
function
|
|
941
|
+
function Upload({
|
|
834
942
|
onFilesChange,
|
|
835
943
|
files = [],
|
|
836
944
|
onReject,
|
|
@@ -887,7 +995,7 @@ function FileDrop({
|
|
|
887
995
|
}
|
|
888
996
|
}
|
|
889
997
|
),
|
|
890
|
-
/* @__PURE__ */ jsx("span", { className: "cb-filedrop__icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx(Upload, { size: 20 }) }),
|
|
998
|
+
/* @__PURE__ */ jsx("span", { className: "cb-filedrop__icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx(Upload$1, { size: 20 }) }),
|
|
891
999
|
/* @__PURE__ */ jsx("span", { className: "cb-filedrop__button", children: multiple ? labels.chooseFiles : labels.chooseFile }),
|
|
892
1000
|
/* @__PURE__ */ jsxs("p", { className: "cb-filedrop__hint", children: [
|
|
893
1001
|
multiple ? labels.dropFilesHere : labels.dropFileHere,
|
|
@@ -950,7 +1058,7 @@ function canStep(value, direction, bounds) {
|
|
|
950
1058
|
if (direction === 1) return typeof bounds.max !== "number" || value < bounds.max;
|
|
951
1059
|
return typeof bounds.min !== "number" || value > bounds.min;
|
|
952
1060
|
}
|
|
953
|
-
function
|
|
1061
|
+
function InputNumber({
|
|
954
1062
|
value,
|
|
955
1063
|
defaultValue = null,
|
|
956
1064
|
onValueChange,
|
|
@@ -1038,7 +1146,7 @@ function NumberInput({
|
|
|
1038
1146
|
function formatValue(value) {
|
|
1039
1147
|
return value === null ? "" : String(value);
|
|
1040
1148
|
}
|
|
1041
|
-
function
|
|
1149
|
+
function Modal({
|
|
1042
1150
|
open,
|
|
1043
1151
|
defaultOpen,
|
|
1044
1152
|
onOpenChange,
|
|
@@ -1051,26 +1159,51 @@ function Dialog({
|
|
|
1051
1159
|
trigger,
|
|
1052
1160
|
className
|
|
1053
1161
|
}) {
|
|
1054
|
-
return /* @__PURE__ */ jsxs(Dialog
|
|
1055
|
-
trigger ? /* @__PURE__ */ jsx(Dialog
|
|
1056
|
-
/* @__PURE__ */ jsxs(Dialog
|
|
1057
|
-
/* @__PURE__ */ jsx(Dialog
|
|
1162
|
+
return /* @__PURE__ */ jsxs(Dialog.Root, { open, defaultOpen, onOpenChange, children: [
|
|
1163
|
+
trigger ? /* @__PURE__ */ jsx(Dialog.Trigger, { render: trigger }) : null,
|
|
1164
|
+
/* @__PURE__ */ jsxs(Dialog.Portal, { children: [
|
|
1165
|
+
/* @__PURE__ */ jsx(Dialog.Backdrop, { className: "cb-modal__backdrop" }),
|
|
1058
1166
|
/* @__PURE__ */ jsxs(
|
|
1059
|
-
Dialog
|
|
1167
|
+
Dialog.Popup,
|
|
1060
1168
|
{
|
|
1061
|
-
className: cn("cb-
|
|
1169
|
+
className: cn("cb-modal", `cb-modal--${size}`, `cb-modal--${placement}`, className),
|
|
1062
1170
|
children: [
|
|
1063
|
-
/* @__PURE__ */ jsx(Dialog
|
|
1064
|
-
description ? /* @__PURE__ */ jsx(Dialog
|
|
1065
|
-
children ? /* @__PURE__ */ jsx("div", { className: "cb-
|
|
1066
|
-
footer ? /* @__PURE__ */ jsx("div", { className: "cb-
|
|
1171
|
+
/* @__PURE__ */ jsx(Dialog.Title, { className: "cb-modal__title", children: title }),
|
|
1172
|
+
description ? /* @__PURE__ */ jsx(Dialog.Description, { className: "cb-modal__description", children: description }) : null,
|
|
1173
|
+
children ? /* @__PURE__ */ jsx("div", { className: "cb-modal__body", children }) : null,
|
|
1174
|
+
footer ? /* @__PURE__ */ jsx("div", { className: "cb-modal__footer", children: footer }) : null
|
|
1067
1175
|
]
|
|
1068
1176
|
}
|
|
1069
1177
|
)
|
|
1070
1178
|
] })
|
|
1071
1179
|
] });
|
|
1072
1180
|
}
|
|
1073
|
-
var DialogClose = Dialog
|
|
1181
|
+
var DialogClose = Dialog.Close;
|
|
1182
|
+
function Drawer({
|
|
1183
|
+
open,
|
|
1184
|
+
defaultOpen,
|
|
1185
|
+
onOpenChange,
|
|
1186
|
+
title,
|
|
1187
|
+
description,
|
|
1188
|
+
children,
|
|
1189
|
+
footer,
|
|
1190
|
+
trigger,
|
|
1191
|
+
className
|
|
1192
|
+
}) {
|
|
1193
|
+
return /* @__PURE__ */ jsxs(Dialog.Root, { open, defaultOpen, onOpenChange, children: [
|
|
1194
|
+
trigger ? /* @__PURE__ */ jsx(Dialog.Trigger, { render: trigger }) : null,
|
|
1195
|
+
/* @__PURE__ */ jsxs(Dialog.Portal, { children: [
|
|
1196
|
+
/* @__PURE__ */ jsx(Dialog.Backdrop, { className: "cb-drawer__backdrop" }),
|
|
1197
|
+
/* @__PURE__ */ jsxs(Dialog.Popup, { className: cn("cb-drawer", className), children: [
|
|
1198
|
+
/* @__PURE__ */ jsx(Dialog.Title, { className: "cb-drawer__title", children: title }),
|
|
1199
|
+
description ? /* @__PURE__ */ jsx(Dialog.Description, { className: "cb-drawer__description", children: description }) : null,
|
|
1200
|
+
children ? /* @__PURE__ */ jsx("div", { className: "cb-drawer__body", children }) : null,
|
|
1201
|
+
footer ? /* @__PURE__ */ jsx("div", { className: "cb-drawer__footer", children: footer }) : null
|
|
1202
|
+
] })
|
|
1203
|
+
] })
|
|
1204
|
+
] });
|
|
1205
|
+
}
|
|
1206
|
+
var DrawerClose = Dialog.Close;
|
|
1074
1207
|
|
|
1075
1208
|
// src/overlay/command.util.ts
|
|
1076
1209
|
function rankCommand(command, query) {
|
|
@@ -1119,9 +1252,9 @@ function CommandPalette({
|
|
|
1119
1252
|
onOpenChange(false);
|
|
1120
1253
|
command.onRun();
|
|
1121
1254
|
};
|
|
1122
|
-
return /* @__PURE__ */ jsx(Dialog
|
|
1123
|
-
/* @__PURE__ */ jsx(Dialog
|
|
1124
|
-
/* @__PURE__ */ jsxs(Dialog
|
|
1255
|
+
return /* @__PURE__ */ jsx(Dialog.Root, { open, onOpenChange, children: /* @__PURE__ */ jsxs(Dialog.Portal, { children: [
|
|
1256
|
+
/* @__PURE__ */ jsx(Dialog.Backdrop, { className: "cb-palette__backdrop" }),
|
|
1257
|
+
/* @__PURE__ */ jsxs(Dialog.Popup, { className: cn("cb-palette", className), "aria-label": "Command palette", children: [
|
|
1125
1258
|
/* @__PURE__ */ jsxs("div", { className: "cb-palette__search", children: [
|
|
1126
1259
|
/* @__PURE__ */ jsx(Search, { size: 16, className: "cb-palette__search-icon" }),
|
|
1127
1260
|
/* @__PURE__ */ jsx(
|
|
@@ -1259,20 +1392,155 @@ function Popover({
|
|
|
1259
1392
|
}) {
|
|
1260
1393
|
return /* @__PURE__ */ jsxs(Popover$1.Root, { open, onOpenChange, children: [
|
|
1261
1394
|
/* @__PURE__ */ jsx(Popover$1.Trigger, { render: trigger }),
|
|
1262
|
-
/* @__PURE__ */ jsx(Popover$1.Portal, { children: /* @__PURE__ */ jsx(
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1395
|
+
/* @__PURE__ */ jsx(Popover$1.Portal, { children: /* @__PURE__ */ jsx(
|
|
1396
|
+
Popover$1.Positioner,
|
|
1397
|
+
{
|
|
1398
|
+
side,
|
|
1399
|
+
align,
|
|
1400
|
+
sideOffset,
|
|
1401
|
+
className: "cb-popover-positioner",
|
|
1402
|
+
children: /* @__PURE__ */ jsxs(Popover$1.Popup, { className: cn("cb-popover", className), children: [
|
|
1403
|
+
showArrow ? /* @__PURE__ */ jsx(Popover$1.Arrow, { className: "cb-popover__arrow", children: /* @__PURE__ */ jsx(ArrowShape, {}) }) : null,
|
|
1404
|
+
children
|
|
1405
|
+
] })
|
|
1406
|
+
}
|
|
1407
|
+
) })
|
|
1266
1408
|
] });
|
|
1267
1409
|
}
|
|
1268
|
-
function Tooltip({
|
|
1410
|
+
function Tooltip({
|
|
1411
|
+
children,
|
|
1412
|
+
label,
|
|
1413
|
+
side = "top",
|
|
1414
|
+
align = "center",
|
|
1415
|
+
sideOffset = 6,
|
|
1416
|
+
showArrow = true,
|
|
1417
|
+
delay = 400
|
|
1418
|
+
}) {
|
|
1269
1419
|
return /* @__PURE__ */ jsx(Tooltip$1.Provider, { delay, children: /* @__PURE__ */ jsxs(Tooltip$1.Root, { children: [
|
|
1270
1420
|
/* @__PURE__ */ jsx(Tooltip$1.Trigger, { render: children }),
|
|
1271
|
-
/* @__PURE__ */ jsx(Tooltip$1.Portal, { children: /* @__PURE__ */ jsx(
|
|
1421
|
+
/* @__PURE__ */ jsx(Tooltip$1.Portal, { children: /* @__PURE__ */ jsx(
|
|
1422
|
+
Tooltip$1.Positioner,
|
|
1423
|
+
{
|
|
1424
|
+
side,
|
|
1425
|
+
align,
|
|
1426
|
+
sideOffset,
|
|
1427
|
+
className: "cb-tooltip-positioner",
|
|
1428
|
+
children: /* @__PURE__ */ jsxs(Tooltip$1.Popup, { className: "cb-tooltip", children: [
|
|
1429
|
+
showArrow ? /* @__PURE__ */ jsx(Tooltip$1.Arrow, { className: "cb-tooltip__arrow", children: /* @__PURE__ */ jsx(ArrowShape, {}) }) : null,
|
|
1430
|
+
label
|
|
1431
|
+
] })
|
|
1432
|
+
}
|
|
1433
|
+
) })
|
|
1272
1434
|
] }) });
|
|
1273
1435
|
}
|
|
1274
1436
|
function ArrowShape() {
|
|
1275
|
-
return /* @__PURE__ */
|
|
1437
|
+
return /* @__PURE__ */ jsxs(
|
|
1438
|
+
"svg",
|
|
1439
|
+
{
|
|
1440
|
+
className: "cb-arrow",
|
|
1441
|
+
viewBox: "0 0 16 8",
|
|
1442
|
+
preserveAspectRatio: "none",
|
|
1443
|
+
"aria-hidden": "true",
|
|
1444
|
+
focusable: "false",
|
|
1445
|
+
children: [
|
|
1446
|
+
/* @__PURE__ */ jsx("path", { className: "cb-arrow__fill", d: "M0 8 L8 0 L16 8 Z" }),
|
|
1447
|
+
/* @__PURE__ */ jsx("path", { className: "cb-arrow__edge", d: "M0 8 L8 0 L16 8" })
|
|
1448
|
+
]
|
|
1449
|
+
}
|
|
1450
|
+
);
|
|
1451
|
+
}
|
|
1452
|
+
function Tag({
|
|
1453
|
+
children,
|
|
1454
|
+
tone = "neutral",
|
|
1455
|
+
variant = "soft",
|
|
1456
|
+
size = "md",
|
|
1457
|
+
icon,
|
|
1458
|
+
onClick,
|
|
1459
|
+
pressed,
|
|
1460
|
+
onClose,
|
|
1461
|
+
render,
|
|
1462
|
+
className
|
|
1463
|
+
}) {
|
|
1464
|
+
const labels = useLabels();
|
|
1465
|
+
const classes = cn("cb-badge", "cb-tag", `cb-badge--${variant}`, `cb-badge--${size}`, className);
|
|
1466
|
+
const body = /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
1467
|
+
icon,
|
|
1468
|
+
children
|
|
1469
|
+
] });
|
|
1470
|
+
if (render && isValidElement(render)) {
|
|
1471
|
+
return cloneElement(render, {
|
|
1472
|
+
className: cn(classes, "cb-tag--pressable", render.props.className),
|
|
1473
|
+
"data-tone": tone,
|
|
1474
|
+
children: body
|
|
1475
|
+
});
|
|
1476
|
+
}
|
|
1477
|
+
if (onClose) {
|
|
1478
|
+
return /* @__PURE__ */ jsxs("span", { className: classes, "data-tone": tone, children: [
|
|
1479
|
+
body,
|
|
1480
|
+
/* @__PURE__ */ jsx("button", { type: "button", className: "cb-tag__close", "aria-label": labels.dismiss, onClick: onClose, children: /* @__PURE__ */ jsx(X, { size: 12 }) })
|
|
1481
|
+
] });
|
|
1482
|
+
}
|
|
1483
|
+
if (onClick) {
|
|
1484
|
+
return /* @__PURE__ */ jsx(
|
|
1485
|
+
"button",
|
|
1486
|
+
{
|
|
1487
|
+
type: "button",
|
|
1488
|
+
className: cn(classes, "cb-tag--pressable"),
|
|
1489
|
+
"data-tone": tone,
|
|
1490
|
+
"aria-pressed": pressed,
|
|
1491
|
+
onClick,
|
|
1492
|
+
children: body
|
|
1493
|
+
}
|
|
1494
|
+
);
|
|
1495
|
+
}
|
|
1496
|
+
return /* @__PURE__ */ jsx("span", { className: classes, "data-tone": tone, children: body });
|
|
1497
|
+
}
|
|
1498
|
+
function Rate({
|
|
1499
|
+
value,
|
|
1500
|
+
onValueChange,
|
|
1501
|
+
count = 5,
|
|
1502
|
+
size = 20,
|
|
1503
|
+
readOnly = false,
|
|
1504
|
+
label,
|
|
1505
|
+
className
|
|
1506
|
+
}) {
|
|
1507
|
+
const group = useId();
|
|
1508
|
+
const field = useFieldWiring();
|
|
1509
|
+
const scores = Array.from({ length: count }, (_, i) => i + 1);
|
|
1510
|
+
if (readOnly) {
|
|
1511
|
+
return /* @__PURE__ */ jsx(
|
|
1512
|
+
"span",
|
|
1513
|
+
{
|
|
1514
|
+
className: cn("cb-rate", "cb-rate--static", className),
|
|
1515
|
+
role: "img",
|
|
1516
|
+
"aria-label": label ? `${label}: ${value}/${count}` : `${value}/${count}`,
|
|
1517
|
+
children: scores.map((n) => /* @__PURE__ */ jsx(Star, { size, strokeWidth: 2.5, fill: value >= n ? "currentColor" : "none" }, n))
|
|
1518
|
+
}
|
|
1519
|
+
);
|
|
1520
|
+
}
|
|
1521
|
+
return /* @__PURE__ */ jsx(
|
|
1522
|
+
"span",
|
|
1523
|
+
{
|
|
1524
|
+
className: cn("cb-rate", className),
|
|
1525
|
+
role: "radiogroup",
|
|
1526
|
+
"aria-label": label,
|
|
1527
|
+
"aria-describedby": field?.describedBy,
|
|
1528
|
+
children: scores.map((n) => /* @__PURE__ */ jsx(
|
|
1529
|
+
"button",
|
|
1530
|
+
{
|
|
1531
|
+
id: `${group}-${n}`,
|
|
1532
|
+
type: "button",
|
|
1533
|
+
className: "cb-rate__star",
|
|
1534
|
+
role: "radio",
|
|
1535
|
+
"aria-checked": value === n,
|
|
1536
|
+
"aria-label": `${n}/${count}`,
|
|
1537
|
+
onClick: () => onValueChange?.(value === n ? 0 : n),
|
|
1538
|
+
children: /* @__PURE__ */ jsx(Star, { size, strokeWidth: 2.5, fill: value >= n ? "currentColor" : "none" })
|
|
1539
|
+
},
|
|
1540
|
+
n
|
|
1541
|
+
))
|
|
1542
|
+
}
|
|
1543
|
+
);
|
|
1276
1544
|
}
|
|
1277
1545
|
var ICONS = {
|
|
1278
1546
|
neutral: /* @__PURE__ */ jsx(Info, { size: 18 }),
|
|
@@ -1371,26 +1639,42 @@ function Tabs({ items, value, defaultValue, onValueChange, variant = "underline"
|
|
|
1371
1639
|
}
|
|
1372
1640
|
);
|
|
1373
1641
|
}
|
|
1374
|
-
function
|
|
1642
|
+
function Dropdown({ trigger, items, sections, align = "end", side = "bottom", className }) {
|
|
1643
|
+
const groups = sections ?? [{ items }];
|
|
1375
1644
|
return /* @__PURE__ */ jsxs(Menu.Root, { children: [
|
|
1376
1645
|
/* @__PURE__ */ jsx(Menu.Trigger, { render: trigger }),
|
|
1377
|
-
/* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
/* @__PURE__ */ jsx(
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1646
|
+
/* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(
|
|
1647
|
+
Menu.Positioner,
|
|
1648
|
+
{
|
|
1649
|
+
side,
|
|
1650
|
+
align,
|
|
1651
|
+
sideOffset: 6,
|
|
1652
|
+
className: "cb-menu-positioner",
|
|
1653
|
+
children: /* @__PURE__ */ jsx(Menu.Popup, { className: cn("cb-menu", className), children: groups.map((section, sectionIndex) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1654
|
+
sectionIndex > 0 ? /* @__PURE__ */ jsx(Menu.Separator, { className: "cb-menu__separator" }) : null,
|
|
1655
|
+
/* @__PURE__ */ jsxs(Menu.Group, { className: "cb-menu__group", children: [
|
|
1656
|
+
section.label ? /* @__PURE__ */ jsx(Menu.GroupLabel, { className: "cb-menu__group-label", children: section.label }) : null,
|
|
1657
|
+
section.items.map(
|
|
1658
|
+
(item, itemIndex) => item.separator ? /* @__PURE__ */ jsx(Menu.Separator, { className: "cb-menu__separator" }, `separator-${itemIndex}`) : /* @__PURE__ */ jsxs(
|
|
1659
|
+
Menu.Item,
|
|
1660
|
+
{
|
|
1661
|
+
className: "cb-menu__item",
|
|
1662
|
+
"data-tone": item.tone,
|
|
1663
|
+
disabled: item.disabled,
|
|
1664
|
+
onClick: item.onSelect,
|
|
1665
|
+
children: [
|
|
1666
|
+
/* @__PURE__ */ jsx("span", { className: "cb-menu__icon", children: item.checked ? /* @__PURE__ */ jsx(Check, { size: 14 }) : item.icon }),
|
|
1667
|
+
/* @__PURE__ */ jsx("span", { className: "cb-menu__label", children: item.label }),
|
|
1668
|
+
item.shortcut ? /* @__PURE__ */ jsx("kbd", { className: "cb-menu__shortcut", children: item.shortcut }) : null
|
|
1669
|
+
]
|
|
1670
|
+
},
|
|
1671
|
+
`${String(item.label)}-${itemIndex}`
|
|
1672
|
+
)
|
|
1673
|
+
)
|
|
1674
|
+
] })
|
|
1675
|
+
] }, `section-${sectionIndex}`)) })
|
|
1676
|
+
}
|
|
1677
|
+
) })
|
|
1394
1678
|
] });
|
|
1395
1679
|
}
|
|
1396
1680
|
var hasActiveChild = (item) => Boolean(item.items?.some((child) => child.active));
|
|
@@ -1434,7 +1718,7 @@ function SidebarEntry({ item, collapsed }) {
|
|
|
1434
1718
|
if (collapsed) {
|
|
1435
1719
|
return /* @__PURE__ */ jsx(Flyout, { label: item.label, items: children, children: /* @__PURE__ */ jsx(SidebarRow, { item: { ...item, active: item.active || hasActiveChild(item) }, collapsed: true }) });
|
|
1436
1720
|
}
|
|
1437
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1721
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
1438
1722
|
/* @__PURE__ */ jsxs(
|
|
1439
1723
|
"button",
|
|
1440
1724
|
{
|
|
@@ -1455,7 +1739,7 @@ function SidebarEntry({ item, collapsed }) {
|
|
|
1455
1739
|
] });
|
|
1456
1740
|
}
|
|
1457
1741
|
function SidebarRow({ item, collapsed, nested }) {
|
|
1458
|
-
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1742
|
+
const content = /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
1459
1743
|
item.icon ? /* @__PURE__ */ jsx("span", { className: "cb-sidebar__icon", children: item.icon }) : null,
|
|
1460
1744
|
/* @__PURE__ */ jsx("span", { className: "cb-sidebar__label", children: item.label }),
|
|
1461
1745
|
item.adornment && !collapsed ? /* @__PURE__ */ jsx("span", { className: "cb-sidebar__adornment", children: item.adornment }) : null
|
|
@@ -1541,7 +1825,7 @@ function pageRange(page, pageSize, total, siblings = 1) {
|
|
|
1541
1825
|
});
|
|
1542
1826
|
return { items, totalPages, from, to };
|
|
1543
1827
|
}
|
|
1544
|
-
function
|
|
1828
|
+
function Table({
|
|
1545
1829
|
columns,
|
|
1546
1830
|
rows,
|
|
1547
1831
|
rowKey,
|
|
@@ -1609,7 +1893,7 @@ function DataTableSkeleton({ columns, rows = 5, className }) {
|
|
|
1609
1893
|
/* @__PURE__ */ jsx("tbody", { children: Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ jsx("tr", { children: Array.from({ length: columns }, (_2, cellIndex) => /* @__PURE__ */ jsx("td", { children: /* @__PURE__ */ jsx(Skeleton, { width: cellIndex === 0 ? "70%" : "45%", height: "0.875rem" }) }, cellIndex)) }, rowIndex)) })
|
|
1610
1894
|
] }) });
|
|
1611
1895
|
}
|
|
1612
|
-
|
|
1896
|
+
Table.Skeleton = DataTableSkeleton;
|
|
1613
1897
|
function Pagination({
|
|
1614
1898
|
page,
|
|
1615
1899
|
pageSize,
|
|
@@ -1883,7 +2167,7 @@ function Coachmark({
|
|
|
1883
2167
|
const labels = useLabels();
|
|
1884
2168
|
const rect = useAnchorRect(anchor, open && spotlight !== false);
|
|
1885
2169
|
const padding = typeof spotlight === "number" ? spotlight : 8;
|
|
1886
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2170
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
1887
2171
|
rect ? /* @__PURE__ */ jsx(
|
|
1888
2172
|
"div",
|
|
1889
2173
|
{
|
|
@@ -2058,7 +2342,7 @@ function Tour({ id, steps, open = false, onOpenChange, seenStore, onFinish, onSk
|
|
|
2058
2342
|
spotlight: step.spotlight,
|
|
2059
2343
|
progress: { current: state.index + 1, total: steps.length },
|
|
2060
2344
|
onDismiss: skip,
|
|
2061
|
-
actions: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2345
|
+
actions: /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
2062
2346
|
state.index > 0 ? /* @__PURE__ */ jsx(Button, { size: "sm", variant: "ghost", tone: "neutral", onClick: () => rawDispatch({ type: "prev" }), children: text2.back }) : /* @__PURE__ */ jsx(Button, { size: "sm", variant: "ghost", tone: "neutral", onClick: skip, children: text2.skip }),
|
|
2063
2347
|
/* @__PURE__ */ jsx(Button, { size: "sm", onClick: () => rawDispatch({ type: "next" }), children: isLast ? text2.done : text2.next })
|
|
2064
2348
|
] }),
|
|
@@ -2101,4 +2385,4 @@ function Stagger({ children, step = 0.06, from = "below", onView = false, classN
|
|
|
2101
2385
|
return /* @__PURE__ */ jsx("div", { className, children: Children.map(children, (child, index) => /* @__PURE__ */ jsx(Reveal, { from, delay: index * step, onView, children: child })) });
|
|
2102
2386
|
}
|
|
2103
2387
|
|
|
2104
|
-
export { Alert, Button, Carousel, Checkbox, Checklist, Coachmark,
|
|
2388
|
+
export { Alert, AutoComplete, Button, Carousel, Checkbox, Checklist, Coachmark, CommandPalette, DEFAULT_LABELS, DatePicker, DialogClose, Drawer, DrawerClose, Dropdown, Field, Image, Input, InputNumber, LabelsProvider, Modal, MotionProvider, Pagination, Popover, RadioGroup, Rate, Reveal, Select, Sidebar, Stagger, Switch, Table, Tabs, Tag, Textarea, ThemeProvider, TimePicker, ToastProvider, Tooltip, TopBar, Tour, Upload, ariaSortFor, canStep, clamp, decimalPlaces, describeAccept, filterCommands, formatISO, formatTime, groupCommands, hasEnded, initialTourState, isOutOfRange, isSameDay, isTimeOutOfRange, matchesAccept, monthMatrix, nextSort, pageRange, parseDateInput, parseNumber, parseTime, partitionFiles, rankCommand, resolveTarget, shouldAutoplay, startOfDay, stepBy, timeOptions, timeToMinutes, tourReducer, useFieldWiring, useLabels, useMotionSettings, useTheme, useToast };
|