@cryptlex/web-components 5.1.1 → 5.2.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 (128) hide show
  1. package/lib/components/data-table/data-table-filter.tsx +220 -0
  2. package/lib/components/data-table/data-table.tsx +593 -0
  3. package/lib/components/data-table/table-commons.tsx +233 -0
  4. package/lib/components/inputs/checkbox.tsx +72 -0
  5. package/lib/components/inputs/date-picker.tsx +130 -0
  6. package/lib/components/inputs/datefield.tsx +109 -0
  7. package/lib/components/inputs/field.tsx +106 -0
  8. package/lib/components/inputs/id-search.tsx +83 -0
  9. package/lib/components/inputs/input-otp.tsx +63 -0
  10. package/lib/components/inputs/multi-select.tsx +62 -0
  11. package/lib/components/inputs/numberfield.tsx +110 -0
  12. package/lib/components/inputs/searchfield.tsx +87 -0
  13. package/lib/components/inputs/select-options.tsx +303 -0
  14. package/lib/components/inputs/select.tsx +140 -0
  15. package/lib/components/inputs/textfield.tsx +96 -0
  16. package/lib/components/key-value-card/key-value-card.tsx +115 -0
  17. package/lib/components/ui/alert.tsx +32 -0
  18. package/lib/components/ui/avatar.tsx +22 -0
  19. package/lib/components/ui/badge.tsx +19 -0
  20. package/lib/components/ui/breadcrumbs.tsx +104 -0
  21. package/lib/components/ui/button.tsx +66 -0
  22. package/lib/components/ui/calendar.tsx +220 -0
  23. package/lib/components/ui/card.tsx +58 -0
  24. package/lib/components/ui/dialog.tsx +172 -0
  25. package/lib/components/ui/disclosure.tsx +113 -0
  26. package/lib/components/ui/list-box.tsx +86 -0
  27. package/lib/components/ui/loader.tsx +10 -0
  28. package/lib/components/ui/menu.tsx +168 -0
  29. package/lib/components/ui/popover.tsx +37 -0
  30. package/lib/components/ui/sidebar.tsx +552 -0
  31. package/lib/components/ui/skeleton.tsx +7 -0
  32. package/lib/components/ui/sonner.tsx +26 -0
  33. package/lib/components/ui/table.tsx +79 -0
  34. package/lib/components/ui/tabs.tsx +82 -0
  35. package/lib/components/ui/timeline.tsx +52 -0
  36. package/lib/components/ui/tooltip.tsx +30 -0
  37. package/lib/tokens.scss +89 -0
  38. package/lib/utils/form-context.tsx +7 -0
  39. package/lib/utils/form-hook.tsx +33 -0
  40. package/lib/utils/primitives.ts +68 -0
  41. package/lib/utils/resource-names.tsx +245 -0
  42. package/lib/utils/use-mobile.tsx +21 -0
  43. package/package.json +28 -38
  44. package/dist/components/data-table/data-table-filter.es.js +0 -132
  45. package/dist/components/data-table/data-table-filter.es.js.map +0 -1
  46. package/dist/components/data-table/data-table.es.js +0 -412
  47. package/dist/components/data-table/data-table.es.js.map +0 -1
  48. package/dist/components/data-table/table-commons.es.js +0 -136
  49. package/dist/components/data-table/table-commons.es.js.map +0 -1
  50. package/dist/components/inputs/checkbox.es.js +0 -61
  51. package/dist/components/inputs/checkbox.es.js.map +0 -1
  52. package/dist/components/inputs/date-picker.es.js +0 -124
  53. package/dist/components/inputs/date-picker.es.js.map +0 -1
  54. package/dist/components/inputs/datefield.es.js +0 -90
  55. package/dist/components/inputs/datefield.es.js.map +0 -1
  56. package/dist/components/inputs/field.es.js +0 -91
  57. package/dist/components/inputs/field.es.js.map +0 -1
  58. package/dist/components/inputs/id-search.es.js +0 -61
  59. package/dist/components/inputs/id-search.es.js.map +0 -1
  60. package/dist/components/inputs/input-otp.es.js +0 -60
  61. package/dist/components/inputs/input-otp.es.js.map +0 -1
  62. package/dist/components/inputs/multi-select.es.js +0 -47
  63. package/dist/components/inputs/multi-select.es.js.map +0 -1
  64. package/dist/components/inputs/numberfield.es.js +0 -101
  65. package/dist/components/inputs/numberfield.es.js.map +0 -1
  66. package/dist/components/inputs/searchfield.es.js +0 -80
  67. package/dist/components/inputs/searchfield.es.js.map +0 -1
  68. package/dist/components/inputs/select-options.es.js +0 -286
  69. package/dist/components/inputs/select-options.es.js.map +0 -1
  70. package/dist/components/inputs/select.es.js +0 -113
  71. package/dist/components/inputs/select.es.js.map +0 -1
  72. package/dist/components/inputs/textfield.es.js +0 -86
  73. package/dist/components/inputs/textfield.es.js.map +0 -1
  74. package/dist/components/key-value-card/key-value-card.es.js +0 -53
  75. package/dist/components/key-value-card/key-value-card.es.js.map +0 -1
  76. package/dist/components/ui/alert.es.js +0 -29
  77. package/dist/components/ui/alert.es.js.map +0 -1
  78. package/dist/components/ui/avatar.es.js +0 -19
  79. package/dist/components/ui/avatar.es.js.map +0 -1
  80. package/dist/components/ui/badge.es.js +0 -19
  81. package/dist/components/ui/badge.es.js.map +0 -1
  82. package/dist/components/ui/breadcrumbs.es.js +0 -104
  83. package/dist/components/ui/breadcrumbs.es.js.map +0 -1
  84. package/dist/components/ui/button.es.js +0 -58
  85. package/dist/components/ui/button.es.js.map +0 -1
  86. package/dist/components/ui/calendar.es.js +0 -163
  87. package/dist/components/ui/calendar.es.js.map +0 -1
  88. package/dist/components/ui/card.es.js +0 -53
  89. package/dist/components/ui/card.es.js.map +0 -1
  90. package/dist/components/ui/dialog.es.js +0 -156
  91. package/dist/components/ui/dialog.es.js.map +0 -1
  92. package/dist/components/ui/disclosure.es.js +0 -90
  93. package/dist/components/ui/disclosure.es.js.map +0 -1
  94. package/dist/components/ui/list-box.es.js +0 -76
  95. package/dist/components/ui/list-box.es.js.map +0 -1
  96. package/dist/components/ui/loader.es.js +0 -10
  97. package/dist/components/ui/loader.es.js.map +0 -1
  98. package/dist/components/ui/menu.es.js +0 -129
  99. package/dist/components/ui/menu.es.js.map +0 -1
  100. package/dist/components/ui/popover.es.js +0 -32
  101. package/dist/components/ui/popover.es.js.map +0 -1
  102. package/dist/components/ui/sidebar.es.js +0 -456
  103. package/dist/components/ui/sidebar.es.js.map +0 -1
  104. package/dist/components/ui/skeleton.es.js +0 -9
  105. package/dist/components/ui/skeleton.es.js.map +0 -1
  106. package/dist/components/ui/sonner.es.js +0 -24
  107. package/dist/components/ui/sonner.es.js.map +0 -1
  108. package/dist/components/ui/table.es.js +0 -88
  109. package/dist/components/ui/table.es.js.map +0 -1
  110. package/dist/components/ui/tabs.es.js +0 -83
  111. package/dist/components/ui/tabs.es.js.map +0 -1
  112. package/dist/components/ui/timeline.es.js +0 -46
  113. package/dist/components/ui/timeline.es.js.map +0 -1
  114. package/dist/components/ui/tooltip.es.js +0 -28
  115. package/dist/components/ui/tooltip.es.js.map +0 -1
  116. package/dist/index.es.d.ts +0 -861
  117. package/dist/index.es.js +0 -218
  118. package/dist/index.es.js.map +0 -1
  119. package/dist/utils/form-context.es.js +0 -8
  120. package/dist/utils/form-context.es.js.map +0 -1
  121. package/dist/utils/form-hook.es.js +0 -30
  122. package/dist/utils/form-hook.es.js.map +0 -1
  123. package/dist/utils/primitives.es.js +0 -31
  124. package/dist/utils/primitives.es.js.map +0 -1
  125. package/dist/utils/resource-names.es.js +0 -182
  126. package/dist/utils/resource-names.es.js.map +0 -1
  127. package/dist/utils/use-mobile.es.js +0 -17
  128. package/dist/utils/use-mobile.es.js.map +0 -1
