@akira-io/ui 1.3.1 → 2.0.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 (68) hide show
  1. package/README.md +2 -2
  2. package/dist/blocks.d.ts +100 -10
  3. package/dist/blocks.js +547 -270
  4. package/dist/blocks.js.map +1 -1
  5. package/dist/chunk-2V6HUWST.js +18 -5
  6. package/dist/chunk-2V6HUWST.js.map +1 -1
  7. package/dist/chunk-3Z2VGVPI.js +16 -6
  8. package/dist/chunk-3Z2VGVPI.js.map +1 -1
  9. package/dist/chunk-B3L6PRLX.js +207 -99
  10. package/dist/chunk-B3L6PRLX.js.map +1 -1
  11. package/dist/chunk-DE2AJ54R.js +458 -0
  12. package/dist/chunk-DE2AJ54R.js.map +1 -0
  13. package/dist/{chunk-QNF4LJVT.js → chunk-E26KKMGS.js} +8 -6
  14. package/dist/chunk-E26KKMGS.js.map +1 -0
  15. package/dist/{chunk-N2KIFFI7.js → chunk-EYPM6IMS.js} +30 -34
  16. package/dist/chunk-EYPM6IMS.js.map +1 -0
  17. package/dist/chunk-IQMRJXEO.js +5 -4
  18. package/dist/chunk-IQMRJXEO.js.map +1 -1
  19. package/dist/chunk-KHOA4TEI.js +53 -24
  20. package/dist/chunk-KHOA4TEI.js.map +1 -1
  21. package/dist/chunk-L2H5GIF7.js +5 -4
  22. package/dist/chunk-L2H5GIF7.js.map +1 -1
  23. package/dist/chunk-SZUXATOF.js +169 -75
  24. package/dist/chunk-SZUXATOF.js.map +1 -1
  25. package/dist/chunk-TM5MN3MI.js +29 -0
  26. package/dist/chunk-TM5MN3MI.js.map +1 -0
  27. package/dist/{chunk-I6VVCFZ2.js → chunk-UCJTM3UM.js} +254 -243
  28. package/dist/chunk-UCJTM3UM.js.map +1 -0
  29. package/dist/{chunk-IDNOI4OK.js → chunk-UXVI326F.js} +15 -8
  30. package/dist/chunk-UXVI326F.js.map +1 -0
  31. package/dist/chunk-VA6A4HZ2.js +394 -0
  32. package/dist/chunk-VA6A4HZ2.js.map +1 -0
  33. package/dist/chunk-YBXRJSR3.js +14 -6
  34. package/dist/chunk-YBXRJSR3.js.map +1 -1
  35. package/dist/code.d.ts +2 -2
  36. package/dist/code.js +96 -52
  37. package/dist/code.js.map +1 -1
  38. package/dist/{context-OwSoVEri.d.ts → context-Soro3B1I.d.ts} +5 -4
  39. package/dist/editor.d.ts +1 -1
  40. package/dist/editor.js +135 -52
  41. package/dist/editor.js.map +1 -1
  42. package/dist/{field-DWm5NXeV.d.ts → field-C1TdmC2t.d.ts} +1 -1
  43. package/dist/index.d.ts +14 -11
  44. package/dist/index.js +1105 -633
  45. package/dist/index.js.map +1 -1
  46. package/dist/inertia.d.ts +11 -3
  47. package/dist/inertia.js +66 -12
  48. package/dist/inertia.js.map +1 -1
  49. package/dist/{input-Dxnsxi-f.d.ts → input-B4uEClxB.d.ts} +1 -1
  50. package/dist/{json-viewer-BARA2RCW.d.ts → json-viewer-Bssv9mTD.d.ts} +1 -1
  51. package/dist/locales/pt.d.ts +9 -8
  52. package/dist/locales/pt.js +40 -3
  53. package/dist/locales/pt.js.map +1 -1
  54. package/dist/shells.d.ts +46 -5
  55. package/dist/shells.js +211 -71
  56. package/dist/shells.js.map +1 -1
  57. package/dist/{sidebar-Bp6Q46j-.d.ts → sidebar-BLL2tgTt.d.ts} +2 -2
  58. package/dist/types-1LUmNJf_.d.ts +41 -0
  59. package/dist/{types-cmBL8zOc.d.ts → types-CMZRvMV5.d.ts} +1 -1
  60. package/dist/{types-B-eGPoFD.d.ts → types-CfAUvz--.d.ts} +1 -1
  61. package/package.json +4 -2
  62. package/dist/chunk-I6VVCFZ2.js.map +0 -1
  63. package/dist/chunk-IDNOI4OK.js.map +0 -1
  64. package/dist/chunk-N2KIFFI7.js.map +0 -1
  65. package/dist/chunk-NGMG2UWX.js +0 -172
  66. package/dist/chunk-NGMG2UWX.js.map +0 -1
  67. package/dist/chunk-QNF4LJVT.js.map +0 -1
  68. package/dist/types-u1qfmJQi.d.ts +0 -28
