@databricks/appkit-ui 0.12.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/CLAUDE.md +4 -3
  2. package/dist/react/charts/area/index.d.ts +2 -2
  3. package/dist/react/charts/bar/index.d.ts +2 -2
  4. package/dist/react/charts/base.d.ts +2 -2
  5. package/dist/react/charts/base.d.ts.map +1 -1
  6. package/dist/react/charts/create-chart.d.ts +2 -2
  7. package/dist/react/charts/create-chart.d.ts.map +1 -1
  8. package/dist/react/charts/heatmap/index.d.ts +2 -2
  9. package/dist/react/charts/line/index.d.ts +2 -2
  10. package/dist/react/charts/options.d.ts.map +1 -1
  11. package/dist/react/charts/pie/index.d.ts +3 -3
  12. package/dist/react/charts/radar/index.d.ts +2 -2
  13. package/dist/react/charts/scatter/index.d.ts +2 -2
  14. package/dist/react/charts/wrapper.d.ts +2 -2
  15. package/dist/react/ui/accordion.d.ts +5 -5
  16. package/dist/react/ui/alert-dialog.d.ts +12 -12
  17. package/dist/react/ui/alert.d.ts +4 -4
  18. package/dist/react/ui/aspect-ratio.d.ts +2 -2
  19. package/dist/react/ui/avatar.d.ts +4 -4
  20. package/dist/react/ui/badge.d.ts +4 -4
  21. package/dist/react/ui/breadcrumb.d.ts +8 -8
  22. package/dist/react/ui/button-group.d.ts +6 -6
  23. package/dist/react/ui/button.d.ts +4 -4
  24. package/dist/react/ui/calendar.d.ts +3 -3
  25. package/dist/react/ui/card.d.ts +8 -8
  26. package/dist/react/ui/carousel.d.ts +6 -6
  27. package/dist/react/ui/chart.d.ts +5 -5
  28. package/dist/react/ui/checkbox.d.ts +2 -2
  29. package/dist/react/ui/collapsible.d.ts +4 -4
  30. package/dist/react/ui/command.d.ts +10 -10
  31. package/dist/react/ui/context-menu.d.ts +16 -16
  32. package/dist/react/ui/dialog.d.ts +11 -11
  33. package/dist/react/ui/dialog.d.ts.map +1 -1
  34. package/dist/react/ui/drawer.d.ts +11 -11
  35. package/dist/react/ui/drawer.d.ts.map +1 -1
  36. package/dist/react/ui/dropdown-menu.d.ts +16 -16
  37. package/dist/react/ui/empty.d.ts +7 -7
  38. package/dist/react/ui/field.d.ts +11 -11
  39. package/dist/react/ui/form.d.ts +7 -7
  40. package/dist/react/ui/hover-card.d.ts +4 -4
  41. package/dist/react/ui/input-group.d.ts +7 -7
  42. package/dist/react/ui/input-otp.d.ts +5 -5
  43. package/dist/react/ui/input.d.ts +2 -2
  44. package/dist/react/ui/item.d.ts +11 -11
  45. package/dist/react/ui/kbd.d.ts +3 -3
  46. package/dist/react/ui/label.d.ts +2 -2
  47. package/dist/react/ui/menubar.d.ts +17 -17
  48. package/dist/react/ui/navigation-menu.d.ts +9 -9
  49. package/dist/react/ui/pagination.d.ts +8 -8
  50. package/dist/react/ui/popover.d.ts +5 -5
  51. package/dist/react/ui/progress.d.ts +2 -2
  52. package/dist/react/ui/radio-group.d.ts +3 -3
  53. package/dist/react/ui/resizable.d.ts +4 -4
  54. package/dist/react/ui/scroll-area.d.ts +3 -3
  55. package/dist/react/ui/select.d.ts +11 -11
  56. package/dist/react/ui/separator.d.ts +2 -2
  57. package/dist/react/ui/sheet.d.ts +9 -9
  58. package/dist/react/ui/sidebar.d.ts +41 -24
  59. package/dist/react/ui/sidebar.d.ts.map +1 -1
  60. package/dist/react/ui/sidebar.js.map +1 -1
  61. package/dist/react/ui/skeleton.d.ts +2 -2
  62. package/dist/react/ui/slider.d.ts +2 -2
  63. package/dist/react/ui/sonner.d.ts +2 -2
  64. package/dist/react/ui/spinner.d.ts +2 -2
  65. package/dist/react/ui/switch.d.ts +2 -2
  66. package/dist/react/ui/table.d.ts +9 -9
  67. package/dist/react/ui/tabs.d.ts +5 -5
  68. package/dist/react/ui/textarea.d.ts +2 -2
  69. package/dist/react/ui/toggle-group.d.ts +3 -3
  70. package/dist/react/ui/toggle.d.ts +2 -2
  71. package/dist/react/ui/tooltip.d.ts +5 -5
  72. package/dist/react/ui/tooltip.d.ts.map +1 -1
  73. package/docs/api/appkit/Class.Plugin.md +20 -0
  74. package/docs/api/appkit/Function.createApp.md +29 -0
  75. package/docs/api/appkit-ui/ui/Sidebar.md +304 -37
  76. package/docs/app-management.md +1 -1
  77. package/docs/development/ai-assisted-development.md +63 -3
  78. package/docs/development/llm-guide.md +1 -1
  79. package/docs/development/local-development.md +2 -2
  80. package/docs/development/project-setup.md +8 -8
  81. package/docs/development/remote-bridge.md +1 -1
  82. package/docs/development/type-generation.md +1 -1
  83. package/docs/development.md +3 -3
  84. package/docs/plugins/analytics.md +104 -1
  85. package/docs/plugins/genie.md +162 -0
  86. package/docs/plugins/server.md +1 -1
  87. package/docs/plugins.md +2 -1
  88. package/docs.md +32 -1
  89. package/llms.txt +4 -3
  90. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime211 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime215 from "react/jsx-runtime";
