@fluid-app/rep-core 0.1.0 → 0.1.2

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 (179) hide show
  1. package/dist/chunk-2IFFXFJL.js +621 -0
  2. package/dist/chunk-2IFFXFJL.js.map +1 -0
  3. package/dist/chunk-2SIG55BD.cjs +131 -0
  4. package/dist/chunk-2SIG55BD.cjs.map +1 -0
  5. package/dist/chunk-2SPTFZRC.js +72 -0
  6. package/dist/chunk-2SPTFZRC.js.map +1 -0
  7. package/dist/chunk-3I5Y3PEO.js +23 -0
  8. package/dist/chunk-3I5Y3PEO.js.map +1 -0
  9. package/dist/chunk-46PUWB7C.cjs +69 -0
  10. package/dist/chunk-46PUWB7C.cjs.map +1 -0
  11. package/dist/chunk-4WFDFEHC.js +134 -0
  12. package/dist/chunk-4WFDFEHC.js.map +1 -0
  13. package/dist/chunk-5NYM4UTW.cjs +58 -0
  14. package/dist/chunk-5NYM4UTW.cjs.map +1 -0
  15. package/dist/chunk-BWHUEED3.cjs +32 -0
  16. package/dist/chunk-BWHUEED3.cjs.map +1 -0
  17. package/dist/chunk-CMXYKDHC.cjs +666 -0
  18. package/dist/chunk-CMXYKDHC.cjs.map +1 -0
  19. package/dist/chunk-ESYAYVNK.cjs +136 -0
  20. package/dist/chunk-ESYAYVNK.cjs.map +1 -0
  21. package/dist/{chunk-6QLUUNJL.cjs → chunk-GDY76JA6.cjs} +2 -2
  22. package/dist/chunk-GDY76JA6.cjs.map +1 -0
  23. package/dist/chunk-HGVSPZEL.cjs +119 -0
  24. package/dist/chunk-HGVSPZEL.cjs.map +1 -0
  25. package/dist/chunk-HIDJYVKJ.js +54 -0
  26. package/dist/chunk-HIDJYVKJ.js.map +1 -0
  27. package/dist/chunk-HUR3MSO4.js +25 -0
  28. package/dist/chunk-HUR3MSO4.js.map +1 -0
  29. package/dist/chunk-LVLNO2YQ.cjs +28 -0
  30. package/dist/chunk-LVLNO2YQ.cjs.map +1 -0
  31. package/dist/chunk-N2K6W7FX.cjs +169 -0
  32. package/dist/chunk-N2K6W7FX.cjs.map +1 -0
  33. package/dist/chunk-NAMNXRI5.js +129 -0
  34. package/dist/chunk-NAMNXRI5.js.map +1 -0
  35. package/dist/chunk-OWU7MFJ2.cjs +15 -0
  36. package/dist/chunk-OWU7MFJ2.cjs.map +1 -0
  37. package/dist/chunk-PVTQWD4I.js +166 -0
  38. package/dist/chunk-PVTQWD4I.js.map +1 -0
  39. package/dist/chunk-PZ6BM57A.js +30 -0
  40. package/dist/chunk-PZ6BM57A.js.map +1 -0
  41. package/dist/chunk-SJQPHJL4.cjs +26 -0
  42. package/dist/chunk-SJQPHJL4.cjs.map +1 -0
  43. package/dist/chunk-V7D3QUE6.cjs +42 -0
  44. package/dist/chunk-V7D3QUE6.cjs.map +1 -0
  45. package/dist/chunk-VRF7QEID.js +67 -0
  46. package/dist/chunk-VRF7QEID.js.map +1 -0
  47. package/dist/chunk-WASVMCZB.js +13 -0
  48. package/dist/chunk-WASVMCZB.js.map +1 -0
  49. package/dist/chunk-WYOHFNNW.js +117 -0
  50. package/dist/chunk-WYOHFNNW.js.map +1 -0
  51. package/dist/chunk-XCNBVV4T.js +38 -0
  52. package/dist/chunk-XCNBVV4T.js.map +1 -0
  53. package/dist/{chunk-EWR5EIBP.js → chunk-YKF5ZFF5.js} +2 -2
  54. package/dist/chunk-YKF5ZFF5.js.map +1 -0
  55. package/dist/chunk-YXJMBVXO.cjs +76 -0
  56. package/dist/chunk-YXJMBVXO.cjs.map +1 -0
  57. package/dist/data-sources/DataAwareWidget.cjs +59 -0
  58. package/dist/data-sources/DataAwareWidget.cjs.map +1 -0
  59. package/dist/data-sources/DataAwareWidget.d.cts +30 -0
  60. package/dist/data-sources/DataAwareWidget.d.ts +30 -0
  61. package/dist/data-sources/DataAwareWidget.js +57 -0
  62. package/dist/data-sources/DataAwareWidget.js.map +1 -0
  63. package/dist/data-sources/ErrorState.cjs +12 -0
  64. package/dist/data-sources/ErrorState.cjs.map +1 -0
  65. package/dist/data-sources/ErrorState.d.cts +5 -0
  66. package/dist/data-sources/ErrorState.d.ts +5 -0
  67. package/dist/data-sources/ErrorState.js +3 -0
  68. package/dist/data-sources/ErrorState.js.map +1 -0
  69. package/dist/data-sources/context.cjs +10 -20
  70. package/dist/data-sources/context.cjs.map +1 -1
  71. package/dist/data-sources/context.d.cts +2 -2
  72. package/dist/data-sources/context.d.ts +2 -2
  73. package/dist/data-sources/context.js +1 -21
  74. package/dist/data-sources/context.js.map +1 -1
  75. package/dist/data-sources/fetchers/api.cjs +12 -0
  76. package/dist/data-sources/fetchers/api.cjs.map +1 -0
  77. package/dist/data-sources/fetchers/api.d.cts +8 -0
  78. package/dist/data-sources/fetchers/api.d.ts +8 -0
  79. package/dist/data-sources/fetchers/api.js +3 -0
  80. package/dist/data-sources/fetchers/api.js.map +1 -0
  81. package/dist/data-sources/fetchers/custom.cjs +12 -0
  82. package/dist/data-sources/fetchers/custom.cjs.map +1 -0
  83. package/dist/data-sources/fetchers/custom.d.cts +15 -0
  84. package/dist/data-sources/fetchers/custom.d.ts +15 -0
  85. package/dist/data-sources/fetchers/custom.js +3 -0
  86. package/dist/data-sources/fetchers/custom.js.map +1 -0
  87. package/dist/data-sources/fetchers/static.cjs +16 -0
  88. package/dist/data-sources/fetchers/static.cjs.map +1 -0
  89. package/dist/data-sources/fetchers/static.d.cts +38 -0
  90. package/dist/data-sources/fetchers/static.d.ts +38 -0
  91. package/dist/data-sources/fetchers/static.js +3 -0
  92. package/dist/data-sources/fetchers/static.js.map +1 -0
  93. package/dist/data-sources/registry-context.cjs +26 -0
  94. package/dist/data-sources/registry-context.cjs.map +1 -0
  95. package/dist/data-sources/registry-context.d.cts +41 -0
  96. package/dist/data-sources/registry-context.d.ts +41 -0
  97. package/dist/data-sources/registry-context.js +9 -0
  98. package/dist/data-sources/registry-context.js.map +1 -0
  99. package/dist/data-sources/registry.cjs +20 -0
  100. package/dist/data-sources/registry.cjs.map +1 -0
  101. package/dist/data-sources/registry.d.cts +17 -0
  102. package/dist/data-sources/registry.d.ts +17 -0
  103. package/dist/data-sources/registry.js +7 -0
  104. package/dist/data-sources/registry.js.map +1 -0
  105. package/dist/data-sources/transformers.cjs +12 -0
  106. package/dist/data-sources/transformers.cjs.map +1 -0
  107. package/dist/data-sources/transformers.d.cts +23 -0
  108. package/dist/data-sources/transformers.d.ts +23 -0
  109. package/dist/data-sources/transformers.js +3 -0
  110. package/dist/data-sources/transformers.js.map +1 -0
  111. package/dist/data-sources/types.d.cts +37 -2
  112. package/dist/data-sources/types.d.ts +37 -2
  113. package/dist/data-sources/use-widget-data.cjs +19 -0
  114. package/dist/data-sources/use-widget-data.cjs.map +1 -0
  115. package/dist/data-sources/use-widget-data.d.cts +16 -0
  116. package/dist/data-sources/use-widget-data.d.ts +16 -0
  117. package/dist/data-sources/use-widget-data.js +10 -0
  118. package/dist/data-sources/use-widget-data.js.map +1 -0
  119. package/dist/registries/index.cjs +8 -15
  120. package/dist/registries/index.cjs.map +1 -1
  121. package/dist/registries/index.d.cts +20 -7
  122. package/dist/registries/index.d.ts +20 -7
  123. package/dist/registries/index.js +8 -15
  124. package/dist/registries/index.js.map +1 -1
  125. package/dist/shareable-item-DkgWpwoU.d.cts +21 -0
  126. package/dist/shareable-item-DkgWpwoU.d.ts +21 -0
  127. package/dist/shell/AppShellLayout.cjs +14 -0
  128. package/dist/shell/AppShellLayout.cjs.map +1 -0
  129. package/dist/shell/AppShellLayout.d.cts +30 -0
  130. package/dist/shell/AppShellLayout.d.ts +30 -0
  131. package/dist/shell/AppShellLayout.js +5 -0
  132. package/dist/shell/AppShellLayout.js.map +1 -0
  133. package/dist/shell/ThemeModeContext.cjs +20 -0
  134. package/dist/shell/ThemeModeContext.cjs.map +1 -0
  135. package/dist/shell/ThemeModeContext.d.cts +27 -0
  136. package/dist/shell/ThemeModeContext.d.ts +27 -0
  137. package/dist/shell/ThemeModeContext.js +3 -0
  138. package/dist/shell/ThemeModeContext.js.map +1 -0
  139. package/dist/shell/index.cjs +135 -0
  140. package/dist/shell/index.cjs.map +1 -0
  141. package/dist/shell/index.d.cts +8 -0
  142. package/dist/shell/index.d.ts +8 -0
  143. package/dist/shell/index.js +6 -0
  144. package/dist/shell/index.js.map +1 -0
  145. package/dist/shell/sidebar.cjs +105 -0
  146. package/dist/shell/sidebar.cjs.map +1 -0
  147. package/dist/shell/sidebar.d.cts +73 -0
  148. package/dist/shell/sidebar.d.ts +73 -0
  149. package/dist/shell/sidebar.js +4 -0
  150. package/dist/shell/sidebar.js.map +1 -0
  151. package/dist/shell/use-mobile.cjs +20 -0
  152. package/dist/shell/use-mobile.cjs.map +1 -0
  153. package/dist/shell/use-mobile.d.cts +5 -0
  154. package/dist/shell/use-mobile.d.ts +5 -0
  155. package/dist/shell/use-mobile.js +3 -0
  156. package/dist/shell/use-mobile.js.map +1 -0
  157. package/dist/theme/index.cjs +599 -970
  158. package/dist/theme/index.cjs.map +1 -1
  159. package/dist/theme/index.d.cts +106 -2655
  160. package/dist/theme/index.d.ts +106 -2655
  161. package/dist/theme/index.js +570 -917
  162. package/dist/theme/index.js.map +1 -1
  163. package/dist/types/index.cjs +17 -17
  164. package/dist/types/index.d.cts +28 -4
  165. package/dist/types/index.d.ts +28 -4
  166. package/dist/types/index.js +1 -1
  167. package/dist/types-R1kV_DKF.d.cts +80 -0
  168. package/dist/types-R1kV_DKF.d.ts +80 -0
  169. package/dist/{shareable-item-DPmNZkE1.d.cts → widget-schema-36uGUTWL.d.cts} +5 -21
  170. package/dist/{shareable-item-DPmNZkE1.d.ts → widget-schema-DxdlJD8E.d.ts} +5 -21
  171. package/dist/widget-utils/index.cjs +3 -3
  172. package/dist/widget-utils/index.d.cts +3 -1
  173. package/dist/widget-utils/index.d.ts +3 -1
  174. package/dist/widget-utils/index.js +1 -1
  175. package/package.json +84 -13
  176. package/dist/chunk-6QLUUNJL.cjs.map +0 -1
  177. package/dist/chunk-EWR5EIBP.js.map +0 -1
  178. package/dist/theme-DrMUYZTO.d.cts +0 -22
  179. package/dist/theme-DrMUYZTO.d.ts +0 -22
