@gntik-ai/ui 0.9.0 → 0.11.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/{Field-DPYsdteY.js → Field-fY45gbLU.js} +457 -5
- package/dist/Field-fY45gbLU.js.map +1 -0
- package/dist/forms.js +1 -1
- package/dist/index.d.ts +465 -29
- package/dist/index.js +531 -390
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/Field-DPYsdteY.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { A as createFormatters, C as builtInMessages, D as catalogs, E as usePortalDir, M as
|
|
2
|
+
import { A as createFormatters, C as builtInMessages, D as catalogs, E as usePortalDir, F as cn, M as interpolate, N as localeDirection, O as es, P as tv, S as I18nProvider, T as useOptionalI18n, _ as buttonVariants, a as FieldLabel, b as DensityContext, c as FieldsetLegend, d as useAnnounce, f as useHasLiveAnnouncer, g as BUTTON_ICON_SIZE, h as IconButton, i as FieldItem, j as formatBytes, k as en, l as fieldVariants, m as Button, n as FieldDescription, o as Fieldset, p as liveAnnouncerVariants, r as FieldError, s as FieldsetDescription, t as Field, u as LiveAnnouncer, v as Spinner, w as useI18n, x as useDensity, y as RTL_FLIP } from "./Field-fY45gbLU.js";
|
|
3
3
|
import { themeScript } from "./theme-script.js";
|
|
4
4
|
import { Children, Fragment, cloneElement, createContext, createElement, isValidElement, useCallback, useContext, useEffect, useEffectEvent, useId, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
|
|
5
5
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
6
7
|
import { Accordion as Accordion$1 } from "@base-ui/react/accordion";
|
|
7
8
|
import { AlertCircle, AlertTriangle, ArrowDown, ArrowLeft, ArrowRight, ArrowUp, Ban, Bell, BellOff, CalendarClock, CalendarDays, Check, CheckCheck, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, ChevronsLeft, ChevronsRight, ChevronsUpDown, CircleAlert, CircleCheck, ClipboardPaste, Clock, Contrast, Copy, CornerDownRight, ExternalLink, Eye, EyeOff, File, FileArchive, FileAudio, FileCode, FileImage, FileSpreadsheet, FileText, FileVideo, FolderPlus, GripHorizontal, GripVertical, Info, ListFilter, Lock, LockOpen, LogOut, Menu as Menu$1, Minus, Monitor, Moon, MoreHorizontal, MoveHorizontal, Palette, PanelLeft, PanelLeftClose, PanelLeftOpen, PanelRight, Pause, Pin, Play, Plus, Quote, RefreshCw, RotateCw, Search, Sun, Trash2, TriangleAlert, WrapText, X, ZoomIn, ZoomOut } from "lucide-react";
|
|
8
9
|
import { AlertDialog as AlertDialog$1 } from "@base-ui/react/alert-dialog";
|
|
9
10
|
import { mergeProps } from "@base-ui/react/merge-props";
|
|
10
|
-
import { useRender } from "@base-ui/react/use-render";
|
|
11
11
|
import { Avatar as Avatar$1 } from "@base-ui/react/avatar";
|
|
12
12
|
import { Drawer as Drawer$1 } from "@base-ui/react/drawer";
|
|
13
13
|
import { Select as Select$1 } from "@base-ui/react/select";
|
|
@@ -96,6 +96,36 @@ function matchRanges(text, query, options = {}) {
|
|
|
96
96
|
return ranges;
|
|
97
97
|
}
|
|
98
98
|
//#endregion
|
|
99
|
+
//#region src/hooks/useOs.ts
|
|
100
|
+
function detect(platform, maxTouchPoints) {
|
|
101
|
+
if (/iphone|ipad|ipod|ios/i.test(platform) || /MacIntel/i.test(platform) && maxTouchPoints > 1) return "ios";
|
|
102
|
+
if (/mac/i.test(platform)) return "macos";
|
|
103
|
+
if (/win/i.test(platform)) return "windows";
|
|
104
|
+
if (/android/i.test(platform)) return "android";
|
|
105
|
+
if (/cros|chrome\s?os/i.test(platform)) return "chromeos";
|
|
106
|
+
if (/linux/i.test(platform)) return "linux";
|
|
107
|
+
return "undetermined";
|
|
108
|
+
}
|
|
109
|
+
/** Detect the OS from client hints, platform and user agent; safe without navigator. */
|
|
110
|
+
function getOs() {
|
|
111
|
+
if (typeof navigator === "undefined") return "undetermined";
|
|
112
|
+
const nav = navigator;
|
|
113
|
+
const touchPoints = nav.maxTouchPoints ?? 0;
|
|
114
|
+
const hinted = detect(nav.userAgentData?.platform ?? "", touchPoints);
|
|
115
|
+
if (hinted !== "undetermined") return hinted;
|
|
116
|
+
const platform = detect(nav.platform ?? "", touchPoints);
|
|
117
|
+
if (platform !== "undetermined" && platform !== "linux") return platform;
|
|
118
|
+
const agent = detect(nav.userAgent ?? "", touchPoints);
|
|
119
|
+
if (platform === "linux" && agent !== "android" && agent !== "chromeos") return platform;
|
|
120
|
+
return agent;
|
|
121
|
+
}
|
|
122
|
+
const subscribe = () => () => {};
|
|
123
|
+
const getServerSnapshot = () => "undetermined";
|
|
124
|
+
/** Report the client OS, using undetermined for SSR and the initial hydration render. */
|
|
125
|
+
function useOs() {
|
|
126
|
+
return useSyncExternalStore(subscribe, getOs, getServerSnapshot);
|
|
127
|
+
}
|
|
128
|
+
//#endregion
|
|
99
129
|
//#region src/density/DensityProvider.tsx
|
|
100
130
|
/**
|
|
101
131
|
* Sets `data-density` so the density variables from @gntik-ai/tokens (density.css) re-scope for
|
|
@@ -228,6 +258,12 @@ const THEME_CLASS = {
|
|
|
228
258
|
};
|
|
229
259
|
const ALL_CLASSES = ["dark", "high_contrast"];
|
|
230
260
|
const SYSTEM_QUERIES = ["(prefers-color-scheme: light)", "(prefers-contrast: more)"];
|
|
261
|
+
const DEFAULT_THEME = {
|
|
262
|
+
mode: "dark",
|
|
263
|
+
resolved: "dark",
|
|
264
|
+
setMode: () => {},
|
|
265
|
+
brand: gntikPreset
|
|
266
|
+
};
|
|
231
267
|
const ThemeContext = createContext(null);
|
|
232
268
|
function systemTheme() {
|
|
233
269
|
if (typeof window === "undefined" || !window.matchMedia) return "dark";
|
|
@@ -267,13 +303,13 @@ const serverSystem = () => "dark";
|
|
|
267
303
|
* useSyncExternalStore, so they apply right after hydration without a mismatch. To avoid a
|
|
268
304
|
* flash on load, inline `themeScript()` in the document <head>.
|
|
269
305
|
*/
|
|
270
|
-
function ThemeProvider({ children, defaultMode = "dark", initialMode, brand = gntikPreset, storageKey = "gntik-theme", target = () => typeof document === "undefined" ? null : document.documentElement }) {
|
|
306
|
+
function ThemeProvider({ children, defaultMode = "dark", initialMode, forcedMode, brand = gntikPreset, storageKey = "gntik-theme", target = () => typeof document === "undefined" ? null : document.documentElement }) {
|
|
271
307
|
const [localMode, setLocalMode] = useState(initialMode ?? defaultMode);
|
|
272
308
|
const getStored = useCallback(() => storageKey ? readStored(storageKey) : null, [storageKey]);
|
|
273
309
|
const stored = useSyncExternalStore(subscribeStored, getStored, serverStored);
|
|
274
310
|
const system = useSyncExternalStore(subscribeSystem, systemTheme, serverSystem);
|
|
275
311
|
const mode = stored ?? localMode;
|
|
276
|
-
const resolved = mode === "system" ? system : mode;
|
|
312
|
+
const resolved = forcedMode ?? (mode === "system" ? system : mode);
|
|
277
313
|
useEffect(() => {
|
|
278
314
|
const el = target();
|
|
279
315
|
if (!el) return;
|
|
@@ -313,12 +349,7 @@ function ThemeProvider({ children, defaultMode = "dark", initialMode, brand = gn
|
|
|
313
349
|
}
|
|
314
350
|
/** Current theme and brand. Outside a provider it reports the dark default and the gntik preset. */
|
|
315
351
|
function useTheme() {
|
|
316
|
-
return useContext(ThemeContext) ??
|
|
317
|
-
mode: "dark",
|
|
318
|
-
resolved: "dark",
|
|
319
|
-
setMode: () => {},
|
|
320
|
-
brand: gntikPreset
|
|
321
|
-
};
|
|
352
|
+
return useContext(ThemeContext) ?? DEFAULT_THEME;
|
|
322
353
|
}
|
|
323
354
|
//#endregion
|
|
324
355
|
//#region src/theme/Logo.tsx
|
|
@@ -343,6 +374,56 @@ function Logo({ size = 28, wordmark = false, brand, className, ...props }) {
|
|
|
343
374
|
});
|
|
344
375
|
}
|
|
345
376
|
//#endregion
|
|
377
|
+
//#region src/utils/portal.ts
|
|
378
|
+
/** Undefined preserves Base UI's document.body default outside a scope. */
|
|
379
|
+
const PortalContainerContext = createContext(void 0);
|
|
380
|
+
function usePortalContainer() {
|
|
381
|
+
return useContext(PortalContainerContext);
|
|
382
|
+
}
|
|
383
|
+
//#endregion
|
|
384
|
+
//#region src/theme/ThemeScope.tsx
|
|
385
|
+
/** Applies a theme to a subtree and its overlays; mode/setMode still control the page. */
|
|
386
|
+
function ThemeScope({ theme, children, className, render, ref, ...props }) {
|
|
387
|
+
const page = useTheme();
|
|
388
|
+
const value = useMemo(() => ({
|
|
389
|
+
...page,
|
|
390
|
+
resolved: theme
|
|
391
|
+
}), [page, theme]);
|
|
392
|
+
const [container, setContainer] = useState();
|
|
393
|
+
const initialTheme = useRef(theme);
|
|
394
|
+
useEffect(() => {
|
|
395
|
+
const portal = document.createElement("div");
|
|
396
|
+
portal.className = initialTheme.current;
|
|
397
|
+
portal.dataset.themeScopePortal = initialTheme.current;
|
|
398
|
+
document.body.appendChild(portal);
|
|
399
|
+
setContainer(portal);
|
|
400
|
+
return () => portal.remove();
|
|
401
|
+
}, []);
|
|
402
|
+
useEffect(() => {
|
|
403
|
+
if (!container) return;
|
|
404
|
+
container.setAttribute("class", theme);
|
|
405
|
+
container.setAttribute("data-theme-scope-portal", theme);
|
|
406
|
+
}, [container, theme]);
|
|
407
|
+
const element = useRender({
|
|
408
|
+
defaultTagName: "div",
|
|
409
|
+
render,
|
|
410
|
+
ref,
|
|
411
|
+
props: {
|
|
412
|
+
...props,
|
|
413
|
+
className: cn(theme, className),
|
|
414
|
+
"data-theme-scope": theme,
|
|
415
|
+
children
|
|
416
|
+
}
|
|
417
|
+
});
|
|
418
|
+
return /* @__PURE__ */ jsx(ThemeContext.Provider, {
|
|
419
|
+
value,
|
|
420
|
+
children: /* @__PURE__ */ jsx(PortalContainerContext.Provider, {
|
|
421
|
+
value: container,
|
|
422
|
+
children: element
|
|
423
|
+
})
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
//#endregion
|
|
346
427
|
//#region src/components/Accordion/accordion.variants.ts
|
|
347
428
|
const accordionVariants = tv({
|
|
348
429
|
slots: {
|
|
@@ -717,10 +798,11 @@ const AlertDialogTrigger = AlertDialog$1.Trigger;
|
|
|
717
798
|
* focus returns to the trigger. Unlike Dialog, an outside press does not dismiss it.
|
|
718
799
|
*/
|
|
719
800
|
function AlertDialogContent({ size = "sm", className, container, children, ...props }) {
|
|
801
|
+
const portalContainer = usePortalContainer();
|
|
720
802
|
const dir = usePortalDir();
|
|
721
803
|
const v = dialogVariants({ size });
|
|
722
804
|
return /* @__PURE__ */ jsxs(AlertDialog$1.Portal, {
|
|
723
|
-
container,
|
|
805
|
+
container: container ?? portalContainer,
|
|
724
806
|
children: [/* @__PURE__ */ jsx(AlertDialog$1.Backdrop, { className: v.backdrop() }), /* @__PURE__ */ jsx(AlertDialog$1.Viewport, {
|
|
725
807
|
dir,
|
|
726
808
|
className: v.viewport(),
|
|
@@ -1596,11 +1678,12 @@ function SheetHandle() {
|
|
|
1596
1678
|
* optional header (title, description), scrollable content and a fixed footer.
|
|
1597
1679
|
*/
|
|
1598
1680
|
function BottomSheetContent({ className, title, description, footer, showClose = true, container, children, ...props }) {
|
|
1681
|
+
const portalContainer = usePortalContainer();
|
|
1599
1682
|
const ctx = useContext(SheetContext);
|
|
1600
1683
|
const { t } = useI18n();
|
|
1601
1684
|
const s = bottomSheetVariants();
|
|
1602
1685
|
return /* @__PURE__ */ jsxs(Drawer$1.Portal, {
|
|
1603
|
-
container,
|
|
1686
|
+
container: container ?? portalContainer,
|
|
1604
1687
|
children: [/* @__PURE__ */ jsx(Drawer$1.Backdrop, { className: s.backdrop() }), /* @__PURE__ */ jsx(Drawer$1.Viewport, {
|
|
1605
1688
|
className: s.viewport(),
|
|
1606
1689
|
children: /* @__PURE__ */ jsxs(Drawer$1.Popup, {
|
|
@@ -2490,13 +2573,14 @@ function SelectTrigger({ size, className, placeholder, children, ref, ...props }
|
|
|
2490
2573
|
}
|
|
2491
2574
|
/** The popup: portal, positioner, popup surface and listbox. */
|
|
2492
2575
|
function SelectContent({ className, alignItemWithTrigger = false, side = "bottom", align = "start", sideOffset = 6, container, status, children, ...props }) {
|
|
2576
|
+
const portalContainer = usePortalContainer();
|
|
2493
2577
|
const dir = usePortalDir();
|
|
2494
2578
|
const context = useContext(SelectTriggerContext);
|
|
2495
2579
|
const labelledBy = useTriggerAttribute(context?.trigger ?? null, "aria-labelledby");
|
|
2496
2580
|
const ariaLabel = useTriggerAttribute(context?.trigger ?? null, "aria-label");
|
|
2497
2581
|
const explicitName = props["aria-label"] !== void 0 || props["aria-labelledby"] !== void 0;
|
|
2498
2582
|
return /* @__PURE__ */ jsx(Select$1.Portal, {
|
|
2499
|
-
container,
|
|
2583
|
+
container: container ?? portalContainer,
|
|
2500
2584
|
children: /* @__PURE__ */ jsx(Select$1.Positioner, {
|
|
2501
2585
|
dir,
|
|
2502
2586
|
className: s$25.positioner(),
|
|
@@ -3121,7 +3205,7 @@ const doc$11 = {
|
|
|
3121
3205
|
name: "Calendar",
|
|
3122
3206
|
group: "Forms",
|
|
3123
3207
|
status: "beta",
|
|
3124
|
-
description: "Day or range selection with one or two months, inclusive min/max bounds and Intl names. The clickable month heading opens a month grid, then the year heading opens a shared 12-year page (2020–2031 for 2026). Set maxView=\"day\" for the previous static header, or \"month\" to stop at months; the default is \"year\". Optional view/defaultView/onViewChange control or report the view (initially \"day\"). captionLayout=\"select\" uses labelled kit month/year selects; yearRange={from,to} defaults to the current year ±10, clipped to min/max and including the visible year. Picking a month returns to days, preserving and clamping the focused day, and calls onMonthChange once with the first day. DatePicker and DateRangePicker forward maxView and captionLayout and reopen in the day view.",
|
|
3208
|
+
description: "The public localeWeekStart(locale?) helper returns the locale first weekday (0–6, Monday fallback), matching scheduling blocks. Day or range selection with one or two months, inclusive min/max bounds and Intl names. The clickable month heading opens a month grid, then the year heading opens a shared 12-year page (2020–2031 for 2026). Set maxView=\"day\" for the previous static header, or \"month\" to stop at months; the default is \"year\". Optional view/defaultView/onViewChange control or report the view (initially \"day\"). captionLayout=\"select\" uses labelled kit month/year selects; yearRange={from,to} defaults to the current year ±10, clipped to min/max and including the visible year. Picking a month returns to days, preserving and clamping the focused day, and calls onMonthChange once with the first day. DatePicker and DateRangePicker forward maxView and captionLayout and reopen in the day view.",
|
|
3125
3209
|
pattern: "grid (date picker dialog calendar)",
|
|
3126
3210
|
keyboard: [
|
|
3127
3211
|
["Day: ArrowLeft / ArrowRight", "Moves focus to the previous / next day (reversed in RTL)"],
|
|
@@ -4810,6 +4894,7 @@ function ComboboxChipsInput({ label, className, placeholder, getLabel = defaultL
|
|
|
4810
4894
|
}
|
|
4811
4895
|
/** The popup: portal, positioner, popup surface, async status, empty state and listbox. */
|
|
4812
4896
|
function ComboboxContent({ className, emptyText: emptyTextProp, side = "bottom", align = "start", sideOffset = 6, container, children, itemHeight, estimatedItemHeight, overscan, ...props }) {
|
|
4897
|
+
const portalContainer = usePortalContainer();
|
|
4813
4898
|
const { t } = useI18n();
|
|
4814
4899
|
const emptyText = emptyTextProp ?? t("common.noMatches");
|
|
4815
4900
|
const dir = usePortalDir();
|
|
@@ -4821,7 +4906,7 @@ function ComboboxContent({ className, emptyText: emptyTextProp, side = "bottom",
|
|
|
4821
4906
|
const busy = !!enh && (enh.loading || !!enh.error);
|
|
4822
4907
|
const errorText = typeof enh?.errorText === "function" ? enh.errorText(enh.error) : enh?.errorText ?? t("combobox.loadFailed");
|
|
4823
4908
|
return /* @__PURE__ */ jsx(Combobox$1.Portal, {
|
|
4824
|
-
container,
|
|
4909
|
+
container: container ?? portalContainer,
|
|
4825
4910
|
children: /* @__PURE__ */ jsx(Combobox$1.Positioner, {
|
|
4826
4911
|
dir,
|
|
4827
4912
|
className: s$20.positioner(),
|
|
@@ -4971,6 +5056,7 @@ const KEY_MESSAGES = {
|
|
|
4971
5056
|
"⌥": "kbd.option",
|
|
4972
5057
|
"⇧": "kbd.shift",
|
|
4973
5058
|
"⌃": "kbd.control",
|
|
5059
|
+
Ctrl: "kbd.control",
|
|
4974
5060
|
"↵": "kbd.enter",
|
|
4975
5061
|
"⏎": "kbd.enter",
|
|
4976
5062
|
"⌫": "kbd.backspace",
|
|
@@ -4985,18 +5071,20 @@ const KEY_MESSAGES = {
|
|
|
4985
5071
|
/** One keyboard key. Symbol glyphs are hidden from screen readers and replaced by their name. */
|
|
4986
5072
|
function Kbd({ size, label, className, children, ...props }) {
|
|
4987
5073
|
const { t } = useI18n();
|
|
4988
|
-
const
|
|
5074
|
+
const os = useOs();
|
|
5075
|
+
const resolved = children === "mod" ? os === "macos" || os === "ios" ? "⌘" : "Ctrl" : children;
|
|
5076
|
+
const key = typeof resolved === "string" ? KEY_MESSAGES[resolved] : void 0;
|
|
4989
5077
|
const spoken = label ?? (key ? t(key) : void 0);
|
|
4990
5078
|
return /* @__PURE__ */ jsx("kbd", {
|
|
4991
5079
|
className: cn(kbdVariants({ size }).key(), className),
|
|
4992
5080
|
...props,
|
|
4993
5081
|
children: spoken ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
|
|
4994
5082
|
"aria-hidden": true,
|
|
4995
|
-
children
|
|
5083
|
+
children: resolved
|
|
4996
5084
|
}), /* @__PURE__ */ jsx("span", {
|
|
4997
5085
|
className: "sr-only",
|
|
4998
5086
|
children: spoken
|
|
4999
|
-
})] }) :
|
|
5087
|
+
})] }) : resolved
|
|
5000
5088
|
});
|
|
5001
5089
|
}
|
|
5002
5090
|
/** A key combination: nested <kbd> elements inside an outer <kbd>, per the HTML spec. */
|
|
@@ -5021,7 +5109,7 @@ const doc$40 = {
|
|
|
5021
5109
|
name: "Kbd",
|
|
5022
5110
|
group: "Display",
|
|
5023
5111
|
status: "stable",
|
|
5024
|
-
description: "Keyboard key chip (<kbd>) for shortcuts and hints, in three sizes.
|
|
5112
|
+
description: "Keyboard key chip (<kbd>) for shortcuts and hints, in three sizes. Use mod in Kbd or KbdCombo for ⌘ on macOS/iOS and Ctrl elsewhere; explicit keys stay unchanged. Symbol keys and Ctrl are announced by name, unless label overrides the spoken name. useOs() reports the detected OS (undetermined during SSR); getOs() detects it outside React. Both and the Os type are exported from @gntik-ai/ui.",
|
|
5025
5113
|
tokens: [
|
|
5026
5114
|
"border",
|
|
5027
5115
|
"card",
|
|
@@ -5252,6 +5340,7 @@ function CommandPalette({ groups, recent, recentLabel: recentLabelProp, onSelect
|
|
|
5252
5340
|
}),
|
|
5253
5341
|
"”"
|
|
5254
5342
|
] }), footer, className, children }) {
|
|
5343
|
+
const portalContainer = usePortalContainer();
|
|
5255
5344
|
const { t, locale } = useI18n();
|
|
5256
5345
|
const recentLabel = recentLabelProp ?? t("commandPalette.recent");
|
|
5257
5346
|
const label = labelProp ?? t("commandPalette.label");
|
|
@@ -5278,79 +5367,82 @@ function CommandPalette({ groups, recent, recentLabel: recentLabelProp, onSelect
|
|
|
5278
5367
|
return /* @__PURE__ */ jsxs(Dialog$1.Root, {
|
|
5279
5368
|
open,
|
|
5280
5369
|
onOpenChange: (next) => setOpen(next),
|
|
5281
|
-
children: [children, /* @__PURE__ */ jsxs(Dialog$1.Portal, {
|
|
5282
|
-
|
|
5283
|
-
className: s$19.
|
|
5284
|
-
|
|
5285
|
-
|
|
5286
|
-
|
|
5287
|
-
|
|
5288
|
-
|
|
5289
|
-
|
|
5290
|
-
|
|
5291
|
-
|
|
5292
|
-
|
|
5293
|
-
|
|
5294
|
-
|
|
5295
|
-
|
|
5296
|
-
|
|
5297
|
-
|
|
5298
|
-
|
|
5299
|
-
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
5303
|
-
|
|
5304
|
-
|
|
5305
|
-
|
|
5306
|
-
|
|
5307
|
-
|
|
5308
|
-
|
|
5309
|
-
|
|
5310
|
-
|
|
5311
|
-
|
|
5312
|
-
|
|
5313
|
-
|
|
5314
|
-
|
|
5315
|
-
|
|
5316
|
-
|
|
5317
|
-
|
|
5318
|
-
|
|
5319
|
-
|
|
5320
|
-
|
|
5321
|
-
|
|
5322
|
-
|
|
5323
|
-
|
|
5324
|
-
|
|
5325
|
-
className: s$19.
|
|
5326
|
-
children:
|
|
5327
|
-
|
|
5328
|
-
|
|
5329
|
-
|
|
5330
|
-
|
|
5331
|
-
|
|
5332
|
-
|
|
5333
|
-
className: s$19.
|
|
5334
|
-
children:
|
|
5335
|
-
|
|
5336
|
-
|
|
5337
|
-
|
|
5338
|
-
|
|
5339
|
-
|
|
5340
|
-
|
|
5341
|
-
|
|
5342
|
-
|
|
5343
|
-
|
|
5344
|
-
|
|
5345
|
-
|
|
5346
|
-
|
|
5370
|
+
children: [children, /* @__PURE__ */ jsxs(Dialog$1.Portal, {
|
|
5371
|
+
container: portalContainer,
|
|
5372
|
+
children: [/* @__PURE__ */ jsx(Dialog$1.Backdrop, { className: s$19.backdrop() }), /* @__PURE__ */ jsx(Dialog$1.Viewport, {
|
|
5373
|
+
dir,
|
|
5374
|
+
className: s$19.viewport(),
|
|
5375
|
+
children: /* @__PURE__ */ jsx(Dialog$1.Popup, {
|
|
5376
|
+
"aria-label": label,
|
|
5377
|
+
className: cn(s$19.popup(), className),
|
|
5378
|
+
children: /* @__PURE__ */ jsxs(Autocomplete.Root, {
|
|
5379
|
+
open: true,
|
|
5380
|
+
inline: true,
|
|
5381
|
+
items: visible,
|
|
5382
|
+
filter: null,
|
|
5383
|
+
value: query,
|
|
5384
|
+
onValueChange: (v, details) => {
|
|
5385
|
+
if (details.reason === "item-press") return;
|
|
5386
|
+
setQuery(v);
|
|
5387
|
+
},
|
|
5388
|
+
itemToStringValue: (entry) => entry.item.label,
|
|
5389
|
+
autoHighlight: "always",
|
|
5390
|
+
keepHighlight: true,
|
|
5391
|
+
children: [
|
|
5392
|
+
/* @__PURE__ */ jsxs("div", {
|
|
5393
|
+
className: s$19.inputRow(),
|
|
5394
|
+
children: [
|
|
5395
|
+
/* @__PURE__ */ jsx(Search, {
|
|
5396
|
+
size: 17,
|
|
5397
|
+
"aria-hidden": true,
|
|
5398
|
+
className: s$19.inputIcon()
|
|
5399
|
+
}),
|
|
5400
|
+
/* @__PURE__ */ jsx(Autocomplete.Input, {
|
|
5401
|
+
"aria-label": placeholder.replace(/…$/, ""),
|
|
5402
|
+
"aria-describedby": footer === false ? void 0 : hintsId,
|
|
5403
|
+
placeholder,
|
|
5404
|
+
className: s$19.input()
|
|
5405
|
+
}),
|
|
5406
|
+
/* @__PURE__ */ jsx(Kbd, {
|
|
5407
|
+
size: "sm",
|
|
5408
|
+
label: "Escape",
|
|
5409
|
+
children: "esc"
|
|
5410
|
+
})
|
|
5411
|
+
]
|
|
5412
|
+
}),
|
|
5413
|
+
/* @__PURE__ */ jsxs("div", {
|
|
5414
|
+
className: s$19.results(),
|
|
5415
|
+
children: [/* @__PURE__ */ jsx(Autocomplete.Empty, {
|
|
5416
|
+
className: s$19.empty(),
|
|
5417
|
+
children: count === 0 && query.trim() ? emptyText(query.trim()) : null
|
|
5418
|
+
}), /* @__PURE__ */ jsx(Autocomplete.List, {
|
|
5419
|
+
className: s$19.list(),
|
|
5420
|
+
children: (group) => /* @__PURE__ */ jsxs(Autocomplete.Group, {
|
|
5421
|
+
items: group.items,
|
|
5422
|
+
className: s$19.group(),
|
|
5423
|
+
children: [/* @__PURE__ */ jsx(Autocomplete.GroupLabel, {
|
|
5424
|
+
className: s$19.groupLabel(),
|
|
5425
|
+
children: group.value
|
|
5426
|
+
}), /* @__PURE__ */ jsx(Autocomplete.Collection, { children: (entry) => /* @__PURE__ */ jsx(CommandRow, {
|
|
5427
|
+
entry,
|
|
5428
|
+
onRun: run
|
|
5429
|
+
}, entry.key) })]
|
|
5430
|
+
}, group.value)
|
|
5431
|
+
})]
|
|
5432
|
+
}),
|
|
5433
|
+
footer === false ? null : footer ?? /* @__PURE__ */ jsx(DefaultFooter, {
|
|
5434
|
+
count,
|
|
5435
|
+
id: hintsId
|
|
5436
|
+
})
|
|
5437
|
+
]
|
|
5438
|
+
})
|
|
5347
5439
|
})
|
|
5348
|
-
})
|
|
5349
|
-
})]
|
|
5440
|
+
})]
|
|
5441
|
+
})]
|
|
5350
5442
|
});
|
|
5351
5443
|
}
|
|
5352
5444
|
/** Search-style button that opens the palette; place it inside <CommandPalette>. */
|
|
5353
|
-
function CommandPaletteTrigger({ className, keys = ["
|
|
5445
|
+
function CommandPaletteTrigger({ className, keys = ["mod", "K"], children: childrenProp, ...props }) {
|
|
5354
5446
|
const { t } = useI18n();
|
|
5355
5447
|
const children = childrenProp ?? t("commandPalette.trigger");
|
|
5356
5448
|
return /* @__PURE__ */ jsxs(Dialog$1.Trigger, {
|
|
@@ -5496,8 +5588,9 @@ function ContextMenuTrigger({ className, tabIndex = 0, hint = "Press Shift+F10 f
|
|
|
5496
5588
|
}
|
|
5497
5589
|
/** The floating list (role `menu`) placed at the pointer; same look as MenuContent. */
|
|
5498
5590
|
function ContextMenuContent({ className, container, children, ...props }) {
|
|
5591
|
+
const portalContainer = usePortalContainer();
|
|
5499
5592
|
return /* @__PURE__ */ jsx(ContextMenu$1.Portal, {
|
|
5500
|
-
container,
|
|
5593
|
+
container: container ?? portalContainer,
|
|
5501
5594
|
children: /* @__PURE__ */ jsx(ContextMenu$1.Positioner, {
|
|
5502
5595
|
className: s$18.positioner(),
|
|
5503
5596
|
children: /* @__PURE__ */ jsx(ContextMenu$1.Popup, {
|
|
@@ -5594,10 +5687,11 @@ const Tooltip = Tooltip$1.Root;
|
|
|
5594
5687
|
const TooltipTrigger = Tooltip$1.Trigger;
|
|
5595
5688
|
/** The floating hint. Opens on hover (after the delay) and on keyboard focus; Escape hides it. */
|
|
5596
5689
|
function TooltipContent({ variant, side = "top", align = "center", sideOffset = 8, arrow = true, kbd, className, container, children, ...props }) {
|
|
5690
|
+
const portalContainer = usePortalContainer();
|
|
5597
5691
|
const dir = usePortalDir();
|
|
5598
5692
|
const v = tooltipVariants({ variant });
|
|
5599
5693
|
return /* @__PURE__ */ jsx(Tooltip$1.Portal, {
|
|
5600
|
-
container,
|
|
5694
|
+
container: container ?? portalContainer,
|
|
5601
5695
|
children: /* @__PURE__ */ jsx(Tooltip$1.Positioner, {
|
|
5602
5696
|
dir,
|
|
5603
5697
|
className: v.positioner(),
|
|
@@ -5848,10 +5942,11 @@ const PopoverTrigger = Popover$1.Trigger;
|
|
|
5848
5942
|
* close it and focus returns to the trigger.
|
|
5849
5943
|
*/
|
|
5850
5944
|
function PopoverContent({ side = "bottom", align = "center", sideOffset = 8, alignOffset, arrow = false, padding, className, container, children, ...props }) {
|
|
5945
|
+
const portalContainer = usePortalContainer();
|
|
5851
5946
|
const dir = usePortalDir();
|
|
5852
5947
|
const v = popoverVariants({ padding });
|
|
5853
5948
|
return /* @__PURE__ */ jsx(Popover$1.Portal, {
|
|
5854
|
-
container,
|
|
5949
|
+
container: container ?? portalContainer,
|
|
5855
5950
|
children: /* @__PURE__ */ jsx(Popover$1.Positioner, {
|
|
5856
5951
|
dir,
|
|
5857
5952
|
className: v.positioner(),
|
|
@@ -8052,6 +8147,7 @@ const DialogClose = Dialog$1.Close;
|
|
|
8052
8147
|
* inside, Escape and an outside press close it, and focus returns to the trigger.
|
|
8053
8148
|
*/
|
|
8054
8149
|
function DialogContent({ size, presentation, className, showClose = true, closeLabel: closeLabelProp, container, children, ...props }) {
|
|
8150
|
+
const portalContainer = usePortalContainer();
|
|
8055
8151
|
const { t } = useI18n();
|
|
8056
8152
|
const closeLabel = closeLabelProp ?? t("common.close");
|
|
8057
8153
|
const dir = usePortalDir();
|
|
@@ -8060,7 +8156,7 @@ function DialogContent({ size, presentation, className, showClose = true, closeL
|
|
|
8060
8156
|
presentation
|
|
8061
8157
|
});
|
|
8062
8158
|
return /* @__PURE__ */ jsxs(Dialog$1.Portal, {
|
|
8063
|
-
container,
|
|
8159
|
+
container: container ?? portalContainer,
|
|
8064
8160
|
children: [/* @__PURE__ */ jsx(Dialog$1.Backdrop, { className: v.backdrop() }), /* @__PURE__ */ jsx(Dialog$1.Viewport, {
|
|
8065
8161
|
dir,
|
|
8066
8162
|
className: v.viewport(),
|
|
@@ -8951,6 +9047,7 @@ const DrawerClose = Drawer$1.Close;
|
|
|
8951
9047
|
* to the trigger. Lay out the inside with DrawerHeader, DrawerBody and DrawerFooter.
|
|
8952
9048
|
*/
|
|
8953
9049
|
function DrawerContent({ size, className, showClose = true, closeLabel, container, children, ...props }) {
|
|
9050
|
+
const portalContainer = usePortalContainer();
|
|
8954
9051
|
const dir = usePortalDir();
|
|
8955
9052
|
const { t } = useI18n();
|
|
8956
9053
|
const side = useContext(SideContext);
|
|
@@ -8959,7 +9056,7 @@ function DrawerContent({ size, className, showClose = true, closeLabel, containe
|
|
|
8959
9056
|
size
|
|
8960
9057
|
});
|
|
8961
9058
|
return /* @__PURE__ */ jsxs(Drawer$1.Portal, {
|
|
8962
|
-
container,
|
|
9059
|
+
container: container ?? portalContainer,
|
|
8963
9060
|
children: [/* @__PURE__ */ jsx(Drawer$1.Backdrop, { className: v.backdrop() }), /* @__PURE__ */ jsx(Drawer$1.Viewport, {
|
|
8964
9061
|
dir,
|
|
8965
9062
|
className: v.viewport(),
|
|
@@ -9494,9 +9591,10 @@ function HoverCardTrigger({ className, delay = 500, closeDelay = 250, ...props }
|
|
|
9494
9591
|
* also be reachable at the trigger's destination. Escape closes it.
|
|
9495
9592
|
*/
|
|
9496
9593
|
function HoverCardContent({ side = "bottom", align = "center", sideOffset = 8, arrow = false, className, container, children, ...props }) {
|
|
9594
|
+
const portalContainer = usePortalContainer();
|
|
9497
9595
|
const dir = usePortalDir();
|
|
9498
9596
|
return /* @__PURE__ */ jsx(PreviewCard.Portal, {
|
|
9499
|
-
container,
|
|
9597
|
+
container: container ?? portalContainer,
|
|
9500
9598
|
children: /* @__PURE__ */ jsx(PreviewCard.Positioner, {
|
|
9501
9599
|
dir,
|
|
9502
9600
|
className: s$14.positioner(),
|
|
@@ -11827,6 +11925,7 @@ const lightboxVariants = tv({ slots: {
|
|
|
11827
11925
|
* closes and focus returns to whatever opened it.
|
|
11828
11926
|
*/
|
|
11829
11927
|
function Lightbox({ items, open, defaultOpen = false, onOpenChange, index, defaultIndex = 0, onIndexChange, loop = false, showThumbnails = true, maxZoom = 4, labels: labelsProp, container }) {
|
|
11928
|
+
const portalContainer = usePortalContainer();
|
|
11830
11929
|
const { t } = useI18n();
|
|
11831
11930
|
const labels = {
|
|
11832
11931
|
title: t("lightbox.title"),
|
|
@@ -11910,7 +12009,7 @@ function Lightbox({ items, open, defaultOpen = false, onOpenChange, index, defau
|
|
|
11910
12009
|
open: isOpen,
|
|
11911
12010
|
onOpenChange: (next) => setOpen(next),
|
|
11912
12011
|
children: /* @__PURE__ */ jsxs(Dialog$1.Portal, {
|
|
11913
|
-
container,
|
|
12012
|
+
container: container ?? portalContainer,
|
|
11914
12013
|
children: [/* @__PURE__ */ jsx(Dialog$1.Backdrop, { className: s.backdrop() }), /* @__PURE__ */ jsxs(Dialog$1.Popup, {
|
|
11915
12014
|
className: s.popup(),
|
|
11916
12015
|
onKeyDown,
|
|
@@ -12605,6 +12704,7 @@ function TopLink({ item, currentHref, onNavigate }) {
|
|
|
12605
12704
|
* marked. Pair it with StackedLayout (as its sub-nav row) and `megaMenuNavItems` for MobileNav.
|
|
12606
12705
|
*/
|
|
12607
12706
|
function MegaMenu({ items, label: labelProp, currentHref, onNavigate, className }) {
|
|
12707
|
+
const portalContainer = usePortalContainer();
|
|
12608
12708
|
const { t } = useI18n();
|
|
12609
12709
|
const label = labelProp === void 0 ? t("megaMenu.label") : labelProp;
|
|
12610
12710
|
return /* @__PURE__ */ jsxs(NavigationMenu.Root, {
|
|
@@ -12634,17 +12734,20 @@ function MegaMenu({ items, label: labelProp, currentHref, onNavigate, className
|
|
|
12634
12734
|
onNavigate
|
|
12635
12735
|
})
|
|
12636
12736
|
}, item.id ?? item.label))
|
|
12637
|
-
}), /* @__PURE__ */ jsx(NavigationMenu.Portal, {
|
|
12638
|
-
|
|
12639
|
-
|
|
12640
|
-
|
|
12641
|
-
|
|
12642
|
-
|
|
12643
|
-
|
|
12644
|
-
|
|
12645
|
-
children: /* @__PURE__ */ jsx(NavigationMenu.
|
|
12737
|
+
}), /* @__PURE__ */ jsx(NavigationMenu.Portal, {
|
|
12738
|
+
container: portalContainer,
|
|
12739
|
+
children: /* @__PURE__ */ jsx(NavigationMenu.Positioner, {
|
|
12740
|
+
className: s$10.positioner(),
|
|
12741
|
+
sideOffset: 8,
|
|
12742
|
+
align: "start",
|
|
12743
|
+
collisionPadding: 16,
|
|
12744
|
+
collisionAvoidance: { side: "none" },
|
|
12745
|
+
children: /* @__PURE__ */ jsx(NavigationMenu.Popup, {
|
|
12746
|
+
className: s$10.popup(),
|
|
12747
|
+
children: /* @__PURE__ */ jsx(NavigationMenu.Viewport, { className: s$10.viewport() })
|
|
12748
|
+
})
|
|
12646
12749
|
})
|
|
12647
|
-
})
|
|
12750
|
+
})]
|
|
12648
12751
|
});
|
|
12649
12752
|
}
|
|
12650
12753
|
//#endregion
|
|
@@ -12689,9 +12792,10 @@ const MenuRadioGroup = Menu$2.RadioGroup;
|
|
|
12689
12792
|
const MenuSub = Menu$2.SubmenuRoot;
|
|
12690
12793
|
/** The floating list (role `menu`): portal, positioner and popup. */
|
|
12691
12794
|
function MenuContent({ side, align = "start", sideOffset = 8, alignOffset, className, container, children, ...props }) {
|
|
12795
|
+
const portalContainer = usePortalContainer();
|
|
12692
12796
|
const dir = usePortalDir();
|
|
12693
12797
|
return /* @__PURE__ */ jsx(Menu$2.Portal, {
|
|
12694
|
-
container,
|
|
12798
|
+
container: container ?? portalContainer,
|
|
12695
12799
|
children: /* @__PURE__ */ jsx(Menu$2.Positioner, {
|
|
12696
12800
|
dir,
|
|
12697
12801
|
className: s$9.positioner(),
|
|
@@ -13469,6 +13573,7 @@ const matches = (o, q, locale) => o === SELECT_ALL ? q.trim() === "" : matchText
|
|
|
13469
13573
|
* (extra ones collapse into "+N"), an optional "Select all" row and a clear button.
|
|
13470
13574
|
*/
|
|
13471
13575
|
function MultiSelect({ options, value, defaultValue, onValueChange, label, placeholder: placeholderProp, maxVisibleChips = 3, showSelectAll = true, selectAllLabel: selectAllLabelProp, deselectAllLabel: deselectAllLabelProp, clearLabel: clearLabelProp, triggerLabel: triggerLabelProp, emptyText: emptyTextProp, removeLabel: removeLabelProp, renderOption, name, id, disabled, invalid, size = "md", className, ref, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy, loadOptions, debounceMs, onCreate, createLabel, loadingText, errorText, virtualized = false, itemHeight, estimatedItemHeight, overscan }) {
|
|
13576
|
+
const portalContainer = usePortalContainer();
|
|
13472
13577
|
const { t, locale } = useI18n();
|
|
13473
13578
|
const placeholder = placeholderProp ?? t("common.searchPlaceholder");
|
|
13474
13579
|
const selectAllLabel = selectAllLabelProp ?? t("common.selectAll");
|
|
@@ -13634,76 +13739,79 @@ function MultiSelect({ options, value, defaultValue, onValueChange, label, place
|
|
|
13634
13739
|
})
|
|
13635
13740
|
]
|
|
13636
13741
|
}),
|
|
13637
|
-
/* @__PURE__ */ jsx(Combobox$1.Portal, {
|
|
13638
|
-
|
|
13639
|
-
|
|
13640
|
-
|
|
13641
|
-
|
|
13642
|
-
|
|
13643
|
-
|
|
13644
|
-
|
|
13645
|
-
children:
|
|
13646
|
-
(
|
|
13647
|
-
|
|
13648
|
-
|
|
13649
|
-
|
|
13650
|
-
|
|
13651
|
-
|
|
13652
|
-
|
|
13653
|
-
|
|
13654
|
-
|
|
13655
|
-
|
|
13656
|
-
|
|
13657
|
-
|
|
13658
|
-
|
|
13659
|
-
|
|
13660
|
-
|
|
13661
|
-
|
|
13662
|
-
|
|
13663
|
-
|
|
13664
|
-
|
|
13665
|
-
|
|
13666
|
-
|
|
13667
|
-
|
|
13668
|
-
className: cb.
|
|
13669
|
-
children:
|
|
13670
|
-
|
|
13671
|
-
|
|
13672
|
-
|
|
13673
|
-
|
|
13674
|
-
|
|
13675
|
-
|
|
13676
|
-
|
|
13677
|
-
|
|
13678
|
-
|
|
13679
|
-
|
|
13680
|
-
|
|
13681
|
-
|
|
13682
|
-
|
|
13683
|
-
className: cb.
|
|
13684
|
-
children:
|
|
13685
|
-
className:
|
|
13686
|
-
children:
|
|
13687
|
-
className: "
|
|
13688
|
-
children:
|
|
13689
|
-
|
|
13690
|
-
|
|
13691
|
-
|
|
13692
|
-
|
|
13693
|
-
|
|
13694
|
-
|
|
13695
|
-
|
|
13696
|
-
|
|
13697
|
-
|
|
13698
|
-
|
|
13699
|
-
|
|
13700
|
-
|
|
13701
|
-
|
|
13702
|
-
|
|
13703
|
-
|
|
13704
|
-
|
|
13742
|
+
/* @__PURE__ */ jsx(Combobox$1.Portal, {
|
|
13743
|
+
container: portalContainer,
|
|
13744
|
+
children: /* @__PURE__ */ jsx(Combobox$1.Positioner, {
|
|
13745
|
+
dir,
|
|
13746
|
+
className: cb.positioner(),
|
|
13747
|
+
side: "bottom",
|
|
13748
|
+
align: "start",
|
|
13749
|
+
sideOffset: 6,
|
|
13750
|
+
children: /* @__PURE__ */ jsxs(Combobox$1.Popup, {
|
|
13751
|
+
className: cn(cb.popup(), virtualized && "flex flex-col overflow-hidden"),
|
|
13752
|
+
children: [
|
|
13753
|
+
(loadOptions || onCreate) && /* @__PURE__ */ jsx(Combobox$1.Status, {
|
|
13754
|
+
className: cn(cb.status(), !!remote.error && !remote.loading && cb.statusError()),
|
|
13755
|
+
children: remote.loading ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Spinner, { size: 13 }), loadingText ?? t("common.loading")] }) : remote.error ? errorText ?? t("combobox.loadFailed") : null
|
|
13756
|
+
}),
|
|
13757
|
+
/* @__PURE__ */ jsx(Combobox$1.Empty, {
|
|
13758
|
+
className: cb.empty(),
|
|
13759
|
+
children: busy ? null : emptyText
|
|
13760
|
+
}),
|
|
13761
|
+
/* @__PURE__ */ jsx(List, {
|
|
13762
|
+
...virtualized ? {
|
|
13763
|
+
itemHeight,
|
|
13764
|
+
estimatedItemHeight,
|
|
13765
|
+
overscan
|
|
13766
|
+
} : { className: cb.list() },
|
|
13767
|
+
"aria-busy": remote.loading || void 0,
|
|
13768
|
+
children: (o) => isSpecialItem(o) ? /* @__PURE__ */ jsx(ComboboxSpecialItem, {
|
|
13769
|
+
item: o,
|
|
13770
|
+
createLabel
|
|
13771
|
+
}, `${o.__gntikSpecial}:${o.value}`) : o === SELECT_ALL ? /* @__PURE__ */ jsxs(Combobox$1.Item, {
|
|
13772
|
+
value: o,
|
|
13773
|
+
className: cn(cb.item(), s.selectAll()),
|
|
13774
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
13775
|
+
className: cb.itemContent(),
|
|
13776
|
+
children: allSelected ? deselectAllLabel : selectAllLabel
|
|
13777
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
13778
|
+
className: s.check(),
|
|
13779
|
+
children: allSelected && /* @__PURE__ */ jsx(Check, {
|
|
13780
|
+
size: 15,
|
|
13781
|
+
strokeWidth: 2.4,
|
|
13782
|
+
"aria-hidden": true
|
|
13783
|
+
})
|
|
13784
|
+
})]
|
|
13785
|
+
}, o.value) : /* @__PURE__ */ jsxs(Combobox$1.Item, {
|
|
13786
|
+
value: o,
|
|
13787
|
+
disabled: o.disabled,
|
|
13788
|
+
className: cb.item(),
|
|
13789
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
13790
|
+
className: cb.itemContent(),
|
|
13791
|
+
children: renderOption ? renderOption(o) : /* @__PURE__ */ jsxs("span", {
|
|
13792
|
+
className: "min-w-0",
|
|
13793
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
13794
|
+
className: "block truncate",
|
|
13795
|
+
children: o.label
|
|
13796
|
+
}), o.description && /* @__PURE__ */ jsx("span", {
|
|
13797
|
+
className: s.description(),
|
|
13798
|
+
children: o.description
|
|
13799
|
+
})]
|
|
13800
|
+
})
|
|
13801
|
+
}), /* @__PURE__ */ jsx(Combobox$1.ItemIndicator, {
|
|
13802
|
+
className: cb.indicator(),
|
|
13803
|
+
children: /* @__PURE__ */ jsx(Check, {
|
|
13804
|
+
size: 15,
|
|
13805
|
+
strokeWidth: 2.4,
|
|
13806
|
+
"aria-hidden": true
|
|
13807
|
+
})
|
|
13808
|
+
})]
|
|
13809
|
+
}, o.value)
|
|
13810
|
+
})
|
|
13811
|
+
]
|
|
13812
|
+
})
|
|
13705
13813
|
})
|
|
13706
|
-
})
|
|
13814
|
+
})
|
|
13707
13815
|
]
|
|
13708
13816
|
});
|
|
13709
13817
|
}
|
|
@@ -15163,6 +15271,7 @@ const TYPED = /^([\w.-]+)\s*(!=|>=|<=|!~|=|~|:|>|<)(.*)$/s;
|
|
|
15163
15271
|
* terms. Emits a typed query AST (`{ type: 'and', terms }`); see `matchPowerSearch`.
|
|
15164
15272
|
*/
|
|
15165
15273
|
function PowerSearch({ fields, value, defaultValue, onValueChange, onSubmit, allowFreeText = true, placeholder = "Filter by field or search…", name, disabled, labels: labelsProp, operatorLabels: opLabelsProp, className, "aria-label": ariaLabel }) {
|
|
15274
|
+
const portalContainer = usePortalContainer();
|
|
15166
15275
|
const { locale } = useI18n();
|
|
15167
15276
|
const labels = {
|
|
15168
15277
|
...defaultLabels,
|
|
@@ -15465,43 +15574,46 @@ function PowerSearch({ fields, value, defaultValue, onValueChange, onSubmit, all
|
|
|
15465
15574
|
placeholder: query.terms.length || field ? void 0 : placeholder,
|
|
15466
15575
|
className: s.input(),
|
|
15467
15576
|
onKeyDown
|
|
15468
|
-
}), /* @__PURE__ */ jsx(Combobox$1.Portal, {
|
|
15469
|
-
|
|
15470
|
-
|
|
15471
|
-
|
|
15472
|
-
|
|
15473
|
-
|
|
15474
|
-
|
|
15475
|
-
|
|
15476
|
-
children:
|
|
15477
|
-
className: s.
|
|
15478
|
-
children:
|
|
15479
|
-
|
|
15480
|
-
|
|
15481
|
-
|
|
15482
|
-
|
|
15483
|
-
|
|
15484
|
-
|
|
15485
|
-
className: s.
|
|
15486
|
-
children:
|
|
15487
|
-
|
|
15488
|
-
|
|
15489
|
-
|
|
15490
|
-
|
|
15491
|
-
|
|
15492
|
-
|
|
15493
|
-
|
|
15494
|
-
|
|
15495
|
-
|
|
15496
|
-
|
|
15497
|
-
|
|
15498
|
-
|
|
15499
|
-
|
|
15500
|
-
|
|
15501
|
-
|
|
15502
|
-
|
|
15577
|
+
}), /* @__PURE__ */ jsx(Combobox$1.Portal, {
|
|
15578
|
+
container: portalContainer,
|
|
15579
|
+
children: /* @__PURE__ */ jsx(Combobox$1.Positioner, {
|
|
15580
|
+
className: s.positioner(),
|
|
15581
|
+
side: "bottom",
|
|
15582
|
+
align: "start",
|
|
15583
|
+
sideOffset: 8,
|
|
15584
|
+
anchor: rootRef,
|
|
15585
|
+
children: /* @__PURE__ */ jsxs(Combobox$1.Popup, {
|
|
15586
|
+
className: s.popup(),
|
|
15587
|
+
children: [/* @__PURE__ */ jsx(Combobox$1.Empty, {
|
|
15588
|
+
className: s.empty(),
|
|
15589
|
+
children: stage === "value" ? labels.typeValue : null
|
|
15590
|
+
}), /* @__PURE__ */ jsx(Combobox$1.List, {
|
|
15591
|
+
className: "outline-none data-empty:hidden",
|
|
15592
|
+
children: (item) => /* @__PURE__ */ jsx(Combobox$1.Item, {
|
|
15593
|
+
value: item,
|
|
15594
|
+
className: s.item(),
|
|
15595
|
+
children: /* @__PURE__ */ jsxs("span", {
|
|
15596
|
+
className: s.itemMain(),
|
|
15597
|
+
children: [
|
|
15598
|
+
item.code && /* @__PURE__ */ jsx("span", {
|
|
15599
|
+
className: s.itemCode(),
|
|
15600
|
+
children: item.code
|
|
15601
|
+
}),
|
|
15602
|
+
/* @__PURE__ */ jsx("span", {
|
|
15603
|
+
className: "truncate",
|
|
15604
|
+
children: item.label
|
|
15605
|
+
}),
|
|
15606
|
+
item.hint && /* @__PURE__ */ jsx("span", {
|
|
15607
|
+
className: s.itemHint(),
|
|
15608
|
+
children: item.hint
|
|
15609
|
+
})
|
|
15610
|
+
]
|
|
15611
|
+
})
|
|
15612
|
+
}, item.id)
|
|
15613
|
+
})]
|
|
15614
|
+
})
|
|
15503
15615
|
})
|
|
15504
|
-
})
|
|
15616
|
+
})]
|
|
15505
15617
|
}),
|
|
15506
15618
|
query.terms.length > 0 && /* @__PURE__ */ jsx("button", {
|
|
15507
15619
|
type: "button",
|
|
@@ -15735,6 +15847,16 @@ function isConditionComplete(c) {
|
|
|
15735
15847
|
if (arity === "list") return Array.isArray(v) && v.length > 0;
|
|
15736
15848
|
return v !== void 0 && v !== null && v !== "";
|
|
15737
15849
|
}
|
|
15850
|
+
/** False only for a complete, inverted numeric or date `between` pair. Check completeness separately. */
|
|
15851
|
+
function isConditionValid(c) {
|
|
15852
|
+
if (c.operator !== "between" || !isConditionComplete(c) || !Array.isArray(c.value)) return true;
|
|
15853
|
+
const [from, to] = c.value;
|
|
15854
|
+
const numeric = typeof from === "number" && typeof to === "number";
|
|
15855
|
+
const dates = typeof from === "string" && typeof to === "string" && dayKey(from) !== null && dayKey(to) !== null;
|
|
15856
|
+
if (!numeric && !dates) return true;
|
|
15857
|
+
const order = compare(from, to, void 0);
|
|
15858
|
+
return order === null || !(order > 0);
|
|
15859
|
+
}
|
|
15738
15860
|
/**
|
|
15739
15861
|
* Human-readable query: `Status is "Active" AND (Age greater than 30 OR Country is any of
|
|
15740
15862
|
* "Spain", "France")`. Incomplete conditions and empty groups are left out.
|
|
@@ -15842,16 +15964,16 @@ function test(c, record, type, locale) {
|
|
|
15842
15964
|
}
|
|
15843
15965
|
}
|
|
15844
15966
|
}
|
|
15845
|
-
const hasCompleteCondition = (node) => node.type === "condition" ? isConditionComplete(node) : node.children.some(hasCompleteCondition);
|
|
15967
|
+
const hasCompleteCondition = (node) => node.type === "condition" ? isConditionComplete(node) && isConditionValid(node) : node.children.some(hasCompleteCondition);
|
|
15846
15968
|
/**
|
|
15847
15969
|
* Whether `record` matches the query. Text comparisons ignore case; dates compare by day
|
|
15848
15970
|
* (`YYYY-MM-DD` strings or Date objects); array-valued record fields match `eq` / `in` when any
|
|
15849
|
-
* item does. Incomplete conditions are ignored
|
|
15971
|
+
* item does. Incomplete and invalid conditions are ignored; a group with none left matches everything.
|
|
15850
15972
|
* Pass `fields` so values are compared by their declared type.
|
|
15851
15973
|
*/
|
|
15852
15974
|
function evaluateQuery(tree, record, fields, locale) {
|
|
15853
15975
|
if (tree.type === "condition") {
|
|
15854
|
-
if (!isConditionComplete(tree)) return true;
|
|
15976
|
+
if (!isConditionComplete(tree) || !isConditionValid(tree)) return true;
|
|
15855
15977
|
return test(tree, record, fields?.find((f) => f.id === tree.field)?.type, locale);
|
|
15856
15978
|
}
|
|
15857
15979
|
const relevant = tree.children.filter(hasCompleteCondition);
|
|
@@ -15900,6 +16022,8 @@ const asNumber = (v) => typeof v === "number" && !Number.isNaN(v) ? v : null;
|
|
|
15900
16022
|
/** The value control for a condition: depends on the field type and the operator's arity. */
|
|
15901
16023
|
function QueryValueEditor({ condition, field, onChange, disabled, locale }) {
|
|
15902
16024
|
const { t } = useI18n();
|
|
16025
|
+
const errorId = useId();
|
|
16026
|
+
const inverted = !isConditionValid(condition);
|
|
15903
16027
|
const arity = operatorArity(condition.operator);
|
|
15904
16028
|
if (!field || arity === "none") return null;
|
|
15905
16029
|
const v = condition.value;
|
|
@@ -15932,23 +16056,35 @@ function QueryValueEditor({ condition, field, onChange, disabled, locale }) {
|
|
|
15932
16056
|
next[i] = n;
|
|
15933
16057
|
onChange(next[0] === null && next[1] === null ? void 0 : next);
|
|
15934
16058
|
};
|
|
15935
|
-
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
15936
|
-
|
|
15937
|
-
|
|
15938
|
-
|
|
15939
|
-
|
|
15940
|
-
|
|
15941
|
-
|
|
15942
|
-
|
|
15943
|
-
|
|
15944
|
-
|
|
15945
|
-
|
|
15946
|
-
|
|
15947
|
-
|
|
15948
|
-
|
|
15949
|
-
|
|
15950
|
-
|
|
15951
|
-
|
|
16059
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
16060
|
+
/* @__PURE__ */ jsx(NumberInput, {
|
|
16061
|
+
"aria-label": t("queryBuilder.valueFrom"),
|
|
16062
|
+
invalid: inverted,
|
|
16063
|
+
"aria-describedby": inverted ? errorId : void 0,
|
|
16064
|
+
value: asNumber(pair[0]),
|
|
16065
|
+
onValueChange: (n) => set(0, n),
|
|
16066
|
+
disabled,
|
|
16067
|
+
size: "sm",
|
|
16068
|
+
hideSteppers: true,
|
|
16069
|
+
className: "w-28"
|
|
16070
|
+
}),
|
|
16071
|
+
/* @__PURE__ */ jsx(NumberInput, {
|
|
16072
|
+
"aria-label": t("queryBuilder.valueTo"),
|
|
16073
|
+
invalid: inverted,
|
|
16074
|
+
"aria-describedby": inverted ? errorId : void 0,
|
|
16075
|
+
value: asNumber(pair[1]),
|
|
16076
|
+
onValueChange: (n) => set(1, n),
|
|
16077
|
+
disabled,
|
|
16078
|
+
size: "sm",
|
|
16079
|
+
hideSteppers: true,
|
|
16080
|
+
className: "w-28"
|
|
16081
|
+
}),
|
|
16082
|
+
inverted && /* @__PURE__ */ jsx("p", {
|
|
16083
|
+
id: errorId,
|
|
16084
|
+
className: "w-full text-[12px] leading-5 text-destructive-text",
|
|
16085
|
+
children: t("queryBuilder.rangeInverted")
|
|
16086
|
+
})
|
|
16087
|
+
] });
|
|
15952
16088
|
}
|
|
15953
16089
|
return /* @__PURE__ */ jsx(NumberInput, {
|
|
15954
16090
|
"aria-label": t("queryBuilder.value"),
|
|
@@ -15967,23 +16103,35 @@ function QueryValueEditor({ condition, field, onChange, disabled, locale }) {
|
|
|
15967
16103
|
next[i] = d ? toISODate(d) : "";
|
|
15968
16104
|
onChange(next[0] || next[1] ? next : void 0);
|
|
15969
16105
|
};
|
|
15970
|
-
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
15971
|
-
|
|
15972
|
-
|
|
15973
|
-
|
|
15974
|
-
|
|
15975
|
-
|
|
15976
|
-
|
|
15977
|
-
|
|
15978
|
-
|
|
15979
|
-
|
|
15980
|
-
|
|
15981
|
-
|
|
15982
|
-
|
|
15983
|
-
|
|
15984
|
-
|
|
15985
|
-
|
|
15986
|
-
|
|
16106
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
16107
|
+
/* @__PURE__ */ jsx(DatePicker, {
|
|
16108
|
+
"aria-label": t("queryBuilder.valueFrom"),
|
|
16109
|
+
invalid: inverted,
|
|
16110
|
+
"aria-describedby": inverted ? errorId : void 0,
|
|
16111
|
+
value: fromISO(pair[0]),
|
|
16112
|
+
onValueChange: (d) => set(0, d),
|
|
16113
|
+
locale,
|
|
16114
|
+
disabled,
|
|
16115
|
+
size: "sm",
|
|
16116
|
+
className: "w-44"
|
|
16117
|
+
}),
|
|
16118
|
+
/* @__PURE__ */ jsx(DatePicker, {
|
|
16119
|
+
"aria-label": t("queryBuilder.valueTo"),
|
|
16120
|
+
invalid: inverted,
|
|
16121
|
+
"aria-describedby": inverted ? errorId : void 0,
|
|
16122
|
+
value: fromISO(pair[1]),
|
|
16123
|
+
onValueChange: (d) => set(1, d),
|
|
16124
|
+
locale,
|
|
16125
|
+
disabled,
|
|
16126
|
+
size: "sm",
|
|
16127
|
+
className: "w-44"
|
|
16128
|
+
}),
|
|
16129
|
+
inverted && /* @__PURE__ */ jsx("p", {
|
|
16130
|
+
id: errorId,
|
|
16131
|
+
className: "w-full text-[12px] leading-5 text-destructive-text",
|
|
16132
|
+
children: t("queryBuilder.rangeInverted")
|
|
16133
|
+
})
|
|
16134
|
+
] });
|
|
15987
16135
|
}
|
|
15988
16136
|
return /* @__PURE__ */ jsx(DatePicker, {
|
|
15989
16137
|
"aria-label": t("queryBuilder.value"),
|
|
@@ -16225,7 +16373,7 @@ const doc$65 = {
|
|
|
16225
16373
|
name: "QueryBuilder",
|
|
16226
16374
|
group: "Forms",
|
|
16227
16375
|
status: "beta",
|
|
16228
|
-
description: "Visual filter editor: nested AND/OR groups of field / operator / value conditions. Typed fields (text, number, enum, date, boolean) offer their operators and value editor (Input, NumberInput, Select / MultiSelect, DatePicker, ranges for \"between\"); add and remove conditions and groups up to `maxDepth`. The value is a serialisable tree; `queryToString(tree)` makes it human-readable and `evaluateQuery(tree, record)` tests a record.",
|
|
16376
|
+
description: "Visual filter editor: nested AND/OR groups of field / operator / value conditions. Typed fields (text, number, enum, date, boolean) offer their operators and value editor (Input, NumberInput, Select / MultiSelect, DatePicker, ranges for \"between\"); add and remove conditions and groups up to `maxDepth`. The value is a serialisable tree; `queryToString(tree)` makes it human-readable and `evaluateQuery(tree, record)` tests a record. Inverted numeric or date \"between\" ranges show an inline error and are ignored by evaluation. Before sending a query to a backend, check each condition with `isConditionComplete` and `isConditionValid`; validation preserves the entered values.",
|
|
16229
16377
|
primitive: "Select, MultiSelect, Input, NumberInput, DatePicker, ToggleGroup, Button",
|
|
16230
16378
|
pattern: "nested groups of form controls",
|
|
16231
16379
|
keyboard: [
|
|
@@ -16241,7 +16389,8 @@ const doc$65 = {
|
|
|
16241
16389
|
"foreground",
|
|
16242
16390
|
"muted-foreground",
|
|
16243
16391
|
"primary",
|
|
16244
|
-
"focus-ring"
|
|
16392
|
+
"focus-ring",
|
|
16393
|
+
"destructive-text"
|
|
16245
16394
|
]
|
|
16246
16395
|
};
|
|
16247
16396
|
//#endregion
|
|
@@ -20609,24 +20758,6 @@ const FILE_ICON = {
|
|
|
20609
20758
|
document: FileText,
|
|
20610
20759
|
file: File
|
|
20611
20760
|
};
|
|
20612
|
-
/** "2.4 MB" style size with binary multiples. */
|
|
20613
|
-
function formatBytes(bytes, locale) {
|
|
20614
|
-
const units = [
|
|
20615
|
-
"B",
|
|
20616
|
-
"KB",
|
|
20617
|
-
"MB",
|
|
20618
|
-
"GB",
|
|
20619
|
-
"TB"
|
|
20620
|
-
];
|
|
20621
|
-
let value = bytes;
|
|
20622
|
-
let i = 0;
|
|
20623
|
-
while (value >= 1024 && i < units.length - 1) {
|
|
20624
|
-
value /= 1024;
|
|
20625
|
-
i++;
|
|
20626
|
-
}
|
|
20627
|
-
const digits = i === 0 || value >= 10 ? 0 : 1;
|
|
20628
|
-
return `${new Intl.NumberFormat(locale, { maximumFractionDigits: digits }).format(value)} ${units[i]}`;
|
|
20629
|
-
}
|
|
20630
20761
|
//#endregion
|
|
20631
20762
|
//#region src/components/Thumbnail/thumbnail.variants.ts
|
|
20632
20763
|
const thumbnailVariants = tv({
|
|
@@ -20670,7 +20801,8 @@ const thumbnailVariants = tv({
|
|
|
20670
20801
|
* icon, upload progress with a reduced-motion-safe shimmer, error state and a remove button.
|
|
20671
20802
|
*/
|
|
20672
20803
|
function Thumbnail({ name, size, type, src, preview, progress, error, onRemove, onRetry, locale, labels: labelsProp, className, ...props }) {
|
|
20673
|
-
const { t } = useI18n();
|
|
20804
|
+
const { t, formatBytes: providerFormatBytes } = useI18n();
|
|
20805
|
+
const formatSize = (bytes) => locale === void 0 ? providerFormatBytes(bytes) : formatBytes(bytes, locale);
|
|
20674
20806
|
const labels = {
|
|
20675
20807
|
uploading: (label) => t("thumbnail.uploading", { label }),
|
|
20676
20808
|
error: t("thumbnail.error"),
|
|
@@ -20744,7 +20876,7 @@ function Thumbnail({ name, size, type, src, preview, progress, error, onRemove,
|
|
|
20744
20876
|
onClick: onRetry,
|
|
20745
20877
|
className: s.retry(),
|
|
20746
20878
|
children: labels.retry
|
|
20747
|
-
})] })] }) : uploading && pct !== void 0 ? `${pct}%${size !== void 0 ? ` · ${
|
|
20879
|
+
})] })] }) : uploading && pct !== void 0 ? `${pct}%${size !== void 0 ? ` · ${formatSize(size)}` : ""}` : size !== void 0 ? formatSize(size) : ext ?? ""
|
|
20748
20880
|
})]
|
|
20749
20881
|
}),
|
|
20750
20882
|
onRemove && /* @__PURE__ */ jsx("button", {
|
|
@@ -20776,7 +20908,7 @@ const doc$95 = {
|
|
|
20776
20908
|
name: "Thumbnail",
|
|
20777
20909
|
group: "Display",
|
|
20778
20910
|
status: "beta",
|
|
20779
|
-
description: "File or image preview tile: image or file-type icon with extension tag, name and size caption, upload progress (progressbar + shimmer that holds still under reduced motion), error state with retry, and a remove button. ThumbnailList lays tiles out as a wrapping list. Built-in labels follow I18nProvider (en/es); caller overrides take precedence. See the TransferList catalog defaults example for a live Spanish preview of this component.",
|
|
20911
|
+
description: "File or image preview tile: image or file-type icon with extension tag, name and size caption, upload progress (progressbar + shimmer that holds still under reduced motion), error state with retry, and a remove button. ThumbnailList lays tiles out as a wrapping list. Sizes use the shared formatBytes export (decimal SI by default); ThumbnailSizes demonstrates localized labels, IEC base, bits, display widths and precision. Built-in labels and sizes follow I18nProvider (en/es); caller overrides take precedence. See the TransferList catalog defaults example for a live Spanish preview of this component.",
|
|
20780
20912
|
pattern: "figure",
|
|
20781
20913
|
keyboard: [["Tab", "Moves to the remove button (and retry, in the error state) of each tile"], ["Enter / Space", "Activates remove or retry"]],
|
|
20782
20914
|
tokens: [
|
|
@@ -21144,13 +21276,14 @@ function useToast() {
|
|
|
21144
21276
|
* hovering or focusing it pauses auto-dismiss.
|
|
21145
21277
|
*/
|
|
21146
21278
|
function Toaster({ className, closeLabel: closeLabelProp, container }) {
|
|
21279
|
+
const portalContainer = usePortalContainer();
|
|
21147
21280
|
const { t } = useI18n();
|
|
21148
21281
|
const closeLabel = closeLabelProp ?? t("toast.dismiss");
|
|
21149
21282
|
const dir = usePortalDir();
|
|
21150
21283
|
const { toasts } = Toast.useToastManager();
|
|
21151
21284
|
const s = toastVariants();
|
|
21152
21285
|
return /* @__PURE__ */ jsx(Toast.Portal, {
|
|
21153
|
-
container,
|
|
21286
|
+
container: container ?? portalContainer,
|
|
21154
21287
|
children: /* @__PURE__ */ jsx(Toast.Viewport, {
|
|
21155
21288
|
dir,
|
|
21156
21289
|
className: cn(s.viewport(), className),
|
|
@@ -21859,6 +21992,7 @@ const centre = { getBoundingClientRect: () => {
|
|
|
21859
21992
|
* outline (no overlay).
|
|
21860
21993
|
*/
|
|
21861
21994
|
function Tour({ steps, open, defaultOpen = false, onOpenChange, step, defaultStep = 0, onStepChange, onFinish, highlight = true, labels: labelsProp, className }) {
|
|
21995
|
+
const portalContainer = usePortalContainer();
|
|
21862
21996
|
const { t } = useI18n();
|
|
21863
21997
|
const labels = {
|
|
21864
21998
|
skip: t("tour.skip"),
|
|
@@ -21942,69 +22076,72 @@ function Tour({ steps, open, defaultOpen = false, onOpenChange, step, defaultSte
|
|
|
21942
22076
|
if (details.reason === "outside-press" || details.reason === "focus-out") return;
|
|
21943
22077
|
end(false);
|
|
21944
22078
|
},
|
|
21945
|
-
children: /* @__PURE__ */ jsx(Popover$1.Portal, {
|
|
21946
|
-
|
|
21947
|
-
|
|
21948
|
-
|
|
21949
|
-
|
|
21950
|
-
|
|
21951
|
-
|
|
21952
|
-
|
|
21953
|
-
|
|
21954
|
-
|
|
21955
|
-
|
|
21956
|
-
|
|
21957
|
-
|
|
21958
|
-
|
|
21959
|
-
className: s.
|
|
21960
|
-
|
|
21961
|
-
|
|
21962
|
-
|
|
21963
|
-
|
|
21964
|
-
|
|
21965
|
-
|
|
21966
|
-
|
|
21967
|
-
|
|
21968
|
-
|
|
21969
|
-
|
|
21970
|
-
|
|
21971
|
-
|
|
21972
|
-
"
|
|
21973
|
-
|
|
21974
|
-
|
|
21975
|
-
|
|
21976
|
-
|
|
21977
|
-
|
|
21978
|
-
|
|
21979
|
-
|
|
21980
|
-
/* @__PURE__ */ jsxs("div", {
|
|
21981
|
-
className: s.footer(),
|
|
21982
|
-
children: [
|
|
21983
|
-
!last && /* @__PURE__ */ jsx(Button, {
|
|
21984
|
-
size: "sm",
|
|
21985
|
-
variant: "ghost",
|
|
21986
|
-
className: s.skip(),
|
|
21987
|
-
onClick: () => end(false),
|
|
21988
|
-
children: labels.skip
|
|
21989
|
-
}),
|
|
21990
|
-
last && /* @__PURE__ */ jsx("span", { className: s.skip() }),
|
|
21991
|
-
index > 0 && /* @__PURE__ */ jsx(Button, {
|
|
21992
|
-
size: "sm",
|
|
21993
|
-
variant: "secondary",
|
|
21994
|
-
onClick: () => goTo(index - 1),
|
|
21995
|
-
children: labels.back
|
|
21996
|
-
}),
|
|
21997
|
-
/* @__PURE__ */ jsx(Button, {
|
|
21998
|
-
ref: primaryRef,
|
|
21999
|
-
size: "sm",
|
|
22000
|
-
onClick: () => last ? end(true) : goTo(index + 1),
|
|
22001
|
-
children: last ? labels.finish : labels.next
|
|
22079
|
+
children: /* @__PURE__ */ jsx(Popover$1.Portal, {
|
|
22080
|
+
container: portalContainer,
|
|
22081
|
+
children: /* @__PURE__ */ jsx(Popover$1.Positioner, {
|
|
22082
|
+
className: s.positioner(),
|
|
22083
|
+
anchor: () => resolve(target) ?? centre,
|
|
22084
|
+
side: current?.side ?? "bottom",
|
|
22085
|
+
align: current?.align ?? "center",
|
|
22086
|
+
sideOffset: 14,
|
|
22087
|
+
collisionPadding: 12,
|
|
22088
|
+
children: /* @__PURE__ */ jsxs(Popover$1.Popup, {
|
|
22089
|
+
className: cn(s.popup(), className),
|
|
22090
|
+
initialFocus: primaryRef,
|
|
22091
|
+
onKeyDown,
|
|
22092
|
+
children: [
|
|
22093
|
+
/* @__PURE__ */ jsx(Popover$1.Arrow, { className: s.arrow() }),
|
|
22094
|
+
/* @__PURE__ */ jsx("p", {
|
|
22095
|
+
className: s.counter(),
|
|
22096
|
+
children: labels.counter(index, steps.length)
|
|
22097
|
+
}),
|
|
22098
|
+
/* @__PURE__ */ jsx(Popover$1.Title, {
|
|
22099
|
+
className: s.title(),
|
|
22100
|
+
children: current?.title
|
|
22101
|
+
}),
|
|
22102
|
+
current?.content != null && /* @__PURE__ */ jsx(Popover$1.Description, {
|
|
22103
|
+
className: s.description(),
|
|
22104
|
+
children: current.content
|
|
22105
|
+
}),
|
|
22106
|
+
/* @__PURE__ */ jsx("button", {
|
|
22107
|
+
type: "button",
|
|
22108
|
+
"aria-label": labels.close,
|
|
22109
|
+
className: s.close(),
|
|
22110
|
+
onClick: () => end(false),
|
|
22111
|
+
children: /* @__PURE__ */ jsx(X, {
|
|
22112
|
+
size: 14,
|
|
22113
|
+
"aria-hidden": true
|
|
22002
22114
|
})
|
|
22003
|
-
|
|
22004
|
-
|
|
22005
|
-
|
|
22115
|
+
}),
|
|
22116
|
+
/* @__PURE__ */ jsxs("div", {
|
|
22117
|
+
className: s.footer(),
|
|
22118
|
+
children: [
|
|
22119
|
+
!last && /* @__PURE__ */ jsx(Button, {
|
|
22120
|
+
size: "sm",
|
|
22121
|
+
variant: "ghost",
|
|
22122
|
+
className: s.skip(),
|
|
22123
|
+
onClick: () => end(false),
|
|
22124
|
+
children: labels.skip
|
|
22125
|
+
}),
|
|
22126
|
+
last && /* @__PURE__ */ jsx("span", { className: s.skip() }),
|
|
22127
|
+
index > 0 && /* @__PURE__ */ jsx(Button, {
|
|
22128
|
+
size: "sm",
|
|
22129
|
+
variant: "secondary",
|
|
22130
|
+
onClick: () => goTo(index - 1),
|
|
22131
|
+
children: labels.back
|
|
22132
|
+
}),
|
|
22133
|
+
/* @__PURE__ */ jsx(Button, {
|
|
22134
|
+
ref: primaryRef,
|
|
22135
|
+
size: "sm",
|
|
22136
|
+
onClick: () => last ? end(true) : goTo(index + 1),
|
|
22137
|
+
children: last ? labels.finish : labels.next
|
|
22138
|
+
})
|
|
22139
|
+
]
|
|
22140
|
+
})
|
|
22141
|
+
]
|
|
22142
|
+
})
|
|
22006
22143
|
})
|
|
22007
|
-
})
|
|
22144
|
+
})
|
|
22008
22145
|
}), isOpen && highlight && typeof document !== "undefined" && createPortal(/* @__PURE__ */ jsx("div", {
|
|
22009
22146
|
ref: ringRef,
|
|
22010
22147
|
"aria-hidden": true,
|
|
@@ -23026,6 +23163,7 @@ const CREATE_ID = "__create-workspace__";
|
|
|
23026
23163
|
const s$1 = workspaceSwitcherVariants();
|
|
23027
23164
|
/** Searchable variant of WorkspaceSwitcher: a combobox with the input inside its popup. */
|
|
23028
23165
|
function WorkspaceSearch({ className, workspaces, current, onSelect, onCreate, createLabel, label, searchPlaceholder: searchPlaceholderProp, emptyText: emptyTextProp }) {
|
|
23166
|
+
const portalContainer = usePortalContainer();
|
|
23029
23167
|
const { t, locale } = useI18n();
|
|
23030
23168
|
const searchPlaceholder = searchPlaceholderProp ?? t("workspace.search");
|
|
23031
23169
|
const emptyText = emptyTextProp ?? t("workspace.empty");
|
|
@@ -23055,67 +23193,70 @@ function WorkspaceSearch({ className, workspaces, current, onSelect, onCreate, c
|
|
|
23055
23193
|
"aria-label": triggerLabel(current, label),
|
|
23056
23194
|
className: cn(s$1.trigger(), className),
|
|
23057
23195
|
children: /* @__PURE__ */ jsx(WorkspaceTriggerContent, { workspace: current })
|
|
23058
|
-
}), /* @__PURE__ */ jsx(Combobox$1.Portal, {
|
|
23059
|
-
|
|
23060
|
-
|
|
23061
|
-
|
|
23062
|
-
|
|
23063
|
-
|
|
23064
|
-
|
|
23065
|
-
|
|
23066
|
-
|
|
23067
|
-
|
|
23068
|
-
|
|
23069
|
-
|
|
23070
|
-
|
|
23071
|
-
|
|
23072
|
-
|
|
23073
|
-
|
|
23074
|
-
|
|
23075
|
-
|
|
23076
|
-
|
|
23077
|
-
|
|
23078
|
-
|
|
23079
|
-
|
|
23080
|
-
|
|
23081
|
-
|
|
23082
|
-
|
|
23083
|
-
|
|
23084
|
-
|
|
23085
|
-
|
|
23086
|
-
|
|
23087
|
-
|
|
23088
|
-
|
|
23089
|
-
className: s$1.
|
|
23090
|
-
children:
|
|
23091
|
-
className: s$1.
|
|
23092
|
-
children: /* @__PURE__ */ jsx(
|
|
23196
|
+
}), /* @__PURE__ */ jsx(Combobox$1.Portal, {
|
|
23197
|
+
container: portalContainer,
|
|
23198
|
+
children: /* @__PURE__ */ jsx(Combobox$1.Positioner, {
|
|
23199
|
+
dir,
|
|
23200
|
+
className: "z-50 outline-none",
|
|
23201
|
+
align: "start",
|
|
23202
|
+
sideOffset: 8,
|
|
23203
|
+
children: /* @__PURE__ */ jsxs(Combobox$1.Popup, {
|
|
23204
|
+
className: s$1.searchPopup(),
|
|
23205
|
+
"aria-label": label,
|
|
23206
|
+
children: [
|
|
23207
|
+
/* @__PURE__ */ jsxs("div", {
|
|
23208
|
+
className: s$1.searchField(),
|
|
23209
|
+
children: [/* @__PURE__ */ jsx(Search, {
|
|
23210
|
+
size: 15,
|
|
23211
|
+
"aria-hidden": true,
|
|
23212
|
+
className: s$1.searchIcon()
|
|
23213
|
+
}), /* @__PURE__ */ jsx(Combobox$1.Input, {
|
|
23214
|
+
"aria-label": searchPlaceholder.replace(/…$/, ""),
|
|
23215
|
+
placeholder: searchPlaceholder,
|
|
23216
|
+
className: s$1.searchInput()
|
|
23217
|
+
})]
|
|
23218
|
+
}),
|
|
23219
|
+
/* @__PURE__ */ jsx(Combobox$1.Empty, {
|
|
23220
|
+
className: s$1.searchEmpty(),
|
|
23221
|
+
children: emptyText
|
|
23222
|
+
}),
|
|
23223
|
+
/* @__PURE__ */ jsx(Combobox$1.List, {
|
|
23224
|
+
className: s$1.searchList(),
|
|
23225
|
+
children: (w) => w.id === CREATE_ID ? /* @__PURE__ */ jsx(Combobox$1.Item, {
|
|
23226
|
+
value: w,
|
|
23227
|
+
className: s$1.searchItem(),
|
|
23228
|
+
children: /* @__PURE__ */ jsxs("span", {
|
|
23229
|
+
className: s$1.optionBody(),
|
|
23230
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
23231
|
+
className: s$1.createIcon(),
|
|
23232
|
+
children: /* @__PURE__ */ jsx(Plus, {
|
|
23233
|
+
size: 15,
|
|
23234
|
+
"aria-hidden": true
|
|
23235
|
+
})
|
|
23236
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
23237
|
+
className: s$1.optionName(),
|
|
23238
|
+
children: w.name
|
|
23239
|
+
})]
|
|
23240
|
+
})
|
|
23241
|
+
}, w.id) : /* @__PURE__ */ jsxs(Combobox$1.Item, {
|
|
23242
|
+
value: w,
|
|
23243
|
+
className: s$1.searchItem(),
|
|
23244
|
+
children: [/* @__PURE__ */ jsx(WorkspaceOptionBody, {
|
|
23245
|
+
workspace: w,
|
|
23246
|
+
current: w.id === current?.id
|
|
23247
|
+
}), /* @__PURE__ */ jsx(Combobox$1.ItemIndicator, {
|
|
23248
|
+
className: s$1.searchIndicator(),
|
|
23249
|
+
children: /* @__PURE__ */ jsx(Check, {
|
|
23093
23250
|
size: 15,
|
|
23094
23251
|
"aria-hidden": true
|
|
23095
23252
|
})
|
|
23096
|
-
}), /* @__PURE__ */ jsx("span", {
|
|
23097
|
-
className: s$1.optionName(),
|
|
23098
|
-
children: w.name
|
|
23099
23253
|
})]
|
|
23100
|
-
})
|
|
23101
|
-
}
|
|
23102
|
-
|
|
23103
|
-
|
|
23104
|
-
children: [/* @__PURE__ */ jsx(WorkspaceOptionBody, {
|
|
23105
|
-
workspace: w,
|
|
23106
|
-
current: w.id === current?.id
|
|
23107
|
-
}), /* @__PURE__ */ jsx(Combobox$1.ItemIndicator, {
|
|
23108
|
-
className: s$1.searchIndicator(),
|
|
23109
|
-
children: /* @__PURE__ */ jsx(Check, {
|
|
23110
|
-
size: 15,
|
|
23111
|
-
"aria-hidden": true
|
|
23112
|
-
})
|
|
23113
|
-
})]
|
|
23114
|
-
}, w.id)
|
|
23115
|
-
})
|
|
23116
|
-
]
|
|
23254
|
+
}, w.id)
|
|
23255
|
+
})
|
|
23256
|
+
]
|
|
23257
|
+
})
|
|
23117
23258
|
})
|
|
23118
|
-
})
|
|
23259
|
+
})]
|
|
23119
23260
|
});
|
|
23120
23261
|
}
|
|
23121
23262
|
//#endregion
|
|
@@ -25797,6 +25938,6 @@ const doc$59 = {
|
|
|
25797
25938
|
]
|
|
25798
25939
|
};
|
|
25799
25940
|
//#endregion
|
|
25800
|
-
export { ANSI_BG_CLASS, ANSI_TEXT_CLASS, Accordion, AccordionItem, AccordionPanel, AccordionTrigger, Alert, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, AspectRatio, AuthLayout, Avatar, AvatarGroup, Badge, Blockquote, BottomSheet, BottomSheetClose, BottomSheetContent, BottomSheetTrigger, Breadcrumbs, Button, COL_SPAN, COL_SPAN_FULL, Calendar, CanvasLayout, Card, CardAction, CardBody, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, Center, Checkbox, CheckboxGroup, ClickableCard, Code, CodeBlock, Collapsible, CollapsiblePanel, CollapsibleTrigger, Combobox, ComboboxChipsInput, ComboboxContent, ComboboxInput, ComboboxItem, CommandPalette, CommandPaletteTrigger, ContextMenu, ContextMenuContent, ContextMenuTrigger, CopyButton, CursorPagination, DEFAULT_DATE_RANGE_PRESETS, DEFAULT_STATUSES, DEFAULT_STRENGTH_LABELS, DEFAULT_TIME_RANGE_PRESETS, DateField, DatePicker, DateRangeField, DateRangeInput, DateRangePicker, DateTimeRangePicker, DensityProvider, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiffViewer, DocsLayout, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, EMPTY_STATE_ICON_SIZE, ENV_KEY_PATTERN, EmptyState, Field, FieldDescription, FieldError, FieldItem, FieldLabel, Fieldset, FieldsetDescription, FieldsetLegend, GAP_CLASSES, GRID_COLS, Grid, GridItem, HStack, Heading, HoverCard, HoverCardContent, HoverCardTrigger, I18nProvider, INPUT_ICON_SIZE, IconButton, InfoTip, Input, InputKbd, InspectorLayout, InspectorToggle, JsonViewer, KEY_NAMES, KanbanBoard, Kbd, KbdCombo, KeyValueEditor, Lightbox, Link, LinkProvider, ListInput, LiveAnnouncer, Logo, MASK_CHAR, MegaMenu, Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuGroupLabel, MenuItem, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuSub, MenuSubContent, MenuSubTrigger, MenuTrigger, Meter, MobileNav, MoreMenu, MultiSelect, NUMBER_INPUT_ICON_SIZE, NavList, NotificationsPopover, NumberInput, OtpInput, Outline, OverflowList, PASSWORD_SEGMENT_FILL, POWER_SEARCH_OPERATORS, Page, PageBreak, Pagination, PaginationCompact, PasswordInput, PeriodCalendar, PeriodPicker, PermissionMatrix, Popover, PopoverClose, PopoverContent, PopoverDescription, PopoverTitle, PopoverTrigger, PowerSearch, PowerSearchChip, PrintLayout, Progress, QUERY_OPERATORS, QueryBuilder, QueryValueEditor, Radio, RadioGroup, ResizablePanel, ResizablePanelGroup, ResizeHandle, ScheduleInput, ScrollArea, SecretField, Section, Select, SelectContent, SelectGroup, SelectGroupLabel, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectableCard, SelectableCardGroup, Separator, SettingsLayout, SidebarLayout, SimpleSelect, SimpleTooltip, Skeleton, SkipLink, Slider, Sparkline, Spinner, SplitButton, SplitLayout, Stack, StackedLayout, StatusDot, StatusLayout, StatusTag, Stepper, Switch, THEME_OPTIONS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsIndicator, TabsList, TabsPanel, TabsTab, Terminal, Text, Textarea, ThemeCycleButton, ThemeProvider, ThemeSwitcher, Thumbnail, ThumbnailList, TimePicker, Timer, Timestamp, ToastProvider, Toaster, Toggle, ToggleGroup, Token, TokenInput, TokenInputChip, Toolbar, ToolbarButton, ToolbarCenter, ToolbarEnd, ToolbarGroup, ToolbarInput, ToolbarLink, ToolbarSeparator, ToolbarStart, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, TransferList, TransferListPane, TreeList, UserMenu, VStack, VirtualList, VisuallyHidden, WizardLayout, WorkspaceSwitcher, doc as accordionDoc, accordionVariants, doc$1 as alertDialogDoc, alertDialogVariants, doc$2 as alertDoc, alertVariants, ansiClassName, doc$3 as aspectRatioDoc, aspectRatioVariants, doc$4 as authLayoutDoc, authLayoutVariants, doc$5 as avatarDoc, avatarVariants, doc$6 as badgeDoc, badgeVariants, doc$7 as blockquoteDoc, blockquoteVariants, doc$8 as bottomSheetDoc, bottomSheetVariants, doc$9 as breadcrumbsDoc, breadcrumbsVariants, builtInMessages, doc$10 as buttonDoc, buttonVariants, doc$11 as calendarDoc, calendarVariants, doc$12 as canvasLayoutDoc, canvasLayoutVariants, doc$13 as cardDoc, cardVariants, doc$14 as carouselDoc, carouselVariants, catalogs, centerVariants, doc$15 as checkboxDoc, checkboxVariants, doc$16 as choiceCardDoc, clickableCardVariants, cn, doc$17 as codeBlockDoc, codeBlockVariants, codeVariants, coerceValue as coercePowerSearchValue, doc$18 as collapsibleDoc, collapsibleVariants, doc$19 as comboboxDoc, comboboxVariants, doc$20 as commandPaletteDoc, commandPaletteVariants, computeOffsets, doc$21 as contextMenuDoc, contextMenuVariants, doc$22 as copyButtonDoc, copyButtonVariants, copyToClipboard, createFormatters, createKeyValueRow, createListInputRow, createQueryCondition, createQueryGroup, cronErrorMessage, cronFromSchedule, doc$23 as cursorPaginationDoc, cursorPaginationVariants, doc$24 as dateFieldDoc, dateFieldVariants, doc$25 as datePickerDoc, datePickerVariants, doc$26 as dateTimeRangePickerDoc, dateTimeRangePickerVariants, describeCron, describeTrend, doc$27 as dialogDoc, dialogVariants, diffJson, diffLines, diffStats, doc$28 as diffViewerDoc, diffViewerVariants, diffWords, doc$29 as docsLayoutDoc, docsLayoutVariants, doc$30 as drawerDoc, drawerVariants, emptyPowerSearchQuery, doc$31 as emptyStateDoc, emptyStateVariants, en, es, evaluateQuery, falconePreset, doc$32 as fieldDoc, fieldVariants, fileKind, filterCommandGroups, flattenVisible, foldText, formatBytes, formatClock, formatCompact, formatDateRange, formatListInputPairs, formatPowerSearch, formatRelative, formatTimeOfDay, getDefaultPeriodPresets, getInitials, getMeterLevel, getPageRange, gntikPreset, doc$33 as gridDoc, gridVariants, headingVariants, doc$34 as hoverCardDoc, hoverCardVariants, doc$35 as infoTipDoc, infoTipVariants, doc$36 as inputDoc, inputVariants, doc$37 as inspectorLayoutDoc, inspectorLayoutVariants, interpolate, isConditionComplete, isNavItemCurrent, isSameTimeRange, isSupportedLanguage, joinPath, jsonType, jsonTypeClass, doc$38 as jsonViewerDoc, jsonViewerVariants, doc$39 as kanbanBoardDoc, kanbanBoardVariants, doc$40 as kbdDoc, kbdVariants, doc$41 as keyValueEditorDoc, keyValueEditorVariants, doc$42 as lightboxDoc, lightboxVariants, doc$43 as linkDoc, linkVariants, doc$44 as listInputDoc, listInputVariants, doc$45 as liveAnnouncerDoc, liveAnnouncerVariants, localeDirection, localeHourCycle, maskSecret, matchAncestors, matchPowerSearch, matchRanges, matchText, measureJsonDisplay, doc$46 as megaMenuDoc, megaMenuNavItems, megaMenuVariants, doc$47 as menuDoc, menuVariants, mergeEnvRows, doc$48 as meterDoc, meterVariants, doc$49 as mobileNavDoc, mobileNavVariants, moveKanbanCard, doc$50 as multiSelectDoc, multiSelectVariants, musematicPreset, doc$51 as navListDoc, navListVariants, nextRuns, nextSortDirection, doc$52 as notificationsPopoverDoc, notificationsPopoverVariants, doc$53 as numberInputDoc, numberInputVariants, operatorArity, operatorsFor, doc$54 as otpInputDoc, otpInputVariants, outlineVariants, doc$55 as overflowListDoc, overflowListVariants, doc$56 as pageDoc, pageVariants, doc$57 as paginationDoc, paginationVariants, parseAnsi, parseCron, parseEnv, parseListInputPairs, parsePowerSearch, parsePowerSearchFilter, parseTimeOfDay, doc$58 as passwordInputDoc, passwordInputVariants, doc$59 as periodPickerDoc, periodPickerVariants, doc$60 as permissionMatrixDoc, permissionMatrixVariants, doc$61 as popoverDoc, popoverVariants, doc$62 as powerSearchDoc, defaultOperatorLabels as powerSearchOperatorLabels, operatorsFor$1 as powerSearchOperatorsFor, powerSearchVariants, presets, previewSortable, doc$63 as printLayoutDoc, printLayoutVariants, doc$64 as progressDoc, progressVariants, doc$65 as queryBuilderDoc, queryBuilderVariants, queryToString, doc$66 as radioGroupDoc, radioGroupVariants, relativeTimeRangeLabel, doc$67 as resizableDoc, resizableVariants, resolveStepStatus, resolveTimeRange, rowAt, scheduleFromCron, doc$68 as scheduleInputDoc, scheduleInputVariants, scoreCommand, scorePassword, doc$69 as scrollAreaDoc, scrollAreaVariants, doc$70 as secretFieldDoc, secretFieldVariants, doc$71 as sectionDoc, sectionVariants, doc$72 as selectDoc, selectVariants, selectableCardVariants, doc$73 as separatorDoc, separatorVariants, serializeEnv, doc$74 as settingsLayoutDoc, settingsLayoutVariants, doc$75 as sidebarLayoutDoc, sidebarLayoutVariants, doc$76 as skeletonDoc, skeletonVariants, skipLinkVariants, doc$77 as sliderDoc, sliderVariants, doc$78 as sparklineDoc, sparklineVariants, doc$79 as spinnerDoc, doc$80 as splitButtonDoc, splitButtonVariants, doc$81 as splitLayoutDoc, splitLayoutVariants, splitLines, stableStringify, doc$82 as stackDoc, stackVariants, doc$83 as stackedLayoutDoc, stackedLayoutVariants, doc$84 as statusDotDoc, statusDotVariants, doc$85 as statusLayoutDoc, statusLayoutVariants, doc$86 as statusTagDoc, statusTagVariants, doc$87 as stepperDoc, stepperVariants, stripAnsi, doc$88 as switchDoc, switchVariants, doc$89 as tableDoc, tableVariants, doc$90 as tabsDoc, tabsVariants, doc$91 as terminalDoc, terminalVariants, doc$92 as textDoc, textVariants, doc$93 as textareaDoc, textareaVariants, themeScript, doc$94 as themeSwitcherDoc, themeSwitcherVariants, doc$95 as thumbnailDoc, thumbnailVariants, doc$96 as timePickerDoc, timePickerVariants, doc$97 as timerDoc, timerVariants, doc$98 as timestampDoc, timestampVariants, toDate, toIsoDuration, toJsonText, doc$99 as toastDoc, toastVariants, doc$100 as toggleGroupDoc, toggleGroupVariants, toggleVariants, tokenClass, doc$101 as tokenDoc, doc$102 as tokenInputDoc, tokenInputVariants, tokenVariants, tokenize, tokenizeLines, doc$103 as toolbarDoc, toolbarVariants, doc$104 as tooltipDoc, tooltipVariants, doc$105 as tourDoc, tourVariants, doc$106 as transferListDoc, transferListVariants, doc$107 as treeListDoc, treeListVariants, tv, useAnnounce, useAsyncOptions, useCommandPaletteShortcut, useDensity, useFitCount, useHasLiveAnnouncer, useI18n, useInspectorLayout, useLinkComponent, useOptionalI18n, usePortalDir, useSidebarLayout, useSortable, useTheme, useThemeOptions, useToast, useTreeList, useVirtualWindow, doc$108 as userMenuDoc, userMenuVariants, validateKeyValueRows, doc$109 as virtualListDoc, virtualListVariants, doc$110 as visuallyHiddenDoc, visuallyHiddenVariants, doc$111 as wizardLayoutDoc, wizardLayoutVariants, doc$112 as workspaceSwitcherDoc, workspaceSwitcherVariants };
|
|
25941
|
+
export { ANSI_BG_CLASS, ANSI_TEXT_CLASS, Accordion, AccordionItem, AccordionPanel, AccordionTrigger, Alert, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, AspectRatio, AuthLayout, Avatar, AvatarGroup, Badge, Blockquote, BottomSheet, BottomSheetClose, BottomSheetContent, BottomSheetTrigger, Breadcrumbs, Button, COL_SPAN, COL_SPAN_FULL, Calendar, CanvasLayout, Card, CardAction, CardBody, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, Center, Checkbox, CheckboxGroup, ClickableCard, Code, CodeBlock, Collapsible, CollapsiblePanel, CollapsibleTrigger, Combobox, ComboboxChipsInput, ComboboxContent, ComboboxInput, ComboboxItem, CommandPalette, CommandPaletteTrigger, ContextMenu, ContextMenuContent, ContextMenuTrigger, CopyButton, CursorPagination, DEFAULT_DATE_RANGE_PRESETS, DEFAULT_STATUSES, DEFAULT_STRENGTH_LABELS, DEFAULT_TIME_RANGE_PRESETS, DateField, DatePicker, DateRangeField, DateRangeInput, DateRangePicker, DateTimeRangePicker, DensityProvider, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DiffViewer, DocsLayout, Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, EMPTY_STATE_ICON_SIZE, ENV_KEY_PATTERN, EmptyState, Field, FieldDescription, FieldError, FieldItem, FieldLabel, Fieldset, FieldsetDescription, FieldsetLegend, GAP_CLASSES, GRID_COLS, Grid, GridItem, HStack, Heading, HoverCard, HoverCardContent, HoverCardTrigger, I18nProvider, INPUT_ICON_SIZE, IconButton, InfoTip, Input, InputKbd, InspectorLayout, InspectorToggle, JsonViewer, KEY_NAMES, KanbanBoard, Kbd, KbdCombo, KeyValueEditor, Lightbox, Link, LinkProvider, ListInput, LiveAnnouncer, Logo, MASK_CHAR, MegaMenu, Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuGroupLabel, MenuItem, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuSub, MenuSubContent, MenuSubTrigger, MenuTrigger, Meter, MobileNav, MoreMenu, MultiSelect, NUMBER_INPUT_ICON_SIZE, NavList, NotificationsPopover, NumberInput, OtpInput, Outline, OverflowList, PASSWORD_SEGMENT_FILL, POWER_SEARCH_OPERATORS, Page, PageBreak, Pagination, PaginationCompact, PasswordInput, PeriodCalendar, PeriodPicker, PermissionMatrix, Popover, PopoverClose, PopoverContent, PopoverDescription, PopoverTitle, PopoverTrigger, PowerSearch, PowerSearchChip, PrintLayout, Progress, QUERY_OPERATORS, QueryBuilder, QueryValueEditor, Radio, RadioGroup, ResizablePanel, ResizablePanelGroup, ResizeHandle, ScheduleInput, ScrollArea, SecretField, Section, Select, SelectContent, SelectGroup, SelectGroupLabel, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectableCard, SelectableCardGroup, Separator, SettingsLayout, SidebarLayout, SimpleSelect, SimpleTooltip, Skeleton, SkipLink, Slider, Sparkline, Spinner, SplitButton, SplitLayout, Stack, StackedLayout, StatusDot, StatusLayout, StatusTag, Stepper, Switch, THEME_OPTIONS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsIndicator, TabsList, TabsPanel, TabsTab, Terminal, Text, Textarea, ThemeCycleButton, ThemeProvider, ThemeScope, ThemeSwitcher, Thumbnail, ThumbnailList, TimePicker, Timer, Timestamp, ToastProvider, Toaster, Toggle, ToggleGroup, Token, TokenInput, TokenInputChip, Toolbar, ToolbarButton, ToolbarCenter, ToolbarEnd, ToolbarGroup, ToolbarInput, ToolbarLink, ToolbarSeparator, ToolbarStart, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Tour, TransferList, TransferListPane, TreeList, UserMenu, VStack, VirtualList, VisuallyHidden, WizardLayout, WorkspaceSwitcher, doc as accordionDoc, accordionVariants, doc$1 as alertDialogDoc, alertDialogVariants, doc$2 as alertDoc, alertVariants, ansiClassName, doc$3 as aspectRatioDoc, aspectRatioVariants, doc$4 as authLayoutDoc, authLayoutVariants, doc$5 as avatarDoc, avatarVariants, doc$6 as badgeDoc, badgeVariants, doc$7 as blockquoteDoc, blockquoteVariants, doc$8 as bottomSheetDoc, bottomSheetVariants, doc$9 as breadcrumbsDoc, breadcrumbsVariants, builtInMessages, doc$10 as buttonDoc, buttonVariants, doc$11 as calendarDoc, calendarVariants, doc$12 as canvasLayoutDoc, canvasLayoutVariants, doc$13 as cardDoc, cardVariants, doc$14 as carouselDoc, carouselVariants, catalogs, centerVariants, doc$15 as checkboxDoc, checkboxVariants, doc$16 as choiceCardDoc, clickableCardVariants, cn, doc$17 as codeBlockDoc, codeBlockVariants, codeVariants, coerceValue as coercePowerSearchValue, doc$18 as collapsibleDoc, collapsibleVariants, doc$19 as comboboxDoc, comboboxVariants, doc$20 as commandPaletteDoc, commandPaletteVariants, computeOffsets, doc$21 as contextMenuDoc, contextMenuVariants, doc$22 as copyButtonDoc, copyButtonVariants, copyToClipboard, createFormatters, createKeyValueRow, createListInputRow, createQueryCondition, createQueryGroup, cronErrorMessage, cronFromSchedule, doc$23 as cursorPaginationDoc, cursorPaginationVariants, doc$24 as dateFieldDoc, dateFieldVariants, doc$25 as datePickerDoc, datePickerVariants, doc$26 as dateTimeRangePickerDoc, dateTimeRangePickerVariants, describeCron, describeTrend, doc$27 as dialogDoc, dialogVariants, diffJson, diffLines, diffStats, doc$28 as diffViewerDoc, diffViewerVariants, diffWords, doc$29 as docsLayoutDoc, docsLayoutVariants, doc$30 as drawerDoc, drawerVariants, emptyPowerSearchQuery, doc$31 as emptyStateDoc, emptyStateVariants, en, es, evaluateQuery, falconePreset, doc$32 as fieldDoc, fieldVariants, fileKind, filterCommandGroups, flattenVisible, foldText, formatBytes, formatClock, formatCompact, formatDateRange, formatListInputPairs, formatPowerSearch, formatRelative, formatTimeOfDay, getDefaultPeriodPresets, getInitials, getMeterLevel, getOs, getPageRange, gntikPreset, doc$33 as gridDoc, gridVariants, headingVariants, doc$34 as hoverCardDoc, hoverCardVariants, doc$35 as infoTipDoc, infoTipVariants, doc$36 as inputDoc, inputVariants, doc$37 as inspectorLayoutDoc, inspectorLayoutVariants, interpolate, isConditionComplete, isConditionValid, isNavItemCurrent, isSameTimeRange, isSupportedLanguage, joinPath, jsonType, jsonTypeClass, doc$38 as jsonViewerDoc, jsonViewerVariants, doc$39 as kanbanBoardDoc, kanbanBoardVariants, doc$40 as kbdDoc, kbdVariants, doc$41 as keyValueEditorDoc, keyValueEditorVariants, doc$42 as lightboxDoc, lightboxVariants, doc$43 as linkDoc, linkVariants, doc$44 as listInputDoc, listInputVariants, doc$45 as liveAnnouncerDoc, liveAnnouncerVariants, localeDirection, localeHourCycle, localeWeekStart, maskSecret, matchAncestors, matchPowerSearch, matchRanges, matchText, measureJsonDisplay, doc$46 as megaMenuDoc, megaMenuNavItems, megaMenuVariants, doc$47 as menuDoc, menuVariants, mergeEnvRows, doc$48 as meterDoc, meterVariants, doc$49 as mobileNavDoc, mobileNavVariants, moveKanbanCard, doc$50 as multiSelectDoc, multiSelectVariants, musematicPreset, doc$51 as navListDoc, navListVariants, nextRuns, nextSortDirection, doc$52 as notificationsPopoverDoc, notificationsPopoverVariants, doc$53 as numberInputDoc, numberInputVariants, operatorArity, operatorsFor, doc$54 as otpInputDoc, otpInputVariants, outlineVariants, doc$55 as overflowListDoc, overflowListVariants, doc$56 as pageDoc, pageVariants, doc$57 as paginationDoc, paginationVariants, parseAnsi, parseCron, parseEnv, parseListInputPairs, parsePowerSearch, parsePowerSearchFilter, parseTimeOfDay, doc$58 as passwordInputDoc, passwordInputVariants, doc$59 as periodPickerDoc, periodPickerVariants, doc$60 as permissionMatrixDoc, permissionMatrixVariants, doc$61 as popoverDoc, popoverVariants, doc$62 as powerSearchDoc, defaultOperatorLabels as powerSearchOperatorLabels, operatorsFor$1 as powerSearchOperatorsFor, powerSearchVariants, presets, previewSortable, doc$63 as printLayoutDoc, printLayoutVariants, doc$64 as progressDoc, progressVariants, doc$65 as queryBuilderDoc, queryBuilderVariants, queryToString, doc$66 as radioGroupDoc, radioGroupVariants, relativeTimeRangeLabel, doc$67 as resizableDoc, resizableVariants, resolveStepStatus, resolveTimeRange, rowAt, scheduleFromCron, doc$68 as scheduleInputDoc, scheduleInputVariants, scoreCommand, scorePassword, doc$69 as scrollAreaDoc, scrollAreaVariants, doc$70 as secretFieldDoc, secretFieldVariants, doc$71 as sectionDoc, sectionVariants, doc$72 as selectDoc, selectVariants, selectableCardVariants, doc$73 as separatorDoc, separatorVariants, serializeEnv, doc$74 as settingsLayoutDoc, settingsLayoutVariants, doc$75 as sidebarLayoutDoc, sidebarLayoutVariants, doc$76 as skeletonDoc, skeletonVariants, skipLinkVariants, doc$77 as sliderDoc, sliderVariants, doc$78 as sparklineDoc, sparklineVariants, doc$79 as spinnerDoc, doc$80 as splitButtonDoc, splitButtonVariants, doc$81 as splitLayoutDoc, splitLayoutVariants, splitLines, stableStringify, doc$82 as stackDoc, stackVariants, doc$83 as stackedLayoutDoc, stackedLayoutVariants, doc$84 as statusDotDoc, statusDotVariants, doc$85 as statusLayoutDoc, statusLayoutVariants, doc$86 as statusTagDoc, statusTagVariants, doc$87 as stepperDoc, stepperVariants, stripAnsi, doc$88 as switchDoc, switchVariants, doc$89 as tableDoc, tableVariants, doc$90 as tabsDoc, tabsVariants, doc$91 as terminalDoc, terminalVariants, doc$92 as textDoc, textVariants, doc$93 as textareaDoc, textareaVariants, themeScript, doc$94 as themeSwitcherDoc, themeSwitcherVariants, doc$95 as thumbnailDoc, thumbnailVariants, doc$96 as timePickerDoc, timePickerVariants, doc$97 as timerDoc, timerVariants, doc$98 as timestampDoc, timestampVariants, toDate, toIsoDuration, toJsonText, doc$99 as toastDoc, toastVariants, doc$100 as toggleGroupDoc, toggleGroupVariants, toggleVariants, tokenClass, doc$101 as tokenDoc, doc$102 as tokenInputDoc, tokenInputVariants, tokenVariants, tokenize, tokenizeLines, doc$103 as toolbarDoc, toolbarVariants, doc$104 as tooltipDoc, tooltipVariants, doc$105 as tourDoc, tourVariants, doc$106 as transferListDoc, transferListVariants, doc$107 as treeListDoc, treeListVariants, tv, useAnnounce, useAsyncOptions, useCommandPaletteShortcut, useDensity, useFitCount, useHasLiveAnnouncer, useI18n, useInspectorLayout, useLinkComponent, useOptionalI18n, useOs, usePortalDir, useSidebarLayout, useSortable, useTheme, useThemeOptions, useToast, useTreeList, useVirtualWindow, doc$108 as userMenuDoc, userMenuVariants, validateKeyValueRows, doc$109 as virtualListDoc, virtualListVariants, doc$110 as visuallyHiddenDoc, visuallyHiddenVariants, doc$111 as wizardLayoutDoc, wizardLayoutVariants, doc$112 as workspaceSwitcherDoc, workspaceSwitcherVariants };
|
|
25801
25942
|
|
|
25802
25943
|
//# sourceMappingURL=index.js.map
|