@krak-stack/registry 0.1.26 → 0.1.27

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 (42) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/components/ui/data-table.js +212 -207
  4. package/dist/components/ui/effect-form.js +170 -169
  5. package/dist/components/ui/form.js +113 -112
  6. package/dist/components/ui/icon-input.js +43 -40
  7. package/dist/components/ui/pagination.js +2 -2
  8. package/dist/components/ui/sidebar-layout.js +71 -66
  9. package/dist/components/ui/theme-switcher.js +3 -3
  10. package/dist/components/ui/virtualized-combobox.js +34 -31
  11. package/dist/lib/docs.js +138 -133
  12. package/dist/lib/docs.server.js +47 -23
  13. package/dist/lib/documentation-toolkit.js +48 -24
  14. package/dist/lib/httpapi-cli.js +7 -7
  15. package/dist/lib/httpapi-client.js +3 -3
  16. package/dist/lib/httpapi-helpers.js +11 -11
  17. package/dist/lib/httpapi-mcp.js +2 -2
  18. package/dist/lib/httpapi-toolkit.js +2 -2
  19. package/dist/lib/query.js +7 -7
  20. package/dist/lib/seo.js +2 -2
  21. package/dist/lib/webfetch-toolkit.js +6 -6
  22. package/dist/services/agent/client/index.js +128 -127
  23. package/dist/services/agent/schema.js +5 -5
  24. package/dist/services/file-extraction/index.js +4 -4
  25. package/dist/services/file-extraction/schema.js +2 -2
  26. package/dist/services/health/index.js +9 -9
  27. package/dist/services/notification/channels/ses/index.d.ts +2 -2
  28. package/dist/services/notification/channels/ses/index.js +2 -2
  29. package/dist/services/notification/channels/ses/schema.js +2 -2
  30. package/dist/services/notification/client/index.js +5 -5
  31. package/dist/services/notification/index.js +2 -2
  32. package/dist/services/notification/persistence/drizzle.d.ts +868 -0
  33. package/dist/services/notification/persistence/drizzle.js +2 -2
  34. package/dist/services/notification/persistence/index.d.ts +2 -0
  35. package/dist/services/notification/persistence/index.js +15 -15
  36. package/dist/services/notification/persistence/schema.d.ts +143 -0
  37. package/dist/services/notification/persistence/schema.js +12 -12
  38. package/dist/services/notification/public.js +7 -7
  39. package/dist/services/notification/schema.js +2 -2
  40. package/dist/services/s3/index.js +2 -2
  41. package/dist/services/s3/schema.js +2 -2
  42. package/package.json +2 -2
