hazo_ui 2.7.3 → 2.9.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/README.md CHANGED
@@ -2965,6 +2965,61 @@ function FormDialog() {
2965
2965
  | `footerClassName` | `string` | - | Footer CSS classes |
2966
2966
  | `showCloseButton` | `boolean` | `true` | Show X close button |
2967
2967
 
2968
+ ## Drawer
2969
+
2970
+ A vaul-backed bottom sheet primitive. Intended for mobile UIs; on desktop, prefer `Dialog`.
2971
+
2972
+ ```typescript
2973
+ import {
2974
+ Drawer,
2975
+ DrawerTrigger,
2976
+ DrawerContent,
2977
+ DrawerHeader,
2978
+ DrawerTitle,
2979
+ DrawerDescription,
2980
+ DrawerFooter,
2981
+ DrawerClose,
2982
+ useMediaQuery,
2983
+ } from "hazo_ui";
2984
+
2985
+ function Example() {
2986
+ const is_mobile = useMediaQuery("(max-width: 640px)");
2987
+
2988
+ if (!is_mobile) {
2989
+ // Render a Dialog instead on desktop
2990
+ return null;
2991
+ }
2992
+
2993
+ return (
2994
+ <Drawer>
2995
+ <DrawerTrigger asChild>
2996
+ <button>Open</button>
2997
+ </DrawerTrigger>
2998
+ <DrawerContent>
2999
+ <DrawerHeader>
3000
+ <DrawerTitle>Title</DrawerTitle>
3001
+ <DrawerDescription>Optional description</DrawerDescription>
3002
+ </DrawerHeader>
3003
+ <DrawerFooter>
3004
+ <DrawerClose asChild>
3005
+ <button>Close</button>
3006
+ </DrawerClose>
3007
+ </DrawerFooter>
3008
+ </DrawerContent>
3009
+ </Drawer>
3010
+ );
3011
+ }
3012
+ ```
3013
+
3014
+ **Behavior:**
3015
+ - Drag the grab handle downward to dismiss
3016
+ - ESC closes
3017
+ - Click overlay to dismiss
3018
+ - `max-h-[96dvh]` keeps the sheet usable on iOS Safari when the address bar toggles
3019
+ - Focus trap, `aria-labelledby`, and background `aria-hidden` are wired automatically by vaul
3020
+
3021
+ **Not yet supported (deferred):** snap points, side-anchored drawers, nested drawers.
3022
+
2968
3023
  ---
2969
3024
 
2970
3025
  ## Troubleshooting
package/dist/index.cjs CHANGED
@@ -57,10 +57,17 @@ var TabsPrimitive = require('@radix-ui/react-tabs');
57
57
  var Suggestion = require('@tiptap/suggestion');
58
58
  var state = require('@tiptap/pm/state');
59
59
  var reactDom = require('react-dom');
60
+ var vaul = require('vaul');
60
61
  var AccordionPrimitive = require('@radix-ui/react-accordion');
61
62
  var CheckboxPrimitive = require('@radix-ui/react-checkbox');
62
63
  var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
63
64
  var HoverCardPrimitive = require('@radix-ui/react-hover-card');
65
+ var SeparatorPrimitive = require('@radix-ui/react-separator');
66
+ var CollapsiblePrimitive = require('@radix-ui/react-collapsible');
67
+ var ScrollAreaPrimitive = require('@radix-ui/react-scroll-area');
68
+ var TogglePrimitive = require('@radix-ui/react-toggle');
69
+ var ToggleGroupPrimitive = require('@radix-ui/react-toggle-group');
70
+ var AlertDialogPrimitive = require('@radix-ui/react-alert-dialog');
64
71
 
65
72
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
66
73
 
@@ -123,6 +130,12 @@ var AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrim
123
130
  var CheckboxPrimitive__namespace = /*#__PURE__*/_interopNamespace(CheckboxPrimitive);
124
131
  var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMenuPrimitive);
125
132
  var HoverCardPrimitive__namespace = /*#__PURE__*/_interopNamespace(HoverCardPrimitive);
