@mesob/ui 0.2.1 → 0.2.3

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 (43) hide show
  1. package/dist/components/alert-dialog.js +14 -14
  2. package/dist/components/alert-dialog.js.map +1 -1
  3. package/dist/components/app-breadcrumbs-context.d.ts +19 -0
  4. package/dist/components/app-breadcrumbs-context.js +19 -0
  5. package/dist/components/app-breadcrumbs-context.js.map +1 -0
  6. package/dist/components/app-breadcrumbs.d.ts +5 -14
  7. package/dist/components/app-breadcrumbs.js +5 -7
  8. package/dist/components/app-breadcrumbs.js.map +1 -1
  9. package/dist/components/app-header-actions.js +70 -70
  10. package/dist/components/app-header-actions.js.map +1 -1
  11. package/dist/components/app-sidebar.js +57 -59
  12. package/dist/components/app-sidebar.js.map +1 -1
  13. package/dist/components/button.js +4 -4
  14. package/dist/components/button.js.map +1 -1
  15. package/dist/components/calendar.js +12 -12
  16. package/dist/components/calendar.js.map +1 -1
  17. package/dist/components/carousel.js +14 -14
  18. package/dist/components/carousel.js.map +1 -1
  19. package/dist/components/data-table/index.js +57 -57
  20. package/dist/components/data-table/index.js.map +1 -1
  21. package/dist/components/entity/index.js +177 -177
  22. package/dist/components/entity/index.js.map +1 -1
  23. package/dist/components/input-group.js +15 -15
  24. package/dist/components/input-group.js.map +1 -1
  25. package/dist/components/page/index.js +21 -21
  26. package/dist/components/page/index.js.map +1 -1
  27. package/dist/components/pagination.js +12 -12
  28. package/dist/components/pagination.js.map +1 -1
  29. package/dist/components/section/index.js +15 -15
  30. package/dist/components/section/index.js.map +1 -1
  31. package/dist/components/shell.js +37 -42
  32. package/dist/components/shell.js.map +1 -1
  33. package/dist/components/sidebar-context.d.ts +19 -0
  34. package/dist/components/sidebar-context.js +17 -0
  35. package/dist/components/sidebar-context.js.map +1 -0
  36. package/dist/components/sidebar.d.ts +2 -15
  37. package/dist/components/sidebar.js +67 -70
  38. package/dist/components/sidebar.js.map +1 -1
  39. package/dist/components/spotlight-search.js +38 -38
  40. package/dist/components/spotlight-search.js.map +1 -1
  41. package/dist/components/theme-toggle.js +8 -8
  42. package/dist/components/theme-toggle.js.map +1 -1
  43. package/package.json +1 -1