3
3
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
4
4
 
5
5
  //#region src/react/ui/radio-group.d.ts
@@ -7,11 +7,11 @@ import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
7
7
  declare function RadioGroup({
8
8
  className,
9
9
  ...props
10
- }: React$1.ComponentProps<typeof RadioGroupPrimitive.Root>): react_jsx_runtime211.JSX.Element;
10
+ }: React$1.ComponentProps<typeof RadioGroupPrimitive.Root>): react_jsx_runtime215.JSX.Element;
11
11
  declare function RadioGroupItem({
12
12
  className,
13
13
  ...props
14
- }: React$1.ComponentProps<typeof RadioGroupPrimitive.Item>): react_jsx_runtime211.JSX.Element;
14
+ }: React$1.ComponentProps<typeof RadioGroupPrimitive.Item>): react_jsx_runtime215.JSX.Element;
15
15
  //#endregion
16
16
  export { RadioGroup, RadioGroupItem };
17
17
  //# sourceMappingURL=radio-group.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime213 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime217 from "react/jsx-runtime";
3
3
  import * as ResizablePrimitive from "react-resizable-panels";
4
4
 
5
5
  //#region src/react/ui/resizable.d.ts
@@ -7,11 +7,11 @@ import * as ResizablePrimitive from "react-resizable-panels";
7
7
  declare function ResizablePanelGroup({
8
8
  className,
9
9
  ...props
10
- }: React$1.ComponentProps<typeof ResizablePrimitive.PanelGroup>): react_jsx_runtime213.JSX.Element;
10
+ }: React$1.ComponentProps<typeof ResizablePrimitive.PanelGroup>): react_jsx_runtime217.JSX.Element;
11
11
  /** Individual resizable panel within a panel group */
12
12
  declare function ResizablePanel({
13
13
  ...props
14
- }: React$1.ComponentProps<typeof ResizablePrimitive.Panel>): react_jsx_runtime213.JSX.Element;
14
+ }: React$1.ComponentProps<typeof ResizablePrimitive.Panel>): react_jsx_runtime217.JSX.Element;
15
15
  /** Draggable handle for resizing panels */
16
16
  declare function ResizableHandle({
17
17
  withHandle,
@@ -19,7 +19,7 @@ declare function ResizableHandle({
19
19
  ...props
20
20
  }: React$1.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {
21
21
  withHandle?: boolean;
22
- }): react_jsx_runtime213.JSX.Element;
22
+ }): react_jsx_runtime217.JSX.Element;
23
23
  //#endregion
24
24
  export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
25
25
  //# sourceMappingURL=resizable.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime216 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime220 from "react/jsx-runtime";
3
3
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
4
4
 
5
5
  //#region src/react/ui/scroll-area.d.ts
@@ -8,13 +8,13 @@ declare function ScrollArea({
8
8
  className,
9
9
  children,
10
10
  ...props
11
- }: React$1.ComponentProps<typeof ScrollAreaPrimitive.Root>): react_jsx_runtime216.JSX.Element;
11
+ }: React$1.ComponentProps<typeof ScrollAreaPrimitive.Root>): react_jsx_runtime220.JSX.Element;
12
12
  /** Scrollbar component for the scroll area */
13
13
  declare function ScrollBar({
14
14
  className,
15
15
  orientation,
16
16
  ...props
17
- }: React$1.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>): react_jsx_runtime216.JSX.Element;
17
+ }: React$1.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>): react_jsx_runtime220.JSX.Element;
18
18
  //#endregion
19
19
  export { ScrollArea, ScrollBar };
20
20
  //# sourceMappingURL=scroll-area.d.ts.map
@@ -1,18 +1,18 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime218 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime222 from "react/jsx-runtime";
3
3
  import * as SelectPrimitive from "@radix-ui/react-select";
4
4
 
5
5
  //#region src/react/ui/select.d.ts
6
6
  /** Dropdown control for selecting a value from a list */