@@ -119,29 +119,31 @@ function Button({
119
119
 
120
120
  // ../../src/components/ui/input.tsx
121
121
  import { Input as InputPrimitive } from "@base-ui/react/input";
122
+ import { jsx as jsx2 } from "react/jsx-runtime";
122
123
 
123
124
  // ../../src/components/ui/separator.tsx
124
125
  import { Separator as SeparatorPrimitive } from "@base-ui/react/separator";
126
+ import { jsx as jsx3 } from "react/jsx-runtime";
125
127
 
126
128
  // ../../src/components/ui/sheet.tsx
127
129
  import { Dialog as SheetPrimitive } from "@base-ui/react/dialog";
128
130
  import { XIcon } from "lucide-react";
129
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
131
+ import { jsx as jsx4, jsxs } from "react/jsx-runtime";
130
132
  "use client";
131
133
  function Sheet({ ...props }) {
132
- return /* @__PURE__ */ jsx2(SheetPrimitive.Root, {
134
+ return /* @__PURE__ */ jsx4(SheetPrimitive.Root, {
133
135
  "data-slot": "sheet",
134
136
  ...props
135
137
  });
136
138
  }
137
139
  function SheetPortal({ ...props }) {
138
- return /* @__PURE__ */ jsx2(SheetPrimitive.Portal, {
140
+ return /* @__PURE__ */ jsx4(SheetPrimitive.Portal, {
139
141
  "data-slot": "sheet-portal",
140
142
  ...props
141
143
  });
142
144
  }
143
145
  function SheetOverlay({ className, ...props }) {
144
- return /* @__PURE__ */ jsx2(SheetPrimitive.Backdrop, {
146
+ return /* @__PURE__ */ jsx4(SheetPrimitive.Backdrop, {
145
147
  "data-slot": "sheet-overlay",
146
148
  className: cn("fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs", className),
147
149
  ...props
@@ -156,7 +158,7 @@ function SheetContent({
156
158
  }) {
157
159
  return /* @__PURE__ */ jsxs(SheetPortal, {
158
160
  children: [
159
- /* @__PURE__ */ jsx2(SheetOverlay, {}),
161
+ /* @__PURE__ */ jsx4(SheetOverlay, {}),
160
162
  /* @__PURE__ */ jsxs(SheetPrimitive.Popup, {
161
163
  "data-slot": "sheet-content",
162
164
  "data-side": side,
@@ -166,14 +168,14 @@ function SheetContent({
166
168
  children,
167
169
  showCloseButton && /* @__PURE__ */ jsxs(SheetPrimitive.Close, {
168
170
  "data-slot": "sheet-close",
169
- render: /* @__PURE__ */ jsx2(Button, {
171
+ render: /* @__PURE__ */ jsx4(Button, {
170
172
  variant: "ghost",
171
173
  className: "absolute top-4 right-4",
172
174
  size: "icon-sm"
173
175
  }),
174
176
  children: [
175
- /* @__PURE__ */ jsx2(XIcon, {}),
176
- /* @__PURE__ */ jsx2("span", {
177
+ /* @__PURE__ */ jsx4(XIcon, {}),
178
+ /* @__PURE__ */ jsx4("span", {
177
179
  className: "sr-only",
178
180
  children: "Close"
179
181
  })
@@ -185,14 +187,14 @@ function SheetContent({
185
187
  });
186
188
  }
187
189
  function SheetHeader({ className, ...props }) {
188
- return /* @__PURE__ */ jsx2("div", {
190
+ return /* @__PURE__ */ jsx4("div", {
189
191
  "data-slot": "sheet-header",
190
192
  className: cn("flex flex-col gap-1.5 p-4", className),
191
193
  ...props
192
194
  });
193
195
  }
194
196
  function SheetTitle({ className, ...props }) {
195
- return /* @__PURE__ */ jsx2(SheetPrimitive.Title, {
197
+ return /* @__PURE__ */ jsx4(SheetPrimitive.Title, {
196
198
  "data-slot": "sheet-title",
197
199
  className: cn("font-medium text-foreground", className),
198
200
  ...props
@@ -202,25 +204,28 @@ function SheetDescription({
202
204
  className,
203
205
  ...props
204
206
  }) {
205
- return /* @__PURE__ */ jsx2(SheetPrimitive.Description, {
207
+ return /* @__PURE__ */ jsx4(SheetPrimitive.Description, {
206
208
  "data-slot": "sheet-description",
207
209
  className: cn("text-sm text-muted-foreground", className),
208
210
  ...props
209
211
  });
210
212
  }
211
213
 
214
+ // ../../src/components/ui/skeleton.tsx
215
+ import { jsx as jsx5 } from "react/jsx-runtime";
216
+
212
217
  // ../../src/components/ui/tooltip.tsx
213
218
  import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
214
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
219
+ import { jsx as jsx6, jsxs as jsxs2 } from "react/jsx-runtime";
215
220
  "use client";
216
221
  function Tooltip({ ...props }) {
217
- return /* @__PURE__ */ jsx3(TooltipPrimitive.Root, {
222
+ return /* @__PURE__ */ jsx6(TooltipPrimitive.Root, {
218
223
  "data-slot": "tooltip",
219
224
  ...props
220
225
  });
221
226
  }
222
227
  function TooltipTrigger({ ...props }) {
223
- return /* @__PURE__ */ jsx3(TooltipPrimitive.Trigger, {
228
+ return /* @__PURE__ */ jsx6(TooltipPrimitive.Trigger, {
224
229
  "data-slot": "tooltip-trigger",
225
230
  ...props
226
231
  });
@@ -234,8 +239,8 @@ function TooltipContent({
234
239
  children,
235
240
  ...props
236
241
  }) {
237
- return /* @__PURE__ */ jsx3(TooltipPrimitive.Portal, {
238
- children: /* @__PURE__ */ jsx3(TooltipPrimitive.Positioner, {
242
+ return /* @__PURE__ */ jsx6(TooltipPrimitive.Portal, {
243
+ children: /* @__PURE__ */ jsx6(TooltipPrimitive.Positioner, {
239
244
  align,
240
245
  alignOffset,
241
246
  side,
@@ -247,7 +252,7 @@ function TooltipContent({
247
252
  ...props,
248
253
  children: [
249
254
  children,
250
- /* @__PURE__ */ jsx3(TooltipPrimitive.Arrow, {
255
+ /* @__PURE__ */ jsx6(TooltipPrimitive.Arrow, {
251
256
  className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5"
252
257
  })
253
258
  ]
@@ -259,7 +264,7 @@ function TooltipContent({
259
264
  // ../../src/components/ui/sidebar.tsx
260
265
  import { PanelLeftIcon } from "lucide-react";
261
266
  import { Schema } from "effect";
262
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
267
+ import { jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
263
268
  var SIDEBAR_COOKIE_NAME = "sidebar_state";
264
269
  var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
265
270
  var SIDEBAR_WIDTH = "16rem";
@@ -323,9 +328,9 @@ function SidebarProvider({
323
328
  "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
324
329
  ...style
325
330
  };
326
- return /* @__PURE__ */ jsx4(SidebarContext.Provider, {
331
+ return /* @__PURE__ */ jsx7(SidebarContext.Provider, {
327
332
  value: contextValue,
328
- children: /* @__PURE__ */ jsx4("div", {
333
+ children: /* @__PURE__ */ jsx7("div", {
329
334
  "data-slot": "sidebar-wrapper",
330
335
  style: wrapperStyle,
331
336
  className: cn("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar", className),
@@ -345,7 +350,7 @@ function Sidebar({
345
350
  }) {
346
351
  const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
347
352
  if (collapsible === "none") {
348
- return /* @__PURE__ */ jsx4("div", {
353
+ return /* @__PURE__ */ jsx7("div", {
349
354
  "data-slot": "sidebar",
350
355
  className: cn("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground", className),
351
356
  ...props,
@@ -356,7 +361,7 @@ function Sidebar({
356
361
  const mobileStyle = {
357
362
  "--sidebar-width": SIDEBAR_WIDTH_MOBILE
358
363
  };
359
- return /* @__PURE__ */ jsx4(Sheet, {
364
+ return /* @__PURE__ */ jsx7(Sheet, {
360
365
  open: openMobile,
361
366
  onOpenChange: setOpenMobile,
362
367
  ...props,
@@ -372,15 +377,15 @@ function Sidebar({
372
377
  /* @__PURE__ */ jsxs3(SheetHeader, {
373
378
  className: "sr-only",
374
379
  children: [
375
- /* @__PURE__ */ jsx4(SheetTitle, {
380
+ /* @__PURE__ */ jsx7(SheetTitle, {
376
381
  children: "Sidebar"
377
382
  }),
378
- /* @__PURE__ */ jsx4(SheetDescription, {
383
+ /* @__PURE__ */ jsx7(SheetDescription, {
379
384
  children: "Displays the mobile sidebar."
380
385
  })
381
386
  ]
382
387
  }),
383
- /* @__PURE__ */ jsx4("div", {
388
+ /* @__PURE__ */ jsx7("div", {
384
389
  className: "flex h-full w-full flex-col",
385
390
  children
386
391
  })
@@ -396,16 +401,16 @@ function Sidebar({
396
401
  "data-side": side,
397
402
  "data-slot": "sidebar",
398
403
  children: [
399
- /* @__PURE__ */ jsx4("div", {
404
+ /* @__PURE__ */ jsx7("div", {
400
405
  "data-slot": "sidebar-gap",
401
406
  className: cn("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)")
402
407
  }),
403
- /* @__PURE__ */ jsx4("div", {
408
+ /* @__PURE__ */ jsx7("div", {
404
409
  "data-slot": "sidebar-container",
405
410
  "data-side": side,
406
411
  className: cn("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex", variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", className),
407
412
  ...props,
408
- children: /* @__PURE__ */ jsx4("div", {
413
+ children: /* @__PURE__ */ jsx7("div", {
409
414
  "data-sidebar": "sidebar",
410
415
  "data-slot": "sidebar-inner",
411
416
  className: "bg-sidebar group-data-[variant=floating]:ring-sidebar-border flex size-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1",
@@ -433,8 +438,8 @@ function SidebarTrigger({
433
438
  },
434
439
  ...props,
435
440
  children: [
436
- /* @__PURE__ */ jsx4(PanelLeftIcon, {}),
437
- /* @__PURE__ */ jsx4("span", {
441
+ /* @__PURE__ */ jsx7(PanelLeftIcon, {}),
442
+ /* @__PURE__ */ jsx7("span", {
438
443
  className: "sr-only",
439
444
  children: "Toggle Sidebar"
440
445
  })
@@ -443,7 +448,7 @@ function SidebarTrigger({
443
448
  }
444
449
  function SidebarRail({ className, ...props }) {
445
450
  const { toggleSidebar } = useSidebar();
446
- return /* @__PURE__ */ jsx4("button", {
451
+ return /* @__PURE__ */ jsx7("button", {
447
452
  "data-sidebar": "rail",
448
453
  "data-slot": "sidebar-rail",
449
454
  "aria-label": "Toggle Sidebar",
@@ -455,14 +460,14 @@ function SidebarRail({ className, ...props }) {
455
460
  });
456
461
  }
457
462
  function SidebarInset({ className, ...props }) {
458
- return /* @__PURE__ */ jsx4("main", {
463
+ return /* @__PURE__ */ jsx7("main", {
459
464
  "data-slot": "sidebar-inset",
460
465
  className: cn("relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2", className),
461
466
  ...props
462
467
  });
463
468
  }
464
469
  function SidebarHeader({ className, ...props }) {
465
- return /* @__PURE__ */ jsx4("div", {
470
+ return /* @__PURE__ */ jsx7("div", {
466
471
  "data-slot": "sidebar-header",
467
472
  "data-sidebar": "header",
468
473
  className: cn("flex flex-col gap-2 p-2", className),
@@ -470,7 +475,7 @@ function SidebarHeader({ className, ...props }) {
470
475
  });
471
476
  }
472
477
  function SidebarFooter({ className, ...props }) {
473
- return /* @__PURE__ */ jsx4("div", {
478
+ return /* @__PURE__ */ jsx7("div", {
474
479
  "data-slot": "sidebar-footer",
475
480
  "data-sidebar": "footer",
476
481
  className: cn("flex flex-col gap-2 p-2", className),
@@ -478,7 +483,7 @@ function SidebarFooter({ className, ...props }) {
478
483
  });
479
484
  }
480
485
  function SidebarContent({ className, ...props }) {
481
- return /* @__PURE__ */ jsx4("div", {
486
+ return /* @__PURE__ */ jsx7("div", {
482
487
  "data-slot": "sidebar-content",
483
488
  "data-sidebar": "content",
484
489
  className: cn("no-scrollbar flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden", className),
@@ -486,7 +491,7 @@ function SidebarContent({ className, ...props }) {
486
491
  });
487
492
  }
488
493
  function SidebarGroup({ className, ...props }) {
489
- return /* @__PURE__ */ jsx4("div", {
494
+ return /* @__PURE__ */ jsx7("div", {
490
495
  "data-slot": "sidebar-group",
491
496
  "data-sidebar": "group",
492
497
  className: cn("relative flex w-full min-w-0 flex-col p-2", className),
@@ -514,7 +519,7 @@ function SidebarGroupContent({
514
519
  className,
515
520
  ...props
516
521
  }) {
517
- return /* @__PURE__ */ jsx4("div", {
522
+ return /* @__PURE__ */ jsx7("div", {
518
523
  "data-slot": "sidebar-group-content",
519
524
  "data-sidebar": "group-content",
520
525
  className: cn("w-full text-sm", className),
@@ -522,7 +527,7 @@ function SidebarGroupContent({
522
527
  });
523
528
  }
524
529
  function SidebarMenu({ className, ...props }) {
525
- return /* @__PURE__ */ jsx4("ul", {
530
+ return /* @__PURE__ */ jsx7("ul", {
526
531
  "data-slot": "sidebar-menu",
527
532
  "data-sidebar": "menu",
528
533
  className: cn("flex w-full min-w-0 flex-col gap-1", className),
@@ -530,7 +535,7 @@ function SidebarMenu({ className, ...props }) {
530
535
  });
531
536
  }
532
537
  function SidebarMenuItem({ className, ...props }) {
533
- return /* @__PURE__ */ jsx4("li", {
538
+ return /* @__PURE__ */ jsx7("li", {
534
539
  "data-slot": "sidebar-menu-item",
535
540
  "data-sidebar": "menu-item",
536
541
  className: cn("group/menu-item relative", className),
@@ -569,7 +574,7 @@ function SidebarMenuButton({
569
574
  props: mergeProps2({
570
575
  className: cn(sidebarMenuButtonVariants({ variant, size }), className)
571
576
  }, props),
572
- render: !tooltip ? render : /* @__PURE__ */ jsx4(TooltipTrigger, {
577
+ render: !tooltip ? render : /* @__PURE__ */ jsx7(TooltipTrigger, {
573
578
  render
574
579
  }),
575
580
  state: {
@@ -586,7 +591,7 @@ function SidebarMenuButton({
586
591
  return /* @__PURE__ */ jsxs3(Tooltip, {
587
592
  children: [
588
593
  comp,
589
- /* @__PURE__ */ jsx4(TooltipContent, {
594
+ /* @__PURE__ */ jsx7(TooltipContent, {
590
595
  side: "right",
591
596
  align: "center",
592
597
  hidden: state !== "collapsed" || isMobile,
@@ -597,7 +602,7 @@ function SidebarMenuButton({
597
602
  }
598
603
 
599
604
  // ../../src/components/ui/sidebar-layout.tsx
600
- import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
605
+ import { jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
601
606
  var SIDEBAR_COOKIE_NAME2 = "sidebar_state";
602
607
  var SidebarOpenCookie = Schema2.Literals(["true", "false"]).annotate({
603
608
  identifier: "SidebarOpenCookie"
@@ -621,38 +626,38 @@ function AppSidebar({ collapsible, footer, groups, header }) {
621
626
  return /* @__PURE__ */ jsxs4(Sidebar, {
622
627
  collapsible,
623
628
  children: [
624
- header && /* @__PURE__ */ jsx5(SidebarHeader, {
629
+ header && /* @__PURE__ */ jsx8(SidebarHeader, {
625
630
  children: header
626
631
  }),
627
- /* @__PURE__ */ jsx5(SidebarContent, {
632
+ /* @__PURE__ */ jsx8(SidebarContent, {
628
633
  className: "group-data-[collapsible=icon]:overflow-x-hidden group-data-[collapsible=icon]:overflow-y-auto",
629
634
  children: groups.map((group) => /* @__PURE__ */ jsxs4(SidebarGroup, {
630
635
  children: [
631
- /* @__PURE__ */ jsx5(SidebarGroupLabel, {
636
+ /* @__PURE__ */ jsx8(SidebarGroupLabel, {
632
637
  children: group.label()
633
638
  }),
634
- /* @__PURE__ */ jsx5(SidebarGroupContent, {
635
- children: /* @__PURE__ */ jsx5(SidebarMenu, {
639
+ /* @__PURE__ */ jsx8(SidebarGroupContent, {
640
+ children: /* @__PURE__ */ jsx8(SidebarMenu, {
636
641
  children: group.items.map((item) => {
637
- const render = item.external ? /* @__PURE__ */ jsx5("a", {
642
+ const render = item.external ? /* @__PURE__ */ jsx8("a", {
638
643
  href: item.href,
639
644
  target: "_blank",
640
645
  rel: "noreferrer"
641
- }) : /* @__PURE__ */ jsx5(Link, {
646
+ }) : /* @__PURE__ */ jsx8(Link, {
642
647
  to: item.href
643
648
  });
644
- return /* @__PURE__ */ jsx5(SidebarMenuItem, {
649
+ return /* @__PURE__ */ jsx8(SidebarMenuItem, {
645
650
  children: /* @__PURE__ */ jsxs4(SidebarMenuButton, {
646
651
  isActive: !item.external && pathname === item.href,
647
652
  onClick: closeMobileSidebar,
648
653
  render,
649
654
  tooltip: item.label(),
650
655
  children: [
651
- item.icon ? /* @__PURE__ */ jsx5(item.icon, {}) : null,
652
- /* @__PURE__ */ jsx5("span", {
656
+ item.icon ? /* @__PURE__ */ jsx8(item.icon, {}) : null,
657
+ /* @__PURE__ */ jsx8("span", {
653
658
  children: item.label()
654
659
  }),
655
- item.badge ? /* @__PURE__ */ jsx5(Badge, {
660
+ item.badge ? /* @__PURE__ */ jsx8(Badge, {
656
661
  className: "ml-auto",
657
662
  variant: "secondary",
658
663
  children: item.badge()
@@ -666,10 +671,10 @@ function AppSidebar({ collapsible, footer, groups, header }) {
666
671
  ]
667
672
  }, group.label()))
668
673
  }),
669
- footer ? /* @__PURE__ */ jsx5(SidebarFooter, {
674
+ footer ? /* @__PURE__ */ jsx8(SidebarFooter, {
670
675
  children: footer
671
676
  }) : null,
672
- /* @__PURE__ */ jsx5(SidebarRail, {})
677
+ /* @__PURE__ */ jsx8(SidebarRail, {})
673
678
  ]
674
679
  });
675
680
  }
@@ -685,7 +690,7 @@ function SidebarPageHeader({
685
690
  /* @__PURE__ */ jsxs4("div", {
686
691
  className: "flex flex-col gap-2",
687
692
  children: [
688
- badge ? /* @__PURE__ */ jsx5(Badge, {
693
+ badge ? /* @__PURE__ */ jsx8(Badge, {
689
694
  className: "w-fit",
690
695
  variant: badge.variant ?? "secondary",
691
696
  children: badge.label
@@ -693,11 +698,11 @@ function SidebarPageHeader({
693
698
  /* @__PURE__ */ jsxs4("div", {
694
699
  className: "flex flex-col gap-1",
695
700
  children: [
696
- /* @__PURE__ */ jsx5("h1", {
701
+ /* @__PURE__ */ jsx8("h1", {
697
702
  className: "text-3xl font-bold tracking-tight",
698
703
  children: title
699
704
  }),
700
- description ? /* @__PURE__ */ jsx5("p", {
705
+ description ? /* @__PURE__ */ jsx8("p", {
701
706
  className: "text-muted-foreground max-w-2xl text-sm",
702
707
  children: description
703
708
  }) : null
@@ -705,7 +710,7 @@ function SidebarPageHeader({
705
710
  })
706
711
  ]
707
712
  }),
708
- actions ? /* @__PURE__ */ jsx5("div", {
713
+ actions ? /* @__PURE__ */ jsx8("div", {
709
714
  className: "flex gap-2",
710
715
  children: actions
711
716
  }) : null
@@ -729,7 +734,7 @@ function SidebarLayout({
729
734
  onOpenChange: setSidebarOpen,
730
735
  className: cn(fullPage && "xl:h-svh xl:min-h-0 xl:overflow-hidden"),
731
736
  children: [
732
- /* @__PURE__ */ jsx5(AppSidebar, {
737
+ /* @__PURE__ */ jsx8(AppSidebar, {
733
738
  collapsible: sidebarCollapsible,
734
739
  footer: sidebarFooter,
735
740
  groups,
@@ -741,16 +746,16 @@ function SidebarLayout({
741
746
  /* @__PURE__ */ jsxs4("header", {
742
747
  className: "bg-background/95 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-10 flex h-14 shrink-0 items-center gap-2 border-b px-4 backdrop-blur",
743
748
  children: [
744
- /* @__PURE__ */ jsx5(SidebarTrigger, {}),
745
- /* @__PURE__ */ jsx5("div", {
749
+ /* @__PURE__ */ jsx8(SidebarTrigger, {}),
750
+ /* @__PURE__ */ jsx8("div", {
746
751
  className: "ml-auto flex items-center gap-2",
747
752
  children: headerActions
748
753
  })
749
754
  ]
750
755
  }),
751
- /* @__PURE__ */ jsx5("div", {
756
+ /* @__PURE__ */ jsx8("div", {
752
757
  className: contentClassName ?? "flex flex-col gap-6 px-5 py-6 md:px-8",
753
- children: children ?? /* @__PURE__ */ jsx5(Outlet, {})
758
+ children: children ?? /* @__PURE__ */ jsx8(Outlet, {})
754
759
  })
755
760
  ]
756
761
  })
@@ -758,7 +763,7 @@ function SidebarLayout({
758
763
  });
759
764
  }
760
765
  export {
761
- SidebarLayout,
766
+ useSidebarLayout,
762
767
  SidebarPageHeader,
763
- useSidebarLayout
768
+ SidebarLayout
764
769
  };
@@ -776,8 +776,8 @@ var ThemeOptionIcon = ({ theme }) => {
776
776
  });
777
777
  };
778
778
  export {
779
- ThemeProvider,
780
- ThemeSwitcher,
779
+ useTheme,
781
780
  themes,
782
- useTheme
781
+ ThemeSwitcher,
782
+ ThemeProvider
783
783
  };
@@ -76,10 +76,13 @@ function Input({ className, type, ...props }) {
76
76
  });
77
77
  }
78
78
 
79
- // ../../src/components/ui/input-group.tsx
79
+ // ../../src/components/ui/textarea.tsx
80
80
  import { jsx as jsx3 } from "react/jsx-runtime";
81
+
82
+ // ../../src/components/ui/input-group.tsx
83
+ import { jsx as jsx4 } from "react/jsx-runtime";
81
84
  function InputGroup({ className, ...props }) {
82
- return /* @__PURE__ */ jsx3("div", {
85
+ return /* @__PURE__ */ jsx4("div", {
83
86
  "data-slot": "input-group",
84
87
  role: "group",
85
88
  className: cn("group/input-group relative flex h-9 w-full min-w-0 items-center rounded-md border border-input shadow-xs transition-[color,box-shadow] outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5", className),
@@ -112,7 +115,7 @@ function InputGroupInput({
112
115
  className,
113
116
  ...props
114
117
  }) {
115
- return /* @__PURE__ */ jsx3(Input, {
118
+ return /* @__PURE__ */ jsx4(Input, {
116
119
  "data-slot": "input-group-control",
117
120
  className: cn("flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent", className),
118
121
  ...props
@@ -556,7 +559,7 @@ function isCustomStrategy(strategy2) {
556
559
  }
557
560
 
558
561
  // ../../src/components/ui/virtualized-combobox.tsx
559
- import { jsx as jsx4, jsxs } from "react/jsx-runtime";
562
+ import { jsx as jsx5, jsxs } from "react/jsx-runtime";
560
563
  "use client";
561
564
  var messages = {
562
565
  en: {
@@ -632,19 +635,19 @@ var VirtualizedComboboxList = ({
632
635
  virtualizer.measure();
633
636
  }, [virtualizer]);
634
637
  if (filteredItems.length === 0) {
635
- return /* @__PURE__ */ jsx4("div", {
638
+ return /* @__PURE__ */ jsx5("div", {
636
639
  className: "text-muted-foreground py-6 text-center text-sm",
637
640
  children: emptyLabel
638
641
  });
639
642
  }
640
- return /* @__PURE__ */ jsx4(ComboboxPrimitive.List, {
643
+ return /* @__PURE__ */ jsx5(ComboboxPrimitive.List, {
641
644
  className: "scroll-py-1 overflow-auto overscroll-contain p-1",
642
645
  ref: handleScrollElementRef,
643
646
  style: {
644
647
  height: Math.min(virtualizer.getTotalSize() + 8, 288),
645
648
  maxHeight: "var(--available-height)"
646
649
  },
647
- children: /* @__PURE__ */ jsx4("div", {
650
+ children: /* @__PURE__ */ jsx5("div", {
648
651
  className: "relative w-full",
649
652
  role: "presentation",
650
653
  style: { height: virtualizer.getTotalSize() },
@@ -657,9 +660,9 @@ var VirtualizedComboboxList = ({
657
660
  transform: `translateY(${virtualItem.start}px)`
658
661
  };
659
662
  if (entry.kind === "group") {
660
- return /* @__PURE__ */ jsx4(ComboboxPrimitive.Group, {
663
+ return /* @__PURE__ */ jsx5(ComboboxPrimitive.Group, {
661
664
  className: "contents",
662
- children: /* @__PURE__ */ jsx4(ComboboxPrimitive.GroupLabel, {
665
+ children: /* @__PURE__ */ jsx5(ComboboxPrimitive.GroupLabel, {
663
666
  className: "text-muted-foreground absolute top-0 left-0 w-full px-2 pt-3 pb-1 text-xs",
664
667
  "data-index": virtualItem.index,
665
668
  ref: virtualizer.measureElement,
@@ -678,13 +681,13 @@ var VirtualizedComboboxList = ({
678
681
  style,
679
682
  value: entry.item,
680
683
  children: [
681
- renderItem?.(entry.item) ?? /* @__PURE__ */ jsx4("span", {
684
+ renderItem?.(entry.item) ?? /* @__PURE__ */ jsx5("span", {
682
685
  className: "min-w-0 truncate",
683
686
  children: entry.item.label
684
687
  }),
685
- /* @__PURE__ */ jsx4(ComboboxPrimitive.ItemIndicator, {
688
+ /* @__PURE__ */ jsx5(ComboboxPrimitive.ItemIndicator, {
686
689
  className: "absolute right-2 flex size-4 items-center justify-center",
687
- children: /* @__PURE__ */ jsx4(Check, {})
690
+ children: /* @__PURE__ */ jsx5(Check, {})
688
691
  })
689
692
  ]
690
693
  }, entry.item.value);
@@ -703,8 +706,8 @@ var VirtualizedComboboxContent = ({
703
706
  virtualizerRef
704
707
  }) => {
705
708
  const labels = virtualizedComboboxMessages(messageOverrides);
706
- return /* @__PURE__ */ jsx4(ComboboxPrimitive.Portal, {
707
- children: /* @__PURE__ */ jsx4(ComboboxPrimitive.Positioner, {
709
+ return /* @__PURE__ */ jsx5(ComboboxPrimitive.Portal, {
710
+ children: /* @__PURE__ */ jsx5(ComboboxPrimitive.Positioner, {
708
711
  align: "start",
709
712
  className: "isolate z-50",
710
713
  side: "bottom",
@@ -712,17 +715,17 @@ var VirtualizedComboboxContent = ({
712
715
  children: /* @__PURE__ */ jsxs(ComboboxPrimitive.Popup, {
713
716
  className: cn("relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-0 origin-(--transform-origin) overflow-hidden rounded-md bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-in-95", contentClassName),
714
717
  children: [
715
- /* @__PURE__ */ jsx4("div", {
718
+ /* @__PURE__ */ jsx5("div", {
716
719
  className: "min-w-0 p-1 pb-0",
717
- children: /* @__PURE__ */ jsx4(InputGroup, {
720
+ children: /* @__PURE__ */ jsx5(InputGroup, {
718
721
  className: "border-input/30 bg-input/30 h-8 w-full min-w-0 shadow-none",
719
- children: /* @__PURE__ */ jsx4(ComboboxPrimitive.Input, {
722
+ children: /* @__PURE__ */ jsx5(ComboboxPrimitive.Input, {
720
723
  placeholder: labels.search,
721
- render: /* @__PURE__ */ jsx4(InputGroupInput, {})
724
+ render: /* @__PURE__ */ jsx5(InputGroupInput, {})
722
725
  })
723
726
  })
724
727
  }),
725
- /* @__PURE__ */ jsx4(VirtualizedComboboxList, {
728
+ /* @__PURE__ */ jsx5(VirtualizedComboboxList, {
726
729
  emptyLabel,
727
730
  groupSelections,
728
731
  itemIndexRef,
@@ -745,20 +748,20 @@ var defaultTrigger = (ariaLabel, ariaInvalid, disabled, label, triggerId) => /*
745
748
  type: "button",
746
749
  variant: "outline",
747
750
  children: [
748
- /* @__PURE__ */ jsx4("span", {
751
+ /* @__PURE__ */ jsx5("span", {
749
752
  className: "min-w-0 flex-1 truncate pr-7 text-left",
750
753
  children: label
751
754
  }),
752
- /* @__PURE__ */ jsx4(ChevronsUpDown, {
755
+ /* @__PURE__ */ jsx5(ChevronsUpDown, {
753
756
  className: "text-muted-foreground shrink-0 opacity-70"
754
757
  })
755
758
  ]
756
759
  });
757
- var defaultClear = (label) => /* @__PURE__ */ jsx4(ComboboxPrimitive.Clear, {
760
+ var defaultClear = (label) => /* @__PURE__ */ jsx5(ComboboxPrimitive.Clear, {
758
761
  "aria-label": label,
759
762
  className: "text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 absolute top-1/2 right-7 z-10 flex size-6 -translate-y-1/2 items-center justify-center rounded-sm outline-none focus-visible:border focus-visible:ring-3",
760
763
  type: "button",
761
- children: /* @__PURE__ */ jsx4(X, {
764
+ children: /* @__PURE__ */ jsx5(X, {
762
765
  className: "size-3.5"
763
766
  })
764
767
  });
@@ -797,13 +800,13 @@ var VirtualizedComboboxSingle = (props) => {
797
800
  /* @__PURE__ */ jsxs("div", {
798
801
  className: "relative",
799
802
  children: [
800
- /* @__PURE__ */ jsx4(ComboboxPrimitive.Trigger, {
803
+ /* @__PURE__ */ jsx5(ComboboxPrimitive.Trigger, {
801
804
  render: props.trigger ?? defaultTrigger(props.ariaLabel, props.ariaInvalid, props.disabled, selectedLabel(props.value, props.placeholder), props.triggerId)
802
805
  }),
803
806
  props.trigger ? null : defaultClear(labels.clear)
804
807
  ]
805
808
  }),
806
- /* @__PURE__ */ jsx4(VirtualizedComboboxContent, {
809
+ /* @__PURE__ */ jsx5(VirtualizedComboboxContent, {
807
810
  ...props,
808
811
  groupSelections: false,
809
812
  itemIndexRef,
@@ -839,13 +842,13 @@ var VirtualizedComboboxMultiple = (props) => {
839
842
  /* @__PURE__ */ jsxs("div", {
840
843
  className: "relative",
841
844
  children: [
842
- /* @__PURE__ */ jsx4(ComboboxPrimitive.Trigger, {
845
+ /* @__PURE__ */ jsx5(ComboboxPrimitive.Trigger, {
843
846
  render: props.trigger ?? defaultTrigger(props.ariaLabel, props.ariaInvalid, props.disabled, selectedLabel(props.value, props.placeholder), props.triggerId)
844
847
  }),
845
848
  props.trigger ? null : defaultClear(labels.clear)
846
849
  ]
847
850
  }),
848
- /* @__PURE__ */ jsx4(VirtualizedComboboxContent, {
851
+ /* @__PURE__ */ jsx5(VirtualizedComboboxContent, {
849
852
  ...props,
850
853
  groupSelections: true,
851
854
  itemIndexRef,
@@ -856,13 +859,13 @@ var VirtualizedComboboxMultiple = (props) => {
856
859
  });
857
860
  };
858
861
  function VirtualizedCombobox(props) {
859
- return props.multiple ? /* @__PURE__ */ jsx4(VirtualizedComboboxMultiple, {
862
+ return props.multiple ? /* @__PURE__ */ jsx5(VirtualizedComboboxMultiple, {
860
863
  ...props
861
- }) : /* @__PURE__ */ jsx4(VirtualizedComboboxSingle, {
864
+ }) : /* @__PURE__ */ jsx5(VirtualizedComboboxSingle, {
862
865
  ...props
863
866
  });
864
867
  }
865
868
  export {
866
- VirtualizedCombobox,
867
- virtualizedComboboxMessages
869
+ virtualizedComboboxMessages,
870
+ VirtualizedCombobox
868
871
  };