hazo_ui 2.9.0 → 2.11.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.
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import { clsx } from 'clsx';
7
7
  import { twMerge } from 'tailwind-merge';
8
8
  import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
9
9
  import * as DialogPrimitive from '@radix-ui/react-dialog';
10
- import { X, ChevronDown, ChevronUp, Check, Circle, ChevronRight, ChevronLeft, Filter, Plus, ChevronsUpDown, ArrowUpDown, Trash2, Loader2, GripVertical, Calendar as Calendar$1 } from 'lucide-react';
10
+ import { X, ChevronDown, ChevronUp, Check, Circle, ChevronRight, ChevronLeft, Filter, Plus, ChevronsUpDown, ArrowUpDown, Trash2, Loader2, AlertTriangle, OctagonAlert, CheckCircle2, GripVertical, Calendar as Calendar$1 } from 'lucide-react';
11
11
  import * as PopoverPrimitive from '@radix-ui/react-popover';
12
12
  import * as SelectPrimitive from '@radix-ui/react-select';
13
13
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
@@ -67,6 +67,8 @@ import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
67
67
  import * as TogglePrimitive from '@radix-ui/react-toggle';
68
68
  import * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';
69
69
  import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
70
+ import { Toaster, toast } from 'sonner';
71
+ export { toast as rawToast } from 'sonner';
70
72
 
71
73
  var __create = Object.create;
72
74
  var __defProp = Object.defineProperty;
@@ -186,23 +188,23 @@ var buttonVariants = cva(
186
188
  );
187
189
  var variant_styles = {
188
190
  default: {
189
- backgroundColor: "var(--primary)",
190
- color: "var(--primary-foreground)",
191
- border: "1px solid var(--primary)"
191
+ backgroundColor: "hsl(var(--primary))",
192
+ color: "hsl(var(--primary-foreground))",
193
+ border: "1px solid hsl(var(--primary))"
192
194
  },
193
195
  destructive: {
194
- backgroundColor: "var(--destructive)",
195
- color: "white",
196
- border: "1px solid var(--destructive)"
196
+ backgroundColor: "hsl(var(--destructive))",
197
+ color: "hsl(var(--destructive-foreground))",
198
+ border: "1px solid hsl(var(--destructive))"
197
199
  },
198
200
  outline: {
199
- backgroundColor: "var(--background)",
200
- color: "var(--foreground)",
201
- border: "1px solid var(--border)"
201
+ backgroundColor: "hsl(var(--background))",
202
+ color: "hsl(var(--foreground))",
203
+ border: "1px solid hsl(var(--border))"
202
204
  },
203
205
  secondary: {
204
- backgroundColor: "var(--secondary)",
205
- color: "var(--secondary-foreground)"
206
+ backgroundColor: "hsl(var(--secondary))",
207
+ color: "hsl(var(--secondary-foreground))"
206
208
  }
207
209
  };