7
7
  declare function Select({
8
8
  ...props
9
- }: React$1.ComponentProps<typeof SelectPrimitive.Root>): react_jsx_runtime218.JSX.Element;
9
+ }: React$1.ComponentProps<typeof SelectPrimitive.Root>): react_jsx_runtime222.JSX.Element;
10
10
  declare function SelectGroup({
11
11
  ...props
12
- }: React$1.ComponentProps<typeof SelectPrimitive.Group>): react_jsx_runtime218.JSX.Element;
12
+ }: React$1.ComponentProps<typeof SelectPrimitive.Group>): react_jsx_runtime222.JSX.Element;
13
13
  declare function SelectValue({
14
14
  ...props
15
- }: React$1.ComponentProps<typeof SelectPrimitive.Value>): react_jsx_runtime218.JSX.Element;
15
+ }: React$1.ComponentProps<typeof SelectPrimitive.Value>): react_jsx_runtime222.JSX.Element;
16
16
  declare function SelectTrigger({
17
17
  className,
18
18
  size,
@@ -20,18 +20,18 @@ declare function SelectTrigger({
20
20
  ...props
21
21
  }: React$1.ComponentProps<typeof SelectPrimitive.Trigger> & {
22
22
  size?: "sm" | "default";
23
- }): react_jsx_runtime218.JSX.Element;
23
+ }): react_jsx_runtime222.JSX.Element;
24
24
  declare function SelectContent({
25
25
  className,
26
26
  children,
27
27
  position,
28
28
  align,
29
29
  ...props
30
- }: React$1.ComponentProps<typeof SelectPrimitive.Content>): react_jsx_runtime218.JSX.Element;
30
+ }: React$1.ComponentProps<typeof SelectPrimitive.Content>): react_jsx_runtime222.JSX.Element;
31
31
  declare function SelectLabel({
32
32
  className,
33
33
  ...props
34
- }: React$1.ComponentProps<typeof SelectPrimitive.Label>): react_jsx_runtime218.JSX.Element;
34
+ }: React$1.ComponentProps<typeof SelectPrimitive.Label>): react_jsx_runtime222.JSX.Element;
35
35
  /**
36
36
  * Select item component for individual options in a dropdown.
37
37
  *
@@ -47,19 +47,19 @@ declare function SelectItem({
47
47
  className,
48
48
  children,
49
49
  ...props
50
- }: React$1.ComponentProps<typeof SelectPrimitive.Item>): react_jsx_runtime218.JSX.Element;
50
+ }: React$1.ComponentProps<typeof SelectPrimitive.Item>): react_jsx_runtime222.JSX.Element;
51
51
  declare function SelectSeparator({
52
52
  className,
53
53
  ...props
54
- }: React$1.ComponentProps<typeof SelectPrimitive.Separator>): react_jsx_runtime218.JSX.Element;
54
+ }: React$1.ComponentProps<typeof SelectPrimitive.Separator>): react_jsx_runtime222.JSX.Element;
55
55
  declare function SelectScrollUpButton({
56
56
  className,
57
57
  ...props
58
- }: React$1.ComponentProps<typeof SelectPrimitive.ScrollUpButton>): react_jsx_runtime218.JSX.Element;
58
+ }: React$1.ComponentProps<typeof SelectPrimitive.ScrollUpButton>): react_jsx_runtime222.JSX.Element;
59
59
  declare function SelectScrollDownButton({
60
60
  className,
61
61
  ...props
62
- }: React$1.ComponentProps<typeof SelectPrimitive.ScrollDownButton>): react_jsx_runtime218.JSX.Element;
62
+ }: React$1.ComponentProps<typeof SelectPrimitive.ScrollDownButton>): react_jsx_runtime222.JSX.Element;
63
63
  //#endregion
64
64
  export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue };
65
65
  //# sourceMappingURL=select.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime228 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime232 from "react/jsx-runtime";
3
3
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
4
4
 
5
5
  //#region src/react/ui/separator.d.ts
@@ -9,7 +9,7 @@ declare function Separator({
9
9
  orientation,
10
10
  decorative,
11
11
  ...props
12
- }: React$1.ComponentProps<typeof SeparatorPrimitive.Root>): react_jsx_runtime228.JSX.Element;
12
+ }: React$1.ComponentProps<typeof SeparatorPrimitive.Root>): react_jsx_runtime232.JSX.Element;
13
13
  //#endregion
14
14
  export { Separator };
15
15
  //# sourceMappingURL=separator.d.ts.map
@@ -1,20 +1,20 @@
1
1
  import * as React$1 from "react";
2
- import * as react_jsx_runtime229 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime233 from "react/jsx-runtime";
3
3
  import * as SheetPrimitive from "@radix-ui/react-dialog";
4
4
 
5
5
  //#region src/react/ui/sheet.d.ts
6
6
  /** Sliding panel that overlays content from screen edges */
7
7
  declare function Sheet({
8
8
  ...props
9
- }: React$1.ComponentProps<typeof SheetPrimitive.Root>): react_jsx_runtime229.JSX.Element;
9
+ }: React$1.ComponentProps<typeof SheetPrimitive.Root>): react_jsx_runtime233.JSX.Element;
10
10
  /** Button that opens the sheet */
11
11
  declare function SheetTrigger({
12
12
  ...props
13
- }: React$1.ComponentProps<typeof SheetPrimitive.Trigger>): react_jsx_runtime229.JSX.Element;
13
+ }: React$1.ComponentProps<typeof SheetPrimitive.Trigger>): react_jsx_runtime233.JSX.Element;
14
14
  /** Button that closes the sheet */
15
15
  declare function SheetClose({
16
16
  ...props
17
- }: React$1.ComponentProps<typeof SheetPrimitive.Close>): react_jsx_runtime229.JSX.Element;
17
+ }: React$1.ComponentProps<typeof SheetPrimitive.Close>): react_jsx_runtime233.JSX.Element;
18
18
  /** Main content area of the sheet */
19
19
  declare function SheetContent({
20
20
  className,
@@ -23,27 +23,27 @@ declare function SheetContent({
23
23
  ...props
24
24
  }: React$1.ComponentProps<typeof SheetPrimitive.Content> & {
25
25
  side?: "top" | "right" | "bottom" | "left";
26
- }): react_jsx_runtime229.JSX.Element;
26
+ }): react_jsx_runtime233.JSX.Element;
27
27
  /** Header section of the sheet */
28
28
  declare function SheetHeader({
29
29
  className,
30
30
  ...props
31
- }: React$1.ComponentProps<"div">): react_jsx_runtime229.JSX.Element;
31
+ }: React$1.ComponentProps<"div">): react_jsx_runtime233.JSX.Element;
32
32
  /** Footer section of the sheet */