133
+ var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrimitive);
134
+ var CollapsiblePrimitive__namespace = /*#__PURE__*/_interopNamespace(CollapsiblePrimitive);
135
+ var ScrollAreaPrimitive__namespace = /*#__PURE__*/_interopNamespace(ScrollAreaPrimitive);
136
+ var TogglePrimitive__namespace = /*#__PURE__*/_interopNamespace(TogglePrimitive);
137
+ var ToggleGroupPrimitive__namespace = /*#__PURE__*/_interopNamespace(ToggleGroupPrimitive);
138
+ var AlertDialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(AlertDialogPrimitive);
126
139
 
127
140
  var __create = Object.create;
128
141
  var __defProp = Object.defineProperty;
@@ -5198,6 +5211,8 @@ var Document = core.Node.create({
5198
5211
  }
5199
5212
  });
5200
5213
  var index_default = Document;
5214
+ var EMPTY_PARAGRAPH_MARKDOWN = "&nbsp;";
5215
+ var NBSP_CHAR = "\xA0";
5201
5216
  var Paragraph = core.Node.create({
5202
5217
  name: "paragraph",
5203
5218
  priority: 1e3,
@@ -5219,18 +5234,25 @@ var Paragraph = core.Node.create({
5219
5234
  if (tokens.length === 1 && tokens[0].type === "image") {
5220
5235
  return helpers.parseChildren([tokens[0]]);
5221
5236
  }
5222
- return helpers.createNode(
5223
- "paragraph",
5224
- void 0,
5225
- // no attributes for paragraph
5226
- helpers.parseInline(tokens)
5227
- );
5237
+ const content = helpers.parseInline(tokens);
5238
+ const hasExplicitEmptyParagraphMarker = tokens.length === 1 && tokens[0].type === "text" && (tokens[0].raw === EMPTY_PARAGRAPH_MARKDOWN || tokens[0].text === EMPTY_PARAGRAPH_MARKDOWN || tokens[0].raw === NBSP_CHAR || tokens[0].text === NBSP_CHAR);
5239
+ if (hasExplicitEmptyParagraphMarker && content.length === 1 && content[0].type === "text" && (content[0].text === EMPTY_PARAGRAPH_MARKDOWN || content[0].text === NBSP_CHAR)) {
5240
+ return helpers.createNode("paragraph", void 0, []);
5241
+ }
5242
+ return helpers.createNode("paragraph", void 0, content);
5228
5243
  },
5229
- renderMarkdown: (node, h) => {
5230
- if (!node || !Array.isArray(node.content)) {
5244
+ renderMarkdown: (node, h, ctx) => {
5245
+ var _a, _b;
5246
+ if (!node) {
5231
5247
  return "";
5232
5248
  }
5233
- return h.renderChildren(node.content);
5249
+ const content = Array.isArray(node.content) ? node.content : [];
5250
+ if (content.length === 0) {
5251
+ const previousContent = Array.isArray((_a = ctx == null ? void 0 : ctx.previousNode) == null ? void 0 : _a.content) ? ctx.previousNode.content : [];
5252
+ const previousNodeIsEmptyParagraph = ((_b = ctx == null ? void 0 : ctx.previousNode) == null ? void 0 : _b.type) === "paragraph" && previousContent.length === 0;
5253
+ return previousNodeIsEmptyParagraph ? EMPTY_PARAGRAPH_MARKDOWN : "";
5254
+ }
5255
+ return h.renderChildren(content);
5234
5256
  },
5235
5257
  addCommands() {
5236
5258
  return {
@@ -6777,6 +6799,112 @@ function HazoUiConfirmDialog({
6777
6799
  )
6778
6800
  ] }) });
6779
6801
  }
6802
+ var Drawer = ({
6803
+ shouldScaleBackground = true,
6804
+ ...props
6805
+ }) => /* @__PURE__ */ jsxRuntime.jsx(vaul.Drawer.Root, { shouldScaleBackground, ...props });
6806
+ Drawer.displayName = "Drawer";
6807
+ var DrawerTrigger = vaul.Drawer.Trigger;
6808
+ var DrawerPortal = vaul.Drawer.Portal;
6809
+ var DrawerClose = vaul.Drawer.Close;
6810
+ var DrawerOverlay = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6811
+ vaul.Drawer.Overlay,
6812
+ {
6813
+ ref,
6814
+ className: cn(
6815
+ "fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
6816
+ className
6817
+ ),
6818
+ ...props
6819
+ }
6820
+ ));
6821
+ DrawerOverlay.displayName = "DrawerOverlay";
6822
+ var DrawerContent = React27__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(DrawerPortal, { children: [
6823
+ /* @__PURE__ */ jsxRuntime.jsx(DrawerOverlay, {}),
6824
+ /* @__PURE__ */ jsxRuntime.jsxs(
6825
+ vaul.Drawer.Content,
6826
+ {
6827
+ ref,
6828
+ className: cn(
6829
+ "fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto max-h-[96dvh] flex-col rounded-t-[10px] border bg-background",
6830
+ className
6831
+ ),
6832
+ ...props,
6833
+ children: [
6834
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted" }),
6835
+ children
6836
+ ]
6837
+ }
6838
+ )
6839
+ ] }));
6840
+ DrawerContent.displayName = "DrawerContent";
6841
+ var DrawerHeader = ({
6842
+ className,
6843
+ ...props
6844
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
6845
+ "div",
6846
+ {
6847
+ className: cn("grid gap-1.5 p-4 text-center sm:text-left", className),
6848
+ ...props
6849
+ }
6850
+ );
6851
+ DrawerHeader.displayName = "DrawerHeader";
6852
+ var DrawerFooter = ({
6853
+ className,
6854
+ ...props
6855
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
6856
+ "div",
6857
+ {
6858
+ className: cn("mt-auto flex flex-col gap-2 p-4", className),
6859
+ ...props
6860
+ }
6861
+ );
6862
+ DrawerFooter.displayName = "DrawerFooter";
6863
+ var DrawerTitle = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6864
+ vaul.Drawer.Title,
6865
+ {
6866
+ ref,
6867
+ className: cn(
6868
+ "text-lg font-semibold leading-none tracking-tight",
6869
+ className
6870
+ ),
6871
+ ...props
6872
+ }
6873
+ ));
6874
+ DrawerTitle.displayName = "DrawerTitle";
6875
+ var DrawerDescription = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6876
+ vaul.Drawer.Description,
6877
+ {
6878
+ ref,
6879
+ className: cn("text-sm text-muted-foreground", className),
6880
+ ...props
6881
+ }
6882
+ ));
6883
+ DrawerDescription.displayName = "DrawerDescription";
6884
+ function useMediaQuery(query) {
6885
+ const get_match = React27__namespace.useCallback(() => {
6886
+ if (typeof window === "undefined" || typeof window.matchMedia !== "function") {
6887
+ return false;
6888
+ }
6889
+ return window.matchMedia(query).matches;
6890
+ }, [query]);
6891
+ const [matches, set_matches] = React27__namespace.useState(false);
6892
+ React27__namespace.useEffect(() => {
6893
+ if (typeof window === "undefined" || typeof window.matchMedia !== "function") {
6894
+ return;
6895
+ }
6896
+ const media_query_list = window.matchMedia(query);
6897
+ set_matches(media_query_list.matches);
6898
+ const handle_change = (event) => set_matches(event.matches);
6899
+ if (typeof media_query_list.addEventListener === "function") {
6900
+ media_query_list.addEventListener("change", handle_change);
6901
+ return () => media_query_list.removeEventListener("change", handle_change);
6902
+ }
6903
+ media_query_list.addListener(handle_change);
6904
+ return () => media_query_list.removeListener(handle_change);
6905
+ }, [query, get_match]);
6906
+ return matches;
6907
+ }
6780
6908
  var Accordion = AccordionPrimitive__namespace.Root;
