@stll/ui 0.53.0 → 0.54.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,10 +27,21 @@ declare const DialogBackdrop: ({ className, layer, ...props }: Dialog$1.Backdrop
27
27
  declare const DialogViewport: ({ className, layer, ...props }: Dialog$1.Viewport.Props & {
28
28
  layer?: OverlayLayer;
29
29
  }) => React$1.JSX.Element;
30
- declare const DialogPopup: ({ backdropClassName, className, children, showCloseButton, bottomStickOnMobile, layer, viewportClassName, ...props }: Dialog$1.Popup.Props & {
30
+ /** How the popup sits below `sm`; from `sm` up it is always centred. */
31
+ declare const DIALOG_MOBILE_LAYOUT: {
32
+ /** Pinned to the bottom edge, leaving the page visible above it. */
33
+ readonly bottomSheet: "bottom-sheet";
34
+ /** Centred like the wide layout. */
35
+ readonly centered: "centered";
36
+ /** The whole viewport, inset by the safe areas; for search-like surfaces
37
+ * that need the height and have no backdrop left to tap. */
38
+ readonly fullscreen: "fullscreen";
39
+ };
40
+ type DialogMobileLayout = (typeof DIALOG_MOBILE_LAYOUT)[keyof typeof DIALOG_MOBILE_LAYOUT];
41
+ declare const DialogPopup: ({ backdropClassName, className, children, showCloseButton, mobileLayout, layer, viewportClassName, ...props }: Dialog$1.Popup.Props & {
31
42
  backdropClassName?: string;
32
43
  showCloseButton?: boolean;
33
- bottomStickOnMobile?: boolean;
44
+ mobileLayout?: DialogMobileLayout;
34
45
  layer?: OverlayLayer;
35
46
  viewportClassName?: string;
36
47
  }) => React$1.JSX.Element;
@@ -44,4 +55,4 @@ declare const DialogPanel: ({ className, scrollFade, ...props }: React$1.Compone
44
55
  scrollFade?: boolean;
45
56
  }) => React$1.JSX.Element;
46
57
  //#endregion
47
- export { Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogFormState, DialogHeader, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport };
58
+ export { DIALOG_MOBILE_LAYOUT, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogFormState, DialogHeader, type DialogMobileLayout, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport };
@@ -91,17 +91,37 @@ const DialogViewport = ({ className, layer = "default", ...props }) => /* @__PUR
91
91
  "data-slot": "dialog-viewport",
92
92
  ...props
93
93
  });
94
- const DialogPopup = ({ backdropClassName, className, children, showCloseButton = true, bottomStickOnMobile = true, layer = "default", viewportClassName, ...props }) => {
94
+ /** How the popup sits below `sm`; from `sm` up it is always centred. */
95
+ const DIALOG_MOBILE_LAYOUT = {
96
+ /** Pinned to the bottom edge, leaving the page visible above it. */
97
+ bottomSheet: "bottom-sheet",
98
+ /** Centred like the wide layout. */
99
+ centered: "centered",
100
+ /** The whole viewport, inset by the safe areas; for search-like surfaces
101
+ * that need the height and have no backdrop left to tap. */
102
+ fullscreen: "fullscreen"
103
+ };
104
+ const DIALOG_MOBILE_VIEWPORT_CLASS_NAMES = {
105
+ "bottom-sheet": "max-sm:grid-rows-[1fr_auto] max-sm:p-0 max-sm:pt-12",
106
+ centered: void 0,
107
+ fullscreen: "max-sm:grid-rows-[0_1fr_0] max-sm:p-0"
108
+ };
109
+ const DIALOG_MOBILE_POPUP_CLASS_NAMES = {
110
+ "bottom-sheet": "max-sm:max-w-none max-sm:rounded-none max-sm:border-x-0 max-sm:border-t max-sm:border-b-0 max-sm:pb-(--safe-area-bottom) max-sm:opacity-[calc(1-min(var(--nested-dialogs),1))] max-sm:before:hidden max-sm:before:rounded-none max-sm:data-ending-style:translate-y-4 max-sm:data-starting-style:translate-y-4",
111
+ centered: void 0,
112
+ fullscreen: "max-sm:h-full max-sm:max-w-none max-sm:rounded-none max-sm:border-0 max-sm:ps-(--safe-area-inline-start) max-sm:pe-(--safe-area-inline-end) max-sm:pt-(--safe-area-top) max-sm:pb-(--safe-area-bottom) max-sm:opacity-[calc(1-min(var(--nested-dialogs),1))] max-sm:before:hidden"
113
+ };
114
+ const DialogPopup = ({ backdropClassName, className, children, showCloseButton = true, mobileLayout = DIALOG_MOBILE_LAYOUT.bottomSheet, layer = "default", viewportClassName, ...props }) => {
95
115
  const dismissal = useContext(DialogDismissalContext);
96
116
  const labels = useContext(DialogLabelsContext);
97
117
  return /* @__PURE__ */ jsxs(DialogPortal, { children: [/* @__PURE__ */ jsx(DialogBackdrop, {
98
118
  className: backdropClassName,
99
119
  layer
100
120
  }), /* @__PURE__ */ jsx(DialogViewport, {
101
- className: cn(bottomStickOnMobile && "max-sm:grid-rows-[1fr_auto] max-sm:p-0 max-sm:pt-12", viewportClassName),
121
+ className: cn(DIALOG_MOBILE_VIEWPORT_CLASS_NAMES[mobileLayout], viewportClassName),
102
122
  layer,
103
123
  children: /* @__PURE__ */ jsxs(Dialog$1.Popup, {
104
- className: cn("bg-popover text-popover-foreground relative row-start-2 flex max-h-full min-h-0 w-full max-w-lg min-w-0 -translate-y-[calc(1.25rem*var(--nested-dialogs))] scale-[calc(1-0.1*var(--nested-dialogs))] flex-col rounded-2xl border opacity-[calc(1-0.1*var(--nested-dialogs))] shadow-lg/5 transition-[scale,opacity,translate] duration-200 ease-out will-change-transform not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-2xl)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] data-ending-style:scale-98 data-ending-style:opacity-0 data-ending-style:duration-150 data-nested:data-ending-style:translate-y-8 data-nested-dialog-open:origin-top data-starting-style:scale-98 data-starting-style:opacity-0 data-nested:data-starting-style:translate-y-8 dark:before:shadow-[0_-1px_--theme(--color-white/6%)]", bottomStickOnMobile && "max-sm:max-w-none max-sm:rounded-none max-sm:border-x-0 max-sm:border-t max-sm:border-b-0 max-sm:pb-(--safe-area-bottom) max-sm:opacity-[calc(1-min(var(--nested-dialogs),1))] max-sm:before:hidden max-sm:before:rounded-none max-sm:data-ending-style:translate-y-4 max-sm:data-starting-style:translate-y-4", className),
124
+ className: cn("bg-popover text-popover-foreground relative row-start-2 flex max-h-full min-h-0 w-full max-w-lg min-w-0 -translate-y-[calc(1.25rem*var(--nested-dialogs))] scale-[calc(1-0.1*var(--nested-dialogs))] flex-col rounded-2xl border opacity-[calc(1-0.1*var(--nested-dialogs))] shadow-lg/5 transition-[scale,opacity,translate] duration-200 ease-out will-change-transform not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-2xl)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] data-ending-style:scale-98 data-ending-style:opacity-0 data-ending-style:duration-150 data-nested:data-ending-style:translate-y-8 data-nested-dialog-open:origin-top data-starting-style:scale-98 data-starting-style:opacity-0 data-nested:data-starting-style:translate-y-8 dark:before:shadow-[0_-1px_--theme(--color-white/6%)]", DIALOG_MOBILE_POPUP_CLASS_NAMES[mobileLayout], className),
105
125
  "data-slot": "dialog-popup",
106
126
  ...props,
107
127
  children: [
@@ -156,4 +176,4 @@ const DialogPanel = ({ className, scrollFade = true, ...props }) => /* @__PURE__
156
176
  })
157
177
  });
158
178
  //#endregion
159
- export { Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogFormState, DialogHeader, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport };
179
+ export { DIALOG_MOBILE_LAYOUT, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogFormState, DialogHeader, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport };
@@ -6,27 +6,33 @@ import { jsx, jsxs } from "react/jsx-runtime";
6
6
  //#region src/components/landing.tsx
7
7
  const LandingLayout = ({ actions, hero, children, footer }) => /* @__PURE__ */ jsxs("div", {
8
8
  className: "mx-auto flex h-full w-full max-w-5xl flex-1 flex-col overflow-hidden",
9
- children: [actions, /* @__PURE__ */ jsxs("div", {
10
- className: "@container flex min-h-0 flex-1 flex-col items-center overflow-hidden px-4",
11
- children: [
12
- /* @__PURE__ */ jsx(ScrollArea, {
13
- className: "min-h-72 w-full max-w-2xl shrink basis-[22rem]",
14
- scrollFade: true,
15
- children: /* @__PURE__ */ jsx("div", {
16
- className: "flex min-h-full w-full flex-col items-center justify-center gap-8 px-1",
17
- children: hero
18
- })
19
- }),
20
- /* @__PURE__ */ jsx("div", {
21
- className: "grid min-h-0 w-full flex-1 auto-rows-fr gap-8 pb-6 @2xl:grid-cols-3",
22
- children
23
- }),
24
- footer !== void 0 && /* @__PURE__ */ jsx(ScrollArea, {
25
- className: "h-auto max-h-[40dvh] w-full shrink-0",
26
- scrollFade: true,
27
- children: footer
9
+ children: [actions, /* @__PURE__ */ jsx("div", {
10
+ className: "@container flex min-h-0 flex-1 flex-col overflow-hidden",
11
+ children: /* @__PURE__ */ jsx(ScrollArea, {
12
+ className: "min-h-0 flex-1",
13
+ children: /* @__PURE__ */ jsxs("div", {
14
+ className: "flex min-h-full w-full flex-col items-center px-4 @2xl:h-full",
15
+ children: [
16
+ /* @__PURE__ */ jsx(ScrollArea, {
17
+ className: "min-h-72 w-full max-w-2xl shrink-0 basis-[22rem] @2xl:shrink",
18
+ scrollFade: true,
19
+ children: /* @__PURE__ */ jsx("div", {
20
+ className: "flex min-h-full w-full flex-col items-center justify-center gap-8 px-1",
21
+ children: hero
22
+ })
23
+ }),
24
+ /* @__PURE__ */ jsx("div", {
25
+ className: "grid w-full shrink-0 gap-8 pb-6 @2xl:min-h-0 @2xl:flex-1 @2xl:auto-rows-fr @2xl:grid-cols-3",
26
+ children
27
+ }),
28
+ footer !== void 0 && /* @__PURE__ */ jsx(ScrollArea, {
29
+ className: "h-auto max-h-[40dvh] w-full shrink-0",
30
+ scrollFade: true,
31
+ children: footer
32
+ })
33
+ ]
28
34
  })
29
- ]
35
+ })
30
36
  })]
31
37
  });
32
38
  const LandingGreeting = ({ icon, children }) => /* @__PURE__ */ jsxs("div", {
@@ -54,7 +60,7 @@ const LandingSection = ({ children, heading }) => /* @__PURE__ */ jsxs("section"
54
60
  className: "mb-3 shrink-0 px-1",
55
61
  children: heading
56
62
  }), /* @__PURE__ */ jsx(ScrollArea, {
57
- className: "min-h-0 flex-1",
63
+ className: "@2xl:min-h-0 @2xl:flex-1",
58
64
  scrollFade: true,
59
65
  children: /* @__PURE__ */ jsx("div", {
60
66
  className: "flex flex-col gap-1 px-1 pt-1 pb-4",
@@ -19,13 +19,25 @@ type MenuPreviewLayoutProps = React$1.PropsWithChildren<{
19
19
  previewWidth?: "fixed" | "remaining";
20
20
  }>;
21
21
  declare const MenuPreviewLayout: ({ children, preview, className, previewWidth }: MenuPreviewLayoutProps) => React$1.JSX.Element;
22
+ /**
23
+ * What the pane does with content taller than its box. `clip` is for a
24
+ * depiction (a sketch, a scaled glimpse of a page) that only has to show its
25
+ * shape. `scroll` is for text the reader may need to the last line, such as
26
+ * the exact words a copy choice writes: the box keeps its size and scrolls
27
+ * vertically, so wheel and trackpad reach the end. A scrolling pane takes
28
+ * pointer events and, once it overflows, a place in the tab order so the
29
+ * keyboard reaches the end too; being reachable, it is not hidden from
30
+ * assistive technology.
31
+ */
32
+ type PreviewPaneOverflow = "clip" | "scroll";
22
33
  type PreviewPaneProps = React$1.ComponentProps<"div"> & {
34
+ overflow?: PreviewPaneOverflow;
23
35
  /**
24
36
  * `default` is the side pane described above. `thumbnail` is the same pane
25
37
  * shrunk to sit inline inside a card or list row beside its own label.
26
38
  */
27
39
  size?: "default" | "thumbnail";
28
40
  };
29
- declare const PreviewPane: ({ children, className, size, ...props }: PreviewPaneProps) => React$1.JSX.Element;
41
+ declare const PreviewPane: ({ children, className, overflow, size, ...props }: PreviewPaneProps) => React$1.JSX.Element;
30
42
  //#endregion
31
43
  export { MenuPreviewLayout, PreviewPane };
@@ -1,4 +1,5 @@
1
1
  import { cn } from "../lib/utils.js";
2
+ import { ScrollArea } from "./scroll-area.js";
2
3
  import { jsx, jsxs } from "react/jsx-runtime";
3
4
  //#region src/components/preview-pane.tsx
4
5
  const MenuPreviewLayout = ({ children, preview, className, previewWidth = "fixed" }) => /* @__PURE__ */ jsxs("div", {
@@ -18,13 +19,24 @@ const MenuPreviewLayout = ({ children, preview, className, previewWidth = "fixed
18
19
  })
19
20
  })]
20
21
  });
21
- const PreviewPane = ({ children, className, size = "default", ...props }) => /* @__PURE__ */ jsx("div", {
22
- className: cn("pointer-events-none select-none", size === "thumbnail" ? "w-32" : "w-64 p-2", className),
22
+ const PREVIEW_BOX_CLASS = "bg-muted/40 rounded-md border";
23
+ const PreviewPane = ({ children, className, overflow = "clip", size = "default", ...props }) => /* @__PURE__ */ jsx("div", {
24
+ className: cn("select-none", overflow === "clip" && "pointer-events-none", size === "thumbnail" ? "w-32" : "w-64 p-2", className),
23
25
  "data-slot": "preview-pane",
24
26
  ...props,
25
- children: /* @__PURE__ */ jsx("div", {
27
+ children: overflow === "scroll" ? /* @__PURE__ */ jsx(ScrollArea, {
28
+ axis: "vertical",
29
+ className: cn(PREVIEW_BOX_CLASS, size === "thumbnail" ? "h-20" : "h-36"),
30
+ "data-slot": "preview-pane-scroll",
31
+ onMouseDown: (event) => event.preventDefault(),
32
+ scrollFade: true,
33
+ children: /* @__PURE__ */ jsx("div", {
34
+ className: size === "thumbnail" ? "p-1.5" : "p-2",
35
+ children
36
+ })
37
+ }) : /* @__PURE__ */ jsx("div", {
26
38
  "aria-hidden": true,
27
- className: cn("bg-muted/40 overflow-hidden rounded-md border", size === "thumbnail" ? "h-20 p-1.5" : "h-36 p-2"),
39
+ className: cn(PREVIEW_BOX_CLASS, "overflow-hidden", size === "thumbnail" ? "h-20 p-1.5" : "h-36 p-2"),
28
40
  children
29
41
  })
30
42
  });
@@ -8,12 +8,12 @@ const AXIS_VIEWPORT_CLASS = {
8
8
  vertical: "overflow-x-hidden"
9
9
  };
10
10
  const ScrollArea = ({ axis = "both", className, children, scrollFade = false, scrollbarClassName, scrollbarGutter = false, viewportRef, ...props }) => /* @__PURE__ */ jsxs(ScrollArea$1.Root, {
11
- className: cn("size-full min-h-0", className),
11
+ className: cn("flex size-full min-h-0 flex-col", className),
12
12
  ...props,
13
13
  children: [
14
14
  /* @__PURE__ */ jsx(ScrollArea$1.Viewport, {
15
15
  ref: viewportRef,
16
- className: cn("focus-visible:ring-ring focus-visible:ring-offset-background h-full max-h-[inherit] overscroll-contain rounded-[inherit] outline-none focus-visible:ring-2 focus-visible:ring-offset-1 data-has-overflow-x:overscroll-x-contain", scrollFade && "mask-t-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-start)))] mask-r-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-end)))] mask-b-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-end)))] mask-l-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-start)))] [--fade-size:1.5rem]", scrollbarGutter && "data-has-overflow-x:pb-2.5 data-has-overflow-y:pe-2.5", AXIS_VIEWPORT_CLASS[axis]),
16
+ className: cn("focus-visible:ring-ring focus-visible:ring-offset-background min-h-0 flex-1 overscroll-contain rounded-[inherit] outline-none focus-visible:ring-2 focus-visible:ring-offset-1 data-has-overflow-x:overscroll-x-contain", scrollFade && "mask-t-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-start)))] mask-r-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-end)))] mask-b-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-y-end)))] mask-l-from-[calc(100%-min(var(--fade-size),var(--scroll-area-overflow-x-start)))] [--fade-size:1.5rem]", scrollbarGutter && "data-has-overflow-x:pb-2.5 data-has-overflow-y:pe-2.5", AXIS_VIEWPORT_CLASS[axis]),
17
17
  "data-slot": "scroll-area-viewport",
18
18
  children
19
19
  }),
@@ -60,7 +60,20 @@ declare const Sidebar: ({ side, variant, collapsible, mobileTitle, mobileDescrip
60
60
  /** Screen-reader description for the mobile sheet. Override to localize. */
61
61
  mobileDescription?: string;
62
62
  }) => import("react").JSX.Element;
63
- declare const SidebarTrigger: ({ className, onClick, label, "aria-label": ariaLabel, ...props }: React.ComponentProps<typeof Button> & {
63
+ type PanelTriggerSide = "left" | "right";
64
+ /**
65
+ * Toolbar toggle for a panel docked at one edge. `SidebarTrigger` is the
66
+ * `"left"` one; a host panel docked at the opposite edge (an inspector)
67
+ * renders the `"right"` one, so the two buttons stay mirror images instead
68
+ * of two hand-kept copies of the same chrome. `side` is logical, like
69
+ * `Sidebar`'s.
70
+ */
71
+ declare const PanelTrigger: ({ side, label, "aria-label": ariaLabel, ...props }: Omit<React.ComponentProps<typeof Button>, "children"> & {
72
+ side: PanelTriggerSide;
73
+ /** Accessible name for the trigger. */
74
+ label: string;
75
+ }) => import("react").JSX.Element;
76
+ declare const SidebarTrigger: ({ onClick, label, ...props }: Omit<React.ComponentProps<typeof PanelTrigger>, "label" | "side"> & {
64
77
  /** Accessible name for the trigger. Override to localize. */
65
78
  label?: string;
66
79
  }) => import("react").JSX.Element;
@@ -120,4 +133,4 @@ declare const SidebarMenuSubButton: ({ asChild, size, isActive, className, ...pr
120
133
  isActive?: boolean;
121
134
  }) => import("react").JSX.Element;
122
135
  //#endregion
123
- export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebarIdentityTriggerClassName, useSidebar, useSidebarInlineSize, useSidebarLayout };
136
+ export { PanelTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebarIdentityTriggerClassName, useSidebar, useSidebarInlineSize, useSidebarLayout };
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { PanelLeftIcon } from "../icons.js";
2
+ import { PanelLeftIcon, PanelRightIcon } from "../icons.js";
3
3
  import { cn } from "../lib/utils.js";
4
4
  import { Tooltip, TooltipContent as TooltipPopup, TooltipTrigger } from "./tooltip.js";
5
5
  import { useIsMobile } from "../hooks/use-mobile.js";
@@ -157,24 +157,44 @@ const Sidebar = ({ side = "left", variant = "sidebar", collapsible = "offcanvas"
157
157
  })]
158
158
  });
159
159
  };
160
- const SidebarTrigger = ({ className, onClick, label = DEFAULT_TOGGLE_LABEL, "aria-label": ariaLabel, ...props }) => {
161
- const { toggleSidebar } = useSidebar();
160
+ const PANEL_TRIGGER_ICONS = {
161
+ left: PanelLeftIcon,
162
+ right: PanelRightIcon
163
+ };
164
+ /**
165
+ * Toolbar toggle for a panel docked at one edge. `SidebarTrigger` is the
166
+ * `"left"` one; a host panel docked at the opposite edge (an inspector)
167
+ * renders the `"right"` one, so the two buttons stay mirror images instead
168
+ * of two hand-kept copies of the same chrome. `side` is logical, like
169
+ * `Sidebar`'s.
170
+ */
171
+ const PanelTrigger = ({ side, label, "aria-label": ariaLabel, ...props }) => {
172
+ const Icon = PANEL_TRIGGER_ICONS[side];
162
173
  return /* @__PURE__ */ jsxs(Button, {
163
174
  "aria-label": ariaLabel ?? label,
164
- className: cn("size-7", className),
175
+ "data-slot": "panel-trigger",
176
+ size: "icon",
177
+ variant: "ghost",
178
+ ...props,
179
+ className: cn("size-7", props.className),
180
+ children: [/* @__PURE__ */ jsx(Icon, {}), /* @__PURE__ */ jsx("span", {
181
+ className: "sr-only",
182
+ children: label
183
+ })]
184
+ });
185
+ };
186
+ const SidebarTrigger = ({ onClick, label = DEFAULT_TOGGLE_LABEL, ...props }) => {
187
+ const { toggleSidebar } = useSidebar();
188
+ return /* @__PURE__ */ jsx(PanelTrigger, {
165
189
  "data-sidebar": "trigger",
166
190
  "data-slot": "sidebar-trigger",
191
+ label,
167
192
  onClick: (event) => {
168
193
  onClick?.(event);
169
194
  toggleSidebar();
170
195
  },
171
- size: "icon",
172
- variant: "ghost",
173
196
  ...props,
174
- children: [/* @__PURE__ */ jsx(PanelLeftIcon, {}), /* @__PURE__ */ jsx("span", {
175
- className: "sr-only",
176
- children: label
177
- })]
197
+ side: "left"
178
198
  });
179
199
  };
180
200
  const SidebarRail = ({ className, label = DEFAULT_TOGGLE_LABEL, "aria-label": ariaLabel, ...props }) => {
@@ -373,4 +393,4 @@ const SidebarMenuSubButton = ({ asChild = false, size = "md", isActive = false,
373
393
  });
374
394
  };
375
395
  //#endregion
376
- export { SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebarIdentityTriggerClassName, useSidebar, useSidebarInlineSize, useSidebarLayout };
396
+ export { PanelTrigger, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebarIdentityTriggerClassName, useSidebar, useSidebarInlineSize, useSidebarLayout };
@@ -22,7 +22,7 @@ const TabsList = ({ variant = "default", className, children, ref, ...props }) =
22
22
  if (hasTabOrderChanged(previousTabs, tabs)) setRemeasureToken((token) => token + 1);
23
23
  });
24
24
  return /* @__PURE__ */ jsxs(Tabs$1.List, {
25
- className: cn("text-muted-foreground relative z-0 flex w-fit max-w-full items-center justify-center-safe gap-x-0.5", "scrollbar-none overflow-auto data-[orientation=horizontal]:overscroll-x-contain data-[orientation=vertical]:overscroll-y-contain [&::-webkit-scrollbar]:hidden", "data-[orientation=vertical]:flex-col", variant === "default" ? "bg-muted text-foreground-label rounded-lg p-0.5" : "*:data-[slot=tabs-tab]:hover:bg-accent data-[orientation=horizontal]:py-1 data-[orientation=vertical]:px-1", className),
25
+ className: cn("text-muted-foreground relative z-0 flex w-fit max-w-full items-center justify-center-safe gap-x-0.5", "scrollbar-none overflow-auto data-[orientation=horizontal]:overflow-y-hidden data-[orientation=horizontal]:overscroll-x-contain data-[orientation=vertical]:overflow-x-hidden data-[orientation=vertical]:overscroll-y-contain [&::-webkit-scrollbar]:hidden", "data-[orientation=vertical]:flex-col", variant === "default" ? "bg-muted text-foreground-label rounded-lg p-0.5" : "*:data-[slot=tabs-tab]:hover:bg-accent data-[orientation=horizontal]:py-1 data-[orientation=vertical]:px-1", className),
26
26
  "data-slot": "tabs-list",
27
27
  ref: composeRefs(listRef, ref),
28
28
  ...props,
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import { Toast, ToastManagerAddOptions } from "@base-ui/react/toast";
2
+ import { Toast, ToastManagerAddOptions, ToastObject } from "@base-ui/react/toast";
3
3
  //#region src/components/toast.d.ts
4
4
  type ToastData = {
5
5
  tooltipStyle?: boolean;
@@ -29,10 +29,16 @@ type ToastOptions = Omit<ToastManagerAddOptions<ToastData>, "actionProps" | "tit
29
29
  action?: ToastAction | undefined;
30
30
  actionProps?: ToastActionProps;
31
31
  };
32
- type ToastUpdateOptions = Partial<ToastOptions> & {
32
+ type ToastUpdateFields = Partial<Omit<ToastOptions, "timeout">> & {
33
33
  title?: React$1.ReactNode | undefined;
34
- type?: ToastType | undefined;
35
34
  };
35
+ type ToastUpdateOptions = (ToastUpdateFields & {
36
+ type: ToastType;
37
+ timeout?: number | undefined;
38
+ }) | (ToastUpdateFields & {
39
+ type?: undefined;
40
+ timeout?: number | undefined;
41
+ });
36
42
  type ToastPromiseMessage = React$1.ReactNode | ToastUpdateOptions;
37
43
  type ToastPromiseOptions<Value> = {
38
44
  error: ToastPromiseMessage | ((error: unknown) => ToastPromiseMessage);
@@ -68,7 +74,13 @@ declare const AnchoredToastProvider: ({ children, ...props }: Toast.Provider.Pro
68
74
  * without an action merge: an action belongs to the call that raised it, and
69
75
  * a loading toast is owned by the promise that will settle it.
70
76
  */
71
- declare function toastDedupeId({ action, actionProps, description, title, type }: Pick<ToastAddOptions, "action" | "actionProps" | "description" | "title" | "type">): string | undefined;
77
+ declare function toastDedupeId({ action, actionProps, description, title, type }: {
78
+ action?: ToastAction | undefined;
79
+ actionProps?: ToastActionProps | undefined;
80
+ description?: React$1.ReactNode | undefined;
81
+ title: React$1.ReactNode;
82
+ type?: ToastType | undefined;
83
+ }): string | undefined;
72
84
  /**
73
85
  * How long the countdown runs, or `undefined` when the toast stays until
74
86
  * dismissed (errors, loading, timeout 0).
@@ -77,5 +89,8 @@ declare function toastCountdownMs({ timeout, type }: {
77
89
  timeout?: number | undefined;
78
90
  type?: string | undefined;
79
91
  }): number | undefined;
92
+ declare function resolveToastUpdateTimeout(options: ToastUpdateOptions, previous: Pick<ToastObject<ToastData>, "actionProps" | "data" | "description" | "title" | "type">): {
93
+ timeout?: number;
94
+ };
80
95
  //#endregion
81
- export { AnchoredToastProvider, TOAST_RIGHT_OFFSET_VAR, type ToastPosition, ToastProvider, stellaToast, toastCountdownMs, toastDedupeId };
96
+ export { AnchoredToastProvider, TOAST_RIGHT_OFFSET_VAR, type ToastPosition, ToastProvider, resolveToastUpdateTimeout, stellaToast, toastCountdownMs, toastDedupeId };
@@ -261,27 +261,40 @@ function normalizeToastAddOptions(options) {
261
261
  }
262
262
  function normalizeToastUpdateOptions(options, previous) {
263
263
  const { action, actionProps, data, timeout, type, ...updateOptions } = options;
264
- const update = {
264
+ return {
265
265
  ...updateOptions,
266
266
  ...normalizeToastActionProps({
267
267
  action,
268
268
  actionProps,
269
269
  includeEmptyActionProps: Object.hasOwn(options, "action") || Object.hasOwn(options, "actionProps")
270
270
  }),
271
- ...type === void 0 ? {} : { type }
272
- };
273
- const timeoutPolicy = timeout === void 0 ? previous.data?.timeoutPolicy ?? toastTimeoutPolicy(void 0) : toastTimeoutPolicy(timeout);
274
- return {
275
- ...update,
271
+ ...type === void 0 ? {} : { type },
276
272
  data: {
277
273
  ...Object.hasOwn(options, "data") ? data : previous.data,
278
- timeoutPolicy
274
+ timeoutPolicy: timeout === void 0 ? previous.data?.timeoutPolicy ?? toastTimeoutPolicy(void 0) : toastTimeoutPolicy(timeout)
279
275
  },
280
- timeout: timeoutPolicy.type === "explicit" ? timeoutPolicy.timeout : getDefaultToastTimeout({
281
- ...previous,
282
- ...update
283
- })
276
+ ...resolveToastUpdateTimeout(options, previous)
277
+ };
278
+ }
279
+ function resolveToastUpdateTimeout(options, previous) {
280
+ if (options.timeout !== void 0) return { timeout: normalizeToastTimeout(options.timeout) };
281
+ const timeoutPolicy = previous.data?.timeoutPolicy;
282
+ if (timeoutPolicy?.type === "explicit") return { timeout: timeoutPolicy.timeout };
283
+ if (previous.type === "loading" && options.type === void 0) return {};
284
+ const { action, actionProps, type, ...updateOptions } = options;
285
+ const update = {
286
+ ...updateOptions,
287
+ ...normalizeToastActionProps({
288
+ action,
289
+ actionProps,
290
+ includeEmptyActionProps: Object.hasOwn(options, "action") || Object.hasOwn(options, "actionProps")
291
+ }),
292
+ ...type === void 0 ? {} : { type }
284
293
  };
294
+ return { timeout: getDefaultToastTimeout({
295
+ ...previous,
296
+ ...update
297
+ }) };
285
298
  }
286
299
  function toastTimeoutPolicy(timeout) {
287
300
  return timeout === void 0 ? { type: "automatic" } : {
@@ -362,4 +375,4 @@ function isToastType(type) {
362
375
  return typeof type === "string" && type in TOAST_ICONS;
363
376
  }
364
377
  //#endregion
365
- export { AnchoredToastProvider, TOAST_RIGHT_OFFSET_VAR, ToastProvider, stellaToast, toastCountdownMs, toastDedupeId };
378
+ export { AnchoredToastProvider, TOAST_RIGHT_OFFSET_VAR, ToastProvider, resolveToastUpdateTimeout, stellaToast, toastCountdownMs, toastDedupeId };
package/dist/index.d.ts CHANGED
@@ -16,7 +16,7 @@ import { ColorPicker, ColorPickerContent, ColorPickerContentProps, ColorPickerPr
16
16
  import { CONTROL_SIZE, CONTROL_SIZES, ControlSize } from "./lib/control-size.js";
17
17
  import { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue } from "./components/combobox.js";
18
18
  import { DialogFormState } from "./components/dialog-form-state.js";
19
- import { Dialog, DialogBackdrop, DialogClose, DialogContent as DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogHeader, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport } from "./components/dialog.js";
19
+ import { DIALOG_MOBILE_LAYOUT, Dialog, DialogBackdrop, DialogClose, DialogContent as DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogHeader, DialogMobileLayout, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport } from "./components/dialog.js";
20
20
  import { Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut } from "./components/command.js";
21
21
  import { COPIED_RESET_MS, CopyButton, CopyFeedback, useCopiedFeedback, useCopyConfirmation } from "./components/copy-button.js";
22
22
  import { DatePickerPopover, DatePickerPopoverProps } from "./components/date-picker-popover.js";
@@ -53,13 +53,13 @@ import { Select, SelectContent as SelectPopup, SelectGroup, SelectGroupLabel, Se
53
53
  import { Separator, TextSeparator } from "./components/separator.js";
54
54
  import { Sheet, SheetBackdrop, SheetClose, SheetContent as SheetPopup, SheetDescription, SheetFooter, SheetHeader, SheetPanel, SheetPortal, SheetSide, SheetTitle, SheetTrigger } from "./components/sheet.js";
55
55
  import { Tooltip, TooltipContent as TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger } from "./components/tooltip.js";
56
- import { SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebarIdentityTriggerClassName, useSidebar, useSidebarInlineSize, useSidebarLayout } from "./components/sidebar.js";
56
+ import { PanelTrigger, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebarIdentityTriggerClassName, useSidebar, useSidebarInlineSize, useSidebarLayout } from "./components/sidebar.js";
57
57
  import { Skeleton } from "./components/skeleton.js";
58
58
  import { StellaMark } from "./components/stella-mark.js";
59
59
  import { StellaWordmarkLatin } from "./components/stella-wordmark.js";
60
60
  import { SortDirection, SortableHead, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./components/table.js";
61
61
  import { Tabs, TabsContent as TabsPanel, TabsList, TabsTab } from "./components/tabs.js";
62
- import { AnchoredToastProvider, TOAST_RIGHT_OFFSET_VAR, ToastPosition, ToastProvider, stellaToast, toastCountdownMs, toastDedupeId } from "./components/toast.js";
62
+ import { AnchoredToastProvider, TOAST_RIGHT_OFFSET_VAR, ToastPosition, ToastProvider, resolveToastUpdateTimeout, stellaToast, toastCountdownMs, toastDedupeId } from "./components/toast.js";
63
63
  import { WorkspaceCompactNavigation, WorkspaceEndRail, WorkspaceEndRailChatAction, WorkspaceEndRailProps, WorkspaceNavigation, WorkspaceShell, WorkspaceShellProps, WorkspaceTopBarContext } from "./components/workspace-shell.js";
64
64
  import { TableColumnCapabilities, TableColumnDescriptor, TableSchema, duplicateColumnIds, findTableColumn, hideableColumnIds, sortableColumnIds, tableColumnIds, tableColumnSizing, visibleColumnIds } from "./data-table/schema.js";
65
65
  import { DataTable, DataTableAriaSort, DataTableColumn, DataTableProps, DataTableRowAction } from "./data-table/table.js";
@@ -104,4 +104,4 @@ import { ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffS
104
104
  import { ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone } from "./review/review-out-of-date-notice.js";
105
105
  import { ReviewStatusBadge, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant } from "./review/review-status-badge.js";
106
106
  import { ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusDot, reviewSeverityTone } from "./review/review-severity-dot.js";
107
- export { APPLICATION_RAIL_BUTTON_SIZE, APPLICATION_RAIL_ICON_SIZE, APPLICATION_RAIL_WIDTH, Accordion, AccordionPanel as AccordionContent, AccordionPanel, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogBackdrop, AlertDialogBackdrop as AlertDialogOverlay, AlertDialogClose, AlertDialogPopup as AlertDialogContent, AlertDialogPopup, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPanel, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AnchoredToastProvider, ApplicationRail, ApplicationRailButton, ApplicationRailContent, ApplicationRailFooter, ApplicationRailHeader, ApplicationRailMenu, ApplicationRailSeparator, Avatar, AvatarFallback, AvatarImage, BOARD_DRAG_OVERLAY_Z_INDEX, BUTTON_CONTENT, BUTTON_SIZE_CONTENT, type BidiDirection, BidiText, type BidiTextProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, type BuildKanbanBoardMatrixParams, Button, CONTROL_SIZE, CONTROL_SIZES, COPIED_RESET_MS, CalendarCell, type CalendarDateRange, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow, Checkbox, ColorPicker, ColorPickerContent, type ColorPickerContentProps, type ColorPickerProps, type ColorPreset, ColorVariants, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut, type ControlSize, CopyButton, CopyFeedback, type CreateKanbanDropIntentParams, DEFAULT_PRESETS, DataTable, type DataTableAriaSort, type DataTableColumn, type DataTableProps, type DataTableRowAction, DatePickerPopover, type DatePickerPopoverProps, DestructiveActionConfirmation, DestructiveConfirmDialog, type DestructiveConfirmDialogProps, type DestructiveConfirmOutcome, DetailsGrid, DetailsItem, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogFormState, DialogHeader, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport, DirectionalIcon, DiscordLogoIcon, Menu as DropdownMenu, Menu, MenuCheckboxItem as DropdownMenuCheckboxItem, MenuCheckboxItem, MenuPopup as DropdownMenuContent, MenuPopup, MenuCreateHandle as DropdownMenuCreateHandle, MenuCreateHandle, MenuGroup as DropdownMenuGroup, MenuGroup, MenuItem as DropdownMenuItem, MenuItem, MenuGroupLabel as DropdownMenuLabel, MenuGroupLabel, MenuPortal as DropdownMenuPortal, MenuPortal, MenuRadioGroup as DropdownMenuRadioGroup, MenuRadioGroup, MenuRadioItem as DropdownMenuRadioItem, MenuRadioItem, MenuSeparator as DropdownMenuSeparator, MenuSeparator, MenuShortcut as DropdownMenuShortcut, MenuShortcut, MenuSub as DropdownMenuSub, MenuSub, MenuSubPopup as DropdownMenuSubContent, MenuSubPopup, MenuSubTrigger as DropdownMenuSubTrigger, MenuSubTrigger, MenuTrigger as DropdownMenuTrigger, MenuTrigger, Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity, FileInput, type FileInputProps, Form, Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle, GitHubLogoIcon, HexColorPicker, type HexColorPickerProps, PreviewCard as HoverCard, PreviewCard, PreviewCardPopup as HoverCardContent, PreviewCardPopup, PreviewCardTrigger as HoverCardTrigger, PreviewCardTrigger, INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, InlineRenameInput, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, type InspectorDockMount, InspectorEmptyRow, InspectorEntityTab, type InspectorEntityTabInactiveIcon, InspectorFacetBar, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle, KANBAN_BAND_CAPTION_ROW_HEIGHT, KANBAN_BAND_CAPTION_ROW_HEIGHT_PX, KANBAN_BAND_PEEK_DELAY_MS, KANBAN_BAND_PEEK_LINGER_MS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_CARD_DRAG_MIME, KANBAN_CARD_STICKY_TOP_VAR, KANBAN_CHROME_ROW_HEIGHT, KANBAN_CHROME_ROW_HEIGHT_PX, KANBAN_COLLAPSED_BAND_WIDTH_CLASS, KANBAN_COLLAPSED_BAND_WIDTH_PX, KANBAN_COLUMN_GAP_PX, KANBAN_COLUMN_WIDTH_CLASS, KANBAN_COLUMN_WIDTH_PX, KANBAN_STICKY_TOP_VAR, KANBAN_VIRTUAL_CELL_PAGINATION, type KanbanBandToggleActivation, type KanbanBoardAxis, type KanbanBoardCell, type KanbanBoardColumn, type KanbanBoardCoordinate, type KanbanBoardDestination, type KanbanBoardLane, type KanbanBoardMatrix, type KanbanBuiltInGroup, type KanbanCardDragPreview, type KanbanCardFieldSelection, type KanbanCardSelectionModifiers, KanbanCardShell, type KanbanCardShellProps, KanbanCellAction, type KanbanCellActionProps, KanbanCollapsedBandCaption, type KanbanCollapsedBandCaptionProps, type KanbanColumnBand, KanbanColumnBandHeader, type KanbanColumnBandHeaderProps, type KanbanColumnBandSpan, KanbanColumnHeader, type KanbanColumnHeaderProps, type KanbanDropAxisChange, type KanbanDropIntent, type KanbanGroup, type KanbanGroupOption, type KanbanGrouping, type KanbanSchema, type KanbanSubgroupBandHeaderContext, KanbanSubgroupBoard, type KanbanSubgroupBoardProps, type KanbanSubgroupCellContext, type KanbanSubgroupCollapsedBandCellContext, type KanbanSubgroupColumnHeaderContext, type KanbanSubgroupLaneColumnActionContext, type KanbanSubgroupLaneColumnSummaryContext, type KanbanSubgroupLaneIdentityContext, KanbanVirtualCell, type KanbanVirtualCellPagination, type KanbanVirtualCellProps, Label, List, ListEmpty, ListGroup, ListGroupAction, ListGroupCount, ListGroupDescription, ListGroupHeader, ListGroupHeading, ListGroupTitle, ListItem, ListItemActions, ListItemContent, ListItemDescription, ListItemMedia, ListItemStatus, ListItemTitle, MenuPreviewLayout, MenuSection, OUTLINE_CONTROL_MIN_SIZE, OUTLINE_EMPHASIS, OVERLAY_COLLISION_PADDING, OVERLAY_LAYER_CLASS_NAMES, OptionColor, type OrderKanbanCellsByColumnsParams, OutlineEmphasis, OutlineItem, OutlineRail, OutlineRailProps, OverlayLayer, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, Prose, type RegisterKanbanBoardAutoScrollOptions, type RegisterKanbanCardDragOptions, type ResolveKanbanGroupValueParams, type ResolveKanbanGroupingParams, ResourceCalendar, type ResourceCalendarColumn, type ResourceCalendarEntry, type ResourceCalendarEntryTone, type ResourceCalendarLaneLayout, type ResourceCalendarLanePlacement, type ResourceCalendarPlacement, type ResourceCalendarResource, ReviewAuthorAvatar, ReviewCommentAuthor, ReviewCommentCard, ReviewDecisionActions, ReviewDecisionSize, ReviewDecisionState, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffSegmentType, ReviewDiffText, ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone, ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusBadge, ReviewStatusDot, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant, SHELL_CHROME_LAYER_CLASS_NAME, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, ScrollToTopProps, SearchField, type SearchFieldProps, SecretInput, type SecretInputProps, SegmentedIconToggle, Select, SelectPopup as SelectContent, SelectPopup, SelectGroup, SelectGroupLabel, SelectItem, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBackdrop, SheetBackdrop as SheetOverlay, SheetClose, SheetPopup as SheetContent, SheetPopup, SheetDescription, SheetFooter, SheetHeader, SheetPanel, SheetPortal, type SheetSide, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SortDirection, SortableHead, type StatusTone, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, TableBody, TableCaption, TableCell, type TableColumnCapabilities, type TableColumnDescriptor, TableFooter, TableHead, TableHeader, TableRow, type TableSchema, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextSeparator, Textarea, type TextareaProps, type ToastPosition, ToastProvider, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger, TypedCharacterEvent, UNKNOWN_AUTHOR_LABEL, UserText, type WorkspaceCompactNavigation, WorkspaceEndRail, type WorkspaceEndRailChatAction, type WorkspaceEndRailProps, type WorkspaceNavigation, WorkspaceShell, type WorkspaceShellProps, type WorkspaceTopBarContext, XLogoIcon, assertConsecutiveCalendarDates, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, entityTabGlyph, findTableColumn, getFirstWeekday, getInitials, getKanbanBoardColumnIdentity, getKanbanBoardLaneIdentity, getKanbanGroupingPropertyId, getKanbanGroups, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hasKanbanColumnBands, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, outlineEntryText, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanColumnBands, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sidebarIdentityTriggerClassName, sortableColumnIds, stellaToast, tableColumnIds, tableColumnSizing, toastCountdownMs, toastDedupeId, typedCharacter, useContentDir, useCopiedFeedback, useCopyConfirmation, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useLatest, useSidebar, useSidebarInlineSize, useSidebarLayout, useViewportWidth, visibleColumnIds };
107
+ export { APPLICATION_RAIL_BUTTON_SIZE, APPLICATION_RAIL_ICON_SIZE, APPLICATION_RAIL_WIDTH, Accordion, AccordionPanel as AccordionContent, AccordionPanel, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogBackdrop, AlertDialogBackdrop as AlertDialogOverlay, AlertDialogClose, AlertDialogPopup as AlertDialogContent, AlertDialogPopup, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPanel, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AnchoredToastProvider, ApplicationRail, ApplicationRailButton, ApplicationRailContent, ApplicationRailFooter, ApplicationRailHeader, ApplicationRailMenu, ApplicationRailSeparator, Avatar, AvatarFallback, AvatarImage, BOARD_DRAG_OVERLAY_Z_INDEX, BUTTON_CONTENT, BUTTON_SIZE_CONTENT, type BidiDirection, BidiText, type BidiTextProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, type BuildKanbanBoardMatrixParams, Button, CONTROL_SIZE, CONTROL_SIZES, COPIED_RESET_MS, CalendarCell, type CalendarDateRange, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow, Checkbox, ColorPicker, ColorPickerContent, type ColorPickerContentProps, type ColorPickerProps, type ColorPreset, ColorVariants, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut, type ControlSize, CopyButton, CopyFeedback, type CreateKanbanDropIntentParams, DEFAULT_PRESETS, DIALOG_MOBILE_LAYOUT, DataTable, type DataTableAriaSort, type DataTableColumn, type DataTableProps, type DataTableRowAction, DatePickerPopover, type DatePickerPopoverProps, DestructiveActionConfirmation, DestructiveConfirmDialog, type DestructiveConfirmDialogProps, type DestructiveConfirmOutcome, DetailsGrid, DetailsItem, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogFormState, DialogHeader, type DialogMobileLayout, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport, DirectionalIcon, DiscordLogoIcon, Menu as DropdownMenu, Menu, MenuCheckboxItem as DropdownMenuCheckboxItem, MenuCheckboxItem, MenuPopup as DropdownMenuContent, MenuPopup, MenuCreateHandle as DropdownMenuCreateHandle, MenuCreateHandle, MenuGroup as DropdownMenuGroup, MenuGroup, MenuItem as DropdownMenuItem, MenuItem, MenuGroupLabel as DropdownMenuLabel, MenuGroupLabel, MenuPortal as DropdownMenuPortal, MenuPortal, MenuRadioGroup as DropdownMenuRadioGroup, MenuRadioGroup, MenuRadioItem as DropdownMenuRadioItem, MenuRadioItem, MenuSeparator as DropdownMenuSeparator, MenuSeparator, MenuShortcut as DropdownMenuShortcut, MenuShortcut, MenuSub as DropdownMenuSub, MenuSub, MenuSubPopup as DropdownMenuSubContent, MenuSubPopup, MenuSubTrigger as DropdownMenuSubTrigger, MenuSubTrigger, MenuTrigger as DropdownMenuTrigger, MenuTrigger, Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity, FileInput, type FileInputProps, Form, Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle, GitHubLogoIcon, HexColorPicker, type HexColorPickerProps, PreviewCard as HoverCard, PreviewCard, PreviewCardPopup as HoverCardContent, PreviewCardPopup, PreviewCardTrigger as HoverCardTrigger, PreviewCardTrigger, INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, InlineRenameInput, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputProps, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, type InspectorDockMount, InspectorEmptyRow, InspectorEntityTab, type InspectorEntityTabInactiveIcon, InspectorFacetBar, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle, KANBAN_BAND_CAPTION_ROW_HEIGHT, KANBAN_BAND_CAPTION_ROW_HEIGHT_PX, KANBAN_BAND_PEEK_DELAY_MS, KANBAN_BAND_PEEK_LINGER_MS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_CARD_DRAG_MIME, KANBAN_CARD_STICKY_TOP_VAR, KANBAN_CHROME_ROW_HEIGHT, KANBAN_CHROME_ROW_HEIGHT_PX, KANBAN_COLLAPSED_BAND_WIDTH_CLASS, KANBAN_COLLAPSED_BAND_WIDTH_PX, KANBAN_COLUMN_GAP_PX, KANBAN_COLUMN_WIDTH_CLASS, KANBAN_COLUMN_WIDTH_PX, KANBAN_STICKY_TOP_VAR, KANBAN_VIRTUAL_CELL_PAGINATION, type KanbanBandToggleActivation, type KanbanBoardAxis, type KanbanBoardCell, type KanbanBoardColumn, type KanbanBoardCoordinate, type KanbanBoardDestination, type KanbanBoardLane, type KanbanBoardMatrix, type KanbanBuiltInGroup, type KanbanCardDragPreview, type KanbanCardFieldSelection, type KanbanCardSelectionModifiers, KanbanCardShell, type KanbanCardShellProps, KanbanCellAction, type KanbanCellActionProps, KanbanCollapsedBandCaption, type KanbanCollapsedBandCaptionProps, type KanbanColumnBand, KanbanColumnBandHeader, type KanbanColumnBandHeaderProps, type KanbanColumnBandSpan, KanbanColumnHeader, type KanbanColumnHeaderProps, type KanbanDropAxisChange, type KanbanDropIntent, type KanbanGroup, type KanbanGroupOption, type KanbanGrouping, type KanbanSchema, type KanbanSubgroupBandHeaderContext, KanbanSubgroupBoard, type KanbanSubgroupBoardProps, type KanbanSubgroupCellContext, type KanbanSubgroupCollapsedBandCellContext, type KanbanSubgroupColumnHeaderContext, type KanbanSubgroupLaneColumnActionContext, type KanbanSubgroupLaneColumnSummaryContext, type KanbanSubgroupLaneIdentityContext, KanbanVirtualCell, type KanbanVirtualCellPagination, type KanbanVirtualCellProps, Label, List, ListEmpty, ListGroup, ListGroupAction, ListGroupCount, ListGroupDescription, ListGroupHeader, ListGroupHeading, ListGroupTitle, ListItem, ListItemActions, ListItemContent, ListItemDescription, ListItemMedia, ListItemStatus, ListItemTitle, MenuPreviewLayout, MenuSection, OUTLINE_CONTROL_MIN_SIZE, OUTLINE_EMPHASIS, OVERLAY_COLLISION_PADDING, OVERLAY_LAYER_CLASS_NAMES, OptionColor, type OrderKanbanCellsByColumnsParams, OutlineEmphasis, OutlineItem, OutlineRail, OutlineRailProps, OverlayLayer, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PanelTrigger, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, Prose, type RegisterKanbanBoardAutoScrollOptions, type RegisterKanbanCardDragOptions, type ResolveKanbanGroupValueParams, type ResolveKanbanGroupingParams, ResourceCalendar, type ResourceCalendarColumn, type ResourceCalendarEntry, type ResourceCalendarEntryTone, type ResourceCalendarLaneLayout, type ResourceCalendarLanePlacement, type ResourceCalendarPlacement, type ResourceCalendarResource, ReviewAuthorAvatar, ReviewCommentAuthor, ReviewCommentCard, ReviewDecisionActions, ReviewDecisionSize, ReviewDecisionState, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffSegment, ReviewDiffSegmentType, ReviewDiffText, ReviewOutOfDateNotice, ReviewOutOfDateReason, ReviewOutOfDateTone, ReviewSeverityDot, ReviewSeverityLevel, ReviewStatusBadge, ReviewStatusDot, ReviewStatusSize, ReviewStatusTone, ReviewStatusVariant, SHELL_CHROME_LAYER_CLASS_NAME, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, ScrollToTopProps, SearchField, type SearchFieldProps, SecretInput, type SecretInputProps, SegmentedIconToggle, Select, SelectPopup as SelectContent, SelectPopup, SelectGroup, SelectGroupLabel, SelectItem, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBackdrop, SheetBackdrop as SheetOverlay, SheetClose, SheetPopup as SheetContent, SheetPopup, SheetDescription, SheetFooter, SheetHeader, SheetPanel, SheetPortal, type SheetSide, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SortDirection, SortableHead, type StatusTone, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, TableBody, TableCaption, TableCell, type TableColumnCapabilities, type TableColumnDescriptor, TableFooter, TableHead, TableHeader, TableRow, type TableSchema, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextSeparator, Textarea, type TextareaProps, type ToastPosition, ToastProvider, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger, TypedCharacterEvent, UNKNOWN_AUTHOR_LABEL, UserText, type WorkspaceCompactNavigation, WorkspaceEndRail, type WorkspaceEndRailChatAction, type WorkspaceEndRailProps, type WorkspaceNavigation, WorkspaceShell, type WorkspaceShellProps, type WorkspaceTopBarContext, XLogoIcon, assertConsecutiveCalendarDates, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, entityTabGlyph, findTableColumn, getFirstWeekday, getInitials, getKanbanBoardColumnIdentity, getKanbanBoardLaneIdentity, getKanbanGroupingPropertyId, getKanbanGroups, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hasKanbanColumnBands, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, outlineEntryText, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanColumnBands, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, resolveToastUpdateTimeout, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sidebarIdentityTriggerClassName, sortableColumnIds, stellaToast, tableColumnIds, tableColumnSizing, toastCountdownMs, toastDedupeId, typedCharacter, useContentDir, useCopiedFeedback, useCopyConfirmation, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useLatest, useSidebar, useSidebarInlineSize, useSidebarLayout, useViewportWidth, visibleColumnIds };
package/dist/index.js CHANGED
@@ -25,7 +25,7 @@ import { contentDir, isStructuredInputType, useContentDir } from "./hooks/use-co
25
25
  import { Input } from "./components/input.js";
26
26
  import { Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue } from "./components/combobox.js";
27
27
  import { DialogFormState } from "./components/dialog-form-state.js";
28
- import { Dialog, DialogBackdrop, DialogClose, DialogContent as DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogHeader, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport } from "./components/dialog.js";
28
+ import { DIALOG_MOBILE_LAYOUT, Dialog, DialogBackdrop, DialogClose, DialogContent as DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogHeader, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport } from "./components/dialog.js";
29
29
  import { Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut } from "./components/command.js";
30
30
  import { COPIED_RESET_MS, CopyButton, CopyFeedback, useCopiedFeedback, useCopyConfirmation } from "./components/copy-button.js";
31
31
  import { CalendarCell, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow } from "./calendar/primitives.js";
@@ -63,11 +63,11 @@ import { SecretInput } from "./components/secret-input.js";
63
63
  import { SegmentedIconToggle } from "./components/segmented-icon-toggle.js";
64
64
  import { Separator, TextSeparator } from "./components/separator.js";
65
65
  import { Skeleton } from "./components/skeleton.js";
66
- import { SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebarIdentityTriggerClassName, useSidebar, useSidebarInlineSize, useSidebarLayout } from "./components/sidebar.js";
66
+ import { PanelTrigger, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebarIdentityTriggerClassName, useSidebar, useSidebarInlineSize, useSidebarLayout } from "./components/sidebar.js";
67
67
  import { StellaWordmarkLatin } from "./components/stella-wordmark.js";
68
68
  import { SortableHead, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./components/table.js";
69
69
  import { Tabs, TabsContent as TabsPanel, TabsList, TabsTab } from "./components/tabs.js";
70
- import { AnchoredToastProvider, TOAST_RIGHT_OFFSET_VAR, ToastProvider, stellaToast, toastCountdownMs, toastDedupeId } from "./components/toast.js";
70
+ import { AnchoredToastProvider, TOAST_RIGHT_OFFSET_VAR, ToastProvider, resolveToastUpdateTimeout, stellaToast, toastCountdownMs, toastDedupeId } from "./components/toast.js";
71
71
  import { duplicateColumnIds, findTableColumn, hideableColumnIds, sortableColumnIds, tableColumnIds, tableColumnSizing, visibleColumnIds } from "./data-table/schema.js";
72
72
  import { DataTable } from "./data-table/table.js";
73
73
  import { useViewportWidth } from "./hooks/use-viewport-width.js";
@@ -100,4 +100,4 @@ import { ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffText, TRACKED_DELETI
100
100
  import { ReviewOutOfDateNotice } from "./review/review-out-of-date-notice.js";
101
101
  import { ReviewSeverityDot, ReviewStatusDot, reviewSeverityTone } from "./review/review-severity-dot.js";
102
102
  import { ReviewStatusBadge } from "./review/review-status-badge.js";
103
- export { APPLICATION_RAIL_BUTTON_SIZE, APPLICATION_RAIL_ICON_SIZE, APPLICATION_RAIL_WIDTH, Accordion, AccordionPanel as AccordionContent, AccordionPanel, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogBackdrop, AlertDialogBackdrop as AlertDialogOverlay, AlertDialogClose, AlertDialogPopup as AlertDialogContent, AlertDialogPopup, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPanel, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AnchoredToastProvider, ApplicationRail, ApplicationRailButton, ApplicationRailContent, ApplicationRailFooter, ApplicationRailHeader, ApplicationRailMenu, ApplicationRailSeparator, Avatar, AvatarFallback, AvatarImage, BOARD_DRAG_OVERLAY_Z_INDEX, BUTTON_CONTENT, BUTTON_SIZE_CONTENT, BidiText, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, CONTROL_SIZE, CONTROL_SIZES, COPIED_RESET_MS, CalendarCell, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow, Checkbox, ColorPicker, ColorPickerContent, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut, CopyButton, CopyFeedback, DEFAULT_PRESETS, DataTable, DatePickerPopover, DestructiveActionConfirmation, DestructiveConfirmDialog, DetailsGrid, DetailsItem, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogFormState, DialogHeader, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport, DirectionalIcon, DiscordLogoIcon, Menu as DropdownMenu, Menu, MenuCheckboxItem as DropdownMenuCheckboxItem, MenuCheckboxItem, MenuPopup as DropdownMenuContent, MenuPopup, MenuCreateHandle as DropdownMenuCreateHandle, MenuCreateHandle, MenuGroup as DropdownMenuGroup, MenuGroup, MenuItem as DropdownMenuItem, MenuItem, MenuGroupLabel as DropdownMenuLabel, MenuGroupLabel, MenuPortal as DropdownMenuPortal, MenuPortal, MenuRadioGroup as DropdownMenuRadioGroup, MenuRadioGroup, MenuRadioItem as DropdownMenuRadioItem, MenuRadioItem, MenuSeparator as DropdownMenuSeparator, MenuSeparator, MenuShortcut as DropdownMenuShortcut, MenuShortcut, MenuSub as DropdownMenuSub, MenuSub, MenuSubPopup as DropdownMenuSubContent, MenuSubPopup, MenuSubTrigger as DropdownMenuSubTrigger, MenuSubTrigger, MenuTrigger as DropdownMenuTrigger, MenuTrigger, Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity, FileInput, Form, Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle, GitHubLogoIcon, HexColorPicker, PreviewCard as HoverCard, PreviewCard, PreviewCardPopup as HoverCardContent, PreviewCardPopup, PreviewCardTrigger as HoverCardTrigger, PreviewCardTrigger, INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, InlineRenameInput, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, InspectorEmptyRow, InspectorEntityTab, InspectorFacetBar, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle, KANBAN_BAND_CAPTION_ROW_HEIGHT, KANBAN_BAND_CAPTION_ROW_HEIGHT_PX, KANBAN_BAND_PEEK_DELAY_MS, KANBAN_BAND_PEEK_LINGER_MS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_CARD_DRAG_MIME, KANBAN_CARD_STICKY_TOP_VAR, KANBAN_CHROME_ROW_HEIGHT, KANBAN_CHROME_ROW_HEIGHT_PX, KANBAN_COLLAPSED_BAND_WIDTH_CLASS, KANBAN_COLLAPSED_BAND_WIDTH_PX, KANBAN_COLUMN_GAP_PX, KANBAN_COLUMN_WIDTH_CLASS, KANBAN_COLUMN_WIDTH_PX, KANBAN_STICKY_TOP_VAR, KANBAN_VIRTUAL_CELL_PAGINATION, KanbanCardShell, KanbanCellAction, KanbanCollapsedBandCaption, KanbanColumnBandHeader, KanbanColumnHeader, KanbanSubgroupBoard, KanbanVirtualCell, Label, List, ListEmpty, ListGroup, ListGroupAction, ListGroupCount, ListGroupDescription, ListGroupHeader, ListGroupHeading, ListGroupTitle, ListItem, ListItemActions, ListItemContent, ListItemDescription, ListItemMedia, ListItemStatus, ListItemTitle, MenuPreviewLayout, MenuSection, OUTLINE_CONTROL_MIN_SIZE, OUTLINE_EMPHASIS, OVERLAY_COLLISION_PADDING, OVERLAY_LAYER_CLASS_NAMES, OutlineRail, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, Prose, ResourceCalendar, ReviewAuthorAvatar, ReviewCommentCard, ReviewDecisionActions, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffText, ReviewOutOfDateNotice, ReviewSeverityDot, ReviewStatusBadge, ReviewStatusDot, SHELL_CHROME_LAYER_CLASS_NAME, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, SearchField, SecretInput, SegmentedIconToggle, Select, SelectPopup as SelectContent, SelectPopup, SelectGroup, SelectGroupLabel, SelectItem, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBackdrop, SheetBackdrop as SheetOverlay, SheetClose, SheetPopup as SheetContent, SheetPopup, SheetDescription, SheetFooter, SheetHeader, SheetPanel, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, SortableHead, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextSeparator, Textarea, ToastProvider, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger, UNKNOWN_AUTHOR_LABEL, UserText, WorkspaceEndRail, WorkspaceShell, XLogoIcon, assertConsecutiveCalendarDates, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, entityTabGlyph, findTableColumn, getFirstWeekday, getInitials, getKanbanBoardColumnIdentity, getKanbanBoardLaneIdentity, getKanbanGroupingPropertyId, getKanbanGroups, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hasKanbanColumnBands, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, outlineEntryText, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanColumnBands, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sidebarIdentityTriggerClassName, sortableColumnIds, stellaToast, tableColumnIds, tableColumnSizing, toastCountdownMs, toastDedupeId, typedCharacter, useContentDir, useCopiedFeedback, useCopyConfirmation, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useLatest, useSidebar, useSidebarInlineSize, useSidebarLayout, useViewportWidth, visibleColumnIds };
103
+ export { APPLICATION_RAIL_BUTTON_SIZE, APPLICATION_RAIL_ICON_SIZE, APPLICATION_RAIL_WIDTH, Accordion, AccordionPanel as AccordionContent, AccordionPanel, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogBackdrop, AlertDialogBackdrop as AlertDialogOverlay, AlertDialogClose, AlertDialogPopup as AlertDialogContent, AlertDialogPopup, AlertDialogCreateHandle, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogPanel, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertDialogViewport, AnchoredToastProvider, ApplicationRail, ApplicationRailButton, ApplicationRailContent, ApplicationRailFooter, ApplicationRailHeader, ApplicationRailMenu, ApplicationRailSeparator, Avatar, AvatarFallback, AvatarImage, BOARD_DRAG_OVERLAY_Z_INDEX, BUTTON_CONTENT, BUTTON_SIZE_CONTENT, BidiText, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, CONTROL_SIZE, CONTROL_SIZES, COPIED_RESET_MS, CalendarCell, CalendarEntryButton, CalendarEntrySurface, CalendarGrid, CalendarHeaderCell, CalendarHeaderRow, Checkbox, ColorPicker, ColorPickerContent, Combobox, ComboboxChip, ComboboxChips, ComboboxChipsInput, ComboboxClear, ComboboxCollection, ComboboxEmpty, ComboboxGroup, ComboboxGroupLabel, ComboboxInput, ComboboxItem, ComboboxList, ComboboxPopup, ComboboxRow, ComboboxSeparator, ComboboxStatus, ComboboxTrigger, ComboboxValue, Command, CommandCollection, CommandDialog, CommandDialogPopup, CommandDialogTrigger, CommandEmpty, CommandFooter, CommandGroup, CommandGroupLabel, CommandInput, CommandItem, CommandList, CommandPanel, CommandSeparator, CommandShortcut, CopyButton, CopyFeedback, DEFAULT_PRESETS, DIALOG_MOBILE_LAYOUT, DataTable, DatePickerPopover, DestructiveActionConfirmation, DestructiveConfirmDialog, DetailsGrid, DetailsItem, Dialog, DialogBackdrop, DialogBackdrop as DialogOverlay, DialogClose, DialogPopup as DialogContent, DialogPopup, DialogCreateHandle, DialogDescription, DialogFooter, DialogFormState, DialogHeader, DialogPanel, DialogPortal, DialogProvider, DialogTitle, DialogTrigger, DialogViewport, DirectionalIcon, DiscordLogoIcon, Menu as DropdownMenu, Menu, MenuCheckboxItem as DropdownMenuCheckboxItem, MenuCheckboxItem, MenuPopup as DropdownMenuContent, MenuPopup, MenuCreateHandle as DropdownMenuCreateHandle, MenuCreateHandle, MenuGroup as DropdownMenuGroup, MenuGroup, MenuItem as DropdownMenuItem, MenuItem, MenuGroupLabel as DropdownMenuLabel, MenuGroupLabel, MenuPortal as DropdownMenuPortal, MenuPortal, MenuRadioGroup as DropdownMenuRadioGroup, MenuRadioGroup, MenuRadioItem as DropdownMenuRadioItem, MenuRadioItem, MenuSeparator as DropdownMenuSeparator, MenuSeparator, MenuShortcut as DropdownMenuShortcut, MenuShortcut, MenuSub as DropdownMenuSub, MenuSub, MenuSubPopup as DropdownMenuSubContent, MenuSubPopup, MenuSubTrigger as DropdownMenuSubTrigger, MenuSubTrigger, MenuTrigger as DropdownMenuTrigger, MenuTrigger, Field, FieldControl, FieldDescription, FieldError, FieldItem, FieldLabel, FieldValidity, FileInput, Form, Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, FrameTitle, GitHubLogoIcon, HexColorPicker, PreviewCard as HoverCard, PreviewCard, PreviewCardPopup as HoverCardContent, PreviewCardPopup, PreviewCardTrigger as HoverCardTrigger, PreviewCardTrigger, INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, InlineRenameInput, Input, InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Inspector, InspectorActions, InspectorContent, InspectorDescription, InspectorDock, InspectorEmptyRow, InspectorEntityTab, InspectorFacetBar, InspectorHeader, InspectorHeaderText, InspectorProperty, InspectorPropertyLabel, InspectorPropertyList, InspectorPropertyValue, InspectorRail, InspectorRailCell, InspectorRailContent, InspectorRailFooter, InspectorRailIconButton, InspectorRailTab, InspectorSection, InspectorSectionTitle, InspectorTitle, KANBAN_BAND_CAPTION_ROW_HEIGHT, KANBAN_BAND_CAPTION_ROW_HEIGHT_PX, KANBAN_BAND_PEEK_DELAY_MS, KANBAN_BAND_PEEK_LINGER_MS, KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_BOARD_AXES, KANBAN_CARD_DRAG_MIME, KANBAN_CARD_STICKY_TOP_VAR, KANBAN_CHROME_ROW_HEIGHT, KANBAN_CHROME_ROW_HEIGHT_PX, KANBAN_COLLAPSED_BAND_WIDTH_CLASS, KANBAN_COLLAPSED_BAND_WIDTH_PX, KANBAN_COLUMN_GAP_PX, KANBAN_COLUMN_WIDTH_CLASS, KANBAN_COLUMN_WIDTH_PX, KANBAN_STICKY_TOP_VAR, KANBAN_VIRTUAL_CELL_PAGINATION, KanbanCardShell, KanbanCellAction, KanbanCollapsedBandCaption, KanbanColumnBandHeader, KanbanColumnHeader, KanbanSubgroupBoard, KanbanVirtualCell, Label, List, ListEmpty, ListGroup, ListGroupAction, ListGroupCount, ListGroupDescription, ListGroupHeader, ListGroupHeading, ListGroupTitle, ListItem, ListItemActions, ListItemContent, ListItemDescription, ListItemMedia, ListItemStatus, ListItemTitle, MenuPreviewLayout, MenuSection, OUTLINE_CONTROL_MIN_SIZE, OUTLINE_EMPHASIS, OVERLAY_COLLISION_PADDING, OVERLAY_LAYER_CLASS_NAMES, OutlineRail, PROPERTY_ROW_GRID, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PanelTrigger, Popover, PopoverClose, PopoverPopup as PopoverContent, PopoverPopup, PopoverCreateHandle, PopoverDescription, PopoverPanel, PopoverTitle, PopoverTrigger, PreviewCardPrimitive, PreviewPane, Prose, ResourceCalendar, ReviewAuthorAvatar, ReviewCommentCard, ReviewDecisionActions, ReviewDiffDeletion, ReviewDiffInsertion, ReviewDiffText, ReviewOutOfDateNotice, ReviewSeverityDot, ReviewStatusBadge, ReviewStatusDot, SHELL_CHROME_LAYER_CLASS_NAME, SIDEBAR_WIDTH_ICON_PX, SIDEBAR_WIDTH_PX, SIDE_RAIL_CONTAINER_CLASS, SIDE_RAIL_ICON_BUTTON_SIZE, SIDE_RAIL_TAB_ICON_SIZE, SIDE_RAIL_WIDTH, ScrollArea, ScrollBar, ScrollToTop, SearchField, SecretInput, SegmentedIconToggle, Select, SelectPopup as SelectContent, SelectPopup, SelectGroup, SelectGroupLabel, SelectItem, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetBackdrop, SheetBackdrop as SheetOverlay, SheetClose, SheetPopup as SheetContent, SheetPopup, SheetDescription, SheetFooter, SheetHeader, SheetPanel, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, SortableHead, StellaMark, StellaWordmarkLatin, TOAST_RIGHT_OFFSET_VAR, TOOLBAR_ROW_HEIGHT, TOOLBAR_ROW_HEIGHT_PX, TRACKED_DELETION_STYLE, TRACKED_INSERTION_STYLE, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger, TextSeparator, Textarea, ToastProvider, Tooltip, TooltipPopup as TooltipContent, TooltipPopup, TooltipCreateHandle, TooltipProvider, TooltipTrigger, UNKNOWN_AUTHOR_LABEL, UserText, WorkspaceEndRail, WorkspaceShell, XLogoIcon, assertConsecutiveCalendarDates, buildKanbanBoardMatrix, buttonAccessibleDisabledClass, buttonVariants, cn, composeRefs, containedEventHandler, containedHandler, contentDir, createKanbanDropIntent, duplicateColumnIds, emptyColor, entityTabGlyph, findTableColumn, getFirstWeekday, getInitials, getKanbanBoardColumnIdentity, getKanbanBoardLaneIdentity, getKanbanGroupingPropertyId, getKanbanGroups, getLocaleWeekInfo, getResourceCalendarPlacement, getWeekendDays, hasKanbanColumnBands, hideableColumnIds, isKanbanGroupingRenderable, isStructuredInputType, layoutResourceCalendarEntries, nextCalendarDate, optionColors, orderKanbanCellsByColumns, outlineEntryText, registerKanbanBoardAutoScroll, registerKanbanCardDrag, resolveDragWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, resolveKanbanColumnBands, resolveKanbanGroupOptions, resolveKanbanGrouping, resolveKeyboardWidth, resolveOptionColor, resolveToastUpdateTimeout, reviewDiffSegmentKeys, reviewSeverityTone, selectKanbanCardFieldIds, selectKanbanRows, shouldForceSidebarCollapsed, sidebarIdentityTriggerClassName, sortableColumnIds, stellaToast, tableColumnIds, tableColumnSizing, toastCountdownMs, toastDedupeId, typedCharacter, useContentDir, useCopiedFeedback, useCopyConfirmation, useDestructiveActionConfirmation, useInspectorPaneWidth, useIsMobile, useLatest, useSidebar, useSidebarInlineSize, useSidebarLayout, useViewportWidth, visibleColumnIds };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stll/ui",
3
- "version": "0.53.0",
3
+ "version": "0.54.1",
4
4
  "description": "Stella's design system: bidi-aware React primitives built on Base UI, the dockable inspector pane, and the Tailwind v4 theme they are styled with.",
5
5
  "keywords": [
6
6
  "base-ui",
@@ -732,6 +732,7 @@
732
732
  "pack:dry-run": "bun pm pack --dry-run",
733
733
  "test": "bun run test:unit",
734
734
  "test:unit": "bun test src --path-ignore-patterns '**/*.playwright.spec.ts'",
735
+ "test:property": "bun test --preload @stll/property-testing/preload $(grep -rlE 'fc\\.assert|assertProperty' src --include='*.test.ts')",
735
736
  "test:browser": "playwright test --config playwright.config.ts",
736
737
  "pack:check": "cd ../.. && bun scripts/check-published-exports.ts packages/ui",
737
738
  "typecheck": "bun check --no-pretty --all --project=tsconfig.json",
@@ -754,6 +755,7 @@
754
755
  "@base-ui/react": "1.9.0",
755
756
  "@happy-dom/global-registrator": "21.0.4",
756
757
  "@playwright/test": "^1.63.0",
758
+ "@stll/playwright-tools": "0.0.0",
757
759
  "@stll/property-testing": "0.0.0",
758
760
  "@stll/typescript-config": "0.0.0",
759
761
  "@tailwindcss/vite": "4.3.3",