208
210
  var Button = React27.forwardRef(
@@ -7240,7 +7242,355 @@ function ButtonGroupText({ className, asChild = false, ...props }) {
7240
7242
  function ButtonGroupSeparator({ className, orientation = "vertical", ...props }) {
7241
7243
  return /* @__PURE__ */ jsx(Separator3, { orientation, className: cn("bg-input relative !m-0 self-stretch data-[orientation=vertical]:h-auto", className), ...props });
7242
7244
  }
7245
+ var SkeletonBase = React27.forwardRef(
7246
+ ({ className, ...rest }, ref) => /* @__PURE__ */ jsx(
7247
+ "div",
7248
+ {
7249
+ ref,
7250
+ "data-hazo-skeleton": "",
7251
+ "aria-hidden": "true",
7252
+ className: cn("hazo-shimmer rounded-md", className),
7253
+ ...rest
7254
+ }
7255
+ )
7256
+ );
7257
+ SkeletonBase.displayName = "Skeleton";
7258
+ var Skeleton = SkeletonBase;
7259
+ function SkeletonCircle({ size = 40, className }) {
7260
+ return /* @__PURE__ */ jsx(
7261
+ SkeletonBase,
7262
+ {
7263
+ className: cn("rounded-full", className),
7264
+ style: { width: size, height: size }
7265
+ }
7266
+ );
7267
+ }
7268
+ function SkeletonBar({ width = "100%", height = 12, className }) {
7269
+ return /* @__PURE__ */ jsx(
7270
+ SkeletonBase,
7271
+ {
7272
+ className,
7273
+ style: { width, height }
7274
+ }
7275
+ );
7276
+ }
7277
+ function SkeletonRect({ width = "100%", height = 96, radius = 6, className }) {
7278
+ return /* @__PURE__ */ jsx(
7279
+ SkeletonBase,
7280
+ {
7281
+ className,
7282
+ style: { width, height, borderRadius: radius }
7283
+ }
7284
+ );
7285
+ }
7286
+ function SkeletonGroup({ label = "Loading content", children, className, ...rest }) {
7287
+ return /* @__PURE__ */ jsxs(
7288
+ "div",
7289
+ {
7290
+ role: "status",
7291
+ "aria-busy": "true",
7292
+ "aria-label": label,
7293
+ className: cn("space-y-2", className),
7294
+ ...rest,
7295
+ children: [
7296
+ children,
7297
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: label })
7298
+ ]
7299
+ }
7300
+ );
7301
+ }
7302
+ function EmptyState({
7303
+ icon,
7304
+ title,
7305
+ description,
7306
+ action,
7307
+ size = "md",
7308
+ className
7309
+ }) {
7310
+ const sizing = {
7311
+ sm: { wrap: "py-6 gap-2", icon: "w-8 h-8 mb-1", title: "text-sm font-medium", desc: "text-xs" },
7312
+ md: { wrap: "py-10 gap-3", icon: "w-12 h-12 mb-2", title: "text-base font-semibold", desc: "text-sm" },
7313
+ lg: { wrap: "py-16 gap-4", icon: "w-16 h-16 mb-3", title: "text-lg font-semibold", desc: "text-base" }
7314
+ }[size];
7315
+ return /* @__PURE__ */ jsxs(
7316
+ "div",
7317
+ {
7318
+ className: cn(
7319
+ "flex flex-col items-center justify-center text-center text-muted-foreground",
7320
+ sizing.wrap,
7321
+ className
7322
+ ),
7323
+ children: [
7324
+ icon ? /* @__PURE__ */ jsx("div", { className: cn("text-muted-foreground/60", sizing.icon), children: icon }) : null,
7325
+ /* @__PURE__ */ jsx("div", { className: cn("text-foreground", sizing.title), children: title }),
7326
+ description ? /* @__PURE__ */ jsx("div", { className: cn("max-w-md text-muted-foreground", sizing.desc), children: description }) : null,
7327
+ action ? /* @__PURE__ */ jsx("div", { className: "mt-2 flex items-center gap-2", children: action }) : null
7328
+ ]
7329
+ }
7330
+ );
7331
+ }
7332
+ function ErrorBanner({
7333
+ severity = "error",
7334
+ title,
7335
+ message,
7336
+ icon,
7337
+ action,
7338
+ onDismiss,
7339
+ className
7340
+ }) {
7341
+ const palette = severity === "warning" ? "border-amber-300 bg-amber-50 text-amber-900 dark:border-amber-700 dark:bg-amber-950 dark:text-amber-100" : "border-destructive/40 bg-destructive/10 text-destructive-foreground";
7342
+ const iconColor = severity === "warning" ? "text-amber-600" : "text-destructive";
7343
+ const resolvedIcon = icon ?? (severity === "warning" ? /* @__PURE__ */ jsx(AlertTriangle, { className: cn("h-5 w-5", iconColor), "aria-hidden": "true" }) : /* @__PURE__ */ jsx(OctagonAlert, { className: cn("h-5 w-5", iconColor), "aria-hidden": "true" }));
7344
+ return /* @__PURE__ */ jsxs(
7345
+ "div",
7346
+ {
7347
+ role: "alert",
7348
+ "aria-live": severity === "error" ? "assertive" : "polite",
7349
+ className: cn(
7350
+ "flex items-start gap-3 rounded-md border px-4 py-3 text-sm",
7351
+ palette,
7352
+ className
7353
+ ),
7354
+ children: [
7355
+ /* @__PURE__ */ jsx("div", { className: "flex-shrink-0 mt-0.5", children: resolvedIcon }),
7356
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
7357
+ title ? /* @__PURE__ */ jsx("div", { className: "font-semibold leading-tight", children: title }) : null,
7358
+ /* @__PURE__ */ jsx("div", { className: cn("leading-snug", title ? "mt-1" : ""), children: message }),
7359
+ action ? /* @__PURE__ */ jsx("div", { className: "mt-2 flex items-center gap-2", children: action }) : null
7360
+ ] }),
7361
+ onDismiss ? /* @__PURE__ */ jsx(
7362
+ "button",
7363
+ {
7364
+ type: "button",
7365
+ onClick: onDismiss,
7366
+ "aria-label": "Dismiss",
7367
+ className: "flex-shrink-0 rounded p-1 hover:bg-black/5 focus:outline-none focus:ring-2 focus:ring-offset-2 dark:hover:bg-white/5",
7368
+ children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4", "aria-hidden": "true" })
7369
+ }
7370
+ ) : null
7371
+ ]
7372
+ }
7373
+ );
7374
+ }
7375
+ function ErrorPage({
7376
+ title = "Something went wrong",
7377
+ description,
7378
+ errorCode,
7379
+ correlationId,
7380
+ actions,
7381
+ illustration,
7382
+ className
7383
+ }) {
7384
+ return /* @__PURE__ */ jsxs(
7385
+ "div",
7386
+ {
7387
+ role: "alert",
7388
+ "aria-live": "assertive",
7389
+ className: cn(
7390
+ "mx-auto flex max-w-md flex-col items-center justify-center gap-4 px-6 py-16 text-center",
7391
+ className
7392
+ ),
7393
+ children: [
7394
+ /* @__PURE__ */ jsx("div", { className: "text-destructive", children: illustration ?? /* @__PURE__ */ jsx(OctagonAlert, { className: "h-16 w-16", "aria-hidden": "true" }) }),
7395
+ errorCode ? /* @__PURE__ */ jsx("div", { className: "rounded-full bg-muted px-3 py-1 text-xs font-mono uppercase tracking-wider text-muted-foreground", children: errorCode }) : null,
7396
+ /* @__PURE__ */ jsx("h1", { className: "text-2xl font-semibold text-foreground", children: title }),
7397
+ description ? /* @__PURE__ */ jsx("div", { className: "text-sm text-muted-foreground", children: description }) : null,
7398
+ correlationId ? /* @__PURE__ */ jsxs("div", { className: "w-full rounded-md border bg-muted/40 px-3 py-2 text-left", children: [
7399
+ /* @__PURE__ */ jsx("div", { className: "text-[10px] uppercase tracking-wider text-muted-foreground", children: "Correlation ID" }),
7400
+ /* @__PURE__ */ jsx("code", { className: "break-all text-xs", children: correlationId })
7401
+ ] }) : null,
7402
+ actions ? /* @__PURE__ */ jsx("div", { className: "mt-2 flex flex-wrap items-center justify-center gap-2", children: actions }) : null
7403
+ ]
7404
+ }
7405
+ );
7406
+ }
7407
+ function LoadingTimeout({
7408
+ active,
7409
+ children,
7410
+ skeleton,
7411
+ onRetry,
7412
+ thresholds,
7413
+ label = "content",
7414
+ className
7415
+ }) {
7416
+ const t = {
7417
+ gentle: thresholds?.gentle ?? 5e3,
7418
+ firm: thresholds?.firm ?? 15e3,
7419
+ expired: thresholds?.expired ?? 3e4
7420
+ };
7421
+ const [phase, setPhase] = React27.useState(active ? "silent" : "idle");
7422
+ React27.useEffect(() => {
7423
+ if (!active) {
7424
+ setPhase("idle");
7425
+ return;
7426
+ }
7427
+ setPhase("silent");
7428
+ const gentleTimer = window.setTimeout(() => setPhase("gentle"), t.gentle);
7429
+ const firmTimer = window.setTimeout(() => setPhase("firm"), t.firm);
7430
+ const expiredTimer = window.setTimeout(() => setPhase("expired"), t.expired);
7431
+ return () => {
7432
+ window.clearTimeout(gentleTimer);
7433
+ window.clearTimeout(firmTimer);
7434
+ window.clearTimeout(expiredTimer);
7435
+ };
7436
+ }, [active, t.gentle, t.firm, t.expired]);
7437
+ if (!active) {
7438
+ return /* @__PURE__ */ jsx(Fragment$1, { children });
7439
+ }
7440
+ if (phase === "expired") {
7441
+ return /* @__PURE__ */ jsx("div", { className, role: "alert", "aria-busy": "false", children: /* @__PURE__ */ jsx(
7442
+ ErrorBanner,
7443
+ {
7444
+ severity: "error",
7445
+ title: "This is taking longer than expected",
7446
+ message: `We're still trying to load the ${label}. The connection may be slow.`,
7447
+ action: onRetry ? /* @__PURE__ */ jsx(
7448
+ "button",
7449
+ {
7450
+ type: "button",
7451
+ onClick: onRetry,
7452
+ className: "rounded bg-foreground/10 px-3 py-1.5 text-sm font-medium hover:bg-foreground/15",
7453
+ children: "Try again"
7454
+ }
7455
+ ) : null
7456
+ }
7457
+ ) });
7458
+ }
7459
+ return /* @__PURE__ */ jsxs("div", { className, role: "status", "aria-busy": "true", "aria-live": "polite", children: [
7460
+ skeleton,
7461
+ phase === "gentle" ? /* @__PURE__ */ jsxs("div", { className: "mt-3 text-center text-sm text-muted-foreground", children: [
7462
+ "Loading ",
7463
+ label,
7464
+ "\u2026"
7465
+ ] }) : null,
7466
+ phase === "firm" ? /* @__PURE__ */ jsx("div", { className: "mt-3 text-center text-sm text-muted-foreground", children: "Still working on it \u2014 almost there." }) : null
7467
+ ] });
7468
+ }
7469
+ function ProgressiveImage({
7470
+ src,
7471
+ alt,
7472
+ lqip,
7473
+ width,
7474
+ height,
7475
+ loading = "lazy",
7476
+ fit = "cover",
7477
+ className,
7478
+ onLoad,
7479
+ onError
7480
+ }) {
7481
+ const [loaded, setLoaded] = React27.useState(false);
7482
+ return /* @__PURE__ */ jsxs(
7483
+ "div",
7484
+ {
7485
+ className: cn("relative overflow-hidden bg-muted", className),
7486
+ style: { width, height },
7487
+ children: [
7488
+ lqip ? /* @__PURE__ */ jsx(
7489
+ "img",
7490
+ {
7491
+ src: lqip,
7492
+ alt: "",
7493
+ "aria-hidden": "true",
7494
+ className: cn(
7495
+ "absolute inset-0 h-full w-full object-cover blur-md scale-110 transition-opacity duration-300",
7496
+ loaded ? "opacity-0" : "opacity-100"
7497
+ )
7498
+ }
7499
+ ) : null,
7500
+ /* @__PURE__ */ jsx(
7501
+ "img",
7502
+ {
7503
+ src,
7504
+ alt,
7505
+ loading,
7506
+ onLoad: () => {
7507
+ setLoaded(true);
7508
+ onLoad?.();
7509
+ },
7510
+ onError,
7511
+ className: cn(
7512
+ "absolute inset-0 h-full w-full transition-opacity duration-300",
7513
+ `object-${fit}`,
7514
+ loaded ? "opacity-100" : "opacity-0"
7515
+ )
7516
+ }
7517
+ )
7518
+ ]
7519
+ }
7520
+ );
7521
+ }
7522
+ function HazoUiToaster({
7523
+ position = "bottom-right",
7524
+ closeButton = true,
7525
+ visibleToasts = 5
7526
+ } = {}) {
7527
+ return /* @__PURE__ */ jsx(
7528
+ Toaster,
7529
+ {
7530
+ position,
7531
+ closeButton,
7532
+ visibleToasts,
7533
+ theme: "system",
7534
+ richColors: true,
7535
+ toastOptions: {
7536
+ classNames: {
7537
+ toast: "group rounded-md border bg-background text-foreground shadow-lg",
7538
+ title: "font-medium",
7539
+ description: "text-muted-foreground text-sm"
7540
+ }
7541
+ }
7542
+ }
7543
+ );
7544
+ }
7545
+ function successToast({ title, description, duration = 3e3, action }) {
7546
+ return toast.success(title, {
7547
+ description,
7548
+ duration,
7549
+ icon: /* @__PURE__ */ jsx(CheckCircle2, { className: "h-4 w-4 text-emerald-600" }),
7550
+ action: action ? { label: action.label, onClick: action.onClick } : void 0
7551
+ });
7552
+ }
7553
+ function errorToast({ title, description, duration = 5e3, action }) {
7554
+ return toast.error(title, {
7555
+ description,
7556
+ duration,
7557
+ icon: /* @__PURE__ */ jsx(OctagonAlert, { className: "h-4 w-4 text-destructive" }),
7558
+ action: action ? { label: action.label, onClick: action.onClick } : void 0
7559
+ });
7560
+ }
7561
+ function useLoadingState(initial = false) {
7562
+ const [isLoading, setLoading] = useState(initial);
7563
+ const withLoading = useCallback(async (fn) => {
7564
+ setLoading(true);
7565
+ try {
7566
+ return await fn();
7567
+ } finally {
7568
+ setLoading(false);
7569
+ }
7570
+ }, []);
7571
+ return { isLoading, setLoading, withLoading };
7572
+ }
7573
+ function useErrorDisplay() {
7574
+ const [error, setRaw] = useState(null);
7575
+ const setError = useCallback((value) => {
7576
+ if (value == null) {
7577
+ setRaw(null);
7578
+ return;
7579
+ }
7580
+ if (typeof value === "string") {
7581
+ setRaw(value);
7582
+ return;
7583
+ }
7584
+ if (value instanceof Error) {
7585
+ setRaw(value.message);
7586
+ return;
7587
+ }
7588
+ setRaw(String(value));
7589
+ }, []);
7590
+ const clearError = useCallback(() => setRaw(null), []);
7591
+ return { error, setError, clearError };
7592
+ }
7243
7593
 