6781
6909
  var AccordionItem = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
6782
6910
  AccordionPrimitive__namespace.Item,
@@ -6997,18 +7125,235 @@ var Textarea = React27__namespace.forwardRef(
6997
7125
  }
6998
7126
  );
6999
7127
  Textarea.displayName = "Textarea";
7128
+ var Separator3 = React27__namespace.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7129
+ SeparatorPrimitive__namespace.Root,
7130
+ {
7131
+ ref,
7132
+ decorative,
7133
+ orientation,
7134
+ className: cn(
7135
+ "shrink-0 bg-border",
7136
+ orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
7137
+ className
7138
+ ),
7139
+ ...props
7140
+ }
7141
+ ));
7142
+ Separator3.displayName = SeparatorPrimitive__namespace.Root.displayName;
7143
+ var Collapsible = CollapsiblePrimitive__namespace.Root;
7144
+ var CollapsibleTrigger2 = CollapsiblePrimitive__namespace.CollapsibleTrigger;
7145
+ var CollapsibleContent2 = CollapsiblePrimitive__namespace.CollapsibleContent;
7146
+ var ScrollArea = React27__namespace.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(
7147
+ ScrollAreaPrimitive__namespace.Root,
7148
+ {
7149
+ ref,
7150
+ className: cn("relative overflow-hidden", className),
7151
+ ...props,
7152
+ children: [
7153
+ /* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
7154
+ /* @__PURE__ */ jsxRuntime.jsx(ScrollBar, {}),
7155
+ /* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.Corner, {})
7156
+ ]
7157
+ }
7158
+ ));
7159
+ ScrollArea.displayName = ScrollAreaPrimitive__namespace.Root.displayName;
7160
+ var ScrollBar = React27__namespace.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7161
+ ScrollAreaPrimitive__namespace.ScrollAreaScrollbar,
7162
+ {
7163
+ ref,
7164
+ orientation,
7165
+ className: cn(
7166
+ "flex touch-none select-none transition-colors",
7167
+ orientation === "vertical" && "h-full w-2.5 border-l border-l-transparent p-[1px]",
7168
+ orientation === "horizontal" && "h-2.5 flex-col border-t border-t-transparent p-[1px]",
7169
+ className
7170
+ ),
7171
+ ...props,
7172
+ children: /* @__PURE__ */ jsxRuntime.jsx(ScrollAreaPrimitive__namespace.ScrollAreaThumb, { className: "relative flex-1 rounded-full bg-border" })
7173
+ }
7174
+ ));
7175
+ ScrollBar.displayName = ScrollAreaPrimitive__namespace.ScrollAreaScrollbar.displayName;
7176
+ var Card = React27__namespace.forwardRef(
7177
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("rounded-lg border bg-card text-card-foreground shadow-sm", className), ...props })
7178
+ );
7179
+ Card.displayName = "Card";
7180
+ var CardHeader = React27__namespace.forwardRef(
7181
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex flex-col space-y-1.5 p-6", className), ...props })
7182
+ );
7183
+ CardHeader.displayName = "CardHeader";
7184
+ var CardTitle = React27__namespace.forwardRef(
7185
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("h3", { ref, className: cn("text-2xl font-semibold leading-none tracking-tight", className), ...props })
7186
+ );
7187
+ CardTitle.displayName = "CardTitle";
7188
+ var CardDescription = React27__namespace.forwardRef(
7189
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("p", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
7190
+ );
7191
+ CardDescription.displayName = "CardDescription";
7192
+ var CardContent = React27__namespace.forwardRef(
7193
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("p-6 pt-0", className), ...props })
7194
+ );
7195
+ CardContent.displayName = "CardContent";
7196
+ var CardFooter = React27__namespace.forwardRef(
7197
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex items-center p-6 pt-0", className), ...props })
7198
+ );
7199
+ CardFooter.displayName = "CardFooter";
7200
+ function Spinner({ className, size = "md" }) {
7201
+ const sizeClasses = { sm: "h-4 w-4", md: "h-8 w-8", lg: "h-12 w-12" };
7202
+ return /* @__PURE__ */ jsxRuntime.jsx(
7203
+ "div",
7204
+ {
7205
+ className: cn("animate-spin rounded-full border-2 border-current border-t-transparent text-primary", sizeClasses[size], className),
7206
+ role: "status",
7207
+ "aria-label": "Loading",
7208
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Loading..." })
7209
+ }
7210
+ );
7211
+ }
7212
+ var toggleVariants = classVarianceAuthority.cva(
7213
+ "inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2",
7214
+ {
7215
+ variants: {
7216
+ variant: {
7217
+ default: "bg-transparent",
7218
+ outline: "border border-input bg-transparent hover:bg-accent hover:text-accent-foreground"
7219
+ },
7220
+ size: {
7221
+ default: "h-10 px-3 min-w-10",
7222
+ sm: "h-9 px-2.5 min-w-9",
7223
+ lg: "h-11 px-5 min-w-11"
7224
+ }
7225
+ },
7226
+ defaultVariants: { variant: "default", size: "default" }
7227
+ }
7228
+ );
7229
+ var Toggle = React27__namespace.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(TogglePrimitive__namespace.Root, { ref, className: cn(toggleVariants({ variant, size, className })), ...props }));
7230
+ Toggle.displayName = TogglePrimitive__namespace.Root.displayName;
7231
+ var ToggleGroupContext = React27__namespace.createContext({
7232
+ size: "default",
7233
+ variant: "default"
7234
+ });
7235
+ var ToggleGroup = React27__namespace.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(ToggleGroupPrimitive__namespace.Root, { ref, className: cn("flex items-center justify-center gap-1", className), ...props, children: /* @__PURE__ */ jsxRuntime.jsx(ToggleGroupContext.Provider, { value: { variant, size }, children }) }));
7236
+ ToggleGroup.displayName = ToggleGroupPrimitive__namespace.Root.displayName;
7237
+ var ToggleGroupItem = React27__namespace.forwardRef(({ className, children, variant, size, ...props }, ref) => {
7238
+ const context = React27__namespace.useContext(ToggleGroupContext);
7239
+ return /* @__PURE__ */ jsxRuntime.jsx(
7240
+ ToggleGroupPrimitive__namespace.Item,
7241
+ {
7242
+ ref,
7243
+ className: cn(toggleVariants({ variant: context.variant || variant, size: context.size || size }), className),
7244
+ ...props,
7245
+ children
7246
+ }
7247
+ );
7248
+ });
7249
+ ToggleGroupItem.displayName = ToggleGroupPrimitive__namespace.Item.displayName;
7250
+ var AlertDialog = AlertDialogPrimitive__namespace.Root;
7251
+ var AlertDialogTrigger = AlertDialogPrimitive__namespace.Trigger;
7252
+ var AlertDialogPortal = AlertDialogPrimitive__namespace.Portal;
7253
+ var AlertDialogOverlay = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
7254
+ AlertDialogPrimitive__namespace.Overlay,
7255
+ {
7256
+ ref,
7257
+ className: cn("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", className),
7258
+ ...props
7259
+ }
7260
+ ));
7261
+ AlertDialogOverlay.displayName = AlertDialogPrimitive__namespace.Overlay.displayName;
7262
+ var AlertDialogContent = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(AlertDialogPortal, { children: [
7263
+ /* @__PURE__ */ jsxRuntime.jsx(AlertDialogOverlay, {}),
7264
+ /* @__PURE__ */ jsxRuntime.jsx(
7265
+ AlertDialogPrimitive__namespace.Content,
7266
+ {
7267
+ ref,
7268
+ className: cn("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", className),
7269
+ ...props
7270
+ }
7271
+ )
7272
+ ] }));
7273
+ AlertDialogContent.displayName = AlertDialogPrimitive__namespace.Content.displayName;
7274
+ var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
7275
+ AlertDialogHeader.displayName = "AlertDialogHeader";
7276
+ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
7277
+ AlertDialogFooter.displayName = "AlertDialogFooter";
7278
+ var AlertDialogTitle = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Title, { ref, className: cn("text-lg font-semibold", className), ...props }));
7279
+ AlertDialogTitle.displayName = AlertDialogPrimitive__namespace.Title.displayName;
7280
+ var AlertDialogDescription = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Description, { ref, className: cn("text-sm text-muted-foreground", className), ...props }));
7281
+ AlertDialogDescription.displayName = AlertDialogPrimitive__namespace.Description.displayName;
7282
+ var AlertDialogAction = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Action, { ref, className: cn(buttonVariants(), className), ...props }));
7283
+ AlertDialogAction.displayName = AlertDialogPrimitive__namespace.Action.displayName;
7284
+ var AlertDialogCancel = React27__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(AlertDialogPrimitive__namespace.Cancel, { ref, className: cn(buttonVariants({ variant: "outline" }), "mt-2 sm:mt-0", className), ...props }));
7285
+ AlertDialogCancel.displayName = AlertDialogPrimitive__namespace.Cancel.displayName;
7286
+ var buttonGroupVariants = classVarianceAuthority.cva(
7287
+ "flex w-fit items-stretch [&>*]:focus-visible:relative [&>*]:focus-visible:z-10",
7288
+ {
7289
+ variants: {
7290
+ orientation: {
7291
+ horizontal: "[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none",
7292
+ vertical: "flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none"
7293
+ }
7294
+ },
7295
+ defaultVariants: { orientation: "horizontal" }
7296
+ }
7297
+ );
7298
+ function ButtonGroup({
7299
+ className,
7300
+ orientation,
7301
+ ...props
7302
+ }) {
7303
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { role: "group", "data-slot": "button-group", className: cn(buttonGroupVariants({ orientation }), className), ...props });
7304
+ }
7305
+ function ButtonGroupText({ className, asChild = false, ...props }) {
7306
+ const Comp = asChild ? reactSlot.Slot : "div";
7307
+ return /* @__PURE__ */ jsxRuntime.jsx(Comp, { className: cn("bg-muted flex items-center gap-2 rounded-md border px-4 text-sm font-medium [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", className), ...props });
7308
+ }
7309
+ function ButtonGroupSeparator({ className, orientation = "vertical", ...props }) {
7310
+ return /* @__PURE__ */ jsxRuntime.jsx(Separator3, { orientation, className: cn("bg-input relative !m-0 self-stretch data-[orientation=vertical]:h-auto", className), ...props });
7311
+ }
7000
7312
 
