@ctrl-ui/react 0.8.8 → 0.8.9

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.
Files changed (59) hide show
  1. package/dist/action-bar.js +2 -2
  2. package/dist/activity.js +1 -1
  3. package/dist/blocks/design-canvas-inspector.js +2 -2
  4. package/dist/blocks/design-canvas.js +2 -2
  5. package/dist/blocks/discussion.js +1 -1
  6. package/dist/blocks/file-explorer.js +2 -2
  7. package/dist/blocks/settings.js +3 -3
  8. package/dist/chat-composer-editor/extensions/mention.js +1 -1
  9. package/dist/chat-composer.js +1 -1
  10. package/dist/chat-layout.js +1 -1
  11. package/dist/context.js +1 -1
  12. package/dist/dynamic-notification.js +1 -1
  13. package/dist/filter-bar/parts.js +1 -1
  14. package/dist/filter-bar.js +1 -1
  15. package/dist/inline-citation.js +1 -1
  16. package/dist/lib/phone-input-format.js +1 -1
  17. package/dist/styles/recipes/sidebar-menu.css +21 -4
  18. package/dist/styles/recipes/sidebar-parts.css +38 -0
  19. package/dist/styles/recipes/sidebar.css +2 -1
  20. package/dist/ui/alert-dialog.js +1 -1
  21. package/dist/ui/alert.js +1 -1
  22. package/dist/ui/autocomplete.js +1 -1
  23. package/dist/ui/breadcrumb.js +1 -1
  24. package/dist/ui/button.js +2 -2
  25. package/dist/ui/card.js +1 -1
  26. package/dist/ui/code-diff.js +1 -1
  27. package/dist/ui/code.js +2 -2
  28. package/dist/ui/collapsible.js +1 -1
  29. package/dist/ui/color-picker.js +1 -1
  30. package/dist/ui/combobox.js +1 -1
  31. package/dist/ui/context-menu.js +1 -1
  32. package/dist/ui/dialog.js +1 -1
  33. package/dist/ui/drawer.js +1 -1
  34. package/dist/ui/dropdown-menu.js +1 -1
  35. package/dist/ui/empty.js +1 -1
  36. package/dist/ui/hover-card.js +1 -1
  37. package/dist/ui/input-group.js +1 -1
  38. package/dist/ui/item.js +1 -1
  39. package/dist/ui/menubar.js +1 -1
  40. package/dist/ui/morphing-panel.js +1 -1
  41. package/dist/ui/navigation-menu.js +1 -1
  42. package/dist/ui/phone-input.js +2 -2
  43. package/dist/ui/popover.js +1 -1
  44. package/dist/ui/rich-tooltip.js +1 -1
  45. package/dist/ui/select.js +1 -1
  46. package/dist/ui/sheet.js +1 -1
  47. package/dist/ui/sidebar-menu.js +6 -4
  48. package/dist/ui/sidebar-provider.js +2 -2
  49. package/dist/ui/sidebar-resize-rail.js +1 -1
  50. package/dist/ui/sidebar.js +4 -3
  51. package/dist/ui/timeline.js +1 -1
  52. package/dist/ui/toast.js +1 -1
  53. package/dist/ui/toolbar.d.ts +1 -1
  54. package/dist/ui/toolbar.js +1 -1
  55. package/dist/ui/tooltip.js +1 -1
  56. package/dist/ui/tree.js +1 -1
  57. package/dist/ui/trigger-menu.js +1 -1
  58. package/dist/user-ask.js +2 -2
  59. package/package.json +1 -1
@@ -1,11 +1,11 @@
1
1
  "use client";
2
- import { useCopyToClipboard } from "./hooks/use-copy-to-clipboard.js";
3
2
  import { cn } from "./lib/cn.js";
4
3
  import { Button } from "./ui/button.js";
5
4
  import { LiveStatus } from "./ui/live-status.js";
6
- import { Toolbar } from "@base-ui/react/toolbar";
5
+ import { useCopyToClipboard } from "./hooks/use-copy-to-clipboard.js";
7
6
  import { createContext, useContext } from "react";
8
7
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
+ import { Toolbar } from "@base-ui/react/toolbar";
9
9
  //#region src/action-bar.tsx
10
10
  const ActionBarContext = createContext({});