33
33
  declare function SheetFooter({
34
34
  className,
35
35
  ...props
36
- }: React$1.ComponentProps<"div">): react_jsx_runtime229.JSX.Element;
36
+ }: React$1.ComponentProps<"div">): react_jsx_runtime233.JSX.Element;
37
37
  /** Title text for the sheet */
38
38
  declare function SheetTitle({
39
39
  className,
40
40
  ...props
41
- }: React$1.ComponentProps<typeof SheetPrimitive.Title>): react_jsx_runtime229.JSX.Element;
41
+ }: React$1.ComponentProps<typeof SheetPrimitive.Title>): react_jsx_runtime233.JSX.Element;
42
42
  /** Description text for the sheet */
43
43
  declare function SheetDescription({
44
44
  className,
45
45
  ...props
46
- }: React$1.ComponentProps<typeof SheetPrimitive.Description>): react_jsx_runtime229.JSX.Element;
46
+ }: React$1.ComponentProps<typeof SheetPrimitive.Description>): react_jsx_runtime233.JSX.Element;
47
47
  //#endregion
48
48
  export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };
49
49
  //# sourceMappingURL=sheet.d.ts.map
@@ -3,7 +3,7 @@ import { Separator } from "./separator.js";
3
3
  import { Input } from "./input.js";
4
4
  import { TooltipContent } from "./tooltip.js";
5
5
  import * as React$1 from "react";
6
- import * as react_jsx_runtime237 from "react/jsx-runtime";
6
+ import * as react_jsx_runtime241 from "react/jsx-runtime";
7
7
  import { VariantProps } from "class-variance-authority";
8
8
  import * as class_variance_authority_types10 from "class-variance-authority/types";
9
9
 
@@ -28,10 +28,13 @@ declare function SidebarProvider({
28
28
  children,
29
29
  ...props
30
30
  }: React$1.ComponentProps<"div"> & {
31
+ /** Initial open state for uncontrolled usage */
31
32
  defaultOpen?: boolean;
33
+ /** Controlled open state */
32
34
  open?: boolean;
35
+ /** Callback when open state changes */
33
36
  onOpenChange?: (open: boolean) => void;
34
- }): react_jsx_runtime237.JSX.Element;
37
+ }): react_jsx_runtime241.JSX.Element;
35
38
  /** Collapsible navigation sidebar with mobile support */
36
39
  declare function Sidebar({
37
40
  side,
@@ -41,87 +44,92 @@ declare function Sidebar({
41
44
  children,
42
45
  ...props
43
46
  }: React$1.ComponentProps<"div"> & {
47
+ /** Which side of the viewport the sidebar appears on */
44
48
  side?: "left" | "right";
49
+ /** Visual style: `"sidebar"` (standard with border), `"floating"` (rounded with shadow), or `"inset"` (content area gets rounded margin) */
45
50
  variant?: "sidebar" | "floating" | "inset";
51
+ /** Collapse behavior: `"offcanvas"` (slides off-screen), `"icon"` (collapses to icon width), or `"none"` (always expanded) */
46
52
  collapsible?: "offcanvas" | "icon" | "none";
47
- }): react_jsx_runtime237.JSX.Element;
53
+ }): react_jsx_runtime241.JSX.Element;
48
54
  /** Button that toggles the sidebar open and closed */
49
55
  declare function SidebarTrigger({
50
56
  className,
51
57
  onClick,
52
58
  ...props
53
- }: React$1.ComponentProps<typeof Button>): react_jsx_runtime237.JSX.Element;
59
+ }: React$1.ComponentProps<typeof Button>): react_jsx_runtime241.JSX.Element;
54
60
  /** Clickable rail element for toggling sidebar visibility */
55
61
  declare function SidebarRail({
56
62
  className,
57
63
  ...props
58
- }: React$1.ComponentProps<"button">): react_jsx_runtime237.JSX.Element;
64
+ }: React$1.ComponentProps<"button">): react_jsx_runtime241.JSX.Element;
59
65
  /** Main content area that adapts to sidebar state */
60
66
  declare function SidebarInset({
61
67
  className,
62
68
  ...props
63
- }: React$1.ComponentProps<"main">): react_jsx_runtime237.JSX.Element;
69
+ }: React$1.ComponentProps<"main">): react_jsx_runtime241.JSX.Element;
64
70
  /** Input field styled for use within the sidebar */
65
71
  declare function SidebarInput({
66
72
  className,
67
73
  ...props
68
- }: React$1.ComponentProps<typeof Input>): react_jsx_runtime237.JSX.Element;
74
+ }: React$1.ComponentProps<typeof Input>): react_jsx_runtime241.JSX.Element;
69
75
  /** Header section at the top of the sidebar */
70
76
  declare function SidebarHeader({
71
77
  className,
72
78
  ...props
73
- }: React$1.ComponentProps<"div">): react_jsx_runtime237.JSX.Element;
79
+ }: React$1.ComponentProps<"div">): react_jsx_runtime241.JSX.Element;
74
80
  /** Footer section at the bottom of the sidebar */
75
81
  declare function SidebarFooter({
76
82
  className,
77
83
  ...props
78
- }: React$1.ComponentProps<"div">): react_jsx_runtime237.JSX.Element;
84
+ }: React$1.ComponentProps<"div">): react_jsx_runtime241.JSX.Element;
79
85
  /** Visual separator between sidebar sections */