@@ -0,0 +1,666 @@
1
+ 'use strict';
2
+
3
+ var chunk5NYM4UTW_cjs = require('./chunk-5NYM4UTW.cjs');
4
+ var reactSlot = require('@radix-ui/react-slot');
5
+ var classVarianceAuthority = require('class-variance-authority');
6
+ var clsx = require('clsx');
7
+ var tailwindMerge = require('tailwind-merge');
8
+ var React = require('react');
9
+ var jsxRuntime = require('react/jsx-runtime');
10
+
11
+ function _interopNamespace(e) {
12
+ if (e && e.__esModule) return e;
13
+ var n = Object.create(null);
14
+ if (e) {
15
+ Object.keys(e).forEach(function (k) {
16
+ if (k !== 'default') {
17
+ var d = Object.getOwnPropertyDescriptor(e, k);
18
+ Object.defineProperty(n, k, d.get ? d : {
19
+ enumerable: true,
20
+ get: function () { return e[k]; }
21
+ });
22
+ }
23
+ });
24
+ }
25
+ n.default = e;
26
+ return Object.freeze(n);
27
+ }
28
+
29
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
30
+
31
+ function cn(...inputs) {
32
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
33
+ }
34
+ function Separator({
35
+ className,
36
+ orientation = "horizontal",
37
+ ...props
38
+ }) {
39
+ return /* @__PURE__ */ jsxRuntime.jsx(
40
+ "div",
41
+ {
42
+ role: "separator",
43
+ "aria-orientation": orientation,
44
+ className: cn(
45
+ "shrink-0 bg-border",
46
+ orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
47
+ className
48
+ ),
49
+ ...props
50
+ }
51
+ );
52
+ }
53
+ function Skeleton({
54
+ className,
55
+ ...props
56
+ }) {
57
+ return /* @__PURE__ */ jsxRuntime.jsx(
58
+ "div",
59
+ {
60
+ className: cn("animate-pulse rounded-md bg-muted", className),
61
+ ...props
62
+ }
63
+ );
64
+ }
65
+ var SIDEBAR_WIDTH = "13rem";
66
+ var SIDEBAR_WIDTH_MOBILE = "18rem";
67
+ var SIDEBAR_WIDTH_ICON = "3rem";
68
+ var SIDEBAR_KEYBOARD_SHORTCUT = "b";
69
+ var SidebarContext = React__namespace.createContext(
70
+ null
71
+ );
72
+ function useSidebar() {
73
+ const context = React__namespace.useContext(SidebarContext);
74
+ if (!context) {
75
+ throw new Error("useSidebar must be used within a SidebarProvider.");
76
+ }
77
+ return context;
78
+ }
79
+ var SidebarProvider = React__namespace.forwardRef(
80
+ ({
81
+ defaultOpen = true,
82
+ open: openProp,
83
+ onOpenChange: setOpenProp,
84
+ viewportWidth,
85
+ previewMode,
86
+ useBottomNav: useBottomNavProp = false,
87
+ className,
88
+ style,
89
+ children,
90
+ ...props
91
+ }, ref) => {
92
+ const windowIsMobile = chunk5NYM4UTW_cjs.useIsMobile();
93
+ const isMobile = viewportWidth !== void 0 ? viewportWidth < 768 : windowIsMobile;
94
+ const isPreviewMode = viewportWidth !== void 0 || !!previewMode;
95
+ const [openMobile, setOpenMobile] = React__namespace.useState(false);
96
+ const [_open, _setOpen] = React__namespace.useState(defaultOpen);
97
+ const open = openProp ?? _open;
98
+ const setOpen = React__namespace.useCallback(
99
+ (value) => {
100
+ const openState = typeof value === "function" ? value(open) : value;
101
+ if (setOpenProp) {
102
+ setOpenProp(openState);
103
+ } else {
104
+ _setOpen(openState);
105
+ }
106
+ },
107
+ [setOpenProp, open]
108
+ );
109
+ const toggleSidebar = React__namespace.useCallback(() => {
110
+ return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
111
+ }, [isMobile, setOpen, setOpenMobile]);
112
+ React__namespace.useEffect(() => {
113
+ const handleKeyDown = (event) => {
114
+ if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
115
+ const activeElement = document.activeElement;
116
+ const isComposerFocused = activeElement?.closest(".group\\/composer") || activeElement?.closest("[data-toolbar]") || activeElement?.classList.contains("ProseMirror");
117
+ if (isComposerFocused) {
118
+ return;
119
+ }
120
+ event.preventDefault();
121
+ toggleSidebar();
122
+ }
123
+ };
124
+ window.addEventListener("keydown", handleKeyDown);
125
+ return () => window.removeEventListener("keydown", handleKeyDown);
126
+ }, [toggleSidebar]);
127
+ const state = open ? "expanded" : "collapsed";
128
+ const contextValue = React__namespace.useMemo(
129
+ () => ({
130
+ state,
131
+ open,
132
+ setOpen,
133
+ isMobile,
134
+ openMobile,
135
+ setOpenMobile,
136
+ toggleSidebar,
137
+ isPreviewMode,
138
+ useBottomNav: useBottomNavProp
139
+ }),
140
+ [
141
+ state,
142
+ open,
143
+ setOpen,
144
+ isMobile,
145
+ openMobile,
146
+ setOpenMobile,
147
+ toggleSidebar,
148
+ isPreviewMode,
149
+ useBottomNavProp
150
+ ]
151
+ );
152
+ return /* @__PURE__ */ jsxRuntime.jsx(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
153
+ "div",
154
+ {
155
+ style: {
156
+ "--sidebar-width": SIDEBAR_WIDTH,
157
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
158
+ ...style
159
+ },
160
+ className: cn(
161
+ "group/sidebar-wrapper flex min-h-0 w-full flex-1",
162
+ className
163
+ ),
164
+ ref,
165
+ ...props,
166
+ children
167
+ }
168
+ ) });
169
+ }
170
+ );
171
+ SidebarProvider.displayName = "SidebarProvider";
172
+ var Sidebar = React__namespace.forwardRef(
173
+ ({
174
+ side = "left",
175
+ variant = "sidebar",
176
+ collapsible = "offcanvas",
177
+ className,
178
+ children,
179
+ ...props
180
+ }, ref) => {
181
+ const {
182
+ isMobile,
183
+ state,
184
+ openMobile,
185
+ setOpenMobile,
186
+ isPreviewMode,
187
+ useBottomNav
188
+ } = useSidebar();
189
+ const sidebarWidth = state === "expanded" ? SIDEBAR_WIDTH : SIDEBAR_WIDTH_ICON;
190
+ if (useBottomNav && isMobile) {
191
+ return null;
192
+ }
193
+ if (collapsible === "none") {
194
+ return /* @__PURE__ */ jsxRuntime.jsx(
195
+ "div",
196
+ {
197
+ className: cn(
198
+ "flex w-(--sidebar-width) flex-col rounded-tl-lg bg-sidebar text-sidebar-foreground",
199
+ isPreviewMode ? "h-full" : "h-[97vh]",
200
+ className
201
+ ),
202
+ ref,
203
+ ...props,
204
+ children
205
+ }
206
+ );
207
+ }
208
+ if (isMobile) {
209
+ const positionClass = isPreviewMode ? "absolute" : "fixed";
210
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
211
+ openMobile && /* @__PURE__ */ jsxRuntime.jsx(
212
+ "div",
213
+ {
214
+ className: cn(positionClass, "inset-0 z-40 bg-black/50"),
215
+ onClick: () => setOpenMobile(false),
216
+ "aria-hidden": "true"
217
+ }
218
+ ),
219
+ /* @__PURE__ */ jsxRuntime.jsx(
220
+ "div",
221
+ {
222
+ "data-sidebar": "sidebar",
223
+ "data-mobile": "true",
224
+ className: cn(
225
+ positionClass,
226
+ "top-0 left-0 z-50 h-full w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground transition-transform duration-300 ease-in-out",
227
+ openMobile ? "translate-x-0" : "-translate-x-full",
228
+ className
229
+ ),
230
+ style: {
231
+ "--sidebar-width": SIDEBAR_WIDTH_MOBILE
232
+ },
233
+ ref,
234
+ ...props,
235
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full w-full flex-col", children })
236
+ }
237
+ )
238
+ ] });
239
+ }
240
+ return /* @__PURE__ */ jsxRuntime.jsxs(
241
+ "div",
242
+ {
243
+ ref,
244
+ className: "group peer hidden bg-sidebar text-sidebar-foreground md:block",
245
+ "data-state": state,
246
+ "data-collapsible": state === "collapsed" ? collapsible : "",
247
+ "data-variant": variant,
248
+ "data-side": side,
249
+ style: {
250
+ "--sidebar-width": sidebarWidth
251
+ },
252
+ children: [
253
+ /* @__PURE__ */ jsxRuntime.jsx(
254
+ "div",
255
+ {
256
+ className: cn(
257
+ "relative bg-transparent transition-[width] duration-200 ease-linear",
258
+ "group-data-[collapsible=offcanvas]:w-0",
259
+ "group-data-[side=right]:rotate-180",
260
+ variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
261
+ )
262
+ }
263
+ ),
264
+ /* @__PURE__ */ jsxRuntime.jsx(
265
+ "div",
266
+ {
267
+ className: cn(
268
+ "relative inset-y-0 z-[20] hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
269
+ isPreviewMode ? "h-full" : "h-svh",
270
+ side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
271
+ // Adjust the padding for floating and inset variants.
272
+ variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=right]:border-l",
273
+ className
274
+ ),
275
+ ...props,
276
+ children: /* @__PURE__ */ jsxRuntime.jsx(
277
+ "div",
278
+ {
279
+ "data-sidebar": "sidebar",
280
+ className: "flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",
281
+ children
282
+ }
283
+ )
284
+ }
285
+ )
286
+ ]
287
+ }
288
+ );
289
+ }
290
+ );
291
+ Sidebar.displayName = "Sidebar";
292
+ var SidebarRail = React__namespace.forwardRef(({ className, ...props }, ref) => {
293
+ const { toggleSidebar } = useSidebar();
294
+ return /* @__PURE__ */ jsxRuntime.jsx(
295
+ "button",
296
+ {
297
+ ref,
298
+ "data-sidebar": "rail",
299
+ "aria-label": "Toggle Sidebar",
300
+ tabIndex: -1,
301
+ onClick: toggleSidebar,
302
+ title: "Toggle Sidebar",
303
+ className: cn(
304
+ "absolute inset-y-0 z-[10] hidden w-4 -translate-x-full transition-all ease-linear group-data-[side=left]:-right-[1.375rem] group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex",
305
+ "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize",
306
+ "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
307
+ "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar",
308
+ "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
309
+ "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
310
+ className
311
+ ),
312
+ ...props
313
+ }
314
+ );
315
+ });
316
+ SidebarRail.displayName = "SidebarRail";
317
+ var SidebarInset = React__namespace.forwardRef(({ className, ...props }, ref) => {
318
+ const { isPreviewMode, isMobile, useBottomNav } = useSidebar();
319
+ return /* @__PURE__ */ jsxRuntime.jsx(
320
+ "main",
321
+ {
322
+ ref,
323
+ className: cn(
324
+ "relative flex flex-1 flex-col",
325
+ isPreviewMode ? "max-h-[calc(100svh-(--spacing(13)))]" : "min-h-svh peer-data-[variant=inset]:min-h-[calc(100svh-(--spacing(4)))]",
326
+ "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",
327
+ useBottomNav && isMobile && "pb-[calc(4rem+env(safe-area-inset-bottom))]",
328
+ className
329
+ ),
330
+ ...props
331
+ }
332
+ );
333
+ });
334
+ SidebarInset.displayName = "SidebarInset";
335
+ var SidebarInput = React__namespace.forwardRef(({ className, ...props }, ref) => {
336
+ return /* @__PURE__ */ jsxRuntime.jsx(
337
+ "input",
338
+ {
339
+ ref,
340
+ "data-sidebar": "input",
341
+ className: cn(
342
+ "h-8 w-full rounded-md border bg-background px-3 text-sm shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring focus-visible:outline-none",
343
+ className
344
+ ),
345
+ ...props
346
+ }
347
+ );
348
+ });
349
+ SidebarInput.displayName = "SidebarInput";
350
+ var SidebarHeader = React__namespace.forwardRef(({ className, ...props }, ref) => {
351
+ return /* @__PURE__ */ jsxRuntime.jsx(
352
+ "div",
353
+ {
354
+ ref,
355
+ "data-sidebar": "header",
356
+ className: cn("flex flex-col gap-2 p-2", className),
357
+ ...props
358
+ }
359
+ );
360
+ });
361
+ SidebarHeader.displayName = "SidebarHeader";
362
+ var SidebarFooter = React__namespace.forwardRef(({ className, ...props }, ref) => {
363
+ return /* @__PURE__ */ jsxRuntime.jsx(
364
+ "div",
365
+ {
366
+ ref,
367
+ "data-sidebar": "footer",
368
+ className: cn("flex flex-col gap-2 p-2", className),
369
+ ...props
370
+ }
371
+ );
372
+ });
373
+ SidebarFooter.displayName = "SidebarFooter";
374
+ var SidebarSeparator = React__namespace.forwardRef(({ className, ...props }, ref) => {
375
+ return /* @__PURE__ */ jsxRuntime.jsx(
376
+ Separator,
377
+ {
378
+ ref,
379
+ "data-sidebar": "separator",
380
+ className: cn("mx-2 w-auto bg-sidebar-border", className),
381
+ ...props
382
+ }
383
+ );
384
+ });
385
+ SidebarSeparator.displayName = "SidebarSeparator";
386
+ var SidebarContent = React__namespace.forwardRef(({ className, ...props }, ref) => {
387
+ return /* @__PURE__ */ jsxRuntime.jsx(
388
+ "div",
389
+ {
390
+ ref,
391
+ "data-sidebar": "content",
392
+ className: cn(
393
+ "scrollbar-none flex min-h-0 flex-1 flex-col gap-2 overflow-auto rounded group-data-[collapsible=icon]:gap-0 group-data-[collapsible=icon]:overflow-hidden group-data-[collapsible=icon]:pt-3",
394
+ className
395
+ ),
396
+ ...props
397
+ }
398
+ );
399
+ });
400
+ SidebarContent.displayName = "SidebarContent";
401
+ var SidebarGroup = React__namespace.forwardRef(({ className, ...props }, ref) => {
402
+ return /* @__PURE__ */ jsxRuntime.jsx(
403
+ "div",
404
+ {
405
+ ref,
406
+ "data-sidebar": "group",
407
+ className: cn(
408
+ "relative flex w-full min-w-0 flex-col p-2 group-data-[collapsible=icon]:py-0 group-data-[collapsible=icon]:pt-4",
409
+ className
410
+ ),
411
+ ...props
412
+ }
413
+ );
414
+ });
415
+ SidebarGroup.displayName = "SidebarGroup";
416
+ var SidebarGroupLabel = React__namespace.forwardRef(({ className, asChild = false, ...props }, ref) => {
417
+ const Comp = asChild ? reactSlot.Slot : "div";
418
+ return /* @__PURE__ */ jsxRuntime.jsx(
419
+ Comp,
420
+ {
421
+ ref,
422
+ "data-sidebar": "group-label",
423
+ className: cn(
424
+ "flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
425
+ "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:hidden",
426
+ className
427
+ ),
428
+ ...props
429
+ }
430
+ );
431
+ });
432
+ SidebarGroupLabel.displayName = "SidebarGroupLabel";
433
+ var SidebarGroupAction = React__namespace.forwardRef(({ className, asChild = false, ...props }, ref) => {
434
+ const Comp = asChild ? reactSlot.Slot : "button";
435
+ return /* @__PURE__ */ jsxRuntime.jsx(
436
+ Comp,
437
+ {
438
+ ref,
439
+ "data-sidebar": "group-action",
440
+ className: cn(
441
+ "absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
442
+ // Increases the hit area of the button on mobile.
443
+ "after:absolute after:-inset-2 md:after:hidden",
444
+ "group-data-[collapsible=icon]:hidden",
445
+ className
446
+ ),
447
+ ...props
448
+ }
449
+ );
450
+ });
451
+ SidebarGroupAction.displayName = "SidebarGroupAction";
452
+ var SidebarGroupContent = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
453
+ "div",
454
+ {
455
+ ref,
456
+ "data-sidebar": "group-content",
457
+ className: cn("w-full text-sm", className),
458
+ ...props
459
+ }
460
+ ));
461
+ SidebarGroupContent.displayName = "SidebarGroupContent";
462
+ var SidebarMenu = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
463
+ "ul",
464
+ {
465
+ ref,
466
+ "data-sidebar": "menu",
467
+ className: cn("flex w-full min-w-0 flex-col gap-1", className),
468
+ ...props
469
+ }
470
+ ));
471
+ SidebarMenu.displayName = "SidebarMenu";
472
+ var SidebarMenuItem = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
473
+ "li",
474
+ {
475
+ ref,
476
+ "data-sidebar": "menu-item",
477
+ className: cn("group/menu-item relative", className),
478
+ ...props
479
+ }
480
+ ));
481
+ SidebarMenuItem.displayName = "SidebarMenuItem";
482
+ var sidebarMenuButtonVariants = classVarianceAuthority.cva(
483
+ "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-primary hover:text-sidebar-primary-foreground focus-visible:ring-2 active:bg-sidebar-primary active:text-sidebar-primary-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-primary data-[active=true]:font-medium data-[active=true]:text-sidebar-primary-foreground data-[state=open]:hover:bg-sidebar-primary data-[state=open]:hover:text-sidebar-primary-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
484
+ {
485
+ variants: {
486
+ variant: {
487
+ default: "hover:bg-sidebar-primary hover:text-sidebar-primary-foreground",
488
+ outline: "shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-primary hover:text-sidebar-primary-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-primary))]"
489
+ },
490
+ size: {
491
+ default: "h-8 text-sm",
492
+ sm: "h-7 text-xs",
493
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
494
+ }
495
+ },
496
+ defaultVariants: {
497
+ variant: "default",
498
+ size: "default"
499
+ }
500
+ }
501
+ );
502
+ var SidebarMenuButton = React__namespace.forwardRef(
503
+ ({
504
+ asChild = false,
505
+ isActive = false,
506
+ variant = "default",
507
+ size = "default",
508
+ className,
509
+ ...props
510
+ }, ref) => {
511
+ const Comp = asChild ? reactSlot.Slot : "button";
512
+ const button = /* @__PURE__ */ jsxRuntime.jsx(
513
+ Comp,
514
+ {
515
+ ref,
516
+ "data-sidebar": "menu-button",
517
+ "data-size": size,
518
+ "data-active": isActive,
519
+ className: cn(sidebarMenuButtonVariants({ variant, size }), className),
520
+ ...props
521
+ }
522
+ );
523
+ return button;
524
+ }
525
+ );
526
+ SidebarMenuButton.displayName = "SidebarMenuButton";
527
+ var SidebarMenuAction = React__namespace.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
528
+ const Comp = asChild ? reactSlot.Slot : "button";
529
+ return /* @__PURE__ */ jsxRuntime.jsx(
530
+ Comp,
531
+ {
532
+ ref,
533
+ "data-sidebar": "menu-action",
534
+ className: cn(
535
+ "absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform peer-hover/menu-button:text-sidebar-accent-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
536
+ // Increases the hit area of the button on mobile.
537
+ "after:absolute after:-inset-2 md:after:hidden",
538
+ "peer-data-[size=sm]/menu-button:top-1",
539
+ "peer-data-[size=default]/menu-button:top-1.5",
540
+ "peer-data-[size=lg]/menu-button:top-2.5",
541
+ "group-data-[collapsible=icon]:hidden",
542
+ showOnHover && "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground data-[state=open]:opacity-100 md:opacity-0",
543
+ className
544
+ ),
545
+ ...props
546
+ }
547
+ );
548
+ });
549
+ SidebarMenuAction.displayName = "SidebarMenuAction";
550
+ var SidebarMenuBadge = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
551
+ "div",
552
+ {
553
+ ref,
554
+ "data-sidebar": "menu-badge",
555
+ className: cn(
556
+ "pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none",
557
+ "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground",
558
+ "peer-data-[size=sm]/menu-button:top-1",
559
+ "peer-data-[size=default]/menu-button:top-1.5",
560
+ "peer-data-[size=lg]/menu-button:top-2.5",
561
+ "group-data-[collapsible=icon]:hidden",
562
+ className
563
+ ),
564
+ ...props
565
+ }
566
+ ));
567
+ SidebarMenuBadge.displayName = "SidebarMenuBadge";
568
+ var SidebarMenuSkeleton = React__namespace.forwardRef(({ className, showIcon = false, ...props }, ref) => {
569
+ const width = React__namespace.useMemo(() => {
570
+ return `${Math.floor(Math.random() * 40) + 50}%`;
571
+ }, []);
572
+ return /* @__PURE__ */ jsxRuntime.jsxs(
573
+ "div",
574
+ {
575
+ ref,
576
+ "data-sidebar": "menu-skeleton",
577
+ className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
578
+ ...props,
579
+ children: [
580
+ showIcon && /* @__PURE__ */ jsxRuntime.jsx(
581
+ Skeleton,
582
+ {
583
+ className: "size-4 rounded-md",
584
+ "data-sidebar": "menu-skeleton-icon"
585
+ }
586
+ ),
587
+ /* @__PURE__ */ jsxRuntime.jsx(
588
+ Skeleton,
589
+ {
590
+ className: "h-4 max-w-(--skeleton-width) flex-1",
591
+ "data-sidebar": "menu-skeleton-text",
592
+ style: {
593
+ "--skeleton-width": width
594
+ }
595
+ }
596
+ )
597
+ ]
598
+ }
599
+ );
600
+ });
601
+ SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
602
+ var SidebarMenuSub = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
603
+ "ul",
604
+ {
605
+ ref,
606
+ "data-sidebar": "menu-sub",
607
+ className: cn(
608
+ "mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5",
609
+ "group-data-[collapsible=icon]:hidden",
610
+ className
611
+ ),
612
+ ...props
613
+ }
614
+ ));
615
+ SidebarMenuSub.displayName = "SidebarMenuSub";
616
+ var SidebarMenuSubItem = React__namespace.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("li", { ref, ...props }));
617
+ SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
618
+ var SidebarMenuSubButton = React__namespace.forwardRef(({ asChild = false, size = "md", isActive, className, ...props }, ref) => {
619
+ const Comp = asChild ? reactSlot.Slot : "a";
620
+ return /* @__PURE__ */ jsxRuntime.jsx(
621
+ Comp,
622
+ {
623
+ ref,
624
+ "data-sidebar": "menu-sub-button",
625
+ "data-size": size,
626
+ "data-active": isActive,
627
+ className: cn(
628
+ "flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden 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 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
629
+ "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
630
+ size === "sm" && "text-xs",
631
+ size === "md" && "text-sm",
632
+ "group-data-[collapsible=icon]:hidden",
633
+ className
634
+ ),
635
+ ...props
636
+ }
637
+ );
638
+ });
639
+ SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
640
+
641
+ exports.Sidebar = Sidebar;
642
+ exports.SidebarContent = SidebarContent;
643
+ exports.SidebarContext = SidebarContext;
644
+ exports.SidebarFooter = SidebarFooter;
645
+ exports.SidebarGroup = SidebarGroup;
646
+ exports.SidebarGroupAction = SidebarGroupAction;
647
+ exports.SidebarGroupContent = SidebarGroupContent;
648
+ exports.SidebarGroupLabel = SidebarGroupLabel;
649
+ exports.SidebarHeader = SidebarHeader;
650
+ exports.SidebarInput = SidebarInput;
651
+ exports.SidebarInset = SidebarInset;
652
+ exports.SidebarMenu = SidebarMenu;
653
+ exports.SidebarMenuAction = SidebarMenuAction;
654
+ exports.SidebarMenuBadge = SidebarMenuBadge;
655
+ exports.SidebarMenuButton = SidebarMenuButton;
656
+ exports.SidebarMenuItem = SidebarMenuItem;
657
+ exports.SidebarMenuSkeleton = SidebarMenuSkeleton;
658
+ exports.SidebarMenuSub = SidebarMenuSub;
659
+ exports.SidebarMenuSubButton = SidebarMenuSubButton;
660
+ exports.SidebarMenuSubItem = SidebarMenuSubItem;
661
+ exports.SidebarProvider = SidebarProvider;
662
+ exports.SidebarRail = SidebarRail;
663
+ exports.SidebarSeparator = SidebarSeparator;
664
+ exports.useSidebar = useSidebar;
665
+ //# sourceMappingURL=chunk-CMXYKDHC.cjs.map
666
+ //# sourceMappingURL=chunk-CMXYKDHC.cjs.map