7244
- export { ANIMATION_PRESETS, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, CommandNodeExtension, CommandPill, CommandPopover, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, HazoUiConfirmDialog, HazoUiDialog, DialogClose as HazoUiDialogClose, DialogContent as HazoUiDialogContent, DialogDescription as HazoUiDialogDescription, DialogFooter as HazoUiDialogFooter, DialogHeader as HazoUiDialogHeader, DialogOverlay as HazoUiDialogOverlay, DialogPortal as HazoUiDialogPortal, Dialog as HazoUiDialogRoot, DialogTitle as HazoUiDialogTitle, DialogTrigger as HazoUiDialogTrigger, HazoUiFlexInput, HazoUiFlexRadio, HazoUiMultiFilterDialog, HazoUiMultiSortDialog, HazoUiPillRadio, HazoUiRte, HazoUiTextarea, HazoUiTextbox, HoverCard, HoverCardContent, HoverCardTrigger, Input, Label2 as Label, Popover, PopoverContent, PopoverTrigger, RadioGroup, RadioGroupItem, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator3 as Separator, Command as ShadcnCommand, CommandEmpty as ShadcnCommandEmpty, CommandGroup as ShadcnCommandGroup, CommandInput as ShadcnCommandInput, CommandItem as ShadcnCommandItem, CommandList as ShadcnCommandList, Spinner, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, buttonGroupVariants, create_command_suggestion_extension, get_hazo_ui_config, parse_commands_from_text, reset_hazo_ui_config, resolve_animation_classes, set_hazo_ui_config, text_to_tiptap_content, toggleVariants, useMediaQuery };
7594
+ export { ANIMATION_PRESETS, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, CommandNodeExtension, CommandPill, CommandPopover, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmptyState, ErrorBanner, ErrorPage, HazoUiConfirmDialog, HazoUiDialog, DialogClose as HazoUiDialogClose, DialogContent as HazoUiDialogContent, DialogDescription as HazoUiDialogDescription, DialogFooter as HazoUiDialogFooter, DialogHeader as HazoUiDialogHeader, DialogOverlay as HazoUiDialogOverlay, DialogPortal as HazoUiDialogPortal, Dialog as HazoUiDialogRoot, DialogTitle as HazoUiDialogTitle, DialogTrigger as HazoUiDialogTrigger, HazoUiFlexInput, HazoUiFlexRadio, HazoUiMultiFilterDialog, HazoUiMultiSortDialog, HazoUiPillRadio, HazoUiRte, HazoUiTextarea, HazoUiTextbox, HazoUiToaster, HoverCard, HoverCardContent, HoverCardTrigger, Input, Label2 as Label, LoadingTimeout, Popover, PopoverContent, PopoverTrigger, ProgressiveImage, RadioGroup, RadioGroupItem, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator3 as Separator, Command as ShadcnCommand, CommandEmpty as ShadcnCommandEmpty, CommandGroup as ShadcnCommandGroup, CommandInput as ShadcnCommandInput, CommandItem as ShadcnCommandItem, CommandList as ShadcnCommandList, Skeleton, SkeletonBar, SkeletonCircle, SkeletonGroup, SkeletonRect, Spinner, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, buttonGroupVariants, create_command_suggestion_extension, errorToast, get_hazo_ui_config, parse_commands_from_text, reset_hazo_ui_config, resolve_animation_classes, set_hazo_ui_config, successToast, text_to_tiptap_content, toggleVariants, useErrorDisplay, useLoadingState, useMediaQuery };
7245
7595
  //# sourceMappingURL=index.js.map
7246
7596
  //# sourceMappingURL=index.js.map