@@ -59,7 +59,7 @@ function AvatarFallback({
59
59
  // src/components/button.tsx
60
60
  import { Slot } from "@radix-ui/react-slot";
61
61
  import { cva } from "class-variance-authority";
62
- import { jsxs } from "react/jsx-runtime";
62
+ import { Fragment, jsx as jsx2, jsxs } from "react/jsx-runtime";
63
63
  var buttonVariants = cva(
64
64
  "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
65
65
  {
@@ -98,17 +98,17 @@ function Button({
98
98
  ...props
99
99
  }) {
100
100
  const Comp = asChild ? Slot : "button";
101
- return /* @__PURE__ */ jsxs(
101
+ return /* @__PURE__ */ jsx2(
102
102
  Comp,
103
103
  {
104
104
  "data-slot": "button",
105
105
  className: cn(buttonVariants({ variant, size, className })),
106
106
  ...props,
107
- children: [
107
+ children: asChild ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
108
108
  leftIcon,
109
109
  children,
110
110
  rightIcon
111
- ]
111
+ ] })
112
112
  }
113
113
  );
114
114
  }
@@ -116,16 +116,16 @@ function Button({
116
116
  // src/components/dropdown-menu.tsx
117
117
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
118
118
  import { IconCheck, IconChevronRight, IconCircle } from "@tabler/icons-react";
119
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
119
+ import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
120
120
  function DropdownMenu({
121
121
  ...props
122
122
  }) {
123
- return /* @__PURE__ */ jsx2(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
123
+ return /* @__PURE__ */ jsx3(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
124
124
  }
125
125
  function DropdownMenuTrigger({
126
126
  ...props
127
127
  }) {
128
- return /* @__PURE__ */ jsx2(
128
+ return /* @__PURE__ */ jsx3(
129
129
  DropdownMenuPrimitive.Trigger,
130
130
  {
131
131
  "data-slot": "dropdown-menu-trigger",
@@ -138,7 +138,7 @@ function DropdownMenuContent({
138
138
  sideOffset = 4,
139
139
  ...props
140
140
  }) {
141
- return /* @__PURE__ */ jsx2(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx2(
141
+ return /* @__PURE__ */ jsx3(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx3(
142
142
  DropdownMenuPrimitive.Content,
143
143
  {
144
144
  "data-slot": "dropdown-menu-content",
@@ -157,7 +157,7 @@ function DropdownMenuItem({
157
157
  variant = "default",
158
158
  ...props
159
159
  }) {
160
- return /* @__PURE__ */ jsx2(
160
+ return /* @__PURE__ */ jsx3(
161
161
  DropdownMenuPrimitive.Item,
162
162
  {
163
163
  "data-slot": "dropdown-menu-item",
@@ -175,7 +175,7 @@ function DropdownMenuSeparator({
175
175
  className,
176
176
  ...props
177
177
  }) {
178
- return /* @__PURE__ */ jsx2(
178
+ return /* @__PURE__ */ jsx3(
179
179
  DropdownMenuPrimitive.Separator,
180
180
  {
181
181
  "data-slot": "dropdown-menu-separator",
@@ -187,7 +187,7 @@ function DropdownMenuSeparator({
187
187
 
188
188
  // src/components/tooltip.tsx
189
189
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
190
- import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
190
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
191
191
 
192
192
  // src/components/mesob-context.tsx
193
193
  import {
@@ -195,14 +195,14 @@ import {
195
195
  useContext,
196
196
  useMemo
197
197
  } from "react";
198
- import { jsx as jsx4 } from "react/jsx-runtime";
198
+ import { jsx as jsx5 } from "react/jsx-runtime";
199
199
  var MesobContext = createContext(null);
200
200
  function useMesob() {
201
201
  return useContext(MesobContext);
202
202
  }
203
203
 
204
204
  // src/components/link.tsx
205
- import { jsx as jsx5 } from "react/jsx-runtime";
205
+ import { jsx as jsx6 } from "react/jsx-runtime";
206
206
  function Link({
207
207
  href,
208
208
  children,
@@ -213,9 +213,9 @@ function Link({
213
213
  const mesob = useMesob();
214
214
  const LinkComponent = mesob?.linkComponent ?? "a";
215
215
  if (LinkComponent === "a") {
216
- return /* @__PURE__ */ jsx5("a", { href, className, onClick, ...props, children });
216
+ return /* @__PURE__ */ jsx6("a", { href, className, onClick, ...props, children });
217
217
  }
218
- return /* @__PURE__ */ jsx5(
218
+ return /* @__PURE__ */ jsx6(
219
219
  LinkComponent,
220
220
  {
221
221
  href,
@@ -230,22 +230,22 @@ function Link({
230
230
  // src/components/dialog.tsx
231
231
  import * as DialogPrimitive from "@radix-ui/react-dialog";
232
232
  import { IconX } from "@tabler/icons-react";
233
- import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
233
+ import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
234
234
  function Dialog({
235
235
  ...props
236
236
  }) {
237
- return /* @__PURE__ */ jsx6(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
237
+ return /* @__PURE__ */ jsx7(DialogPrimitive.Root, { "data-slot": "dialog", ...props });
238
238
  }
239
239
  function DialogPortal({
240
240
  ...props
241
241
  }) {
242
- return /* @__PURE__ */ jsx6(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
242
+ return /* @__PURE__ */ jsx7(DialogPrimitive.Portal, { "data-slot": "dialog-portal", ...props });
243
243
  }
244
244
  function DialogOverlay({
245
245
  className,
246
246
  ...props
247
247
  }) {
248
- return /* @__PURE__ */ jsx6(
248
+ return /* @__PURE__ */ jsx7(
249
249
  DialogPrimitive.Overlay,
250
250
  {
251
251
  "data-slot": "dialog-overlay",
@@ -264,7 +264,7 @@ function DialogContent({
264
264
  ...props
265
265
  }) {
266
266
  return /* @__PURE__ */ jsxs4(DialogPortal, { "data-slot": "dialog-portal", children: [
267
- /* @__PURE__ */ jsx6(DialogOverlay, {}),
267
+ /* @__PURE__ */ jsx7(DialogOverlay, {}),
268
268
  /* @__PURE__ */ jsxs4(
269
269
  DialogPrimitive.Content,
270
270
  {
@@ -282,8 +282,8 @@ function DialogContent({
282
282
  "data-slot": "dialog-close",
283
283
  className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
284
284
  children: [
285
- /* @__PURE__ */ jsx6(IconX, {}),
286
- /* @__PURE__ */ jsx6("span", { className: "sr-only", children: "Close" })
285
+ /* @__PURE__ */ jsx7(IconX, {}),
286
+ /* @__PURE__ */ jsx7("span", { className: "sr-only", children: "Close" })
287
287
  ]
288
288
  }
289
289
  )
@@ -293,7 +293,7 @@ function DialogContent({
293
293
  ] });
294
294
  }
295
295
  function DialogHeader({ className, ...props }) {
296
- return /* @__PURE__ */ jsx6(
296
+ return /* @__PURE__ */ jsx7(
297
297
  "div",
298
298
  {
299
299
  "data-slot": "dialog-header",
@@ -306,7 +306,7 @@ function DialogTitle({
306
306
  className,
307
307
  ...props
308
308
  }) {
309
- return /* @__PURE__ */ jsx6(
309
+ return /* @__PURE__ */ jsx7(
310
310
  DialogPrimitive.Title,
311
311
  {
312
312
  "data-slot": "dialog-title",
@@ -319,7 +319,7 @@ function DialogDescription({
319
319
  className,
320
320
  ...props
321
321
  }) {
322
- return /* @__PURE__ */ jsx6(
322
+ return /* @__PURE__ */ jsx7(
323
323
  DialogPrimitive.Description,
324
324
  {
325
325
  "data-slot": "dialog-description",
@@ -332,12 +332,12 @@ function DialogDescription({
332
332
  // src/components/command.tsx
333
333
  import { IconSearch } from "@tabler/icons-react";
334
334
  import { Command as CommandPrimitive } from "cmdk";
335
- import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
335
+ import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
336
336
  function Command({
337
337
  className,
338
338
  ...props
339
339
  }) {
340
- return /* @__PURE__ */ jsx7(
340
+ return /* @__PURE__ */ jsx8(
341
341
  CommandPrimitive,
342
342
  {
343
343
  "data-slot": "command",
@@ -359,15 +359,15 @@ function CommandDialog({
359
359
  }) {
360
360
  return /* @__PURE__ */ jsxs5(Dialog, { ...props, children: [
361
361
  /* @__PURE__ */ jsxs5(DialogHeader, { className: "sr-only", children: [
362
- /* @__PURE__ */ jsx7(DialogTitle, { children: title }),
363
- /* @__PURE__ */ jsx7(DialogDescription, { children: description })
362
+ /* @__PURE__ */ jsx8(DialogTitle, { children: title }),
363
+ /* @__PURE__ */ jsx8(DialogDescription, { children: description })
364
364
  ] }),
365
- /* @__PURE__ */ jsx7(
365
+ /* @__PURE__ */ jsx8(
366
366
  DialogContent,
367
367
  {
368
368
  className: cn("overflow-hidden p-0", className),
369
369
  showCloseButton,
370
- children: /* @__PURE__ */ jsx7(Command, { className: "[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children })
370
+ children: /* @__PURE__ */ jsx8(Command, { className: "[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children })
371
371
  }
372
372
  )
373
373
  ] });
@@ -382,8 +382,8 @@ function CommandInput({
382
382
  "data-slot": "command-input-wrapper",
383
383
  className: "border-border flex h-9 items-center gap-2 border-b px-3",
384
384
  children: [
385
- /* @__PURE__ */ jsx7(IconSearch, { className: "size-4 shrink-0 opacity-50" }),
386
- /* @__PURE__ */ jsx7(
385
+ /* @__PURE__ */ jsx8(IconSearch, { className: "size-4 shrink-0 opacity-50" }),
386
+ /* @__PURE__ */ jsx8(
387
387
  CommandPrimitive.Input,
388
388
  {
389
389
  "data-slot": "command-input",
@@ -402,7 +402,7 @@ function CommandList({
402
402
  className,
403
403
  ...props
404
404
  }) {
405
- return /* @__PURE__ */ jsx7(
405
+ return /* @__PURE__ */ jsx8(
406
406
  CommandPrimitive.List,
407
407
  {
408
408
  "data-slot": "command-list",
@@ -417,7 +417,7 @@ function CommandList({
417
417
  function CommandEmpty({
418
418
  ...props
419
419
  }) {
420
- return /* @__PURE__ */ jsx7(
420
+ return /* @__PURE__ */ jsx8(
421
421
  CommandPrimitive.Empty,
422
422
  {
423
423
  "data-slot": "command-empty",
@@ -430,7 +430,7 @@ function CommandGroup({
430
430
  className,
431
431
  ...props
432
432
  }) {
433
- return /* @__PURE__ */ jsx7(
433
+ return /* @__PURE__ */ jsx8(
434
434
  CommandPrimitive.Group,
435
435
  {
436
436
  "data-slot": "command-group",
@@ -446,7 +446,7 @@ function CommandSeparator({
446
446
  className,
447
447
  ...props
448
448
  }) {
449
- return /* @__PURE__ */ jsx7(
449
+ return /* @__PURE__ */ jsx8(
450
450
  CommandPrimitive.Separator,
451
451
  {
452
452
  "data-slot": "command-separator",
@@ -459,7 +459,7 @@ function CommandItem({
459
459
  className,
460
460
  ...props
461
461
  }) {
462
- return /* @__PURE__ */ jsx7(
462
+ return /* @__PURE__ */ jsx8(
463
463
  CommandPrimitive.Item,
464
464
  {
465
465
  "data-slot": "command-item",
@@ -475,7 +475,7 @@ function CommandItem({
475
475
  // src/components/spotlight-search.tsx
476
476
  import { IconSearch as IconSearch2 } from "@tabler/icons-react";
477
477
  import * as React from "react";
478
- import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
478
+ import { Fragment as Fragment3, jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
479
479
  function SpotlightSearch({
480
480
  groups = [],
481
481
  placeholder = "Search...",
@@ -495,7 +495,7 @@ function SpotlightSearch({
495
495
  document.addEventListener("keydown", down);
496
496
  return () => document.removeEventListener("keydown", down);
497
497
  }, []);
498
- return /* @__PURE__ */ jsxs6(Fragment2, { children: [
498
+ return /* @__PURE__ */ jsxs6(Fragment3, { children: [
499
499
  /* @__PURE__ */ jsxs6(
500
500
  Button,
501
501
  {
@@ -506,10 +506,10 @@ function SpotlightSearch({
506
506
  ),
507
507
  onClick: () => setOpen(true),
508
508
  children: [
509
- /* @__PURE__ */ jsx8(IconSearch2, { className: "h-4 w-4 xl:mr-2" }),
510
- /* @__PURE__ */ jsx8("span", { className: "hidden xl:inline-flex", children: "Search..." }),
509
+ /* @__PURE__ */ jsx9(IconSearch2, { className: "h-4 w-4 xl:mr-2" }),
510
+ /* @__PURE__ */ jsx9("span", { className: "hidden xl:inline-flex", children: "Search..." }),
511
511
  /* @__PURE__ */ jsxs6("kbd", { className: "border-border pointer-events-none absolute right-1.5 top-1/2 hidden h-5 -translate-y-1/2 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100 xl:flex", children: [
512
- /* @__PURE__ */ jsx8("span", { className: "text-xs", children: "\u2318" }),
512
+ /* @__PURE__ */ jsx9("span", { className: "text-xs", children: "\u2318" }),
513
513
  "K"
514
514
  ] })
515
515
  ]
@@ -525,12 +525,12 @@ function SpotlightSearch({
525
525
  showCloseButton: false,
526
526
  className,
527
527
  children: [
528
- /* @__PURE__ */ jsx8(CommandInput, { placeholder, onValueChange: onSearch }),
528
+ /* @__PURE__ */ jsx9(CommandInput, { placeholder, onValueChange: onSearch }),
529
529
  /* @__PURE__ */ jsxs6(CommandList, { children: [
530
- /* @__PURE__ */ jsx8(CommandEmpty, { children: emptyMessage }),
530
+ /* @__PURE__ */ jsx9(CommandEmpty, { children: emptyMessage }),
531
531
  groups.map((group, index) => /* @__PURE__ */ jsxs6(React.Fragment, { children: [
532
- index > 0 && /* @__PURE__ */ jsx8(CommandSeparator, {}),
533
- /* @__PURE__ */ jsx8(CommandGroup, { heading: group.heading, children: group.items.map((item) => /* @__PURE__ */ jsxs6(
532
+ index > 0 && /* @__PURE__ */ jsx9(CommandSeparator, {}),
533
+ /* @__PURE__ */ jsx9(CommandGroup, { heading: group.heading, children: group.items.map((item) => /* @__PURE__ */ jsxs6(
534
534
  CommandItem,
535
535
  {
536
536
  onSelect: () => {
@@ -539,8 +539,8 @@ function SpotlightSearch({
539
539
  },
540
540
  children: [
541
541
  item.icon,
542
- /* @__PURE__ */ jsx8("span", { children: item.title }),
543
- item.shortcut && /* @__PURE__ */ jsx8("kbd", { className: "border-border pointer-events-none ml-auto hidden h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100 sm:flex", children: item.shortcut })
542
+ /* @__PURE__ */ jsx9("span", { children: item.title }),
543
+ item.shortcut && /* @__PURE__ */ jsx9("kbd", { className: "border-border pointer-events-none ml-auto hidden h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100 sm:flex", children: item.shortcut })
544
544
  ]
545
545
  },
546
546
  item.id
@@ -555,7 +555,7 @@ function SpotlightSearch({
555
555
 
556
556
  // src/components/app-header-actions.tsx
557
557
  import { IconBell, IconLogout } from "@tabler/icons-react";
558
- import { Fragment as Fragment3, jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
558
+ import { Fragment as Fragment4, jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
559
559
  function AppHeaderActions({
560
560
  user,
561
561
  onLogout,
@@ -570,67 +570,67 @@ function AppHeaderActions({
570
570
  const displayName = user?.fullName ?? "Account";
571
571
  const displaySubtext = user?.email ?? user?.phone ?? user?.handle ?? "";
572
572
  return /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-2", children: [
573
- /* @__PURE__ */ jsx9(SpotlightSearch, { groups: searchGroups }),
573
+ /* @__PURE__ */ jsx10(SpotlightSearch, { groups: searchGroups }),
574
574
  actions,
575
- /* @__PURE__ */ jsx9(Button, { variant: "ghost", size: "icon", className: "relative", children: /* @__PURE__ */ jsx9(IconBell, { className: "size-5" }) }),
575
+ /* @__PURE__ */ jsx10(Button, { variant: "ghost", size: "icon", className: "relative", children: /* @__PURE__ */ jsx10(IconBell, { className: "size-5" }) }),
576
576
  /* @__PURE__ */ jsxs7(DropdownMenu, { children: [
577
- /* @__PURE__ */ jsx9(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs7(
577
+ /* @__PURE__ */ jsx10(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs7(
578
578
  Button,
579
579
  {
580
580
  variant: "ghost",
581
581
  className: "flex items-center gap-3 px-3 py-2 h-auto rounded-md min-h-9 hover:bg-accent/70 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
582
582
  children: [
583
583
  /* @__PURE__ */ jsxs7(Avatar, { className: "size-8 shrink-0", children: [
584
- /* @__PURE__ */ jsx9(AvatarImage, { src: user?.image ?? void 0 }),
585
- /* @__PURE__ */ jsx9(AvatarFallback, { className: "text-xs", children: initials })
584
+ /* @__PURE__ */ jsx10(AvatarImage, { src: user?.image ?? void 0 }),
585
+ /* @__PURE__ */ jsx10(AvatarFallback, { className: "text-xs", children: initials })
586
586
  ] }),
587
587
  /* @__PURE__ */ jsxs7("div", { className: "hidden flex-col items-start text-left md:flex min-w-0", children: [
588
- /* @__PURE__ */ jsx9("span", { className: "text-sm font-medium", children: displayName }),
589
- /* @__PURE__ */ jsx9("span", { className: "text-xs text-muted-foreground", children: displaySubtext })
588
+ /* @__PURE__ */ jsx10("span", { className: "text-sm font-medium", children: displayName }),
589
+ /* @__PURE__ */ jsx10("span", { className: "text-xs text-muted-foreground", children: displaySubtext })
590
590
  ] })
591
591
  ]
592
592
  }
593
593
  ) }),
594
594
  /* @__PURE__ */ jsxs7(DropdownMenuContent, { align: "end", className: "w-56", children: [
595
- topMenuItems.map((item) => /* @__PURE__ */ jsx9(
595
+ topMenuItems.map((item) => /* @__PURE__ */ jsx10(
596
596
  DropdownMenuItem,
597
597
  {
598
598
  onClick: item.onClick,
599
599
  variant: item.variant,
600
600
  asChild: item.href ? true : void 0,
601
601
  children: item.href ? /* @__PURE__ */ jsxs7(Link, { href: item.href, onClick: item.onClick, children: [
602
- item.icon && /* @__PURE__ */ jsx9("span", { className: "mr-2", children: item.icon }),
602
+ item.icon && /* @__PURE__ */ jsx10("span", { className: "mr-2", children: item.icon }),
603
603
  item.label
604
- ] }) : /* @__PURE__ */ jsxs7(Fragment3, { children: [
605
- item.icon && /* @__PURE__ */ jsx9("span", { className: "mr-2", children: item.icon }),
604
+ ] }) : /* @__PURE__ */ jsxs7(Fragment4, { children: [
605
+ item.icon && /* @__PURE__ */ jsx10("span", { className: "mr-2", children: item.icon }),
606
606
  item.label
607
607
  ] })
608
608
  },
609
609
  item.href ?? item.label
610
610
  )),
611
- topMenuItems.length > 0 && menuItems.length > 0 && /* @__PURE__ */ jsx9(DropdownMenuSeparator, {}),
612
- menuItems.map((item) => /* @__PURE__ */ jsx9(
611
+ topMenuItems.length > 0 && menuItems.length > 0 && /* @__PURE__ */ jsx10(DropdownMenuSeparator, {}),
612
+ menuItems.map((item) => /* @__PURE__ */ jsx10(
613
613
  DropdownMenuItem,
614
614
  {
615
615
  onClick: item.onClick,
616
616
  variant: item.variant,
617
617
  asChild: item.href ? true : void 0,
618
618
  children: item.href ? /* @__PURE__ */ jsxs7(Link, { href: item.href, onClick: item.onClick, children: [
619
- item.icon && /* @__PURE__ */ jsx9("span", { className: "mr-2", children: item.icon }),
619
+ item.icon && /* @__PURE__ */ jsx10("span", { className: "mr-2", children: item.icon }),
620
620
  item.label
621
- ] }) : /* @__PURE__ */ jsxs7(Fragment3, { children: [
622
- item.icon && /* @__PURE__ */ jsx9("span", { className: "mr-2", children: item.icon }),
621
+ ] }) : /* @__PURE__ */ jsxs7(Fragment4, { children: [
622
+ item.icon && /* @__PURE__ */ jsx10("span", { className: "mr-2", children: item.icon }),
623
623
  item.label
624
624
  ] })
625
625
  },
626
626
  item.href ?? item.label
627
627
  )),
628
- accountMenuFooter && (topMenuItems.length > 0 || menuItems.length > 0) && /* @__PURE__ */ jsx9(DropdownMenuSeparator, {}),
628
+ accountMenuFooter && (topMenuItems.length > 0 || menuItems.length > 0) && /* @__PURE__ */ jsx10(DropdownMenuSeparator, {}),
629
629
  accountMenuFooter,
630
- onLogout && /* @__PURE__ */ jsxs7(Fragment3, { children: [
631
- (topMenuItems.length > 0 || menuItems.length > 0 || accountMenuFooter) && /* @__PURE__ */ jsx9(DropdownMenuSeparator, {}),
630
+ onLogout && /* @__PURE__ */ jsxs7(Fragment4, { children: [
631
+ (topMenuItems.length > 0 || menuItems.length > 0 || accountMenuFooter) && /* @__PURE__ */ jsx10(DropdownMenuSeparator, {}),
632
632
  /* @__PURE__ */ jsxs7(DropdownMenuItem, { onClick: onLogout, variant: "destructive", children: [
633
- isLoggingOut ? /* @__PURE__ */ jsx9("span", { className: "mr-2", children: "..." }) : /* @__PURE__ */ jsx9(IconLogout, { className: "mr-2 size-4" }),
633
+ isLoggingOut ? /* @__PURE__ */ jsx10("span", { className: "mr-2", children: "..." }) : /* @__PURE__ */ jsx10(IconLogout, { className: "mr-2 size-4" }),
634
634
  "Log out"
635
635
  ] })
636
636
  ] })