@@ -1,11 +1,53 @@
1
- import { SidebarGroup, SidebarGroupContent, SidebarMenu, SidebarMenuItem, SidebarMenuButton, Icon, SidebarGroupLabel, Collapsible, CollapsibleTrigger, CollapsibleContent, Avatar, AvatarImage, AvatarFallback, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuGroup, DropdownMenuItem, useSidebar, useIsMobile, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, Sidebar, SidebarHeader, SidebarContent, SidebarFooter, Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbPage, BreadcrumbLink, BreadcrumbSeparator, SidebarTrigger } from './chunk-B3L6PRLX.js';
2
- import { hrefToString, resolveLink } from './chunk-L2H5GIF7.js';
3
- import { Separator } from './chunk-3Z2VGVPI.js';
4
- import { cn, compactRadius, Button } from './chunk-KHOA4TEI.js';
5
- import { useState, useCallback, Fragment as Fragment$1, useEffect } from 'react';
6
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
- import { ChevronDown, Settings, LogOut, ChevronsUpDown, Search } from 'lucide-react';
1
+ import {
2
+ Avatar,
3
+ AvatarFallback,
4
+ AvatarImage,
5
+ Breadcrumb,
6
+ BreadcrumbItem,
7
+ BreadcrumbLink,
8
+ BreadcrumbList,
9
+ BreadcrumbPage,
10
+ BreadcrumbSeparator,
11
+ Collapsible,
12
+ CollapsibleContent,
13
+ CollapsibleTrigger,
14
+ DropdownMenu,
15
+ DropdownMenuContent,
16
+ DropdownMenuGroup,
17
+ DropdownMenuItem,
18
+ DropdownMenuLabel,
19
+ DropdownMenuSeparator,
20
+ DropdownMenuTrigger,
21
+ Icon,
22
+ Sidebar,
23
+ SidebarContent,
24
+ SidebarFooter,
25
+ SidebarGroup,
26
+ SidebarGroupContent,
27
+ SidebarGroupLabel,
28
+ SidebarHeader,
29
+ SidebarMenu,
30
+ SidebarMenuButton,
31
+ SidebarMenuItem,
32
+ SidebarTrigger,
33
+ useIsMobile,
34
+ useSidebar
35
+ } from "./chunk-B3L6PRLX.js";
36
+ import {
37
+ hrefToString,
38
+ resolveLink
39
+ } from "./chunk-L2H5GIF7.js";
40
+ import {
41
+ Separator
42
+ } from "./chunk-3Z2VGVPI.js";
43
+ import {
44
+ Button,
45
+ cn,
46
+ compactRadius
47
+ } from "./chunk-KHOA4TEI.js";
8
48
 
49
+ // src/hooks/use-collapsed-groups.tsx
50
+ import { useCallback, useState } from "react";
9
51
  var SIDEBAR_COLLAPSED_GROUPS_KEY = "akira-ui:collapsed-nav-groups";