@@ -1,456 +0,0 @@
1
- "use client";
2
- import { jsx as a, Fragment as z, jsxs as v } from "react/jsx-runtime";
3
- import { PanelLeftClose as I, PanelLeftOpen as D } from "lucide-react";
4
- import * as s from "react";
5
- import { Button as C } from "./button.es.js";
6
- import { DialogTrigger as T, DialogOverlay as B, DialogContent as O } from "./dialog.es.js";
7
- import { Skeleton as S } from "./skeleton.es.js";
8
- import { TooltipTrigger as E, Tooltip as R } from "./tooltip.es.js";
9
- import { useIsMobile as A } from "../../utils/use-mobile.es.js";
10
- import { cn as r } from "../../utils/primitives.es.js";
11
- const L = "16rem", j = "18rem", H = "3rem", G = "b", N = s.createContext(null);
12
- function x() {
13
- const t = s.useContext(N);
14
- if (!t)
15
- throw new Error("useSidebar must be used within a SidebarProvider.");
16
- return t;
17
- }
18
- function J({
19
- defaultOpen: t = !0,
20
- open: e,
21
- onOpenChange: i,
22
- className: n,
23
- style: d,
24
- children: l,
25
- ...b
26
- }) {
27
- const u = A(), [g, f] = s.useState(!1), [k, M] = s.useState(t), p = e ?? k, m = s.useCallback(
28
- (o) => {
29
- const c = typeof o == "function" ? o(p) : o;
30
- i ? i(c) : M(c);
31
- },
32
- [i, p]
33
- ), h = s.useCallback(() => u ? f((o) => !o) : m((o) => !o), [u, m, f]);
34
- s.useEffect(() => {
35
- const o = (c) => {
36
- c.key === G && (c.metaKey || c.ctrlKey) && (c.preventDefault(), h());
37
- };
38
- return window.addEventListener("keydown", o), () => window.removeEventListener("keydown", o);
39
- }, [h]);
40
- const w = p ? "expanded" : "collapsed", _ = s.useMemo(
41
- () => ({
42
- state: w,
43
- open: p,
44
- setOpen: m,
45
- isMobile: u,
46
- openMobile: g,
47
- setOpenMobile: f,
48
- toggleSidebar: h
49
- }),
50
- [w, p, m, u, g, f, h]
51
- );
52
- return /* @__PURE__ */ a(N.Provider, { value: _, children: /* @__PURE__ */ a(
53
- "div",
54
- {
55
- style: {
56
- "--sidebar-width": L,
57
- "--sidebar-width-icon": H,
58
- ...d
59
- },
60
- className: r(
61
- "group/sidebar-wrapper flex w-full has-[[data-variant=inset]]:bg-sidebar-background",
62
- n
63
- ),
64
- ...b,
65
- children: l
66
- }
67
- ) });
68
- }
69
- function Q({
70
- side: t = "left",
71
- variant: e = "sidebar",
72
- collapsible: i = "offcanvas",
73
- className: n,
74
- children: d,
75
- ...l
76
- }) {
77
- const { isMobile: b, state: u, openMobile: g, setOpenMobile: f } = x();
78
- return i === "none" ? /* @__PURE__ */ a(
79
- "div",
80
- {
81
- className: r(
82
- "flex h-full w-[--sidebar-width] flex-col bg-sidebar-background text-sidebar-foreground",
83
- n
84
- ),
85
- ...l,
86
- children: d
87
- }
88
- ) : b ? /* @__PURE__ */ a(T, { style: { "--sidebar-width": j }, isOpen: g, onOpenChange: f, ...l, children: /* @__PURE__ */ a(B, { children: /* @__PURE__ */ a(
89
- O,
90
- {
91
- "data-sidebar": "sidebar",
92
- "data-mobile": "true",
93
- className: "w-[--sidebar-width] p-0 [&>button]:hidden",
94
- side: "right",
95
- children: () => /* @__PURE__ */ a(z, { children: d })
96
- }
97
- ) }) }) : /* @__PURE__ */ v(
98
- "div",
99
- {
100
- className: "group peer hidden text-sidebar-foreground md:block",
101
- "data-state": u,
102
- "data-collapsible": u === "collapsed" ? i : "",
103
- "data-variant": e,
104
- "data-side": t,
105
- children: [
106
- /* @__PURE__ */ a(
107
- "div",
108
- {
109
- className: r(
110
- "relative w-(--sidebar-width) bg-sidebar-background transition-[width] duration-200 ease-linear",
111
- "group-data-[collapsible=offcanvas]:w-0",
112
- "group-data-[side=right]:rotate-180",
113
- e === "floating" || e === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]" : "group-data-[collapsible=icon]:w-[--sidebar-width-icon]"
114
- )
115
- }
116
- ),
117
- /* @__PURE__ */ a(
118
- "div",
119
- {
120
- className: r(
121
- "absolute z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
122
- t === "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)]",
123
- // Adjust the padding for floating and inset variants.
124
- e === "floating" || e === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]" : "group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l",
125
- n
126
- ),
127
- ...l,
128
- children: /* @__PURE__ */ a(
129
- "div",
130
- {
131
- "data-sidebar": "sidebar",
132
- className: "flex h-full w-full flex-col bg-sidebar-background group-data-[variant=floating]:border group-data-[variant=floating]:border-border group-data-[variant=floating]:shadow",
133
- children: d
134
- }
135
- )
136
- }
137
- )
138
- ]
139
- }
140
- );
141
- }
142
- function X({ className: t, onClick: e, ...i }) {
143
- const { toggleSidebar: n, open: d } = x();
144
- return /* @__PURE__ */ a(
145
- C,
146
- {
147
- "data-sidebar": "trigger",
148
- variant: "neutral",
149
- size: "icon",
150
- onClick: (l) => {
151
- e == null || e(l), n();
152
- },
153
- ...i,
154
- children: d ? /* @__PURE__ */ a(I, {}) : /* @__PURE__ */ a(D, {})
155
- }
156
- );
157
- }
158
- const K = s.forwardRef(({ className: t, ...e }, i) => {
159
- const { toggleSidebar: n } = x();
160
- return /* @__PURE__ */ a(
161
- "button",
162
- {
163
- ref: i,
164
- "data-sidebar": "rail",
165
- "aria-label": "Toggle Sidebar",
166
- tabIndex: -1,
167
- onClick: n,
168
- title: "Toggle Sidebar",
169
- className: r(
170
- "absolute inset-y-0 z-20 hidden w-icon -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-border group-data-[side=left]:-right-icon group-data-[side=right]:left-0 sm:flex",
171
- "[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize",
172
- "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",
173
- "group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar-background",
174
- "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2",
175
- "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",
176
- t
177
- ),
178
- ...e
179
- }
180
- );
181
- });
182
- K.displayName = "SidebarRail";
183
- function Z({ className: t, ...e }) {
184
- return /* @__PURE__ */ a(
185
- "main",
186
- {
187
- className: r(
188
- "relative flex w-full flex-1 flex-col bg-background",
189
- "md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",
190
- t
191
- ),
192
- ...e
193
- }
194
- );
195
- }
196
- function ee({ className: t, ...e }) {
197
- return /* @__PURE__ */ a(
198
- "div",
199
- {
200
- "data-sidebar": "header",
201
- className: r("flex flex-col gap-2 p-2", t),
202
- ...e
203
- }
204
- );
205
- }
206
- function te({ className: t, ...e }) {
207
- return /* @__PURE__ */ a(
208
- "div",
209
- {
210
- "data-sidebar": "footer",
211
- className: r("flex flex-col gap-2 p-2", t),
212
- ...e
213
- }
214
- );
215
- }
216
- function ae({ className: t, ...e }) {
217
- return /* @__PURE__ */ a(
218
- "div",
219
- {
220
- "data-sidebar": "content",
221
- className: r(
222
- "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",
223
- t
224
- ),
225
- ...e
226
- }
227
- );
228
- }
229
- function re({ className: t, ...e }) {
230
- return /* @__PURE__ */ a(
231
- "div",
232
- {
233
- "data-sidebar": "group",
234
- className: r("relative flex w-full min-w-0 flex-col p-2", t),
235
- ...e
236
- }
237
- );
238
- }
239
- function ie({ className: t, ...e }) {
240
- return /* @__PURE__ */ a(
241
- "div",
242
- {
243
- "data-sidebar": "group-label",
244
- className: r(
245
- "flex h-input shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-icon [&>svg]:shrink-0",
246
- "group-data-[collapsible=icon]:-mt-input group-data-[collapsible=icon]:opacity-0",
247
- t
248
- ),
249
- ...e
250
- }
251
- );
252
- }
253
- function ne({ className: t, ...e }) {
254
- return /* @__PURE__ */ a(
255
- "button",
256
- {
257
- "data-sidebar": "group-action",
258
- className: r(
259
- "absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-ring transition-transform hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 [&>svg]:size-icon [&>svg]:shrink-0",
260
- // Increases the hit area of the button on mobile.
261
- "after:absolute after:-inset-2 after:md:hidden",
262
- "group-data-[collapsible=icon]:hidden",
263
- t
264
- ),
265
- ...e
266
- }
267
- );
268
- }
269
- function oe({ className: t, ...e }) {
270
- return /* @__PURE__ */ a(
271
- "div",
272
- {
273
- "data-sidebar": "group-content",
274
- className: r("w-full text-sm", t),
275
- ...e
276
- }
277
- );
278
- }
279
- function se({ className: t, ...e }) {
280
- return /* @__PURE__ */ a(
281
- "ul",
282
- {
283
- "data-sidebar": "menu",
284
- className: r("flex w-full min-w-0 flex-col gap-1", t),
285
- ...e
286
- }
287
- );
288
- }
289
- function de({ className: t, ...e }) {
290
- return /* @__PURE__ */ a(
291
- "li",
292
- {
293
- "data-sidebar": "menu-item",
294
- className: r("group/menu-item relative list-none", t),
295
- ...e
296
- }
297
- );
298
- }
299
- function le({ className: t, showOnHover: e = !1, ...i }) {
300
- return /* @__PURE__ */ a(
301
- "button",
302
- {
303
- "data-sidebar": "menu-action",
304
- className: r(
305
- "absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-ring transition-transform hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-accent-foreground [&>svg]:size-icon [&>svg]:shrink-0",
306
- // Increases the hit area of the button on mobile.
307
- "after:absolute after:-inset-2 after:md:hidden",
308
- "peer-data-[size=sm]/menu-button:top-1",
309
- "peer-data-[size=default]/menu-button:top-1.5",
310
- "peer-data-[size=lg]/menu-button:top-2.5",
311
- "group-data-[collapsible=icon]:hidden",
312
- e && "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-accent-foreground md:opacity-0",
313
- t
314
- ),
315
- ...i
316
- }
317
- );
318
- }
319
- function ue({ className: t, ...e }) {
320
- return /* @__PURE__ */ a(
321
- "div",
322
- {
323
- "data-sidebar": "menu-badge",
324
- className: r(
325
- "pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground",
326
- "peer-hover/menu-button:text-accent-foreground peer-data-[active=true]/menu-button:text-accent-foreground",
327
- "peer-data-[size=sm]/menu-button:top-1",
328
- "peer-data-[size=default]/menu-button:top-1.5",
329
- "peer-data-[size=lg]/menu-button:top-2.5",
330
- "group-data-[collapsible=icon]:hidden",
331
- t
332
- ),
333
- ...e
334
- }
335
- );
336
- }
337
- function ce({ className: t, showIcon: e = !1, ...i }) {
338
- const n = s.useMemo(() => `${Math.floor(Math.random() * 40) + 50}%`, []);
339
- return /* @__PURE__ */ v(
340
- "div",
341
- {
342
- "data-sidebar": "menu-skeleton",
343
- className: r("flex h-input items-center gap-2 px-2", t),
344
- ...i,
345
- children: [
346
- e && /* @__PURE__ */ a(
347
- S,
348
- {
349
- className: "size-icon",
350
- "data-sidebar": "menu-skeleton-icon"
351
- }
352
- ),
353
- /* @__PURE__ */ a(
354
- S,
355
- {
356
- className: "h-icon max-w-[--skeleton-width] flex-1",
357
- "data-sidebar": "menu-skeleton-text",
358
- style: {
359
- "--skeleton-width": n
360
- }
361
- }
362
- )
363
- ]
364
- }
365
- );
366
- }
367
- function be({ className: t, ...e }) {
368
- return /* @__PURE__ */ a(
369
- "ul",
370
- {
371
- "data-sidebar": "menu-sub",
372
- className: r(
373
- "mx-2 flex min-w-0 translate-x-px flex-col gap-1 border-l border-border px-2",
374
- "group-data-[collapsible=icon]:hidden",
375
- t
376
- ),
377
- ...e
378
- }
379
- );
380
- }
381
- function fe({ className: t, ...e }) {
382
- return /* @__PURE__ */ a("li", { className: r("list-none ms-0", t), ...e });
383
- }
384
- const y = "flex w-full items-center gap-2 truncate p-2 text-sm btn btn-ghost h-input text-accent data-[active=true]:bg-primary/20 data-[active=true]:font-medium data-[active=true]:text-primary [&>span:last-child]:truncate [&>svg]:size-icon [&>svg]:shrink-0";
385
- function pe({
386
- isActive: t = !1,
387
- tooltip: e,
388
- className: i,
389
- ...n
390
- }) {
391
- const { isMobile: d, state: l } = x(), b = /* @__PURE__ */ a(
392
- "button",
393
- {
394
- "data-sidebar": "menu-button",
395
- "data-active": t,
396
- className: r(
397
- "peer/menu-button group-has-[[data-sidebar=menu-action]]/menu-item:pr-input group-data-[collapsible=icon]:!size-icon group-data-[collapsible=icon]:!p-2 ",
398
- y,
399
- i
400
- ),
401
- ...n
402
- }
403
- );
404
- return e ? /* @__PURE__ */ v(E, { children: [
405
- b,
406
- /* @__PURE__ */ a(
407
- R,
408
- {
409
- hidden: l !== "collapsed" || d,
410
- ...e
411
- }
412
- )
413
- ] }) : b;
414
- }
415
- function ge({ isActive: t, className: e, ...i }) {
416
- return /* @__PURE__ */ a(
417
- "a",
418
- {
419
- "data-sidebar": "menu-sub-button",
420
- "data-active": t,
421
- className: r(
422
- "-translate-x-px [&>svg]:text-accent-foreground",
423
- "group-data-[collapsible=icon]:hidden",
424
- y,
425
- e
426
- ),
427
- ...i
428
- }
429
- );
430
- }
431
- export {
432
- Q as Sidebar,
433
- ae as SidebarContent,
434
- N as SidebarContext,
435
- te as SidebarFooter,
436
- re as SidebarGroup,
437
- ne as SidebarGroupAction,
438
- oe as SidebarGroupContent,
439
- ie as SidebarGroupLabel,
440
- ee as SidebarHeader,
441
- Z as SidebarInset,
442
- se as SidebarMenu,
443
- le as SidebarMenuAction,
444
- ue as SidebarMenuBadge,
445
- pe as SidebarMenuButton,
446
- de as SidebarMenuItem,
447
- ce as SidebarMenuSkeleton,
448
- be as SidebarMenuSub,
449
- ge as SidebarMenuSubButton,
450
- fe as SidebarMenuSubItem,
451
- J as SidebarProvider,
452
- K as SidebarRail,
453
- X as SidebarTrigger,
454
- x as useSidebar
455
- };
456
- //# sourceMappingURL=sidebar.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sidebar.es.js","sources":["../../../lib/components/ui/sidebar.tsx"],"sourcesContent":["\"use client\"\nimport { PanelLeftClose, PanelLeftOpen } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { DialogContent, DialogOverlay, DialogTrigger } from \"@/components/ui/dialog\"\nimport { Skeleton } from \"@/components/ui/skeleton\"\nimport { Tooltip, TooltipTrigger } from \"@/components/ui/tooltip\"\nimport { cn, useIsMobile } from \"@/utils\"\n\n// TODO use tailwind variables\nconst SIDEBAR_WIDTH = \"16rem\"\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\"\nconst SIDEBAR_WIDTH_ICON = \"3rem\"\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\n\ntype SidebarContextProps = {\n\tstate: \"expanded\" | \"collapsed\"\n\topen: boolean\n\tsetOpen: (open: boolean) => void\n\topenMobile: boolean\n\tsetOpenMobile: (open: boolean) => void\n\tisMobile: boolean\n\ttoggleSidebar: () => void\n}\n\nexport const SidebarContext = React.createContext<SidebarContextProps | null>(null)\n\nexport function useSidebar() {\n\tconst context = React.useContext(SidebarContext)\n\tif (!context) {\n\t\tthrow new Error(\"useSidebar must be used within a SidebarProvider.\")\n\t}\n\n\treturn context\n}\n\nexport function SidebarProvider(\n\t{\n\t\tdefaultOpen = true,\n\t\topen: openProp,\n\t\tonOpenChange: setOpenProp,\n\t\tclassName,\n\t\tstyle,\n\t\tchildren,\n\t\t...props\n\t}: React.ComponentProps<'div'> & {\n\t\tdefaultOpen?: boolean\n\t\topen?: boolean\n\t\tonOpenChange?: (open: boolean) => void\n\t}) {\n\tconst isMobile = useIsMobile()\n\tconst [openMobile, setOpenMobile] = React.useState(false)\n\n\t// This is the internal state of the sidebar.\n\t// We use openProp and setOpenProp for control from outside the component.\n\tconst [_open, _setOpen] = React.useState(defaultOpen)\n\tconst open = openProp ?? _open\n\tconst setOpen = React.useCallback(\n\t\t(value: boolean | ((value: boolean) => boolean)) => {\n\t\t\tconst openState = typeof value === \"function\" ? value(open) : value\n\t\t\tif (setOpenProp) {\n\t\t\t\tsetOpenProp(openState)\n\t\t\t} else {\n\t\t\t\t_setOpen(openState)\n\t\t\t}\n\n\t\t\t// TODO, use different model for persistence\n\t\t\t// This sets the cookie to keep the sidebar state.\n\t\t\t// document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\n\t\t},\n\t\t[setOpenProp, open]\n\t)\n\n\t// Helper to toggle the sidebar.\n\tconst toggleSidebar = React.useCallback(() => {\n\t\treturn isMobile\n\t\t\t? setOpenMobile((open) => !open)\n\t\t\t: setOpen((open) => !open)\n\t}, [isMobile, setOpen, setOpenMobile])\n\n\t// Adds a keyboard shortcut to toggle the sidebar.\n\tReact.useEffect(() => {\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (\n\t\t\t\tevent.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n\t\t\t\t(event.metaKey || event.ctrlKey)\n\t\t\t) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\ttoggleSidebar()\n\t\t\t}\n\t\t}\n\n\t\twindow.addEventListener(\"keydown\", handleKeyDown)\n\t\treturn () => window.removeEventListener(\"keydown\", handleKeyDown)\n\t}, [toggleSidebar])\n\n\t// We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n\t// This makes it easier to style the sidebar with Tailwind classes.\n\tconst state = open ? \"expanded\" : \"collapsed\"\n\n\tconst contextValue = React.useMemo<SidebarContextProps>(\n\t\t() => ({\n\t\t\tstate,\n\t\t\topen,\n\t\t\tsetOpen,\n\t\t\tisMobile,\n\t\t\topenMobile,\n\t\t\tsetOpenMobile,\n\t\t\ttoggleSidebar,\n\t\t}),\n\t\t[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n\t)\n\n\treturn (\n\t\t<SidebarContext.Provider value={contextValue}>\n\t\t\t<div\n\t\t\t\tstyle={\n\t\t\t\t\t{\n\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH,\n\t\t\t\t\t\t\"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n\t\t\t\t\t\t...style,\n\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"group/sidebar-wrapper flex w-full has-[[data-variant=inset]]:bg-sidebar-background\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</SidebarContext.Provider>\n\t)\n}\n\n\nexport function Sidebar(\n\t{\n\t\tside = \"left\",\n\t\tvariant = \"sidebar\",\n\t\tcollapsible = \"offcanvas\",\n\t\tclassName,\n\t\tchildren,\n\t\t...props\n\t}: React.ComponentProps<\"div\"> & {\n\t\tside?: \"left\" | \"right\"\n\t\tvariant?: \"sidebar\" | \"floating\" | \"inset\"\n\t\tcollapsible?: \"offcanvas\" | \"icon\" | \"none\"\n\t}\n) {\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n\tif (collapsible === \"none\") {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex h-full w-[--sidebar-width] flex-col bg-sidebar-background text-sidebar-foreground\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t)\n\t}\n\n\tif (isMobile) {\n\t\treturn (\n\t\t\t<DialogTrigger style={{ \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE, } as React.CSSProperties} isOpen={openMobile} onOpenChange={setOpenMobile} {...props} >\n\t\t\t\t<DialogOverlay>\n\t\t\t\t\t<DialogContent\n\t\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\t\tclassName=\"w-[--sidebar-width] p-0 [&>button]:hidden\" side=\"right\">\n\t\t\t\t\t\t{() => (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</DialogContent>\n\t\t\t\t</DialogOverlay>\n\t\t\t</DialogTrigger>\n\t\t)\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"group peer hidden text-sidebar-foreground md:block\"\n\t\t\tdata-state={state}\n\t\t\tdata-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n\t\t\tdata-variant={variant}\n\t\t\tdata-side={side}\n\t\t>\n\t\t\t{/* This is what handles the sidebar gap on desktop */}\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"relative w-(--sidebar-width) bg-sidebar-background transition-[width] duration-200 ease-linear\",\n\t\t\t\t\t\"group-data-[collapsible=offcanvas]:w-0\",\n\t\t\t\t\t\"group-data-[side=right]:rotate-180\",\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"absolute z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\n\t\t\t\t\tside === \"left\"\n\t\t\t\t\t\t? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n\t\t\t\t\t\t: \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n\t\t\t\t\t// Adjust the padding for floating and inset variants.\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tclassName=\"flex h-full w-full flex-col bg-sidebar-background group-data-[variant=floating]:border group-data-[variant=floating]:border-border group-data-[variant=floating]:shadow\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\n\n\nexport function SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>) {\n\tconst { toggleSidebar, open } = useSidebar()\n\n\treturn (\n\t\t<Button\n\t\t\tdata-sidebar=\"trigger\"\n\t\t\tvariant=\"neutral\"\n\t\t\tsize=\"icon\"\n\t\t\tonClick={(event) => {\n\t\t\t\tonClick?.(event)\n\t\t\t\ttoggleSidebar()\n\t\t\t}}\n\t\t\t{...props}\n\t\t>{open ? <PanelLeftClose /> : <PanelLeftOpen />}</Button>\n\t)\n}\n\n// TODO, evaluate if we need this??\nexport const SidebarRail = React.forwardRef<\n\tHTMLButtonElement,\n\tReact.ComponentProps<\"button\">\n>(({ className, ...props }, ref) => {\n\tconst { toggleSidebar } = useSidebar()\n\n\treturn (\n\t\t<button\n\t\t\tref={ref}\n\t\t\tdata-sidebar=\"rail\"\n\t\t\taria-label=\"Toggle Sidebar\"\n\t\t\ttabIndex={-1}\n\t\t\tonClick={toggleSidebar}\n\t\t\ttitle=\"Toggle Sidebar\"\n\t\t\tclassName={cn(\n\t\t\t\t\"absolute inset-y-0 z-20 hidden w-icon -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-border group-data-[side=left]:-right-icon group-data-[side=right]:left-0 sm:flex\",\n\t\t\t\t\"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize\",\n\t\t\t\t\"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n\t\t\t\t\"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar-background\",\n\t\t\t\t\"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n\t\t\t\t\"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n})\nSidebarRail.displayName = \"SidebarRail\"\n\nexport function SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n\treturn (\n\t\t<main\n\t\t\tclassName={cn(\n\t\t\t\t\"relative flex w-full flex-1 flex-col bg-background\",\n\t\t\t\t\"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\n\nexport function SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\n\t\t\tdata-sidebar=\"header\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\t\t\tdata-sidebar=\"footer\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\t\t\tdata-sidebar=\"content\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\t\t\tdata-sidebar=\"group\"\n\t\t\tclassName={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\n\nexport function SidebarGroupLabel({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-sidebar=\"group-label\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex h-input shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-icon [&>svg]:shrink-0\",\n\t\t\t\t\"group-data-[collapsible=icon]:-mt-input group-data-[collapsible=icon]:opacity-0\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\nexport function SidebarGroupAction({ className, ...props }: React.ComponentProps<\"button\">) {\n\treturn (\n\t\t<button\n\t\t\tdata-sidebar=\"group-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-ring transition-transform hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 [&>svg]:size-icon [&>svg]:shrink-0\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 after:md:hidden\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function SidebarGroupContent({ className, ...props }: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\t\t\tdata-sidebar=\"group-content\"\n\t\t\tclassName={cn(\"w-full text-sm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n\treturn (\n\t\t<ul\n\t\t\tdata-sidebar=\"menu\"\n\t\t\tclassName={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n\treturn (\n\t\t<li\n\t\t\tdata-sidebar=\"menu-item\"\n\t\t\tclassName={cn(\"group/menu-item relative list-none\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\n/// TODO fix positioning\nexport function SidebarMenuAction({ className, showOnHover = false, ...props }: React.ComponentProps<\"button\"> & {\n\tshowOnHover?: boolean\n}) {\n\n\treturn (\n\t\t<button\n\t\t\tdata-sidebar=\"menu-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-ring transition-transform hover:bg-accent hover:text-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-accent-foreground [&>svg]:size-icon [&>svg]:shrink-0\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 after:md:hidden\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tshowOnHover &&\n\t\t\t\t\"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-accent-foreground md:opacity-0\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function SidebarMenuBadge({ className, ...props }: React.ComponentProps<'div'>) {\n\treturn (\n\t\t<div\n\t\t\tdata-sidebar=\"menu-badge\"\n\t\t\tclassName={cn(\n\t\t\t\t\"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground\",\n\t\t\t\t\"peer-hover/menu-button:text-accent-foreground peer-data-[active=true]/menu-button:text-accent-foreground\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function SidebarMenuSkeleton({ className, showIcon = false, ...props }: React.ComponentProps<\"div\"> & {\n\tshowIcon?: boolean\n}) {\n\t// Random width between 50 to 90%.\n\tconst width = React.useMemo(() => {\n\t\treturn `${Math.floor(Math.random() * 40) + 50}%`\n\t}, [])\n\n\treturn (\n\t\t<div\n\t\t\tdata-sidebar=\"menu-skeleton\"\n\t\t\tclassName={cn(\"flex h-input items-center gap-2 px-2\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{showIcon && (\n\t\t\t\t<Skeleton\n\t\t\t\t\tclassName=\"size-icon\"\n\t\t\t\t\tdata-sidebar=\"menu-skeleton-icon\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<Skeleton\n\t\t\t\tclassName=\"h-icon max-w-[--skeleton-width] flex-1\"\n\t\t\t\tdata-sidebar=\"menu-skeleton-text\"\n\t\t\t\tstyle={\n\t\t\t\t\t{\n\t\t\t\t\t\t\"--skeleton-width\": width,\n\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n\nexport function SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n\treturn (\n\t\t<ul\n\t\t\tdata-sidebar=\"menu-sub\"\n\t\t\tclassName={cn(\n\t\t\t\t\"mx-2 flex min-w-0 translate-x-px flex-col gap-1 border-l border-border px-2\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport function SidebarMenuSubItem({ className, ...props }: React.ComponentProps<'li'>) { return <li className={cn(\"list-none ms-0\", className)} {...props} /> }\n\n// Common interaction logic for SidebarMenuButton and SidebarMenuSubButton\nconst Cs_SidebarButton = \"flex w-full items-center gap-2 truncate p-2 text-sm btn btn-ghost h-input text-accent data-[active=true]:bg-primary/20 data-[active=true]:font-medium data-[active=true]:text-primary [&>span:last-child]:truncate [&>svg]:size-icon [&>svg]:shrink-0\";\nexport function SidebarMenuButton\n\t(\n\t\t{\n\t\t\tisActive = false,\n\t\t\ttooltip,\n\t\t\tclassName,\n\t\t\t...props\n\t\t}: React.ComponentProps<\"button\"> & {\n\t\t\tisActive?: boolean\n\t\t\ttooltip?: React.ComponentProps<typeof Tooltip>\n\t\t}\n\t) {\n\tconst { isMobile, state } = useSidebar()\n\n\tconst button = (\n\t\t<button\n\t\t\tdata-sidebar=\"menu-button\"\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(\n\t\t\t\t\"peer/menu-button group-has-[[data-sidebar=menu-action]]/menu-item:pr-input group-data-[collapsible=icon]:!size-icon group-data-[collapsible=icon]:!p-2 \",\n\t\t\t\tCs_SidebarButton,\n\t\t\t\tclassName)}\n\t\t\t{...props}\n\t\t/>\n\t)\n\n\tif (!tooltip) {\n\t\treturn button\n\t}\n\n\treturn (\n\t\t<TooltipTrigger>\n\t\t\t{button}\n\t\t\t<Tooltip\n\t\t\t\thidden={state !== \"collapsed\" || isMobile}\n\t\t\t\t{...tooltip}\n\t\t\t/>\n\t\t</TooltipTrigger>\n\t)\n}\n\nexport function SidebarMenuSubButton({ isActive, className, ...props }: React.ComponentProps<'a'> & {\n\tisActive?: boolean\n}) {\n\n\treturn (\n\t\t<a\n\t\t\tdata-sidebar=\"menu-sub-button\"\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(\n\t\t\t\t\"-translate-x-px [&>svg]:text-accent-foreground\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tCs_SidebarButton,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n// TODO, standardize heights here"],"names":["SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","React","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","isMobile","useIsMobile","openMobile","setOpenMobile","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","cn","Sidebar","side","variant","collapsible","DialogTrigger","DialogOverlay","DialogContent","jsxs","SidebarTrigger","onClick","Button","PanelLeftClose","PanelLeftOpen","SidebarRail","ref","SidebarInset","SidebarHeader","SidebarFooter","SidebarContent","SidebarGroup","SidebarGroupLabel","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Skeleton","SidebarMenuSub","SidebarMenuSubItem","Cs_SidebarButton","SidebarMenuButton","isActive","tooltip","button","TooltipTrigger","Tooltip","SidebarMenuSubButton"],"mappings":";;;;;;;;;;AAWA,MAAMA,IAAgB,SAChBC,IAAuB,SACvBC,IAAqB,QACrBC,IAA4B,KAYrBC,IAAiBC,EAAM,cAA0C,IAAI;AAE3E,SAASC,IAAa;AAC5B,QAAMC,IAAUF,EAAM,WAAWD,CAAc;AAC/C,MAAI,CAACG;AACJ,UAAM,IAAI,MAAM,mDAAmD;AAGpE,SAAOA;AACR;AAEO,SAASC,EACf;AAAA,EACC,aAAAC,IAAc;AAAA,EACd,MAAMC;AAAA,EACN,cAAcC;AAAA,EACd,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACJ,GAIG;AACH,QAAMC,IAAWC,EAAA,GACX,CAACC,GAAYC,CAAa,IAAId,EAAM,SAAS,EAAK,GAIlD,CAACe,GAAOC,CAAQ,IAAIhB,EAAM,SAASI,CAAW,GAC9Ca,IAAOZ,KAAYU,GACnBG,IAAUlB,EAAM;AAAA,IACrB,CAACmB,MAAmD;AACnD,YAAMC,IAAY,OAAOD,KAAU,aAAaA,EAAMF,CAAI,IAAIE;AAC9D,MAAIb,IACHA,EAAYc,CAAS,IAErBJ,EAASI,CAAS;AAAA,IAMpB;AAAA,IACA,CAACd,GAAaW,CAAI;AAAA,EAAA,GAIbI,IAAgBrB,EAAM,YAAY,MAChCW,IACJG,EAAc,CAACG,MAAS,CAACA,CAAI,IAC7BC,EAAQ,CAACD,MAAS,CAACA,CAAI,GACxB,CAACN,GAAUO,GAASJ,CAAa,CAAC;AAGrC,EAAAd,EAAM,UAAU,MAAM;AACrB,UAAMsB,IAAgB,CAACC,MAAyB;AAC/C,MACCA,EAAM,QAAQzB,MACbyB,EAAM,WAAWA,EAAM,aAExBA,EAAM,eAAA,GACNF,EAAA;AAAA,IAEF;AAEA,kBAAO,iBAAiB,WAAWC,CAAa,GACzC,MAAM,OAAO,oBAAoB,WAAWA,CAAa;AAAA,EACjE,GAAG,CAACD,CAAa,CAAC;AAIlB,QAAMG,IAAQP,IAAO,aAAa,aAE5BQ,IAAezB,EAAM;AAAA,IAC1B,OAAO;AAAA,MACN,OAAAwB;AAAA,MACA,MAAAP;AAAA,MACA,SAAAC;AAAA,MACA,UAAAP;AAAA,MACA,YAAAE;AAAA,MACA,eAAAC;AAAA,MACA,eAAAO;AAAA,IAAA;AAAA,IAED,CAACG,GAAOP,GAAMC,GAASP,GAAUE,GAAYC,GAAeO,CAAa;AAAA,EAAA;AAG1E,SACC,gBAAAK,EAAC3B,EAAe,UAAf,EAAwB,OAAO0B,GAC/B,UAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,OACC;AAAA,QACC,mBAAmB/B;AAAA,QACnB,wBAAwBE;AAAA,QACxB,GAAGW;AAAA,MAAA;AAAA,MAGL,WAAWmB;AAAA,QACV;AAAA,QACApB;AAAA,MAAA;AAAA,MAEA,GAAGG;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA,GAEH;AAEF;AAGO,SAASmB,EACf;AAAA,EACC,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,aAAAC,IAAc;AAAA,EACd,WAAAxB;AAAA,EACA,UAAAE;AAAA,EACA,GAAGC;AACJ,GAKC;AACD,QAAM,EAAE,UAAAC,GAAU,OAAAa,GAAO,YAAAX,GAAY,eAAAC,EAAA,IAAkBb,EAAA;AAEvD,SAAI8B,MAAgB,SAElB,gBAAAL;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWC;AAAA,QACV;AAAA,QACApB;AAAA,MAAA;AAAA,MAEA,GAAGG;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA,IAKAE,IAEF,gBAAAe,EAACM,GAAA,EAAc,OAAO,EAAE,mBAAmBpC,EAAA,GAAgD,QAAQiB,GAAY,cAAcC,GAAgB,GAAGJ,GAC/I,4BAACuB,GAAA,EACA,UAAA,gBAAAP;AAAA,IAACQ;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,eAAY;AAAA,MACZ,WAAU;AAAA,MAA4C,MAAK;AAAA,MAC1D,UAAA,6BAEE,UAAAzB,EAAA,CACF;AAAA,IAAA;AAAA,EAAA,GAGH,EAAA,CACD,IAKD,gBAAA0B;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAU;AAAA,MACV,cAAYX;AAAA,MACZ,oBAAkBA,MAAU,cAAcO,IAAc;AAAA,MACxD,gBAAcD;AAAA,MACd,aAAWD;AAAA,MAGX,UAAA;AAAA,QAAA,gBAAAH;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,WAAWC;AAAA,cACV;AAAA,cACA;AAAA,cACA;AAAA,cACAG,MAAY,cAAcA,MAAY,UACnC,yFACA;AAAA,YAAA;AAAA,UACJ;AAAA,QAAA;AAAA,QAED,gBAAAJ;AAAA,UAAC;AAAA,UAAA;AAAA,YACA,WAAWC;AAAA,cACV;AAAA,cACAE,MAAS,SACN,mFACA;AAAA;AAAA,cAEHC,MAAY,cAAcA,MAAY,UACnC,kGACA;AAAA,cACHvB;AAAA,YAAA;AAAA,YAEA,GAAGG;AAAA,YAEJ,UAAA,gBAAAgB;AAAA,cAAC;AAAA,cAAA;AAAA,gBACA,gBAAa;AAAA,gBACb,WAAU;AAAA,gBAET,UAAAjB;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MACD;AAAA,IAAA;AAAA,EAAA;AAGH;AAIO,SAAS2B,EAAe,EAAE,WAAA7B,GAAW,SAAA8B,GAAS,GAAG3B,KAA8C;AACrG,QAAM,EAAE,eAAAW,GAAe,MAAAJ,EAAA,IAAShB,EAAA;AAEhC,SACC,gBAAAyB;AAAA,IAACY;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,SAAS,CAACf,MAAU;AACnB,QAAAc,KAAA,QAAAA,EAAUd,IACVF,EAAA;AAAA,MACD;AAAA,MACC,GAAGX;AAAA,MACH,UAAAO,IAAO,gBAAAS,EAACa,GAAA,CAAA,CAAe,sBAAMC,GAAA,CAAA,CAAc;AAAA,IAAA;AAAA,EAAA;AAE/C;AAGO,MAAMC,IAAczC,EAAM,WAG/B,CAAC,EAAE,WAAAO,GAAW,GAAGG,EAAA,GAASgC,MAAQ;AACnC,QAAM,EAAE,eAAArB,EAAA,IAAkBpB,EAAA;AAE1B,SACC,gBAAAyB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,KAAAgB;AAAA,MACA,gBAAa;AAAA,MACb,cAAW;AAAA,MACX,UAAU;AAAA,MACV,SAASrB;AAAA,MACT,OAAM;AAAA,MACN,WAAWM;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACApB;AAAA,MAAA;AAAA,MAEA,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC;AACD+B,EAAY,cAAc;AAEnB,SAASE,EAAa,EAAE,WAAApC,GAAW,GAAGG,KAAuC;AACnF,SACC,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWC;AAAA,QACV;AAAA,QACA;AAAA,QACApB;AAAA,MAAA;AAAA,MAEA,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP;AAGO,SAASkC,GAAc,EAAE,WAAArC,GAAW,GAAGG,KAAsC;AACnF,SACC,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MAEA,gBAAa;AAAA,MACb,WAAWC,EAAG,2BAA2BpB,CAAS;AAAA,MACjD,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASmC,GAAc,EAAE,WAAAtC,GAAW,GAAGG,KAAsC;AACnF,SACC,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,WAAWC,EAAG,2BAA2BpB,CAAS;AAAA,MACjD,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASoC,GAAe,EAAE,WAAAvC,GAAW,GAAGG,KAAsC;AACpF,SACC,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,WAAWC;AAAA,QACV;AAAA,QACApB;AAAA,MAAA;AAAA,MAEA,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASqC,GAAa,EAAE,WAAAxC,GAAW,GAAGG,KAAsC;AAClF,SACC,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,WAAWC,EAAG,6CAA6CpB,CAAS;AAAA,MACnE,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP;AAGO,SAASsC,GAAkB,EAAE,WAAAzC,GAAW,GAAGG,KAAsC;AACvF,SACC,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,WAAWC;AAAA,QACV;AAAA,QACA;AAAA,QACApB;AAAA,MAAA;AAAA,MAEA,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP;AACO,SAASuC,GAAmB,EAAE,WAAA1C,GAAW,GAAGG,KAAyC;AAC3F,SACC,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,WAAWC;AAAA,QACV;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACApB;AAAA,MAAA;AAAA,MAEA,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASwC,GAAoB,EAAE,WAAA3C,GAAW,GAAGG,KAAsC;AACzF,SACC,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,WAAWC,EAAG,kBAAkBpB,CAAS;AAAA,MACxC,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASyC,GAAY,EAAE,WAAA5C,GAAW,GAAGG,KAAqC;AAChF,SACC,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,WAAWC,EAAG,sCAAsCpB,CAAS;AAAA,MAC5D,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAAS0C,GAAgB,EAAE,WAAA7C,GAAW,GAAGG,KAAqC;AACpF,SACC,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,WAAWC,EAAG,sCAAsCpB,CAAS;AAAA,MAC5D,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP;AAGO,SAAS2C,GAAkB,EAAE,WAAA9C,GAAW,aAAA+C,IAAc,IAAO,GAAG5C,KAEpE;AAEF,SACC,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,WAAWC;AAAA,QACV;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA2B,KACA;AAAA,QACA/C;AAAA,MAAA;AAAA,MAEA,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAAS6C,GAAiB,EAAE,WAAAhD,GAAW,GAAGG,KAAsC;AACtF,SACC,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,WAAWC;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACApB;AAAA,MAAA;AAAA,MAEA,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAAS8C,GAAoB,EAAE,WAAAjD,GAAW,UAAAkD,IAAW,IAAO,GAAG/C,KAEnE;AAEF,QAAMgD,IAAQ1D,EAAM,QAAQ,MACpB,GAAG,KAAK,MAAM,KAAK,WAAW,EAAE,IAAI,EAAE,KAC3C,CAAA,CAAE;AAEL,SACC,gBAAAmC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,WAAWR,EAAG,wCAAwCpB,CAAS;AAAA,MAC9D,GAAGG;AAAA,MAEH,UAAA;AAAA,QAAA+C,KACA,gBAAA/B;AAAA,UAACiC;AAAA,UAAA;AAAA,YACA,WAAU;AAAA,YACV,gBAAa;AAAA,UAAA;AAAA,QAAA;AAAA,QAGf,gBAAAjC;AAAA,UAACiC;AAAA,UAAA;AAAA,YACA,WAAU;AAAA,YACV,gBAAa;AAAA,YACb,OACC;AAAA,cACC,oBAAoBD;AAAA,YAAA;AAAA,UACrB;AAAA,QAAA;AAAA,MAEF;AAAA,IAAA;AAAA,EAAA;AAGH;AAEO,SAASE,GAAe,EAAE,WAAArD,GAAW,GAAGG,KAAqC;AACnF,SACC,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,WAAWC;AAAA,QACV;AAAA,QACA;AAAA,QACApB;AAAA,MAAA;AAAA,MAEA,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASmD,GAAmB,EAAE,WAAAtD,GAAW,GAAGG,KAAqC;AAAE,SAAO,gBAAAgB,EAAC,QAAG,WAAWC,EAAG,kBAAkBpB,CAAS,GAAI,GAAGG,GAAO;AAAG;AAG/J,MAAMoD,IAAmB;AAClB,SAASC,GAEd;AAAA,EACC,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,WAAA1D;AAAA,EACA,GAAGG;AACJ,GAIC;AACF,QAAM,EAAE,UAAAC,GAAU,OAAAa,EAAA,IAAUvB,EAAA,GAEtBiE,IACL,gBAAAxC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,eAAasC;AAAA,MACb,WAAWrC;AAAA,QACV;AAAA,QACAmC;AAAA,QACAvD;AAAA,MAAA;AAAA,MACA,GAAGG;AAAA,IAAA;AAAA,EAAA;AAIN,SAAKuD,sBAKHE,GAAA,EACC,UAAA;AAAA,IAAAD;AAAA,IACD,gBAAAxC;AAAA,MAAC0C;AAAA,MAAA;AAAA,QACA,QAAQ5C,MAAU,eAAeb;AAAA,QAChC,GAAGsD;AAAA,MAAA;AAAA,IAAA;AAAA,EACL,GACD,IAVOC;AAYT;AAEO,SAASG,GAAqB,EAAE,UAAAL,GAAU,WAAAzD,GAAW,GAAGG,KAE5D;AAEF,SACC,gBAAAgB;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,gBAAa;AAAA,MACb,eAAasC;AAAA,MACb,WAAWrC;AAAA,QACV;AAAA,QACA;AAAA,QACAmC;AAAA,QACAvD;AAAA,MAAA;AAAA,MAEA,GAAGG;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,9 +0,0 @@
1
- import { jsx as m } from "react/jsx-runtime";
2
- import { cn as o } from "../../utils/primitives.es.js";
3
- function n({ className: r, ...e }) {
4
- return /* @__PURE__ */ m("div", { className: o("animate-pulse bg-primary/10", r), ...e });
5
- }
6
- export {
7
- n as Skeleton
8
- };
9
- //# sourceMappingURL=skeleton.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skeleton.es.js","sources":["../../../lib/components/ui/skeleton.tsx"],"sourcesContent":["import { cn } from \"@/utils\";\n\nexport function Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div className={cn(\"animate-pulse bg-primary/10\", className)} {...props} />\n\t);\n}\n"],"names":["Skeleton","className","props","jsx","cn"],"mappings":";;AAEO,SAASA,EAAS,EAAE,WAAAC,GAAW,GAAGC,KAAsC;AAC9E,SACC,gBAAAC,EAAC,SAAI,WAAWC,EAAG,+BAA+BH,CAAS,GAAI,GAAGC,GAAO;AAE3E;"}
@@ -1,24 +0,0 @@
1
- "use client";
2
- import { jsx as o } from "react/jsx-runtime";
3
- import { Toaster as r } from "sonner";
4
- function s({ ...t }) {
5
- return /* @__PURE__ */ o(
6
- r,
7
- {
8
- className: "toaster group",
9
- toastOptions: {
10
- classNames: {
11
- toast: "group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",
12
- description: "group-[.toast]:text-muted-foreground",
13
- actionButton: "group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",
14
- cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
15
- }
16
- },
17
- ...t
18
- }
19
- );
20
- }
21
- export {
22
- s as Toaster
23
- };
24
- //# sourceMappingURL=sonner.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sonner.es.js","sources":["../../../lib/components/ui/sonner.tsx"],"sourcesContent":["\"use client\";\nimport { Toaster as Sonner } from \"sonner\";\n\ntype ToasterProps = React.ComponentProps<typeof Sonner>;\n\nexport function Toaster({ ...props }: ToasterProps) {\n\treturn (\n\t\t<Sonner\n\t\t\tclassName=\"toaster group\"\n\t\t\ttoastOptions={{\n\t\t\t\tclassNames: {\n\t\t\t\t\ttoast:\n\t\t\t\t\t\t\"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg\",\n\t\t\t\t\tdescription: \"group-[.toast]:text-muted-foreground\",\n\t\t\t\t\tactionButton:\n\t\t\t\t\t\t\"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground\",\n\t\t\t\t\tcancelButton:\n\t\t\t\t\t\t\"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground\",\n\t\t\t\t},\n\t\t\t}}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\n\n"],"names":["Toaster","props","jsx","Sonner"],"mappings":";;;AAKO,SAASA,EAAQ,EAAE,GAAGC,KAAuB;AACnD,SACC,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACA,WAAU;AAAA,MACV,cAAc;AAAA,QACb,YAAY;AAAA,UACX,OACC;AAAA,UACD,aAAa;AAAA,UACb,cACC;AAAA,UACD,cACC;AAAA,QAAA;AAAA,MACF;AAAA,MAEA,GAAGF;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,88 +0,0 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- import { cn as o } from "../../utils/primitives.es.js";
3
- function l({ className: t, ...e }) {
4
- return /* @__PURE__ */ r(
5
- "table",
6
- {
7
- className: o(
8
- "caption-bottom text-sm [&_tr:last-child]:border-0 my-0 whitespace-nowrap",
9
- t
10
- ),
11
- ...e
12
- }
13
- );
14
- }
15
- function d({
16
- className: t,
17
- ...e
18
- }) {
19
- return /* @__PURE__ */ r(
20
- "thead",
21
- {
22
- className: o("[&_tr]:border-b border-b", t),
23
- ...e
24
- }
25
- );
26
- }
27
- function b({
28
- className: t,
29
- ...e
30
- }) {
31
- return /* @__PURE__ */ r("tbody", { className: o(t), ...e });
32
- }
33
- function c({
34
- className: t,
35
- ...e
36
- }) {
37
- return /* @__PURE__ */ r(
38
- "tfoot",
39
- {
40
- className: o("border-t font-medium last:[&>tr]:border-b-0", t),
41
- ...e
42
- }
43
- );
44
- }
45
- function m({ className: t, ...e }) {
46
- return /* @__PURE__ */ r("tr", { className: o("border-b border-border", t), ...e });
47
- }
48
- function s({ className: t, ...e }) {
49
- return /* @__PURE__ */ r(
50
- "th",
51
- {
52
- className: o("text-left align-middle font-medium", t),
53
- ...e
54
- }
55
- );
56
- }
57
- function i({ className: t, ...e }) {
58
- return /* @__PURE__ */ r(
59
- "td",
60
- {
61
- className: o("[&_tr:last-child]:border-dotted", t),
62
- ...e
63
- }
64
- );
65
- }
66
- function u({
67
- className: t,
68
- ...e
69
- }) {
70
- return /* @__PURE__ */ r(
71
- "caption",
72
- {
73
- className: o("mt-icon text-sm text-muted-foreground", t),
74
- ...e
75
- }
76
- );
77
- }
78
- export {
79
- l as Table,
80
- b as TableBody,
81
- u as TableCaption,
82
- i as TableCell,
83
- c as TableFooter,
84
- s as TableHead,
85
- d as TableHeader,
86
- m as TableRow
87
- };
88
- //# sourceMappingURL=table.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"table.es.js","sources":["../../../lib/components/ui/table.tsx"],"sourcesContent":["import type * as React from \"react\";\n\nimport { cn } from \"@/utils\";\n\nexport function Table({ className, ...props }: React.ComponentProps<\"table\">) {\n\treturn (\n\t\t<table\n\t\t\tclassName={cn(\n\t\t\t\t\"caption-bottom text-sm [&_tr:last-child]:border-0 my-0 whitespace-nowrap\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function TableHeader({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"thead\">) {\n\treturn (\n\t\t<thead\n\t\t\tclassName={cn(\"[&_tr]:border-b border-b\", className)} // Added border-b to apply a bottom border\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function TableBody({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"tbody\">) {\n\treturn <tbody className={cn(className)} {...props} />;\n}\n\nexport function TableFooter({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"tfoot\">) {\n\treturn (\n\t\t<tfoot\n\t\t\tclassName={cn(\"border-t font-medium last:[&>tr]:border-b-0\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n\treturn <tr className={cn(\"border-b border-border\", className)} {...props} />;\n}\n\nexport function TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n\treturn (\n\t\t<th\n\t\t\tclassName={cn(\"text-left align-middle font-medium\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n\treturn (\n\t\t<td\n\t\t\tclassName={cn(\"[&_tr:last-child]:border-dotted\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport function TableCaption({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"caption\">) {\n\treturn (\n\t\t<caption\n\t\t\tclassName={cn(\"mt-icon text-sm text-muted-foreground\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n"],"names":["Table","className","props","jsx","cn","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption"],"mappings":";;AAIO,SAASA,EAAM,EAAE,WAAAC,GAAW,GAAGC,KAAwC;AAC7E,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWC;AAAA,QACV;AAAA,QACAH;AAAA,MAAA;AAAA,MAEA,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASG,EAAY;AAAA,EAC3B,WAAAJ;AAAA,EACA,GAAGC;AACJ,GAAkC;AACjC,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWC,EAAG,4BAA4BH,CAAS;AAAA,MAClD,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASI,EAAU;AAAA,EACzB,WAAAL;AAAA,EACA,GAAGC;AACJ,GAAkC;AACjC,2BAAQ,SAAA,EAAM,WAAWE,EAAGH,CAAS,GAAI,GAAGC,GAAO;AACpD;AAEO,SAASK,EAAY;AAAA,EAC3B,WAAAN;AAAA,EACA,GAAGC;AACJ,GAAkC;AACjC,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWC,EAAG,+CAA+CH,CAAS;AAAA,MACrE,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASM,EAAS,EAAE,WAAAP,GAAW,GAAGC,KAAqC;AAC7E,SAAO,gBAAAC,EAAC,QAAG,WAAWC,EAAG,0BAA0BH,CAAS,GAAI,GAAGC,GAAO;AAC3E;AAEO,SAASO,EAAU,EAAE,WAAAR,GAAW,GAAGC,KAAqC;AAC9E,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWC,EAAG,sCAAsCH,CAAS;AAAA,MAC5D,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASQ,EAAU,EAAE,WAAAT,GAAW,GAAGC,KAAqC;AAC9E,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWC,EAAG,mCAAmCH,CAAS;AAAA,MACzD,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;AAEO,SAASS,EAAa;AAAA,EAC5B,WAAAV;AAAA,EACA,GAAGC;AACJ,GAAoC;AACnC,SACC,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAWC,EAAG,yCAAyCH,CAAS;AAAA,MAC/D,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGP;"}