11
11
  async function resolveCopyValue(value) {
package/dist/activity.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { cn } from "./lib/cn.js";
3
3
  import { LiveStatus } from "./ui/live-status.js";
4
- import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./ui/collapsible.js";
5
4
  import { ScrollArea } from "./ui/scroll-area.js";
5
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./ui/collapsible.js";
6
6
  import { createContext, useContext } from "react";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  import { Check, ChevronRight, CircleAlert, CircleDashed, LoaderCircle } from "lucide-react";
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import { Button } from "../ui/button.js";
3
3
  import { InputGroup, InputGroupAddon } from "../ui/input-group.js";
4
+ import { Empty, EmptyDescription, EmptyHeader, EmptyTitle } from "../ui/empty.js";
5
+ import { Separator } from "../ui/separator.js";
4
6
  import { resizeDesignCanvasLayer } from "./design-canvas-data.js";
5
7
  import { NumberField, NumberFieldGroup, NumberFieldInput, NumberFieldScrubArea } from "../ui/number-field.js";
6
8
  import { ColorPicker, ColorPickerArea, ColorPickerContent, ColorPickerEyeDropper, ColorPickerHue, ColorPickerInput, ColorPickerTrigger } from "../ui/color-picker.js";
7
- import { Empty, EmptyDescription, EmptyHeader, EmptyTitle } from "../ui/empty.js";
8
- import { Separator } from "../ui/separator.js";
9
9
  import { Toggle } from "../ui/toggle.js";
10
10
  import { useState } from "react";
11
11
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -3,12 +3,12 @@ import { cn } from "../lib/cn.js";
3
3
  import { Button } from "../ui/button.js";
4
4
  import { ScrollArea } from "../ui/scroll-area.js";
5
5
  import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "../ui/tooltip.js";
6
- import { createDesignCanvasLayer, designCanvasFillColor, drawnDesignCanvasBounds } from "./design-canvas-data.js";
7
- import { DesignCanvasInspector } from "./design-canvas-inspector.js";
8
6
  import { Drawer, DrawerContent, DrawerTitle } from "../ui/drawer.js";
9
7
  import { InfiniteCanvas, InfiniteCanvasContent, InfiniteCanvasControls, InfiniteCanvasItem } from "../ui/infinite-canvas.js";
10
8
  import { ResizableFloatingPanel } from "../ui/resizable.js";
11
9
  import { Toolbar, ToolbarButton, ToolbarGroup, ToolbarSeparator } from "../ui/toolbar.js";
10
+ import { createDesignCanvasLayer, designCanvasFillColor, drawnDesignCanvasBounds } from "./design-canvas-data.js";
11
+ import { DesignCanvasInspector } from "./design-canvas-inspector.js";
12
12
  import { useRef, useState } from "react";
13
13
  import { jsx, jsxs } from "react/jsx-runtime";
14
14
  import { CircleIcon, FrameIcon, LayersIcon, MousePointer2Icon, SlidersHorizontalIcon, SquareIcon, TypeIcon } from "lucide-react";
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { Button } from "../ui/button.js";
3
+ import { Kbd, KbdGroup } from "../ui/kbd.js";
3
4
  import { ChatComposer, ChatComposerShell, ChatComposerSubmit, ChatComposerTextarea, ChatComposerToolbar } from "../chat-composer.js";
4
5
  import { ChatMessageReplies } from "../chat-message/social.js";
5
6
  import { ChatMessage, ChatMessageActions, ChatMessageAuthor, ChatMessageAvatar, ChatMessageBody, ChatMessageContent, ChatMessageFooter, ChatMessageHeader, ChatMessageRow, ChatMessageTime } from "../chat-message.js";
6
- import { Kbd, KbdGroup } from "../ui/kbd.js";
7
7
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
8
  import { CornerDownRightIcon } from "lucide-react";
9
9
  //#region src/blocks/discussion.tsx
@@ -5,15 +5,15 @@ import { LiveStatus } from "../ui/live-status.js";
5
5
  import { ScrollArea } from "../ui/scroll-area.js";
6
6
  import { InputGroup, InputGroupAddon } from "../ui/input-group.js";
7
7
  import { Input } from "../ui/input.js";
8
+ import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from "../ui/empty.js";
8
9
  import { SidebarProvider, useSidebar } from "../ui/sidebar-provider.js";
9
10
  import { SidebarGroup, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem } from "../ui/sidebar-menu.js";
10
11
  import { Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarInset, SidebarRail, SidebarTrigger } from "../ui/sidebar.js";
11
- import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from "../ui/empty.js";
12
12
  import { Drawer, DrawerBody, DrawerContent, DrawerTitle, DrawerTrigger } from "../ui/drawer.js";
13
13
  import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "../ui/resizable.js";
14
14
  import { groupFileExplorerItems, orderFileExplorerEntries, resolveFileExplorer, searchFileExplorer } from "./file-explorer-data.js";
15
- import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "../ui/breadcrumb.js";
16
15
  import { DropdownMenu, DropdownMenuContent, DropdownMenuTrigger } from "../ui/dropdown-menu.js";
16
+ import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "../ui/breadcrumb.js";
17
17
  import { Fragment, useEffect, useId, useRef, useState } from "react";
18
18
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
19
19
  import { ChevronLeftIcon, ChevronRightIcon, FileIcon, FolderIcon, MoreHorizontalIcon, SearchIcon, XIcon } from "lucide-react";
@@ -2,16 +2,16 @@
2
2
  import { cn } from "../lib/cn.js";
3
3
  import { Button } from "../ui/button.js";
4
4
  import { LiveStatus } from "../ui/live-status.js";
5
- import { ScrollArea } from "../ui/scroll-area.js";
6
5
  import { prefersReducedMotion } from "../lib/motion.js";
6
+ import { ScrollArea } from "../ui/scroll-area.js";
7
7
  import { InputGroup, InputGroupAddon } from "../ui/input-group.js";
8
8
  import { Input } from "../ui/input.js";
9
+ import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from "../ui/empty.js";
10
+ import { Field, FieldContent, FieldDescription, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet } from "../ui/field.js";
9
11
  import { SidebarProvider, useSidebar } from "../ui/sidebar-provider.js";
10
12
  import { SidebarGroup, SidebarGroupLabel, SidebarMenu, SidebarMenuButton, SidebarMenuItem } from "../ui/sidebar-menu.js";
11
13
  import { Sidebar, SidebarContent, SidebarHeader, SidebarInset, SidebarTrigger } from "../ui/sidebar.js";
12
- import { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from "../ui/empty.js";
13
14
  import { searchSettings } from "./settings-data.js";
14
- import { Field, FieldContent, FieldDescription, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet } from "../ui/field.js";
15
15
  import { useEffect, useId, useState } from "react";
16
16
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
17
17
  import { ArrowLeftIcon, SearchIcon, XIcon } from "lucide-react";
@@ -2,8 +2,8 @@
2
2
  import { LiveStatus } from "../../ui/live-status.js";
3
3
  import { isComposingKey, useTriggerMenu } from "../../hooks/use-trigger-menu.js";
4
4
  import { spawnExitGhost } from "../ghost.js";
5
- import { detectTrigger } from "../../lib/trigger-detect.js";
6
5
  import { TriggerMenu, TriggerMenuEmpty, TriggerMenuIcon, TriggerMenuItem, TriggerMenuList } from "../../ui/trigger-menu.js";
6
+ import { detectTrigger } from "../../lib/trigger-detect.js";
7
7
  import { useEffect } from "react";
8
8
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
9
9
  //#region src/chat-composer-editor/extensions/mention.tsx
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "./lib/cn.js";
3
2
  import { hasSkinAdornment, skinAdornment } from "./skin.js";
3
+ import { cn } from "./lib/cn.js";
4
4
  import { useSkin } from "./skin-provider.js";
5
5
  import { Button } from "./ui/button.js";
6
6
  import { Spinner } from "./ui/spinner.js";
@@ -7,9 +7,9 @@ import { ScrollArea } from "./ui/scroll-area.js";
7
7
  import { ChatThreadAnnounceContext } from "./hooks/use-chat-message.js";
8
8
  import { useChatThreadScroll } from "./hooks/use-chat-thread-scroll.js";
9
9
  import { createContext, useContext, useState } from "react";
10
- import { useRender } from "@base-ui/react/use-render";
11
10
  import { jsx, jsxs } from "react/jsx-runtime";
12
11
  import { ArrowDown } from "lucide-react";
12
+ import { useRender } from "@base-ui/react/use-render";
13
13
  //#region src/chat-layout.tsx
14
14
  const chromeSizing = {
15
15
  panel: "mx-auto min-h-[640px] max-w-3xl",
package/dist/context.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { cn } from "./lib/cn.js";
3
3
  import { Button } from "./ui/button.js";
4
+ import { Popover, PopoverClose, PopoverContent, PopoverDescription, PopoverTitle, PopoverTrigger } from "./ui/popover.js";
4
5
  import { ScrollArea } from "./ui/scroll-area.js";
5
6
  import { deriveContextModel } from "./context-model.js";
6
- import { Popover, PopoverClose, PopoverContent, PopoverDescription, PopoverTitle, PopoverTrigger } from "./ui/popover.js";
7
7
  import { createContext, useContext, useId, useMemo } from "react";
8
8
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
9
9
  import { X } from "lucide-react";
@@ -2,8 +2,8 @@
2
2
  import { cn } from "./lib/cn.js";
3
3
  import { Button } from "./ui/button.js";
4
4
  import { LiveStatus } from "./ui/live-status.js";
5
- import { createDynamicNotificationGlass } from "./dynamic-notification-glass.js";
6
5
  import { createDynamicNotificationLiquid } from "./dynamic-notification-liquid.js";
6
+ import { createDynamicNotificationGlass } from "./dynamic-notification-glass.js";
7
7
  import { useDynamicNotification } from "./hooks/use-dynamic-notification.js";
8
8
  import { createContext, useContext, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -5,9 +5,9 @@ import { useFilterBarContext } from "./context.js";
5
5
  import { describeFilter, formatFilterValue } from "./model.js";
6
6
  import { FilterBarEditor, FilterBarInlineInput } from "./editor.js";
7
7
  import { useEffect, useId, useRef } from "react";
8
- import { useRender } from "@base-ui/react/use-render";
9
8
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
10
9
  import { PlusIcon, XIcon } from "lucide-react";
10
+ import { useRender } from "@base-ui/react/use-render";
11
11
  //#region src/filter-bar/parts.tsx
12
12
  function chipSegments(item, field, operator, draft) {
13
13
  const segments = [{
@@ -6,8 +6,8 @@ import { describeFilter, fieldOperators, filterNavigationKeys } from "./filter-b
6
6
  import { filterMotionEnabled, useFilterBarMotion } from "./filter-bar/motion.js";
7
7
  import { FilterBarAddButton, FilterBarChip, FilterBarChips, FilterBarClear, FilterBarInput } from "./filter-bar/parts.js";
8
8
  import { useState } from "react";
9
- import { useRender } from "@base-ui/react/use-render";
10
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
+ import { useRender } from "@base-ui/react/use-render";
11
11
  //#region src/filter-bar.tsx
12
12
  function valueStatusMessage(field) {
13
13
  if (field?.error) return typeof field.error === "string" ? field.error : "Couldn’t load values.";
@@ -2,8 +2,8 @@
2
2
  import { cn } from "./lib/cn.js";
3
3
  import { Button } from "./ui/button.js";
4
4
  import { LiveStatus } from "./ui/live-status.js";
5
- import { Popover, PopoverContent, PopoverTrigger } from "./ui/popover.js";
6
5
  import { SourceFavicon, sourceHostname } from "./source-badge.js";
6
+ import { Popover, PopoverContent, PopoverTrigger } from "./ui/popover.js";
7
7
  import { createContext, useContext, useRef, useState } from "react";
8
8
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
9
9
  import { ArrowLeft, ArrowRight, ExternalLink } from "lucide-react";
@@ -1,5 +1,5 @@
1
- import { AsYouType } from "libphonenumber-js/max";
2
1
  import { getCountryCallingCode } from "react-phone-number-input/max";
2
+ import { AsYouType } from "libphonenumber-js/max";
3
3
  //#region src/lib/phone-input-format.ts
4
4
  function normalizePhoneInputText(value, country) {
5
5
  if (!country) return value;
@@ -11,6 +11,7 @@
11
11
  }
12
12
 
13
13
  :where([data-control-family="sidebar"][data-slot="menu-button"]) {
14
+ inline-size: 100%;
14
15
  gap: calc(var(--spacing) * 1.5);
15
16
  block-size: var(--cui-sidebar-menu-button-height);
16
17
  border-radius: var(--cui-sidebar-menu-button-radius);
@@ -24,18 +25,24 @@
24
25
 
25
26
  :where([data-control-family="sidebar"][data-slot="menu-button"][data-size="sm"]) {
26
27
  --cui-sidebar-menu-button-height: var(--control-h-sm);
27
- --cui-sidebar-menu-button-padding-inline: calc(var(--padding-x) * 0.75);
28
28
  --cui-sidebar-menu-button-font-size: var(--text-label);
29
29
  }
30
30
 
31
31
  :where([data-control-family="sidebar"][data-slot="menu-button"][data-size="lg"]) {
32
32
  --cui-sidebar-menu-button-height: var(--control-h-lg);
33
- --cui-sidebar-menu-button-padding-inline: calc(var(--padding-x) * 1.25);
34
33
  gap: calc(var(--spacing) * 2);
35
34
  }
36
35
 
37
- :where([data-control-family="sidebar"][data-collapsible="icon"] [data-control-family="sidebar"][data-slot="menu-button"]) {
38
- --cui-sidebar-menu-button-padding-inline: 0px;
36
+ :where(
37
+ [data-control-family="sidebar"][data-collapsible="icon"] [data-control-family="sidebar"][data-slot="menu-button"] > :not(:first-child)
38
+ ) {
39
+ position: absolute;
40
+ inline-size: 1px;
41
+ block-size: 1px;
42
+ overflow: hidden;
43
+ clip-path: inset(50%);
44
+ opacity: 0;
45
+ white-space: nowrap;
39
46
  }
40
47
 
41
48
  :where([data-control-family="sidebar"][data-slot="menu-action"]) {
@@ -262,4 +269,14 @@
262
269
  padding-inline-end: calc(var(--touch-target) + var(--spacing) * 10);
263
270
  }
264
271
  }
272
+
273
+ :where([data-control-family="sidebar"][data-collapsible="icon"] [data-control-family="sidebar"][data-slot="menu-button"]) {
274
+ --cui-sidebar-menu-button-padding-inline: 0px;
275
+ inline-size: calc(var(--sidebar-width-icon) - var(--spacing) * 4);
276
+ max-inline-size: 100%;
277
+ padding-inline: var(--cui-sidebar-menu-button-padding-inline);
278
+ justify-content: center;
279
+ gap: 0;
280
+ overflow: visible;
281
+ }
265
282
  }
@@ -1,4 +1,42 @@
1
1
  @layer components {
2
+ :where([data-control-family="sidebar"][data-slot="container"]) {
3
+ translate: 0;
4
+ transition:
5
+ width var(--duration-base) var(--ease-standard),
6
+ translate var(--duration-base) var(--ease-standard);
7
+ }
8
+
9
+ :where([data-control-family="sidebar"][data-slot="inner"]) {
10
+ transition: padding var(--duration-base) var(--ease-standard);
11
+ }
12
+
13
+ :where([data-control-family="sidebar"][data-collapsible="offcanvas"][data-side="left"]:dir(ltr) [data-slot="container"]),
14
+ :where([data-control-family="sidebar"][data-collapsible="offcanvas"][data-side="right"]:dir(rtl) [data-slot="container"]) {
15
+ translate: -100% 0;
16
+ }
17
+
18
+ :where([data-control-family="sidebar"][data-collapsible="offcanvas"][data-side="right"]:dir(ltr) [data-slot="container"]),
19
+ :where([data-control-family="sidebar"][data-collapsible="offcanvas"][data-side="left"]:dir(rtl) [data-slot="container"]) {
20
+ translate: 100% 0;
21
+ }
22
+
23
+ :where(
24
+ [data-control-family="sidebar"][data-slot="wrapper"][data-resizing]
25
+ [data-control-family="sidebar"]:is([data-slot="container"], [data-slot="gap"], [data-slot="inner"])
26
+ ),
27
+ :where(
28
+ [data-control-family="sidebar"][data-slot="wrapper"]:has([data-control-family="sidebar"][data-slot="rail"]:focus-visible)
29
+ [data-control-family="sidebar"]:is([data-slot="container"], [data-slot="gap"], [data-slot="inner"])
30
+ ) {
31
+ transition: none;
32
+ }
33
+
34
+ @media (prefers-reduced-motion: reduce) {
35
+ :where([data-control-family="sidebar"]:is([data-slot="container"], [data-slot="gap"], [data-slot="inner"])) {
36
+ transition: none;
37
+ }
38
+ }
39
+
2
40
  :where([data-control-family="sidebar"][data-slot="rail"]) {
3
41
  inline-size: calc(var(--spacing) * 4);
4
42
  background-image: linear-gradient(var(--cui-sidebar-rail-divider-background), var(--cui-sidebar-rail-divider-background));
@@ -69,7 +69,7 @@
69
69
  --cui-sidebar-group-label-padding: 0px calc(var(--spacing) * 2);
70
70
  --cui-sidebar-menu-button-height: var(--control-h-md);
71
71
  --cui-sidebar-menu-button-padding-block: 0px;
72
- --cui-sidebar-menu-button-padding-inline: var(--padding-x);
72
+ --cui-sidebar-menu-button-padding-inline: calc(var(--sidebar-width-icon) / 2 - var(--spacing) * 4);
73
73
  --cui-sidebar-menu-button-font-size: var(--text-body);
74
74
  --cui-sidebar-menu-button-font-weight: 400;
75
75
  --cui-sidebar-menu-button-active-font-weight: 500;
@@ -96,6 +96,7 @@
96
96
 
97
97
  :where([data-control-family="sidebar"][data-slot="gap"]) {
98
98
  background-color: transparent;
99
+ transition: width var(--duration-base) var(--ease-standard);
99
100
  }
100
101
 
101
102
  :where([data-control-family="sidebar"][data-slot="root"][data-variant="sidebar"][data-side="left"] [data-slot="container"]) {
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { Button } from "./button.js";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
package/dist/ui/alert.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
- import { useRender } from "@base-ui/react/use-render";
4
3
  import { jsx } from "react/jsx-runtime";
4
+ import { useRender } from "@base-ui/react/use-render";
5
5
  //#region src/ui/alert.tsx
6
6
  const alertVariants = ["default", "destructive"];
7
7
  function Alert({ variant = "default", className, ...props }) {
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { ScrollArea } from "./scroll-area.js";
6
6
  import { popupItemStructureClasses } from "../surface-variants.js";
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
- import { useRender } from "@base-ui/react/use-render";
4
3
  import { jsx, jsxs } from "react/jsx-runtime";
5
4
  import { ChevronRight, MoreHorizontal } from "lucide-react";
5
+ import { useRender } from "@base-ui/react/use-render";
6
6
  //#region src/ui/breadcrumb.tsx
7
7
  function Breadcrumb({ className, ...props }) {
8
8
  return /* @__PURE__ */ jsx("nav", {
package/dist/ui/button.js CHANGED
@@ -1,11 +1,11 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { skinAdornment } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { Children, Fragment, createContext, isValidElement, useContext } from "react";
6
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
7
  import { Button as Button$1 } from "@base-ui/react/button";
7
8
  import { useRender } from "@base-ui/react/use-render";
8
- import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
9
9
  //#region src/ui/button.tsx
10
10
  const ButtonTrackContext = createContext(false);
11
11
  const buttonShapes = ["default", "circle"];
package/dist/ui/card.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
- import { useRender } from "@base-ui/react/use-render";
4
3
  import { jsx } from "react/jsx-runtime";
4
+ import { useRender } from "@base-ui/react/use-render";
5
5
  //#region src/ui/card.tsx
6
6
  function Card({ variant = "default", className, ...props }) {
7
7
  return /* @__PURE__ */ jsx("div", {
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
- import { ScrollArea } from "./scroll-area.js";
4
3
  import { highlightToTokens, mergeCodeTokenLineWithEmphasis } from "../lib/code-tokens.js";
4
+ import { ScrollArea } from "./scroll-area.js";
5
5
  import { CodeCopy, CodeFloatingCopy, CodeTokenLine } from "./code.js";
6
6
  import { buildDiffFromFiles, buildDiffFromPatch, diffRunEnd } from "../lib/diff.js";
7
7
  import { useEffect, useMemo, useRef, useState } from "react";
package/dist/ui/code.js CHANGED
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- import { useCopyToClipboard } from "../hooks/use-copy-to-clipboard.js";
3
2
  import { cn } from "../lib/cn.js";
4
3
  import { Button } from "./button.js";
5
4
  import { LiveStatus } from "./live-status.js";
6
- import { ScrollArea } from "./scroll-area.js";
5
+ import { useCopyToClipboard } from "../hooks/use-copy-to-clipboard.js";
7
6
  import { highlightToTokens } from "../lib/code-tokens.js";
7
+ import { ScrollArea } from "./scroll-area.js";
8
8
  import { Tooltip, TooltipContent, TooltipTrigger } from "./tooltip.js";
9
9
  import { Children, createContext, isValidElement, useContext, useEffect, useMemo, useRef, useState } from "react";
10
10
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
- import { useRender } from "@base-ui/react/use-render";
4
3
  import { jsx } from "react/jsx-runtime";
4
+ import { useRender } from "@base-ui/react/use-render";
5
5
  import { Collapsible as Collapsible$1 } from "@base-ui/react/collapsible";
6
6
  //#region src/ui/collapsible.tsx
7
7
  function CollapsibleTriggerElement({ triggerProps, open, render, className, children }) {
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { Button } from "./button.js";
6
6
  import { Input } from "./input.js";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { ScrollArea } from "./scroll-area.js";
6
6
  import { popupItemStructureClasses } from "../surface-variants.js";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { popupItemStructureClasses } from "../surface-variants.js";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
package/dist/ui/dialog.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute, skinAdornment } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { Button } from "./button.js";
6
6
  import { PopupCloseButton } from "../popup-parts.js";
package/dist/ui/drawer.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { createContext, useContext } from "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { popupItemStructureClasses } from "../surface-variants.js";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
package/dist/ui/empty.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
- import { useRender } from "@base-ui/react/use-render";
4
3
  import { jsx } from "react/jsx-runtime";
4
+ import { useRender } from "@base-ui/react/use-render";
5
5
  //#region src/ui/empty.tsx
6
6
  function Empty({ className, ...props }) {
7
7
  return /* @__PURE__ */ jsx("div", {
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  import { PreviewCard } from "@base-ui/react/preview-card";
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
3
  import { createContext, use } from "react";
4
- import { useRender } from "@base-ui/react/use-render";
5
4
  import { jsx } from "react/jsx-runtime";
5
+ import { useRender } from "@base-ui/react/use-render";
6
6
  //#region src/ui/input-group.tsx
7
7
  const InputGroupSurfaceContext = createContext(false);
8
8
  function useIsInsideInputGroup() {
package/dist/ui/item.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
3
  import { Separator } from "./separator.js";
4
- import { useRender } from "@base-ui/react/use-render";
5
4
  import { jsx } from "react/jsx-runtime";
5
+ import { useRender } from "@base-ui/react/use-render";
6
6
  //#region src/ui/item.tsx
7
7
  const itemVariants = [
8
8
  "default",
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { popupItemStructureClasses } from "../surface-variants.js";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
- import { useRender } from "@base-ui/react/use-render";
4
3
  import { jsx } from "react/jsx-runtime";
4
+ import { useRender } from "@base-ui/react/use-render";
5
5
  import { Collapsible } from "@base-ui/react/collapsible";
6
6
  //#region src/ui/morphing-panel.tsx
7
7
  function MorphingPanelTriggerElement({ triggerProps, open, render, className, children }) {
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  import { NavigationMenu as NavigationMenu$1 } from "@base-ui/react/navigation-menu";
@@ -3,12 +3,12 @@ import { cn } from "../lib/cn.js";
3
3
  import { Popover, PopoverContent, PopoverTrigger } from "./popover.js";
4
4
  import { InputGroup, InputGroupAddon } from "./input-group.js";
5
5
  import { Input } from "./input.js";
6
- import { normalizePhoneInputText, normalizePhoneInputValue } from "../lib/phone-input-format.js";
7
6
  import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList } from "./command.js";
7
+ import { normalizePhoneInputText, normalizePhoneInputValue } from "../lib/phone-input-format.js";
8
8
  import { useState } from "react";
9
9
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
10
- import PhoneNumberInput, { getCountryCallingCode, parsePhoneNumber } from "react-phone-number-input/max";
11
10
  import flags from "react-phone-number-input/flags";
11
+ import PhoneNumberInput, { getCountryCallingCode, parsePhoneNumber } from "react-phone-number-input/max";
12
12
  //#region src/ui/phone-input.tsx
13
13
  const FLAG_COMPONENTS = flags;
14
14
  const PhoneNumberInputWithRef = PhoneNumberInput;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  import { Popover as Popover$1 } from "@base-ui/react/popover";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { prefersReducedMotion } from "../lib/motion.js";
6
6
  import { PopupArrowShape } from "../popup-parts.js";
package/dist/ui/select.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { Button } from "./button.js";
6
6
  import { ScrollArea } from "./scroll-area.js";
package/dist/ui/sheet.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
6
  import { Dialog } from "@base-ui/react/dialog";
@@ -5,8 +5,8 @@ import { Tooltip, TooltipContent, TooltipTrigger } from "./tooltip.js";
5
5
  import { SidebarSurfaceContext, useSidebar } from "./sidebar-provider.js";
6
6
  import { TrackHighlight } from "../extensions/track-highlight.js";
7
7
  import { createContext, useContext, useRef, useState } from "react";
8
- import { useRender } from "@base-ui/react/use-render";
9
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
+ import { useRender } from "@base-ui/react/use-render";
10
10
  //#region src/ui/sidebar-menu.tsx
11
11
  const sidebarMenuButtonVariants = ["default", "outline"];
12
12
  const sidebarMenuButtonSizes = [
@@ -72,7 +72,7 @@ function SidebarMenu({ className, indicator, style, children, ...props }) {
72
72
  "data-control-family": "sidebar",
73
73
  "data-slot": "menu",
74
74
  "data-indicator": resolvedIndicator,
75
- className: cn("flex min-w-0 flex-col", hasHighlight ? void 0 : className),
75
+ className: cn("flex min-w-0 flex-col group-data-[collapsible=icon]:mx-0 group-data-[collapsible=icon]:border-0 group-data-[collapsible=icon]:px-0", hasHighlight ? void 0 : className),
76
76
  style: hasHighlight ? void 0 : style,
77
77
  ...props,
78
78
  children: /* @__PURE__ */ jsx(SidebarMenuContext.Provider, {
@@ -113,6 +113,7 @@ function SidebarMenuBadge({ className, ...props }) {
113
113
  function SidebarMenuButton({ render, isActive = false, variant = "default", size = "default", tooltip, className, children, ref, ...props }) {
114
114
  const { isMobile, state } = useSidebar();
115
115
  const surface = useContext(SidebarSurfaceContext);
116
+ const tooltipEnabled = !isMobile && state === "collapsed" && surface?.collapsible === "icon";
116
117
  const indicator = useContext(SidebarMenuContext);
117
118
  const buttonRef = useRef(null);
118
119
  const [textLabel, setTextLabel] = useState("");
@@ -131,19 +132,20 @@ function SidebarMenuButton({ render, isActive = false, variant = "default", size
131
132
  "data-variant": variant,
132
133
  "data-active": isActive || void 0,
133
134
  "data-track-item": indicator !== "none" ? "" : void 0,
134
- className: cn("peer/menu-button flex w-full items-center overflow-hidden text-start group-data-[collapsible=icon]:w-(--cui-sidebar-menu-button-height) disabled:pointer-events-none aria-disabled:pointer-events-none [&>span]:truncate [&>svg]:size-4 [&>svg]:shrink-0", className),
135
+ className: cn("peer/menu-button flex items-center overflow-hidden text-start disabled:pointer-events-none aria-disabled:pointer-events-none [&>span]:truncate [&>svg]:size-4 [&>svg]:shrink-0", className),
135
136
  children
136
137
  }
137
138
  });
138
139
  if (!tooltip && surface?.collapsible !== "icon") return button;
139
140
  return /* @__PURE__ */ jsxs(Tooltip, {
141
+ disabled: !tooltipEnabled,
140
142
  onOpenChange: (open) => {
141
143
  if (open && !tooltip) setTextLabel(buttonRef.current?.textContent?.trim() ?? "");
142
144
  },
143
145
  children: [/* @__PURE__ */ jsx(TooltipTrigger, { render: button }), /* @__PURE__ */ jsx(TooltipContent, {
144
146
  side: surface?.side === "right" ? "inline-start" : "inline-end",
145
147
  align: "center",
146
- hidden: state !== "collapsed" || isMobile,
148
+ hidden: !tooltipEnabled,
147
149
  children: tooltip ?? textLabel
148
150
  })]
149
151
  });
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
3
  import { useSkin } from "../skin-provider.js";
4
- import { SIDEBAR_COOKIE_NAME } from "../control-props.js";
5
4
  import { TooltipProvider } from "./tooltip.js";
5
+ import { SIDEBAR_COOKIE_NAME } from "../control-props.js";
6
6
  import { useIsMobile } from "../hooks/use-mobile.js";
7
7
  import { createContext, useContext, useEffect, useId, useLayoutEffect, useRef, useState } from "react";
8
- import { useRender } from "@base-ui/react/use-render";
9
8
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
9
+ import { useRender } from "@base-ui/react/use-render";
10
10
  //#region src/ui/sidebar-provider.tsx
11
11
  const SIDEBAR_COOKIE_MAX_AGE = 604800;
12
12
  const SIDEBAR_WIDTH = "16rem";
@@ -2,8 +2,8 @@
2
2
  import { cn } from "../lib/cn.js";
3
3
  import { useSidebar, useSidebarElements, useSidebarSurface } from "./sidebar-provider.js";
4
4
  import { useEffect, useLayoutEffect, useRef, useState } from "react";
5
- import { useRender } from "@base-ui/react/use-render";
6
5
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
+ import { useRender } from "@base-ui/react/use-render";
7
7
  //#region src/ui/sidebar-resize-rail.tsx
8
8
  const DRAG_THRESHOLD_PX = 5;
9
9
  const KEYBOARD_STEP_PX = 10;
@@ -8,9 +8,9 @@ import { SidebarProvider, SidebarSurfaceContext, useSidebar, useSidebarElements,
8
8
  import { SidebarResizeRail } from "./sidebar-resize-rail.js";
9
9
  import { SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, sidebarMenuButtonSizes, sidebarMenuButtonVariants } from "./sidebar-menu.js";
10
10
  import { useState } from "react";
11
- import { useRender } from "@base-ui/react/use-render";
12
11
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
13
12
  import { PanelLeftIcon } from "lucide-react";
13
+ import { useRender } from "@base-ui/react/use-render";
14
14
  import { createPortal } from "react-dom";
15
15
  //#region src/ui/sidebar.tsx
16
16
  const SIDEBAR_WIDTH_MOBILE = "18rem";
@@ -36,7 +36,7 @@ function Sidebar({ side = "left", collapsible = "offcanvas", ...props }) {
36
36
  }
37
37
  function SidebarSurface({ variant, label = "Navigation", ref, className, children, style, railContainerRef, ...props }) {
38
38
  const { side, collapsible } = useSidebarSurface();
39
- const { offcanvasRef } = useSidebarElements();
39
+ const { offcanvasRef, triggerRef } = useSidebarElements();
40
40
  const skin = useSkin();
41
41
  const { isMobile, state, openMobile, setOpenMobile, layout, sidebarId } = useSidebar();
42
42
  const resolvedVariant = variant ?? skin.sidebarLayout ?? "sidebar";
@@ -50,7 +50,7 @@ function SidebarSurface({ variant, label = "Navigation", ref, className, childre
50
50
  "data-control-family": "sidebar",
51
51
  "data-slot": "container",
52
52
  tabIndex: -1,
53
- className: cn(layout === "contained" ? "absolute h-full" : "fixed h-svh", "inset-y-0 z-10 hidden w-(--sidebar-width) lg:flex", side === "left" ? "start-0 group-data-[collapsible=offcanvas]:start-[calc(var(--sidebar-width)*-1)]" : "end-0 group-data-[collapsible=offcanvas]:end-[calc(var(--sidebar-width)*-1)]", resolvedVariant === "floating" || resolvedVariant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)", className),
53
+ className: cn(layout === "contained" ? "absolute h-full" : "fixed h-svh", "inset-y-0 z-10 hidden w-(--sidebar-width) lg:flex", side === "left" ? "start-0" : "end-0", resolvedVariant === "floating" || resolvedVariant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)", className),
54
54
  children: /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
55
55
  "data-control-ui": "sidebar",
56
56
  "data-control-family": "sidebar",
@@ -90,6 +90,7 @@ function SidebarSurface({ variant, label = "Navigation", ref, className, childre
90
90
  onOpenChange: setOpenMobile,
91
91
  children: /* @__PURE__ */ jsxs(SheetContent, {
92
92
  side,
93
+ finalFocus: triggerRef,
93
94
  className: "w-(--sidebar-width) gap-0 p-0",
94
95
  style: mobileSheetStyle,
95
96
  children: [/* @__PURE__ */ jsx(SheetHeader, {
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
- import { useRender } from "@base-ui/react/use-render";
4
3
  import { jsx } from "react/jsx-runtime";
4
+ import { useRender } from "@base-ui/react/use-render";
5
5
  //#region src/ui/timeline.tsx
6
6
  function Timeline({ className, ...props }) {
7
7
  return /* @__PURE__ */ jsx("ol", {
package/dist/ui/toast.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { Button } from "./button.js";
6
6
  import { PopupCloseButton } from "../popup-parts.js";
@@ -1,6 +1,6 @@
1
1
  import { ToolbarKnobStyle } from "../knob-contracts/toolbar-knobs.js";
2
- import { Toolbar as Toolbar$1 } from "@base-ui/react/toolbar";
3
2
  import { CSSProperties, ComponentProps } from "react";
3
+ import { Toolbar as Toolbar$1 } from "@base-ui/react/toolbar";
4
4
  //#region src/ui/toolbar.d.ts
5
5
  export type ToolbarVariant = "default" | "inverse" | "floating";
6
6
  export type ToolbarLinkVariant = "default" | "track";
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { cn } from "../lib/cn.js";
3
- import { Toolbar as Toolbar$1 } from "@base-ui/react/toolbar";
4
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { Toolbar as Toolbar$1 } from "@base-ui/react/toolbar";
5
5
  //#region src/ui/toolbar.tsx
6
6
  function Toolbar({ orientation = "horizontal", variant = "default", className, children, ...props }) {
7
7
  return /* @__PURE__ */ jsxs(Toolbar$1.Root, {
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { PopupArrowShape } from "../popup-parts.js";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
package/dist/ui/tree.js CHANGED
@@ -3,9 +3,9 @@ import { cn } from "../lib/cn.js";
3
3
  import { useSkin } from "../skin-provider.js";
4
4
  import { TrackHighlight } from "../extensions/track-highlight.js";
5
5
  import { Children, createContext, isValidElement, useContext, useEffect, useId, useRef, useState } from "react";
6
- import { useRender } from "@base-ui/react/use-render";
7
6
  import { jsx, jsxs } from "react/jsx-runtime";
8
7
  import { ChevronRightIcon } from "lucide-react";
8
+ import { useRender } from "@base-ui/react/use-render";
9
9
  import { Collapsible } from "@base-ui/react/collapsible";
10
10
  //#region src/ui/tree.tsx
11
11
  const TYPEAHEAD_TIMEOUT = 500;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { cn } from "../lib/cn.js";
3
2
  import { controlEffectsAttribute } from "../skin.js";
3
+ import { cn } from "../lib/cn.js";
4
4
  import { useSkin } from "../skin-provider.js";
5
5
  import { ScrollArea } from "./scroll-area.js";
6
6
  import { popupItemStructureClasses } from "../surface-variants.js";
package/dist/user-ask.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { cn } from "./lib/cn.js";
3
- import { Button } from "./ui/button.js";
4
- import { LiveStatus } from "./ui/live-status.js";
5
3
  import { useUserAsk } from "./hooks/use-user-ask.js";
4
+ import { Button } from "./ui/button.js";
6
5
  import { Kbd } from "./ui/kbd.js";
6
+ import { LiveStatus } from "./ui/live-status.js";
7
7
  import { createContext, useContext, useEffect, useId, useRef, useState } from "react";
8
8
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
9
9
  import { Check, ChevronLeft, ChevronRight, PencilLine } from "lucide-react";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ctrl-ui/react",
3
- "version": "0.8.8",
3
+ "version": "0.8.9",
4
4
  "description": "Control UI components, blocks, and primitives with neutral defaults and consumer-owned themes.",
5
5
  "license": "MIT",
6
6
  "repository": {