10
52
  function readCollapsedGroups() {
11
53
  if (typeof window === "undefined") {
@@ -72,8 +114,11 @@ function useCollapsedGroup({
72
114
  const source = isControlled ? collapsedGroups : storedGroups;
73
115
  return { open: !source.includes(group), setOpen };
74
116
  }
117
+
118
+ // src/hooks/use-initials.tsx
119
+ import { useCallback as useCallback2 } from "react";
75
120
  function useInitials() {
76
- return useCallback((fullName) => {
121
+ return useCallback2((fullName) => {
77
122
  const names = fullName.trim().split(" ");
78
123
  if (names.length === 0) return "";
79
124
  if (names.length === 1) return names[0].charAt(0).toUpperCase();
@@ -82,6 +127,9 @@ function useInitials() {
82
127
  return `${firstInitial}${lastInitial}`.toUpperCase();
83
128
  }, []);
84
129
  }
130
+
131
+ // src/shells/nav-footer.tsx
132
+ import { jsx, jsxs } from "react/jsx-runtime";
85
133
  function NavFooter({
86
134
  items,
87
135
  className,
@@ -120,6 +168,10 @@ function NavFooter({
120
168
  }
121
169
  );
122
170
  }
171
+
172
+ // src/shells/nav-main.tsx
173
+ import { ChevronDown } from "lucide-react";
174
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
123
175
  function isItemActive(item, currentUrl) {
124
176
  if (item.isActive !== void 0) {
125
177
  return item.isActive;
@@ -150,28 +202,28 @@ function NavMain({
150
202
  onCollapsedChange
151
203
  });
152
204
  const expanded = open || holdsCurrentRoute;
153
- const menu = /* @__PURE__ */ jsx(SidebarMenu, { children: items.map((item) => /* @__PURE__ */ jsx(SidebarMenuItem, { children: /* @__PURE__ */ jsx(
205
+ const menu = /* @__PURE__ */ jsx2(SidebarMenu, { children: items.map((item) => /* @__PURE__ */ jsx2(SidebarMenuItem, { children: /* @__PURE__ */ jsx2(
154
206
  SidebarMenuButton,
155
207
  {
156
208
  asChild: true,
157
209
  isActive: isItemActive(item, currentUrl),
158
210
  tooltip: { children: item.title },
159
- children: /* @__PURE__ */ jsxs(Link, { href: item.href, prefetch: true, children: [
160
- item.icon && /* @__PURE__ */ jsx(item.icon, {}),
161
- /* @__PURE__ */ jsx("span", { children: item.title })
211
+ children: /* @__PURE__ */ jsxs2(Link, { href: item.href, prefetch: true, children: [
212
+ item.icon && /* @__PURE__ */ jsx2(item.icon, {}),
213
+ /* @__PURE__ */ jsx2("span", { children: item.title })
162
214
  ] })
163
215
  }
164
216
  ) }, item.title)) });
165
217
  if (!collapsible || !label) {
166
- return /* @__PURE__ */ jsxs(SidebarGroup, { className: "px-2 py-0", children: [
167
- label && /* @__PURE__ */ jsx(SidebarGroupLabel, { children: label }),
218
+ return /* @__PURE__ */ jsxs2(SidebarGroup, { className: "px-2 py-0", children: [
219
+ label && /* @__PURE__ */ jsx2(SidebarGroupLabel, { children: label }),
168
220
  menu
169
221
  ] });
170
222
  }
171
- return /* @__PURE__ */ jsx(SidebarGroup, { className: "px-2 py-0", children: /* @__PURE__ */ jsxs(Collapsible, { open: expanded, onOpenChange: setOpen, children: [
172
- /* @__PURE__ */ jsx(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(SidebarGroupLabel, { className: "w-full cursor-pointer justify-between", children: [
223
+ return /* @__PURE__ */ jsx2(SidebarGroup, { className: "px-2 py-0", children: /* @__PURE__ */ jsxs2(Collapsible, { open: expanded, onOpenChange: setOpen, children: [
224
+ /* @__PURE__ */ jsx2(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ jsxs2(SidebarGroupLabel, { className: "w-full cursor-pointer justify-between", children: [
173
225
  label,
174
- /* @__PURE__ */ jsx(
226
+ /* @__PURE__ */ jsx2(
175
227
  ChevronDown,
176
228
  {
177
229
  className: cn(
@@ -181,16 +233,19 @@ function NavMain({
181
233
  }
182
234
  )
183
235
  ] }) }),
184
- /* @__PURE__ */ jsx(CollapsibleContent, { children: menu })
236
+ /* @__PURE__ */ jsx2(CollapsibleContent, { children: menu })
185
237
  ] }) });
186
238
  }
239
+
240
+ // src/shells/user-info.tsx
241
+ import { Fragment, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
187
242
  function UserInfo({
188
243
  user,
189
244
  showEmail = false
190
245
  }) {
191
246
  const getInitials = useInitials();
192
- return /* @__PURE__ */ jsxs(Fragment, { children: [
193
- /* @__PURE__ */ jsxs(
247
+ return /* @__PURE__ */ jsxs3(Fragment, { children: [
248
+ /* @__PURE__ */ jsxs3(
194
249
  Avatar,
195
250
  {
196
251
  className: cn(
@@ -198,8 +253,8 @@ function UserInfo({
198
253
  "group-data-[collapsible=icon]:size-10"
199
254
  ),
200
255
  children: [
201
- /* @__PURE__ */ jsx(AvatarImage, { src: user.avatar, alt: user.name }),
202
- /* @__PURE__ */ jsx(
256
+ /* @__PURE__ */ jsx3(AvatarImage, { src: user.avatar, alt: user.name }),
257
+ /* @__PURE__ */ jsx3(
203
258
  AvatarFallback,
204
259
  {
205
260
  className: cn(compactRadius, "bg-muted text-foreground"),
@@ -209,19 +264,23 @@ function UserInfo({
209
264
  ]
210
265
  }
211
266
  ),
212
- /* @__PURE__ */ jsxs(
267
+ /* @__PURE__ */ jsxs3(
213
268
  "div",
214
269
  {
215
270
  "data-slot": "user-info-identity",
216
271
  className: "text-sm leading-tight grid flex-1 text-left group-data-[collapsible=icon]:hidden",
217
272
  children: [
218
- /* @__PURE__ */ jsx("span", { className: "font-medium truncate", children: user.name }),
219
- showEmail && /* @__PURE__ */ jsx("span", { className: "text-xs truncate text-muted-foreground", children: user.email })
273
+ /* @__PURE__ */ jsx3("span", { className: "font-medium truncate", children: user.name }),
274
+ showEmail && /* @__PURE__ */ jsx3("span", { className: "text-xs truncate text-muted-foreground", children: user.email })
220
275
  ]
221
276
  }
222
277
  )
223
278
  ] });
224
279
  }
280
+
281
+ // src/shells/user-menu-content.tsx
282
+ import { LogOut, Settings } from "lucide-react";
283
+ import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
225
284
  function UserMenuContent({
226
285
  user,
227
286
  settingsHref,
@@ -233,10 +292,10 @@ function UserMenuContent({
233
292
  logoutLabel = "Log out"
234
293
  }) {
235
294
  const Link = resolveLink(linkComponent);
236
- return /* @__PURE__ */ jsxs(Fragment, { children: [
237
- /* @__PURE__ */ jsx(DropdownMenuLabel, { className: "p-0 font-normal", children: /* @__PURE__ */ jsx("div", { className: "gap-2 px-1 py-1.5 text-sm flex items-center text-left", children: /* @__PURE__ */ jsx(UserInfo, { user, showEmail: true }) }) }),
238
- /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
239
- /* @__PURE__ */ jsx(DropdownMenuGroup, { children: /* @__PURE__ */ jsx(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs(
295
+ return /* @__PURE__ */ jsxs4(Fragment2, { children: [
296
+ /* @__PURE__ */ jsx4(DropdownMenuLabel, { className: "p-0 font-normal", children: /* @__PURE__ */ jsx4("div", { className: "gap-2 px-1 py-1.5 text-sm flex items-center text-left", children: /* @__PURE__ */ jsx4(UserInfo, { user, showEmail: true }) }) }),
297
+ /* @__PURE__ */ jsx4(DropdownMenuSeparator, {}),
298
+ /* @__PURE__ */ jsx4(DropdownMenuGroup, { children: /* @__PURE__ */ jsx4(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs4(
240
299
  Link,
241
300
  {
242
301
  className: "block w-full",
@@ -245,13 +304,13 @@ function UserMenuContent({
245
304
  prefetch: true,
246
305
  onClick: onSettingsClick,
247
306
  children: [
248
- /* @__PURE__ */ jsx(Settings, { className: "mr-2" }),
307
+ /* @__PURE__ */ jsx4(Settings, { className: "mr-2" }),
249
308
  settingsLabel
250
309
  ]
251
310
  }
252
311
  ) }) }),
253
- /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
254
- /* @__PURE__ */ jsx(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs(
312
+ /* @__PURE__ */ jsx4(DropdownMenuSeparator, {}),
313
+ /* @__PURE__ */ jsx4(DropdownMenuItem, { asChild: true, children: /* @__PURE__ */ jsxs4(
255
314
  Link,
256
315
  {
257
316
  className: "block w-full",
@@ -260,13 +319,17 @@ function UserMenuContent({
260
319
  onClick: onLogout,
261
320
  "data-test": "logout-button",
262
321
  children: [
263
- /* @__PURE__ */ jsx(LogOut, { className: "mr-2" }),
322
+ /* @__PURE__ */ jsx4(LogOut, { className: "mr-2" }),
264
323
  logoutLabel
265
324
  ]
266
325
  }
267
326
  ) })
268
327
  ] });
269
328
  }
329
+
330
+ // src/shells/nav-user.tsx
331
+ import { ChevronsUpDown } from "lucide-react";
332
+ import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
270
333
  function NavUser({
271
334
  user,
272
335
  settingsHref,
@@ -277,15 +340,15 @@ function NavUser({
277
340
  }) {
278
341
  const { state } = useSidebar();
279
342
  const isMobile = useIsMobile();
280
- return /* @__PURE__ */ jsx(SidebarMenu, { children: /* @__PURE__ */ jsx(SidebarMenuItem, { children: /* @__PURE__ */ jsxs(DropdownMenu, { children: [
281
- /* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
343
+ return /* @__PURE__ */ jsx5(SidebarMenu, { children: /* @__PURE__ */ jsx5(SidebarMenuItem, { children: /* @__PURE__ */ jsxs5(DropdownMenu, { children: [
344
+ /* @__PURE__ */ jsx5(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs5(
282
345
  SidebarMenuButton,
283
346
  {
284
347
  className: "group group-data-[collapsible=icon]:p-0! cursor-pointer bg-sidebar-accent text-sidebar-accent-foreground hover:bg-sidebar-accent-hover data-[state=open]:bg-sidebar-accent-hover",
285
348
  "data-test": "sidebar-menu-button",
286
349
  children: [
287
- /* @__PURE__ */ jsx(UserInfo, { user }),
288
- /* @__PURE__ */ jsx(
350
+ /* @__PURE__ */ jsx5(UserInfo, { user }),
351
+ /* @__PURE__ */ jsx5(
289
352
  ChevronsUpDown,
290
353
  {
291
354
  "data-slot": "nav-user-chevron",
@@ -295,13 +358,13 @@ function NavUser({
295
358
  ]
296
359
  }
297
360
  ) }),
298
- /* @__PURE__ */ jsx(
361
+ /* @__PURE__ */ jsx5(
299
362
  DropdownMenuContent,
300
363
  {
301
364
  className: "min-w-56 rounded-xl w-(--radix-dropdown-menu-trigger-width)",
302
365
  align: "end",
303
366
  side: isMobile ? "bottom" : state === "collapsed" ? "left" : "bottom",
304
- children: /* @__PURE__ */ jsx(
367
+ children: /* @__PURE__ */ jsx5(
305
368
  UserMenuContent,
306
369
  {
307
370
  user,
@@ -316,6 +379,9 @@ function NavUser({
316
379
  )
317
380
  ] }) }) });
318
381
  }
382
+
383
+ // src/shells/app-sidebar.tsx
384
+ import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
319
385
  function mostSpecificActiveHref(groups, currentUrl) {
320
386
  let best = "";
321
387
  for (const group of groups) {
@@ -354,9 +420,9 @@ function AppSidebar({
354
420
  isActive: hrefToString(item.href) === activeHref
355
421
  }))
356
422
  }));
357
- return /* @__PURE__ */ jsxs(Sidebar, { collapsible: "icon", variant: "inset", children: [
358
- /* @__PURE__ */ jsx(SidebarHeader, { children: /* @__PURE__ */ jsx(SidebarMenu, { children: /* @__PURE__ */ jsx(SidebarMenuItem, { children: /* @__PURE__ */ jsx(SidebarMenuButton, { asChild: true, children: /* @__PURE__ */ jsx(Link, { href: logoHref, prefetch: true, children: logo }) }) }) }) }),
359
- /* @__PURE__ */ jsx(SidebarContent, { children: resolvedGroups.map((group, index) => /* @__PURE__ */ jsx(
423
+ return /* @__PURE__ */ jsxs6(Sidebar, { collapsible: "icon", variant: "inset", children: [
424
+ /* @__PURE__ */ jsx6(SidebarHeader, { children: /* @__PURE__ */ jsx6(SidebarMenu, { children: /* @__PURE__ */ jsx6(SidebarMenuItem, { children: /* @__PURE__ */ jsx6(SidebarMenuButton, { asChild: true, children: /* @__PURE__ */ jsx6(Link, { href: logoHref, prefetch: true, children: logo }) }) }) }) }),
425
+ /* @__PURE__ */ jsx6(SidebarContent, { children: resolvedGroups.map((group, index) => /* @__PURE__ */ jsx6(
360
426
  NavMain,
361
427
  {
362
428
  items: group.items,
@@ -369,9 +435,9 @@ function AppSidebar({
369
435
  },
370
436
  group.label ?? index
371
437
  )) }),
372
- /* @__PURE__ */ jsxs(SidebarFooter, { children: [
373
- footerItems.length > 0 && /* @__PURE__ */ jsx(NavFooter, { items: footerItems, className: "mt-auto" }),
374
- /* @__PURE__ */ jsx(
438
+ /* @__PURE__ */ jsxs6(SidebarFooter, { children: [
439
+ footerItems.length > 0 && /* @__PURE__ */ jsx6(NavFooter, { items: footerItems, className: "mt-auto" }),
440
+ /* @__PURE__ */ jsx6(
375
441
  NavUser,
376
442
  {
377
443
  user,
@@ -385,6 +451,10 @@ function AppSidebar({
385
451
  ] })
386
452
  ] });
387
453
  }
454
+
455
+ // src/shells/breadcrumbs.tsx
456
+ import { Fragment as Fragment3 } from "react";
457
+ import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
388
458
  function Breadcrumbs({
389
459
  breadcrumbs,
390
460
  linkComponent
@@ -393,29 +463,34 @@ function Breadcrumbs({
393
463
  if (breadcrumbs.length === 0) {
394
464
  return null;
395
465
  }
396
- return /* @__PURE__ */ jsx(Breadcrumb, { children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs.map((item, index) => {
466
+ return /* @__PURE__ */ jsx7(Breadcrumb, { children: /* @__PURE__ */ jsx7(BreadcrumbList, { children: breadcrumbs.map((item, index) => {
397
467
  const isLast = index === breadcrumbs.length - 1;
398
- return /* @__PURE__ */ jsxs(Fragment$1, { children: [
399
- /* @__PURE__ */ jsx(BreadcrumbItem, { children: isLast ? /* @__PURE__ */ jsx(BreadcrumbPage, { children: item.title }) : /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Link, { href: item.href, children: item.title }) }) }),
400
- !isLast && /* @__PURE__ */ jsx(BreadcrumbSeparator, {})
468
+ return /* @__PURE__ */ jsxs7(Fragment3, { children: [
469
+ /* @__PURE__ */ jsx7(BreadcrumbItem, { children: isLast ? /* @__PURE__ */ jsx7(BreadcrumbPage, { children: item.title }) : /* @__PURE__ */ jsx7(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx7(Link, { href: item.href, children: item.title }) }) }),
470
+ !isLast && /* @__PURE__ */ jsx7(BreadcrumbSeparator, {})
401
471
  ] }, index);
402
472
  }) }) });
403
473
  }
474
+
475
+ // src/shells/app-sidebar-header.tsx
476
+ import { Search } from "lucide-react";
477
+ import { useEffect, useState as useState2 } from "react";
478
+ import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
404
479
  function AppSidebarHeader({
405
480
  breadcrumbs = [],
406
481
  linkComponent,
407
482
  onSearchClick,
408
483
  searchLabel = "Search..."
409
484
  }) {
410
- const [modifier, setModifier] = useState("Ctrl");
485
+ const [modifier, setModifier] = useState2("Ctrl");
411
486
  useEffect(() => {
412
487
  const platform = navigator.userAgent;
413
488
  setModifier(/Mac|iPhone|iPad|iPod/.test(platform) ? "\u2318" : "Ctrl");
414
489
  }, []);
415
- return /* @__PURE__ */ jsxs("header", { className: "h-16 gap-2 px-6 group-has-data-[collapsible=icon]/sidebar-wrapper:h-12 md:px-4 flex shrink-0 items-center border-b border-sidebar-border/50 transition-[width,height] ease-linear", children: [
416
- /* @__PURE__ */ jsxs("div", { className: "gap-2 flex items-center", children: [
417
- /* @__PURE__ */ jsx(SidebarTrigger, { className: "-ml-1" }),
418
- /* @__PURE__ */ jsx(
490
+ return /* @__PURE__ */ jsxs8("header", { className: "h-16 gap-2 px-6 group-has-data-[collapsible=icon]/sidebar-wrapper:h-12 md:px-4 flex shrink-0 items-center border-b border-sidebar-border/50 transition-[width,height] ease-linear", children: [
491
+ /* @__PURE__ */ jsxs8("div", { className: "gap-2 flex items-center", children: [
492
+ /* @__PURE__ */ jsx8(SidebarTrigger, { className: "-ml-1" }),
493
+ /* @__PURE__ */ jsx8(
419
494
  Breadcrumbs,
420
495
  {
421
496
  breadcrumbs,
@@ -423,33 +498,39 @@ function AppSidebarHeader({
423
498
  }
424
499
  )
425
500
  ] }),
426
- onSearchClick && /* @__PURE__ */ jsxs(
501
+ onSearchClick && /* @__PURE__ */ jsxs8(
427
502
  "button",
428
503
  {
429
504
  type: "button",
430
505
  onClick: onSearchClick,
431
506
  className: "h-9 w-56 gap-2 rounded-xl px-3 text-sm ml-auto flex items-center border border-border/60 bg-muted/30 text-muted-foreground transition-colors hover:bg-muted/50",
432
507
  children: [
433
- /* @__PURE__ */ jsx(Search, { className: "size-4" }),
434
- /* @__PURE__ */ jsx("span", { children: searchLabel }),
435
- /* @__PURE__ */ jsxs("kbd", { className: "gap-0.5 px-1.5 py-0.5 font-semibold rounded-xl ml-auto inline-flex items-center border border-border/60 bg-background font-sans text-[10px] text-muted-foreground", children: [
436
- /* @__PURE__ */ jsx("span", { children: modifier }),
437
- /* @__PURE__ */ jsx("span", { children: "K" })
508
+ /* @__PURE__ */ jsx8(Search, { className: "size-4" }),
509
+ /* @__PURE__ */ jsx8("span", { children: searchLabel }),
510
+ /* @__PURE__ */ jsxs8("kbd", { className: "gap-0.5 px-1.5 py-0.5 font-semibold rounded-xl ml-auto inline-flex items-center border border-border/60 bg-background font-sans text-[10px] text-muted-foreground", children: [
511
+ /* @__PURE__ */ jsx8("span", { children: modifier }),
512
+ /* @__PURE__ */ jsx8("span", { children: "K" })
438
513
  ] })
439
514
  ]
440
515
  }
441
516
  )
442
517
  ] });
443
518
  }
519
+
520
+ // src/shells/heading.tsx
521
+ import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
444
522
  function Heading({
445
523
  title,
446
524
  description
447
525
  }) {
448
- return /* @__PURE__ */ jsxs("div", { className: "mb-8 space-y-0.5", children: [
449
- /* @__PURE__ */ jsx("h2", { className: "text-xl font-semibold tracking-tight", children: title }),
450
- description && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: description })
526
+ return /* @__PURE__ */ jsxs9("div", { className: "mb-8 space-y-0.5", children: [
527
+ /* @__PURE__ */ jsx9("h2", { className: "text-xl font-semibold tracking-tight", children: title }),
528
+ description && /* @__PURE__ */ jsx9("p", { className: "text-sm text-muted-foreground", children: description })
451
529
  ] });
452
530
  }
531
+
532
+ // src/shells/settings-layout.tsx
533
+ import { jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
453
534
  function SettingsLayout({
454
535
  items,
455
536
  linkComponent,
@@ -461,12 +542,12 @@ function SettingsLayout({
461
542
  }) {
462
543
  const Link = resolveLink(linkComponent);
463
544
  const activePath = currentPath ?? (typeof window === "undefined" ? "" : window.location.pathname);
464
- return /* @__PURE__ */ jsxs("div", { className: "px-4 py-6", children: [
465
- /* @__PURE__ */ jsx(Heading, { title, description }),
466
- /* @__PURE__ */ jsxs("div", { className: "lg:flex-row lg:space-x-12 flex flex-col", children: [
467
- /* @__PURE__ */ jsx("aside", { className: "max-w-xl lg:w-48 w-full", children: /* @__PURE__ */ jsx("nav", { className: "space-y-1 space-x-0 flex flex-col", children: items.map((item, index) => {
545
+ return /* @__PURE__ */ jsxs10("div", { className: "px-4 py-6", children: [
546
+ /* @__PURE__ */ jsx10(Heading, { title, description }),
547
+ /* @__PURE__ */ jsxs10("div", { className: "lg:flex-row lg:space-x-12 flex flex-col", children: [
548
+ /* @__PURE__ */ jsx10("aside", { className: "max-w-xl lg:w-48 w-full", children: /* @__PURE__ */ jsx10("nav", { className: "space-y-1 space-x-0 flex flex-col", children: items.map((item, index) => {
468
549
  const href = hrefToString(item.href);
469
- return /* @__PURE__ */ jsx(
550
+ return /* @__PURE__ */ jsx10(
470
551
  Button,
471
552
  {
472
553
  size: "sm",
@@ -475,22 +556,22 @@ function SettingsLayout({
475
556
  className: cn("w-full justify-start", {
476
557
  "bg-muted": activePath === href
477
558
  }),
478
- children: /* @__PURE__ */ jsxs(Link, { href: item.href, children: [
479
- item.icon && /* @__PURE__ */ jsx(item.icon, { className: "h-4 w-4" }),
559
+ children: /* @__PURE__ */ jsxs10(Link, { href: item.href, children: [
560
+ item.icon && /* @__PURE__ */ jsx10(item.icon, { className: "h-4 w-4" }),
480
561
  item.title
481
562
  ] })
482
563
  },
483
564
  `${href}-${index}`
484
565
  );
485
566
  }) }) }),
486
- /* @__PURE__ */ jsx(Separator, { className: "my-6 lg:hidden" }),
487
- /* @__PURE__ */ jsx(
567
+ /* @__PURE__ */ jsx10(Separator, { className: "my-6 lg:hidden" }),
568
+ /* @__PURE__ */ jsx10(
488
569
  "div",
489
570
  {
490
571
  className: cn(
491
572
  wide ? "min-w-0 flex-1" : "md:max-w-2xl flex-1"
492
573
  ),
493
- children: /* @__PURE__ */ jsx(
574
+ children: /* @__PURE__ */ jsx10(
494
575
  "section",
495
576
  {
496
577
  className: cn(
@@ -506,6 +587,19 @@ function SettingsLayout({
506
587
  ] });
507
588
  }
508
589
 
509
- export { AppSidebar, AppSidebarHeader, Breadcrumbs, Heading, NavFooter, NavMain, NavUser, SIDEBAR_COLLAPSED_GROUPS_KEY, SettingsLayout, UserInfo, UserMenuContent, useCollapsedGroup, useInitials };
510
- //# sourceMappingURL=chunk-SZUXATOF.js.map
590
+ export {
591
+ SIDEBAR_COLLAPSED_GROUPS_KEY,
592
+ useCollapsedGroup,
593
+ useInitials,
594
+ NavFooter,
595
+ NavMain,
596
+ UserInfo,
597
+ UserMenuContent,
598
+ NavUser,
599
+ AppSidebar,
600
+ Breadcrumbs,
601
+ AppSidebarHeader,
602
+ Heading,
603
+ SettingsLayout
604
+ };
511
605
  //# sourceMappingURL=chunk-SZUXATOF.js.map