7001
7313
  exports.ANIMATION_PRESETS = ANIMATION_PRESETS;
7002
7314
  exports.Accordion = Accordion;
7003
7315
  exports.AccordionContent = AccordionContent;
7004
7316
  exports.AccordionItem = AccordionItem;
7005
7317
  exports.AccordionTrigger = AccordionTrigger;
7318
+ exports.AlertDialog = AlertDialog;
7319
+ exports.AlertDialogAction = AlertDialogAction;
7320
+ exports.AlertDialogCancel = AlertDialogCancel;
7321
+ exports.AlertDialogContent = AlertDialogContent;
7322
+ exports.AlertDialogDescription = AlertDialogDescription;
7323
+ exports.AlertDialogFooter = AlertDialogFooter;
7324
+ exports.AlertDialogHeader = AlertDialogHeader;
7325
+ exports.AlertDialogOverlay = AlertDialogOverlay;
7326
+ exports.AlertDialogPortal = AlertDialogPortal;
7327
+ exports.AlertDialogTitle = AlertDialogTitle;
7328
+ exports.AlertDialogTrigger = AlertDialogTrigger;
7006
7329
  exports.Button = Button;
7330
+ exports.ButtonGroup = ButtonGroup;
7331
+ exports.ButtonGroupSeparator = ButtonGroupSeparator;
7332
+ exports.ButtonGroupText = ButtonGroupText;
7007
7333
  exports.Calendar = Calendar;