80
86
  declare function SidebarSeparator({
81
87
  className,
82
88
  ...props
83
- }: React$1.ComponentProps<typeof Separator>): react_jsx_runtime237.JSX.Element;
89
+ }: React$1.ComponentProps<typeof Separator>): react_jsx_runtime241.JSX.Element;
84
90
  /** Scrollable content area within the sidebar */
85
91
  declare function SidebarContent({
86
92
  className,
87
93
  ...props
88
- }: React$1.ComponentProps<"div">): react_jsx_runtime237.JSX.Element;
94
+ }: React$1.ComponentProps<"div">): react_jsx_runtime241.JSX.Element;
89
95
  /** Container for grouping related sidebar items */
90
96
  declare function SidebarGroup({
91
97
  className,
92
98
  ...props
93
- }: React$1.ComponentProps<"div">): react_jsx_runtime237.JSX.Element;
99
+ }: React$1.ComponentProps<"div">): react_jsx_runtime241.JSX.Element;
94
100
  /** Label heading for a sidebar group */
95
101
  declare function SidebarGroupLabel({
96
102
  className,
97
103
  asChild,
98
104
  ...props
99
105
  }: React$1.ComponentProps<"div"> & {
106
+ /** Render as child element instead of default tag */
100
107
  asChild?: boolean;
101
- }): react_jsx_runtime237.JSX.Element;
108
+ }): react_jsx_runtime241.JSX.Element;
102
109
  /** Action button displayed next to a sidebar group label */
103
110
  declare function SidebarGroupAction({
104
111
  className,
105
112
  asChild,
106
113
  ...props
107
114
  }: React$1.ComponentProps<"button"> & {
115
+ /** Render as child element instead of default tag */
108
116
  asChild?: boolean;
109
- }): react_jsx_runtime237.JSX.Element;
117
+ }): react_jsx_runtime241.JSX.Element;
110
118
  /** Content container for sidebar group items */
111
119
  declare function SidebarGroupContent({
112
120
  className,
113
121
  ...props
114
- }: React$1.ComponentProps<"div">): react_jsx_runtime237.JSX.Element;
122
+ }: React$1.ComponentProps<"div">): react_jsx_runtime241.JSX.Element;
115
123
  /** Navigation menu list within the sidebar */
116
124
  declare function SidebarMenu({
117
125
  className,
118
126
  ...props
119
- }: React$1.ComponentProps<"ul">): react_jsx_runtime237.JSX.Element;
127
+ }: React$1.ComponentProps<"ul">): react_jsx_runtime241.JSX.Element;
120
128
  /** Individual menu item within the sidebar */
121
129
  declare function SidebarMenuItem({
122
130
  className,
123
131
  ...props
124
- }: React$1.ComponentProps<"li">): react_jsx_runtime237.JSX.Element;
132
+ }: React$1.ComponentProps<"li">): react_jsx_runtime241.JSX.Element;
125
133
  declare const sidebarMenuButtonVariants: (props?: ({
126
134
  variant?: "default" | "outline" | null | undefined;
127
135
  size?: "default" | "sm" | "lg" | null | undefined;
@@ -135,10 +143,13 @@ declare function SidebarMenuButton({
135
143
  className,
136
144
  ...props
137
145
  }: React$1.ComponentProps<"button"> & {
146
+ /** Render as child element instead of default tag */
138
147
  asChild?: boolean;
148
+ /** Whether this item is currently active/selected */
139
149
  isActive?: boolean;
150
+ /** Tooltip shown when sidebar is collapsed to icon mode */
140
151
  tooltip?: string | React$1.ComponentProps<typeof TooltipContent>;
141
- } & VariantProps<typeof sidebarMenuButtonVariants>): react_jsx_runtime237.JSX.Element;
152
+ } & VariantProps<typeof sidebarMenuButtonVariants>): react_jsx_runtime241.JSX.Element;
142
153
  /** Action button displayed alongside a menu item */
143
154
  declare function SidebarMenuAction({
144
155
  className,
@@ -146,32 +157,35 @@ declare function SidebarMenuAction({
146
157
  showOnHover,
147
158
  ...props
148
159
  }: React$1.ComponentProps<"button"> & {
160
+ /** Render as child element instead of default tag */
149
161
  asChild?: boolean;
162
+ /** Only show when parent menu item is hovered */
150
163
  showOnHover?: boolean;
151
- }): react_jsx_runtime237.JSX.Element;
164
+ }): react_jsx_runtime241.JSX.Element;
152
165
  /** Badge for displaying counts or status on menu items */
153
166
  declare function SidebarMenuBadge({
154
167
  className,
155
168
  ...props
156
- }: React$1.ComponentProps<"div">): react_jsx_runtime237.JSX.Element;
169
+ }: React$1.ComponentProps<"div">): react_jsx_runtime241.JSX.Element;
157
170
  /** Loading skeleton placeholder for menu items */
158
171
  declare function SidebarMenuSkeleton({
159
172
  className,
160
173
  showIcon,
161
174
  ...props
162
175
  }: React$1.ComponentProps<"div"> & {
176
+ /** Show a circular icon placeholder alongside the text skeleton */
163
177
  showIcon?: boolean;
164
- }): react_jsx_runtime237.JSX.Element;
178
+ }): react_jsx_runtime241.JSX.Element;
165
179
  /** Submenu list for nested navigation items */
166
180
  declare function SidebarMenuSub({
167
181
  className,
168
182
  ...props
169
- }: React$1.ComponentProps<"ul">): react_jsx_runtime237.JSX.Element;
183
+ }: React$1.ComponentProps<"ul">): react_jsx_runtime241.JSX.Element;
170
184
  /** Individual item within a sidebar submenu */