7334
+ exports.Card = Card;
7335
+ exports.CardContent = CardContent;
7336
+ exports.CardDescription = CardDescription;
7337
+ exports.CardFooter = CardFooter;
7338
+ exports.CardHeader = CardHeader;
7339
+ exports.CardTitle = CardTitle;
7008
7340
  exports.Checkbox = Checkbox;
7341
+ exports.Collapsible = Collapsible;
7342
+ exports.CollapsibleContent = CollapsibleContent2;
7343
+ exports.CollapsibleTrigger = CollapsibleTrigger2;
7009
7344
  exports.CommandNodeExtension = CommandNodeExtension;
7010
7345
  exports.CommandPill = CommandPill;
7011
7346
  exports.CommandPopover = CommandPopover;
7347
+ exports.Drawer = Drawer;
7348
+ exports.DrawerClose = DrawerClose;
7349
+ exports.DrawerContent = DrawerContent;
7350
+ exports.DrawerDescription = DrawerDescription;
7351
+ exports.DrawerFooter = DrawerFooter;
7352
+ exports.DrawerHeader = DrawerHeader;
7353
+ exports.DrawerOverlay = DrawerOverlay;
7354
+ exports.DrawerPortal = DrawerPortal;
7355
+ exports.DrawerTitle = DrawerTitle;
7356
+ exports.DrawerTrigger = DrawerTrigger;
7012
7357
  exports.DropdownMenu = DropdownMenu;