171
185
  declare function SidebarMenuSubItem({
172
186
  className,
173
187
  ...props
174
- }: React$1.ComponentProps<"li">): react_jsx_runtime237.JSX.Element;
188
+ }: React$1.ComponentProps<"li">): react_jsx_runtime241.JSX.Element;
175
189
  /** Button for submenu items */
176
190
  declare function SidebarMenuSubButton({
177
191
  asChild,
@@ -180,10 +194,13 @@ declare function SidebarMenuSubButton({
180
194
  className,
181
195
  ...props
182
196
  }: React$1.ComponentProps<"a"> & {
197
+ /** Render as child element instead of default tag */
183
198
  asChild?: boolean;
199
+ /** Text size of the submenu button */
184
200
  size?: "sm" | "md";
201
+ /** Whether this submenu item is currently active/selected */
185
202
  isActive?: boolean;
186
- }): react_jsx_runtime237.JSX.Element;
203
+ }): react_jsx_runtime241.JSX.Element;
187
204
  //#endregion
188
205
  export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar };
189
206
  //# sourceMappingURL=sidebar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.d.ts","names":[],"sources":["../../../src/react/ui/sidebar.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;;KAkCK,mBAAA;;;;EAAA,UAAA,EAAA,OAAA;EAaI,aAAU,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,GAAA,IAAA;EASV,QAAA,EAAA,OAAA;EAAe,aAAA,EAAA,GAAA,GAAA,IAAA;;;iBATf,UAAA,CAAA,CAYO,EAZG,mBAYH;iBAHP,eAAA,CAIP;EAAA,WAAA;EAAA,IAAA,EAFM,QAEN;EAAA,YAAA,EADc,WACd;EAAA,SAAA;EAAA,KAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EAIC,OAAA,CAAM,cAJP,CAAA,KAAA,CAAA,GAAA;aACA,CAAA,EAAA,OAAA;MACA,CAAA,EAAA,OAAA;cAEO,CAAA,EAAA,CAAA,IAAA,EAAA,OAAA,EAAA,GAAA,IAAA;IAIR,oBAAA,CAAA,GAAA,CAAA,OAAA;;AAAA,iBAuFQ,OAAA,CAAO;EAAA,IAAA;EAAA,OAAA;EAAA,WAAA;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EAOb,OAAA,CAAM,cAPO,CAAA,KAAA,CAAA,GAAA;EAAA,IAAA,CAAA,EAAA,MAAA,GAAA,OAAA;SACd,CAAA,EAAA,SAAA,GAAA,UAAA,GAAA,OAAA;aACA,CAAA,EAAA,WAAA,GAAA,MAAA,GAAA,MAAA;IASD,oBAAA,CAAA,GAAA,CAAA,OARC;;iBAoGO,cAAA,CAlGP;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAsGC,OAAA,CAAM,cAtGP,CAAA,OAsG6B,MAtG7B,CAAA,CAAA,EAsGoC,oBAAA,CAAA,GAAA,CAAA,OAtGpC;;iBA6HO,WAAA,CAvHR;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAuH6C,OAAA,CAAM,cAvHnD,CAAA,QAAA,CAAA,CAAA,EAuH2E,oBAAA,CAAA,GAAA,CAAA,OAvH3E;;AAAA,iBAiJQ,YAAA,CArDc;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAqDwB,OAAA,CAAM,cArD9B,CAAA,MAAA,CAAA,CAAA,EAqDoD,oBAAA,CAAA,GAAA,CAAA,OArDpD;;iBAoEd,YAAA,CAnEP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAsEC,OAAA,CAAM,cAtEP,CAAA,OAsE6B,KAtE7B,CAAA,CAAA,EAsEmC,oBAAA,CAAA,GAAA,CAAA,OAtEnC;;iBAkFO,aAAA,CA/EsB;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+EiB,OAAA,CAAM,cA/EvB,CAAA,KAAA,CAAA,CAAA,EA+E4C,oBAAA,CAAA,GAAA,CAAA,OA/E5C;;iBA2FtB,aAAA,CA3F6B;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA2FU,OAAA,CAAM,cA3FhB,CAAA,KAAA,CAAA,CAAA,EA2FqC,oBAAA,CAAA,GAAA,CAAA,OA3FrC;;AAAA,iBAuG7B,gBAAA,CAhFW;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAmFjB,OAAA,CAAM,cAnFW,CAAA,OAmFW,SAnFX,CAAA,CAAA,EAmFqB,oBAAA,CAAA,GAAA,CAAA,OAnFrB;;iBA+FX,cAAA,CA/Fc;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+F0B,OAAA,CAAM,cA/FhC,CAAA,KAAA,CAAA,CAAA,EA+FqD,oBAAA,CAAA,GAAA,CAAA,OA/FrD;;iBA8Gd,YAAA,CA9GmE;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA8G7B,OAAA,CAAM,cA9GuB,CAAA,KAAA,CAAA,CAAA,EA8GF,oBAAA,CAAA,GAAA,CAAA,OA9GE;;AAAA,iBA0HnE,iBAAA,CAhGY;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;CAAA,EAoGlB,OAAA,CAAM,cApGY,CAAA,KAAA,CAAA,GAAA;EAAA,OAAA,CAAA,EAAA,OAAA;IAoGiC,oBAAA,CAAA,GAAA,CAAA,OApG9B;;iBAsHf,kBAAA,CAtHkE;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA0HxE,OAAA,CAAM,cA1HkE,CAAA,QAAA,CAAA,GAAA;EAAA,OAAA,CAAA,EAAA,OAAA;AAAA,CAAA,CAAA,EA0HlB,oBAAA,CAAA,GAAA,CAAA,OA3GpC;;iBA+HZ,mBAAA,CA9HP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAiIC,OAAA,CAAM,cAjIP,CAAA,KAAA,CAAA,CAAA,EAiI4B,oBAAA,CAAA,GAAA,CAAA,OAjI5B;;iBA6IO,WAAA,CA3IA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA2IqC,OAAA,CAAM,cA3I3C,CAAA,IAAA,CAAA,CAAA,EA2I+D,oBAAA,CAAA,GAAA,CAAA,OA3I/D;;iBAuJA,eAAA,CAvJ4B;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAuJa,OAAA,CAAM,cAvJnB,CAAA,IAAA,CAAA,CAAA,EAuJuC,oBAAA,CAAA,GAAA,CAAA,OAvJvC;AAAA,cAkK/B,yBAtJgB,EAAA,CAAA,KAAgC,CAAhC,EAAA,CAAA;EAAA,OAAA,CAAA,EAAA,SAAA,GAAA,SAAA,GAAA,IAAA,GAAA,SAAA;MAAG,CAAA,EAAA,SAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,SAAA;IA0KxB,gCAAA,CAAA,SA1KqD,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;iBA4K7C,iBAAA,CA5KkE;EAAA,OAAA;EAAA,QAAA;EAAA,OAAA;EAAA,IAAA;EAAA,OAAA;EAAA,SAAA;EAAA,GAAA;AAYlD,CAZkD,EAoLxE,OAAA,CAAM,cApLkE,CAAA,QAAA,CAAA,GAAA;EAAA,OAAA,CAAA,EAAA,OAAA;EAYlE,QAAA,CAAA,EAAA,OAAa;EAAA,OAAA,CAAA,EAAA,MAAA,GA2KD,OAAA,CAAM,cA3KL,CAAA,OA2K2B,cA3K3B,CAAA;IA4KlB,YA5KqB,CAAA,OA4KD,yBA5KC,CAAA,CAAA,EA4KyB,oBAAA,CAAA,GAAA,CAAA,OA5KzB;;iBAmNhB,iBAAA,CAnNkE;EAAA,SAAA;EAAA,OAAA;EAAA,WAAA;EAAA,GAAA;CAAA,EAwNxE,OAAA,CAAM,cAxNkE,CAAA,QAAA,CAAA,GAAA;EAAA,OAAA,CAAA,EAAA,OAAA;EAYlE,WAAA,CAAA,EAAA,OAAgB;CAAA,CAAA,EA+MxB,oBAAA,CAAA,GAAA,CAAA,OA/MwB;;iBAwOhB,gBAAA,CArOsB;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAwO5B,OAAA,CAAM,cAxOsB,CAAA,KAAA,CAAA,CAAA,EAwOD,oBAAA,CAAA,GAAA,CAAA,OAxOC;;iBA4PtB,mBAAA,CA5PgC;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EAgQtC,OAAA,CAAM,cAhQgC,CAAA,KAAA,CAAA,GAAA;EAAA,QAAA,CAAA,EAAA,OAAA;AAAA,CAAA,CAAA,EAkQxC,oBAAA,CAAA,GAAA,CAAA,OAtPsB;;iBAuRd,cAAA,CAvRiB;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAuRuB,OAAA,CAAM,cAvR7B,CAAA,IAAA,CAAA,CAAA,EAuRiD,oBAAA,CAAA,GAAA,CAAA,OAvRjD;;iBAuSjB,kBAAA,CAvSmE;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA0SzE,OAAA,CAAM,cA1SmE,CAAA,IAAA,CAAA,CAAA,EA0S/C,oBAAA,CAAA,GAAA,CAAA,OA1S+C;;AAAA,iBAsTnE,oBAAA,CAvSY;EAAA,OAAA;EAAA,IAAA;EAAA,QAAA;EAAA,SAAA;EAAA,GAAA;CAAA,EA6SlB,OAAA,CAAM,cA7SY,CAAA,GAAA,CAAA,GAAA;EAAA,OAAA,CAAA,EAAA,OAAA;MAAG,CAAA,EAAA,IAAA,GAAA,IAAA;UAAuB,CAAA,EAAM,OAAA;IAiTpD,oBAAA,CAAA,GAAA,CAAA,OAjTyE"}
1
+ {"version":3,"file":"sidebar.d.ts","names":[],"sources":["../../../src/react/ui/sidebar.tsx"],"sourcesContent":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","names":["React"],"sources":["../../../src/react/ui/sidebar.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { PanelLeftIcon } from \"lucide-react\";\n\nimport { useIsMobile } from \"../hooks/use-mobile\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { Separator } from \"./separator\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"./sheet\";\nimport { Skeleton } from \"./skeleton\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"./tooltip\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\n/** Hook to access sidebar state and controls */\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\n/** Collapsible navigation sidebar with mobile support */\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n \"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\n/** Button that toggles the sidebar open and closed */\nfunction SidebarTrigger({\n className,\n onClick,\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"size-7\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\n/** Clickable rail element for toggling sidebar visibility */\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Main content area that adapts to sidebar state */\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n \"bg-background relative flex w-full flex-1 flex-col\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Input field styled for use within the sidebar */\nfunction SidebarInput({\n className,\n ...props\n}: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\"bg-background h-8 w-full shadow-none\", className)}\n {...props}\n />\n );\n}\n\n/** Header section at the top of the sidebar */\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n}\n\n/** Footer section at the bottom of the sidebar */\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n}\n\n/** Visual separator between sidebar sections */\nfunction SidebarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"bg-sidebar-border mx-2 w-auto\", className)}\n {...props}\n />\n );\n}\n\n/** Scrollable content area within the sidebar */\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Container for grouping related sidebar items */\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n );\n}\n\n/** Label heading for a sidebar group */\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"div\";\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n \"text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Action button displayed next to a sidebar group label */\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Content container for sidebar group items */\nfunction SidebarGroupContent({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n );\n}\n\n/** Navigation menu list within the sidebar */\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n );\n}\n\n/** Individual menu item within the sidebar */\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n}: React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot : \"button\";\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n}\n\n/** Action button displayed alongside a menu item */\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Badge for displaying counts or status on menu items */\nfunction SidebarMenuBadge({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Loading skeleton placeholder for menu items */\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\n/** Submenu list for nested navigation items */\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Individual item within a sidebar submenu */\nfunction SidebarMenuSubItem({\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n );\n}\n\n/** Button for submenu items */\nfunction SidebarMenuSubButton({\n asChild = false,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n}) {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"sidebar.js","names":["React"],"sources":["../../../src/react/ui/sidebar.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { PanelLeftIcon } from \"lucide-react\";\n\nimport { useIsMobile } from \"../hooks/use-mobile\";\nimport { cn } from \"../lib/utils\";\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { Separator } from \"./separator\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"./sheet\";\nimport { Skeleton } from \"./skeleton\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"./tooltip\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContextProps = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\n/** Hook to access sidebar state and controls */\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n /** Initial open state for uncontrolled usage */\n defaultOpen?: boolean;\n /** Controlled open state */\n open?: boolean;\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\n/** Collapsible navigation sidebar with mobile support */\nfunction Sidebar({\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n /** Which side of the viewport the sidebar appears on */\n side?: \"left\" | \"right\";\n /** Visual style: `\"sidebar\"` (standard with border), `\"floating\"` (rounded with shadow), or `\"inset\"` (content area gets rounded margin) */\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n /** Collapse behavior: `\"offcanvas\"` (slides off-screen), `\"icon\"` (collapses to icon width), or `\"none\"` (always expanded) */\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n \"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n \"relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\n/** Button that toggles the sidebar open and closed */\nfunction SidebarTrigger({\n className,\n onClick,\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"size-7\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\n/** Clickable rail element for toggling sidebar visibility */\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex\",\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Main content area that adapts to sidebar state */\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n \"bg-background relative flex w-full flex-1 flex-col\",\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Input field styled for use within the sidebar */\nfunction SidebarInput({\n className,\n ...props\n}: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn(\"bg-background h-8 w-full shadow-none\", className)}\n {...props}\n />\n );\n}\n\n/** Header section at the top of the sidebar */\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n}\n\n/** Footer section at the bottom of the sidebar */\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n}\n\n/** Visual separator between sidebar sections */\nfunction SidebarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn(\"bg-sidebar-border mx-2 w-auto\", className)}\n {...props}\n />\n );\n}\n\n/** Scrollable content area within the sidebar */\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Container for grouping related sidebar items */\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n );\n}\n\n/** Label heading for a sidebar group */\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n /** Render as child element instead of default tag */\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot : \"div\";\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n \"text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Action button displayed next to a sidebar group label */\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> & {\n /** Render as child element instead of default tag */\n asChild?: boolean;\n}) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Content container for sidebar group items */\nfunction SidebarGroupContent({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n );\n}\n\n/** Navigation menu list within the sidebar */\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n );\n}\n\n/** Individual menu item within the sidebar */\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:p-0!\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n}: React.ComponentProps<\"button\"> & {\n /** Render as child element instead of default tag */\n asChild?: boolean;\n /** Whether this item is currently active/selected */\n isActive?: boolean;\n /** Tooltip shown when sidebar is collapsed to icon mode */\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot : \"button\";\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n}\n\n/** Action button displayed alongside a menu item */\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<\"button\"> & {\n /** Render as child element instead of default tag */\n asChild?: boolean;\n /** Only show when parent menu item is hovered */\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 md:after:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Badge for displaying counts or status on menu items */\nfunction SidebarMenuBadge({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n \"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Loading skeleton placeholder for menu items */\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n /** Show a circular icon placeholder alongside the text skeleton */\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\n/** Submenu list for nested navigation items */\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n \"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Individual item within a sidebar submenu */\nfunction SidebarMenuSubItem({\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn(\"group/menu-sub-item relative\", className)}\n {...props}\n />\n );\n}\n\n/** Button for submenu items */\nfunction SidebarMenuSubButton({\n asChild = false,\n size = \"md\",\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n /** Render as child element instead of default tag */\n asChild?: boolean;\n /** Text size of the submenu button */\n size?: \"sm\" | \"md\";\n /** Whether this submenu item is currently active/selected */\n isActive?: boolean;\n}) {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import * as react_jsx_runtime260 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime264 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/react/ui/skeleton.d.ts
4
4
  /** Loading placeholder with pulsing animation */
5
5
  declare function Skeleton({
6
6
  className,
7
7
  ...props
8
- }: React.ComponentProps<"div">): react_jsx_runtime260.JSX.Element;
8
+ }: React.ComponentProps<"div">): react_jsx_runtime264.JSX.Element;
9
9
  //#endregion
10
10
  export { Skeleton };
11
11
  //# sourceMappingURL=skeleton.d.ts.map