7013
7358
  exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem;
7014
7359
  exports.DropdownMenuContent = DropdownMenuContent;
@@ -7054,6 +7399,8 @@ exports.PopoverContent = PopoverContent;
7054
7399
  exports.PopoverTrigger = PopoverTrigger;
7055
7400
  exports.RadioGroup = RadioGroup;
7056
7401
  exports.RadioGroupItem = RadioGroupItem;
7402
+ exports.ScrollArea = ScrollArea;
7403
+ exports.ScrollBar = ScrollBar;
7057
7404
  exports.Select = Select;
7058
7405
  exports.SelectContent = SelectContent;
7059
7406
  exports.SelectGroup = SelectGroup;
@@ -7064,22 +7411,28 @@ exports.SelectScrollUpButton = SelectScrollUpButton;
7064
7411
  exports.SelectSeparator = SelectSeparator;
7065
7412
  exports.SelectTrigger = SelectTrigger;
7066
7413
  exports.SelectValue = SelectValue;
7414
+ exports.Separator = Separator3;
7067
7415
  exports.ShadcnCommand = Command;
7068
7416
  exports.ShadcnCommandEmpty = CommandEmpty;
7069
7417
  exports.ShadcnCommandGroup = CommandGroup;
7070
7418
  exports.ShadcnCommandInput = CommandInput;
7071
7419
  exports.ShadcnCommandItem = CommandItem;
7072
7420
  exports.ShadcnCommandList = CommandList;
7421
+ exports.Spinner = Spinner;
7073
7422
  exports.Switch = Switch;
7074
7423
  exports.Tabs = Tabs;
7075
7424
  exports.TabsContent = TabsContent;
7076
7425
  exports.TabsList = TabsList;
7077
7426
  exports.TabsTrigger = TabsTrigger;
7078
7427
  exports.Textarea = Textarea;
7428
+ exports.Toggle = Toggle;
7429
+ exports.ToggleGroup = ToggleGroup;
7430
+ exports.ToggleGroupItem = ToggleGroupItem;
7079
7431
  exports.Tooltip = Tooltip;
7080
7432
  exports.TooltipContent = TooltipContent;
7081
7433
  exports.TooltipProvider = TooltipProvider;
7082
7434
  exports.TooltipTrigger = TooltipTrigger;
7435
+ exports.buttonGroupVariants = buttonGroupVariants;
7083
7436
  exports.create_command_suggestion_extension = create_command_suggestion_extension;
7084
7437
  exports.get_hazo_ui_config = get_hazo_ui_config;
7085
7438
  exports.parse_commands_from_text = parse_commands_from_text;
@@ -7087,5 +7440,7 @@ exports.reset_hazo_ui_config = reset_hazo_ui_config;
7087
7440
  exports.resolve_animation_classes = resolve_animation_classes;
7088
7441
  exports.set_hazo_ui_config = set_hazo_ui_config;
7089
7442
  exports.text_to_tiptap_content = text_to_tiptap_content;
7443
+ exports.toggleVariants = toggleVariants;
7444
+ exports.useMediaQuery = useMediaQuery;
7090
7445
  //# sourceMappingURL=index.cjs.map
7091
7446
  //# sourceMappingURL=index.cjs.map