@waveso/ui 0.0.3 → 0.0.4

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 (48) hide show
  1. package/README.md +72 -52
  2. package/dist/accordion.js +1 -1
  3. package/dist/breadcrumb.js +1 -1
  4. package/dist/button.d.ts +1 -1
  5. package/dist/checkbox.js +1 -1
  6. package/dist/{chunk-PGXELRT4.js → chunk-45VQAWIM.js} +3 -3
  7. package/dist/{chunk-PGXELRT4.js.map → chunk-45VQAWIM.js.map} +1 -1
  8. package/dist/{chunk-ZOKFCJWM.js → chunk-6Y7LPQMO.js} +3 -3
  9. package/dist/{chunk-ZOKFCJWM.js.map → chunk-6Y7LPQMO.js.map} +1 -1
  10. package/dist/chunk-7F4MPMLJ.js +17 -0
  11. package/dist/chunk-7F4MPMLJ.js.map +1 -0
  12. package/dist/chunk-7OIQ6YBK.js +66 -0
  13. package/dist/chunk-7OIQ6YBK.js.map +1 -0
  14. package/dist/{chunk-WJDWQFO3.js → chunk-DIGOLJIR.js} +9 -3
  15. package/dist/chunk-DIGOLJIR.js.map +1 -0
  16. package/dist/chunk-PVX4VQFJ.js +143 -0
  17. package/dist/chunk-PVX4VQFJ.js.map +1 -0
  18. package/dist/chunk-ZZZH3JGW.js +23 -0
  19. package/dist/chunk-ZZZH3JGW.js.map +1 -0
  20. package/dist/combobox.js +1 -1
  21. package/dist/context-menu.js +1 -1
  22. package/dist/dialog.js +1 -1
  23. package/dist/drawer.js +4 -141
  24. package/dist/drawer.js.map +1 -1
  25. package/dist/hooks/use-mobile.d.ts +6 -1
  26. package/dist/hooks/use-mobile.js +1 -18
  27. package/dist/hooks/use-mobile.js.map +1 -1
  28. package/dist/infinite-scroll.js +2 -2
  29. package/dist/input-group.d.ts +1 -1
  30. package/dist/input-otp.js +1 -1
  31. package/dist/item.d.ts +1 -1
  32. package/dist/masonry.js +1 -1
  33. package/dist/menu.js +2 -2
  34. package/dist/menubar.js +2 -2
  35. package/dist/pagination.js +1 -1
  36. package/dist/select.js +1 -1
  37. package/dist/sidebar.d.ts +112 -0
  38. package/dist/sidebar.js +619 -0
  39. package/dist/sidebar.js.map +1 -0
  40. package/dist/skeleton.js +2 -15
  41. package/dist/skeleton.js.map +1 -1
  42. package/dist/spinner.js +2 -2
  43. package/dist/styles.css +196 -0
  44. package/dist/toast.js +1 -1
  45. package/dist/tooltip.js +2 -64
  46. package/dist/tooltip.js.map +1 -1
  47. package/package.json +6 -3
  48. package/dist/chunk-WJDWQFO3.js.map +0 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @waveso/ui
2
2
 
3
- Wave UI is component library built on [Base UI](https://base-ui.com) primitives and [Tailwind CSS v4](https://tailwindcss.com).
3
+ A component library built on [Base UI](https://base-ui.com) primitives and [Tailwind CSS v4](https://tailwindcss.com).
4
4
 
5
5
  ## Install
6
6
 
@@ -8,48 +8,70 @@ Wave UI is component library built on [Base UI](https://base-ui.com) primitives
8
8
  npm install @waveso/ui @base-ui/react class-variance-authority clsx tailwind-merge
9
9
  ```
10
10
 
11
+ ## Setup
12
+
13
+ Add the theme preset and source directive to your CSS entry point:
14
+
15
+ ```css
16
+ @import "@waveso/ui/styles.css";
17
+ @import "tailwindcss";
18
+ @source "../../node_modules/@waveso/ui/dist";
19
+ ```
20
+
21
+ The preset provides all CSS variables (colors, radii, sidebar tokens) with light and dark mode support. Override any variable in your own `:root` / `.dark` blocks to customize the theme.
22
+
11
23
  ## Usage
12
24
 
13
25
  Import components by name — each is a separate entry point for optimal tree-shaking:
14
26
 
15
27
  ```tsx
16
28
  import { Button } from '@waveso/ui/button';
29
+ import { Masonry, MasonryItem, MasonrySpannedItem } from '@waveso/ui/masonry';
17
30
  import { Card, CardHeader, CardTitle, CardContent } from '@waveso/ui/card';
18
- import { Input } from '@waveso/ui/input';
19
31
  ```
20
32
 
21
- ### Theme setup
33
+ ### Button
22
34
 
23
- Components rely on CSS custom properties for colors, radii, and fonts. Define them in your app's `globals.css`:
35
+ 8 variants, 8 sizes, built on Base UI's `Button` primitive with full keyboard and ARIA support.
24
36
 
25
- ```css
26
- @import "tailwindcss";
37
+ ```tsx
38
+ import { Button } from '@waveso/ui/button';
27
39
 
28
- :root {
29
- --background: oklch(1 0 0);
30
- --foreground: oklch(0.145 0 0);
31
- --primary: oklch(0.61 0.11 222);
32
- --primary-foreground: oklch(0.98 0.02 201);
33
- --muted: oklch(0.97 0 0);
34
- --muted-foreground: oklch(0.556 0 0);
35
- --border: oklch(0.922 0 0);
36
- --input: oklch(0.922 0 0);
37
- --ring: oklch(0.708 0 0);
38
- --destructive: oklch(0.58 0.22 27);
39
- --radius: 0.875rem;
40
- /* ... see full token list below */
41
- }
42
-
43
- @theme inline {
44
- --color-background: var(--background);
45
- --color-foreground: var(--foreground);
46
- --color-primary: var(--primary);
47
- --color-primary-foreground: var(--primary-foreground);
48
- /* ... map all tokens to Tailwind v4 */
49
- }
40
+ <Button>Default</Button>
41
+ <Button variant="solid">Solid</Button>
42
+ <Button variant="outline">Outline</Button>
43
+ <Button variant="ghost">Ghost</Button>
44
+ <Button variant="destructive">Delete</Button>
45
+ <Button variant="success">Confirm</Button>
46
+ <Button size="xs">Tiny</Button>
47
+ <Button size="icon"><SearchIcon /></Button>
50
48
  ```
51
49
 
52
- See [`.storybook/storybook.css`](.storybook/storybook.css) for the complete token reference with light and dark mode values.
50
+ ### Masonry
51
+
52
+ Responsive masonry grid with staggered animations, spanning items, and automatic reflow.
53
+
54
+ ```tsx
55
+ import { Masonry, MasonryItem, MasonrySpannedItem } from '@waveso/ui/masonry';
56
+
57
+ <Masonry columns={3} gap={16}>
58
+ <MasonryItem>
59
+ <Card>
60
+ <CardContent>Standard item</CardContent>
61
+ </Card>
62
+ </MasonryItem>
63
+ <MasonrySpannedItem>
64
+ <Card>
65
+ <CardContent>This spans two columns</CardContent>
66
+ </Card>
67
+ </MasonrySpannedItem>
68
+ <MasonryItem>
69
+ <Card>
70
+ <CardContent>Another item</CardContent>
71
+ </Card>
72
+ </MasonryItem>
73
+ </Masonry>
74
+ ```
53
75
 
54
76
  ## Components
55
77
 
@@ -59,7 +81,7 @@ See [`.storybook/storybook.css`](.storybook/storybook.css) for the complete toke
59
81
  |---|---|
60
82
  | **Actions** | Button, Button Group, Toggle, Toggle Group |
61
83
  | **Forms** | Input, Textarea, Checkbox, Switch, Radio, Radio Group, Select, Combobox, Autocomplete, Slider, Calendar, Input OTP, Field, Form, Label, Input Group |
62
- | **Layout** | Card, Separator, Aspect Ratio, Scroll Area, Collapsible, Accordion, Tabs, Sidebar |
84
+ | **Layout** | Card, Masonry, Separator, Aspect Ratio, Scroll Area, Collapsible, Accordion, Tabs, Sidebar |
63
85
  | **Navigation** | Breadcrumb, Navigation Menu, Pagination, Menubar |
64
86
  | **Overlays** | Dialog, Alert Dialog, Sheet, Popover, Tooltip, Preview Card, Context Menu, Menu |
65
87
  | **Feedback** | Alert, Badge, Progress, Skeleton, Spinner, Toaster, Empty |
@@ -92,20 +114,11 @@ Install only what you use.
92
114
  ## Development
93
115
 
94
116
  ```bash
95
- # Install dependencies
96
117
  npm install
97
-
98
- # Start Storybook
99
- npm run storybook
100
-
101
- # Build the library
102
- npm run build
103
-
104
- # Type-check
105
- npm run typecheck
106
-
107
- # Watch mode (rebuild on changes)
108
- npm run dev
118
+ npm run storybook # Start Storybook
119
+ npm run build # Build the library
120
+ npm run typecheck # Type-check
121
+ npm run dev # Watch mode
109
122
  ```
110
123
 
111
124
  ### Project structure
@@ -116,26 +129,33 @@ npm run dev
116
129
  src/
117
130
  *.tsx # Component source files
118
131
  *.stories.tsx # Storybook stories
132
+ styles.css # Theme preset (CSS variables + Tailwind mapping)
119
133
  hooks/ # Custom hooks
120
134
  lib/ # Utilities (cn, internal icons)
121
135
  ```
122
136
 
123
137
  ## Releasing
124
138
 
125
- This project uses [Changesets](https://github.com/changesets/changesets) for versioning and publishing.
139
+ This project uses [Changesets](https://github.com/changesets/changesets) with GitHub Actions.
126
140
 
127
- ```bash
128
- # 1. Create a changeset describing your changes
129
- npx changeset
141
+ 1. Run `npx changeset` to describe your changes (patch, minor, or major)
142
+ 2. Commit the generated changeset file with your PR
143
+ 3. When merged to `main`, CI automatically versions and publishes to npm
130
144
 
131
- # 2. Version bump (applied by CI or manually)
132
- npx changeset version
145
+ <details>
146
+ <summary>Manual release (without CI)</summary>
133
147
 
134
- # 3. Publish to npm (handled by CI)
135
- npm run release
148
+ If you're not using the GitHub Actions workflow, you can publish manually.
149
+ Changesets will skip versions already published to npm, so this won't
150
+ conflict if CI has already run.
151
+
152
+ ```bash
153
+ npx changeset # Create a changeset
154
+ npx changeset version # Apply version bump
155
+ npm run release # Build and publish to npm
136
156
  ```
137
157
 
138
- Merging to `main` with pending changesets triggers the publish workflow automatically.
158
+ </details>
139
159
 
140
160
  ## License
141
161
 
package/dist/accordion.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ChevronDownIcon, ChevronUpIcon } from './chunk-WJDWQFO3.js';
1
+ import { ChevronDownIcon, ChevronUpIcon } from './chunk-DIGOLJIR.js';
2
2
  import { cn } from './chunk-76UQO56T.js';
3
3
  import { Accordion as Accordion$1 } from '@base-ui/react/accordion';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { ChevronRightIcon, EllipsisIcon } from './chunk-WJDWQFO3.js';
1
+ import { ChevronRightIcon, EllipsisIcon } from './chunk-DIGOLJIR.js';
2
2
  import { cn } from './chunk-76UQO56T.js';
3
3
  import { mergeProps } from '@base-ui/react/merge-props';
4
4
  import { useRender } from '@base-ui/react/use-render';
package/dist/button.d.ts CHANGED
@@ -6,7 +6,7 @@ import { VariantProps } from 'class-variance-authority';
6
6
 
7
7
  declare const buttonVariants: (props?: ({
8
8
  variant?: "link" | "default" | "solid" | "outline" | "secondary" | "ghost" | "success" | "destructive" | null | undefined;
9
- size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
9
+ size?: "default" | "sm" | "xs" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
10
10
  } & class_variance_authority_types.ClassProp) | undefined) => string;
11
11
  type ButtonProps = React.ComponentProps<typeof Button$1> & VariantProps<typeof buttonVariants>;
12
12
  declare function Button({ className, variant, size, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
package/dist/checkbox.js CHANGED
@@ -1,4 +1,4 @@
1
- import { CheckIcon } from './chunk-WJDWQFO3.js';
1
+ import { CheckIcon } from './chunk-DIGOLJIR.js';
2
2
  import { cn } from './chunk-76UQO56T.js';
3
3
  import * as React from 'react';
4
4
  import { Checkbox as Checkbox$1 } from '@base-ui/react/checkbox';
@@ -1,4 +1,4 @@
1
- import { ChevronRightIcon, CheckIcon } from './chunk-WJDWQFO3.js';
1
+ import { ChevronRightIcon, CheckIcon } from './chunk-DIGOLJIR.js';
2
2
  import { cn } from './chunk-76UQO56T.js';
3
3
  import { Menu as Menu$1 } from '@base-ui/react/menu';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -224,5 +224,5 @@ function MenuShortcut({ className, ...props }) {
224
224
  }
225
225
 
226
226
  export { Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuItem, MenuLabel, MenuPortal, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuShortcut, MenuSub, MenuSubContent, MenuSubTrigger, MenuTrigger };
227
- //# sourceMappingURL=chunk-PGXELRT4.js.map
228
- //# sourceMappingURL=chunk-PGXELRT4.js.map
227
+ //# sourceMappingURL=chunk-45VQAWIM.js.map
228
+ //# sourceMappingURL=chunk-45VQAWIM.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/menu.tsx"],"names":["MenuPrimitive"],"mappings":"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","file":"chunk-PGXELRT4.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\"\n\nimport { cn } from \"./lib/utils\"\n\nimport { ChevronRightIcon, CheckIcon } from \"./lib/internal-icons\"\n\ntype MenuProps = React.ComponentProps<typeof MenuPrimitive.Root>\n\ntype MenuPortalProps = React.ComponentProps<typeof MenuPrimitive.Portal>\n\ntype MenuTriggerProps = React.ComponentProps<typeof MenuPrimitive.Trigger>\n\ntype MenuContentProps = React.ComponentProps<typeof MenuPrimitive.Popup> &\n Pick<\n React.ComponentProps<typeof MenuPrimitive.Positioner>,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >\n\ntype MenuGroupProps = React.ComponentProps<typeof MenuPrimitive.Group>\n\ntype MenuLabelProps = React.ComponentProps<typeof MenuPrimitive.GroupLabel> & {\n inset?: boolean\n}\n\ntype MenuItemProps = React.ComponentProps<typeof MenuPrimitive.Item> & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}\n\ntype MenuSubProps = React.ComponentProps<typeof MenuPrimitive.SubmenuRoot>\n\ntype MenuSubTriggerProps = React.ComponentProps<typeof MenuPrimitive.SubmenuTrigger> & {\n inset?: boolean\n}\n\ntype MenuSubContentProps = MenuContentProps\n\ntype MenuCheckboxItemProps = React.ComponentProps<typeof MenuPrimitive.CheckboxItem> & {\n inset?: boolean\n}\n\ntype MenuRadioGroupProps = React.ComponentProps<typeof MenuPrimitive.RadioGroup>\n\ntype MenuRadioItemProps = React.ComponentProps<typeof MenuPrimitive.RadioItem> & {\n inset?: boolean\n}\n\ntype MenuSeparatorProps = React.ComponentProps<typeof MenuPrimitive.Separator>\n\ntype MenuShortcutProps = React.ComponentProps<\"span\">\n\nfunction Menu(props: MenuProps) {\n return <MenuPrimitive.Root data-slot=\"menu\" {...props} />\n}\n\nfunction MenuPortal(props: MenuPortalProps) {\n return <MenuPrimitive.Portal data-slot=\"menu-portal\" {...props} />\n}\n\nfunction MenuTrigger(props: MenuTriggerProps) {\n return <MenuPrimitive.Trigger data-slot=\"menu-trigger\" {...props} />\n}\n\nfunction MenuContent({\n align = \"start\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n className,\n ...props\n}: MenuContentProps) {\n return (\n <MenuPortal>\n <MenuPrimitive.Positioner\n data-slot=\"menu-positioner\"\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"menu-content\"\n className={cn(\n \"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 z-50 max-h-(--available-height) w-auto min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg p-1 shadow-md ring-1 duration-100 outline-none data-closed:overflow-hidden\",\n className,\n )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPortal>\n )\n}\n\nfunction MenuGroup(props: MenuGroupProps) {\n return <MenuPrimitive.Group data-slot=\"menu-group\" {...props} />\n}\n\nfunction MenuLabel({\n className,\n inset,\n ...props\n}: MenuLabelProps) {\n return (\n <MenuPrimitive.GroupLabel\n data-slot=\"menu-label\"\n data-inset={inset}\n className={cn(\n \"text-muted-foreground px-1.5 py-1 text-xs font-medium data-inset:pl-7\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: MenuItemProps) {\n return (\n <MenuPrimitive.Item\n data-slot=\"menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground group/menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MenuSub(props: MenuSubProps) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"menu-sub\" {...props} />\n}\n\nfunction MenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuSubTriggerProps) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-popup-open:bg-accent data-popup-open:text-accent-foreground flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </MenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction MenuSubContent({\n align = \"start\",\n alignOffset = -3,\n side = \"right\",\n sideOffset = 0,\n className,\n ...props\n}: MenuSubContentProps) {\n return (\n <MenuContent\n data-slot=\"menu-sub-content\"\n className={cn(\"w-auto min-w-24 shadow-lg\", className)}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n )\n}\n\nfunction MenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuCheckboxItemProps) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span\n data-slot=\"menu-checkbox-item-indicator\"\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n >\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n )\n}\n\nfunction MenuRadioGroup(props: MenuRadioGroupProps) {\n return <MenuPrimitive.RadioGroup data-slot=\"menu-radio-group\" {...props} />\n}\n\nfunction MenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuRadioItemProps) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span\n data-slot=\"menu-radio-item-indicator\"\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n >\n <MenuPrimitive.RadioItemIndicator>\n <CheckIcon />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n )\n}\n\nfunction MenuSeparator({ className, ...props }: MenuSeparatorProps) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"menu-separator\"\n className={cn(\n \"bg-border -mx-1 my-1 h-px\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenuShortcut({ className, ...props }: MenuShortcutProps) {\n return (\n <span\n data-slot=\"menu-shortcut\"\n className={cn(\n \"text-muted-foreground group-focus/menu-item:text-accent-foreground ml-auto text-xs tracking-widest\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n Menu,\n MenuPortal,\n MenuTrigger,\n MenuContent,\n MenuGroup,\n MenuLabel,\n MenuItem,\n MenuCheckboxItem,\n MenuRadioGroup,\n MenuRadioItem,\n MenuSeparator,\n MenuShortcut,\n MenuSub,\n MenuSubTrigger,\n MenuSubContent,\n}\n"]}
1
+ {"version":3,"sources":["../src/menu.tsx"],"names":["MenuPrimitive"],"mappings":";;;;;AAsDA,SAAS,KAAK,KAAA,EAAkB;AAC9B,EAAA,2BAAQA,MAAA,CAAc,IAAA,EAAd,EAAmB,WAAA,EAAU,MAAA,EAAQ,GAAG,KAAA,EAAO,CAAA;AACzD;AAEA,SAAS,WAAW,KAAA,EAAwB;AAC1C,EAAA,2BAAQA,MAAA,CAAc,MAAA,EAAd,EAAqB,WAAA,EAAU,aAAA,EAAe,GAAG,KAAA,EAAO,CAAA;AAClE;AAEA,SAAS,YAAY,KAAA,EAAyB;AAC5C,EAAA,2BAAQA,MAAA,CAAc,OAAA,EAAd,EAAsB,WAAA,EAAU,cAAA,EAAgB,GAAG,KAAA,EAAO,CAAA;AACpE;AAEA,SAAS,WAAA,CAAY;AAAA,EACnB,KAAA,GAAQ,OAAA;AAAA,EACR,WAAA,GAAc,CAAA;AAAA,EACd,IAAA,GAAO,QAAA;AAAA,EACP,UAAA,GAAa,CAAA;AAAA,EACb,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,2BACG,UAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,IAACA,MAAA,CAAc,UAAA;AAAA,IAAd;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,SAAA,EAAU,2BAAA;AAAA,MACV,KAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAACA,MAAA,CAAc,KAAA;AAAA,QAAd;AAAA,UACC,WAAA,EAAU,cAAA;AAAA,UACV,SAAA,EAAW,EAAA;AAAA,YACT,unBAAA;AAAA,YACA;AAAA,WACF;AAAA,UACC,GAAG;AAAA;AAAA;AACN;AAAA,GACF,EACF,CAAA;AAEJ;AAEA,SAAS,UAAU,KAAA,EAAuB;AACxC,EAAA,2BAAQA,MAAA,CAAc,KAAA,EAAd,EAAoB,WAAA,EAAU,YAAA,EAAc,GAAG,KAAA,EAAO,CAAA;AAChE;AAEA,SAAS,SAAA,CAAU;AAAA,EACjB,SAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,uBACE,GAAA;AAAA,IAACA,MAAA,CAAc,UAAA;AAAA,IAAd;AAAA,MACC,WAAA,EAAU,YAAA;AAAA,MACV,YAAA,EAAY,KAAA;AAAA,MACZ,SAAA,EAAW,EAAA;AAAA,QACT,uEAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,QAAA,CAAS;AAAA,EAChB,SAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,GAAG;AACL,CAAA,EAAkB;AAChB,EAAA,uBACE,GAAA;AAAA,IAACA,MAAA,CAAc,IAAA;AAAA,IAAd;AAAA,MACC,WAAA,EAAU,WAAA;AAAA,MACV,YAAA,EAAY,KAAA;AAAA,MACZ,cAAA,EAAc,OAAA;AAAA,MACd,SAAA,EAAW,EAAA;AAAA,QACT,moBAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,QAAQ,KAAA,EAAqB;AACpC,EAAA,2BAAQA,MAAA,CAAc,WAAA,EAAd,EAA0B,WAAA,EAAU,UAAA,EAAY,GAAG,KAAA,EAAO,CAAA;AACpE;AAEA,SAAS,cAAA,CAAe;AAAA,EACtB,SAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,uBACE,IAAA;AAAA,IAACA,MAAA,CAAc,cAAA;AAAA,IAAd;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,YAAA,EAAY,KAAA;AAAA,MACZ,SAAA,EAAW,EAAA;AAAA,QACT,waAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACD,GAAA,CAAC,gBAAA,EAAA,EAAiB,SAAA,EAAU,SAAA,EAAU;AAAA;AAAA;AAAA,GACxC;AAEJ;AAEA,SAAS,cAAA,CAAe;AAAA,EACtB,KAAA,GAAQ,OAAA;AAAA,EACR,WAAA,GAAc,EAAA;AAAA,EACd,IAAA,GAAO,OAAA;AAAA,EACP,UAAA,GAAa,CAAA;AAAA,EACb,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,uBACE,GAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,2BAAA,EAA6B,SAAS,CAAA;AAAA,MACpD,KAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0B;AACxB,EAAA,uBACE,IAAA;AAAA,IAACA,MAAA,CAAc,YAAA;AAAA,IAAd;AAAA,MACC,WAAA,EAAU,oBAAA;AAAA,MACV,YAAA,EAAY,KAAA;AAAA,MACZ,SAAA,EAAW,EAAA;AAAA,QACT,4VAAA;AAAA,QACA;AAAA,OACF;AAAA,MACA,OAAA;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,8BAAA;AAAA,YACV,SAAA,EAAU,uEAAA;AAAA,YAEV,8BAACA,MAAA,CAAc,qBAAA,EAAd,EACC,QAAA,kBAAA,GAAA,CAAC,aAAU,CAAA,EACb;AAAA;AAAA,SACF;AAAA,QACC;AAAA;AAAA;AAAA,GACH;AAEJ;AAEA,SAAS,eAAe,KAAA,EAA4B;AAClD,EAAA,2BAAQA,MAAA,CAAc,UAAA,EAAd,EAAyB,WAAA,EAAU,kBAAA,EAAoB,GAAG,KAAA,EAAO,CAAA;AAC3E;AAEA,SAAS,aAAA,CAAc;AAAA,EACrB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAuB;AACrB,EAAA,uBACE,IAAA;AAAA,IAACA,MAAA,CAAc,SAAA;AAAA,IAAd;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,YAAA,EAAY,KAAA;AAAA,MACZ,SAAA,EAAW,EAAA;AAAA,QACT,4VAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,WAAA,EAAU,2BAAA;AAAA,YACV,SAAA,EAAU,uEAAA;AAAA,YAEV,8BAACA,MAAA,CAAc,kBAAA,EAAd,EACC,QAAA,kBAAA,GAAA,CAAC,aAAU,CAAA,EACb;AAAA;AAAA,SACF;AAAA,QACC;AAAA;AAAA;AAAA,GACH;AAEJ;AAEA,SAAS,aAAA,CAAc,EAAE,SAAA,EAAW,GAAG,OAAM,EAAuB;AAClE,EAAA,uBACE,GAAA;AAAA,IAACA,MAAA,CAAc,SAAA;AAAA,IAAd;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,2BAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,YAAA,CAAa,EAAE,SAAA,EAAW,GAAG,OAAM,EAAsB;AAChE,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,eAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,oGAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-45VQAWIM.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\"\n\nimport { cn } from \"./lib/utils\"\n\nimport { ChevronRightIcon, CheckIcon } from \"./lib/internal-icons\"\n\ntype MenuProps = React.ComponentProps<typeof MenuPrimitive.Root>\n\ntype MenuPortalProps = React.ComponentProps<typeof MenuPrimitive.Portal>\n\ntype MenuTriggerProps = React.ComponentProps<typeof MenuPrimitive.Trigger>\n\ntype MenuContentProps = React.ComponentProps<typeof MenuPrimitive.Popup> &\n Pick<\n React.ComponentProps<typeof MenuPrimitive.Positioner>,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >\n\ntype MenuGroupProps = React.ComponentProps<typeof MenuPrimitive.Group>\n\ntype MenuLabelProps = React.ComponentProps<typeof MenuPrimitive.GroupLabel> & {\n inset?: boolean\n}\n\ntype MenuItemProps = React.ComponentProps<typeof MenuPrimitive.Item> & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}\n\ntype MenuSubProps = React.ComponentProps<typeof MenuPrimitive.SubmenuRoot>\n\ntype MenuSubTriggerProps = React.ComponentProps<typeof MenuPrimitive.SubmenuTrigger> & {\n inset?: boolean\n}\n\ntype MenuSubContentProps = MenuContentProps\n\ntype MenuCheckboxItemProps = React.ComponentProps<typeof MenuPrimitive.CheckboxItem> & {\n inset?: boolean\n}\n\ntype MenuRadioGroupProps = React.ComponentProps<typeof MenuPrimitive.RadioGroup>\n\ntype MenuRadioItemProps = React.ComponentProps<typeof MenuPrimitive.RadioItem> & {\n inset?: boolean\n}\n\ntype MenuSeparatorProps = React.ComponentProps<typeof MenuPrimitive.Separator>\n\ntype MenuShortcutProps = React.ComponentProps<\"span\">\n\nfunction Menu(props: MenuProps) {\n return <MenuPrimitive.Root data-slot=\"menu\" {...props} />\n}\n\nfunction MenuPortal(props: MenuPortalProps) {\n return <MenuPrimitive.Portal data-slot=\"menu-portal\" {...props} />\n}\n\nfunction MenuTrigger(props: MenuTriggerProps) {\n return <MenuPrimitive.Trigger data-slot=\"menu-trigger\" {...props} />\n}\n\nfunction MenuContent({\n align = \"start\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n className,\n ...props\n}: MenuContentProps) {\n return (\n <MenuPortal>\n <MenuPrimitive.Positioner\n data-slot=\"menu-positioner\"\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"menu-content\"\n className={cn(\n \"data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 z-50 max-h-(--available-height) w-auto min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg p-1 shadow-md ring-1 duration-100 outline-none data-closed:overflow-hidden\",\n className,\n )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPortal>\n )\n}\n\nfunction MenuGroup(props: MenuGroupProps) {\n return <MenuPrimitive.Group data-slot=\"menu-group\" {...props} />\n}\n\nfunction MenuLabel({\n className,\n inset,\n ...props\n}: MenuLabelProps) {\n return (\n <MenuPrimitive.GroupLabel\n data-slot=\"menu-label\"\n data-inset={inset}\n className={cn(\n \"text-muted-foreground px-1.5 py-1 text-xs font-medium data-inset:pl-7\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: MenuItemProps) {\n return (\n <MenuPrimitive.Item\n data-slot=\"menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground group/menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction MenuSub(props: MenuSubProps) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"menu-sub\" {...props} />\n}\n\nfunction MenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuSubTriggerProps) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-popup-open:bg-accent data-popup-open:text-accent-foreground flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </MenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction MenuSubContent({\n align = \"start\",\n alignOffset = -3,\n side = \"right\",\n sideOffset = 0,\n className,\n ...props\n}: MenuSubContentProps) {\n return (\n <MenuContent\n data-slot=\"menu-sub-content\"\n className={cn(\"w-auto min-w-24 shadow-lg\", className)}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n )\n}\n\nfunction MenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuCheckboxItemProps) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span\n data-slot=\"menu-checkbox-item-indicator\"\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n >\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n )\n}\n\nfunction MenuRadioGroup(props: MenuRadioGroupProps) {\n return <MenuPrimitive.RadioGroup data-slot=\"menu-radio-group\" {...props} />\n}\n\nfunction MenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuRadioItemProps) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-7 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span\n data-slot=\"menu-radio-item-indicator\"\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n >\n <MenuPrimitive.RadioItemIndicator>\n <CheckIcon />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n )\n}\n\nfunction MenuSeparator({ className, ...props }: MenuSeparatorProps) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"menu-separator\"\n className={cn(\n \"bg-border -mx-1 my-1 h-px\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenuShortcut({ className, ...props }: MenuShortcutProps) {\n return (\n <span\n data-slot=\"menu-shortcut\"\n className={cn(\n \"text-muted-foreground group-focus/menu-item:text-accent-foreground ml-auto text-xs tracking-widest\",\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n Menu,\n MenuPortal,\n MenuTrigger,\n MenuContent,\n MenuGroup,\n MenuLabel,\n MenuItem,\n MenuCheckboxItem,\n MenuRadioGroup,\n MenuRadioItem,\n MenuSeparator,\n MenuShortcut,\n MenuSub,\n MenuSubTrigger,\n MenuSubContent,\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { LoaderIcon } from './chunk-WJDWQFO3.js';
1
+ import { LoaderIcon } from './chunk-DIGOLJIR.js';
2
2
  import { cn } from './chunk-76UQO56T.js';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
 
@@ -7,5 +7,5 @@ function Spinner({ className, ...props }) {
7
7
  }
8
8
 
9
9
  export { Spinner };
10
- //# sourceMappingURL=chunk-ZOKFCJWM.js.map
11
- //# sourceMappingURL=chunk-ZOKFCJWM.js.map
10
+ //# sourceMappingURL=chunk-6Y7LPQMO.js.map
11
+ //# sourceMappingURL=chunk-6Y7LPQMO.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/spinner.tsx"],"names":[],"mappings":";;;;AAKA,SAAS,OAAA,CAAQ,EAAE,SAAA,EAAW,GAAG,OAAM,EAAiB;AACtD,EAAA,uBACE,GAAA,CAAC,UAAA,EAAA,EAAW,IAAA,EAAK,QAAA,EAAS,YAAA,EAAW,SAAA,EAAU,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAE/G","file":"chunk-ZOKFCJWM.js","sourcesContent":["import { cn } from \"./lib/utils\"\nimport { LoaderIcon } from \"./lib/internal-icons\"\n\ntype SpinnerProps = React.ComponentProps<\"svg\">\n\nfunction Spinner({ className, ...props }: SpinnerProps) {\n return (\n <LoaderIcon role=\"status\" aria-label=\"Loading\" className={cn(\"size-4 animate-spin\", className)} {...props} />\n )\n}\n\nexport { Spinner }\n"]}
1
+ {"version":3,"sources":["../src/spinner.tsx"],"names":[],"mappings":";;;;AAKA,SAAS,OAAA,CAAQ,EAAE,SAAA,EAAW,GAAG,OAAM,EAAiB;AACtD,EAAA,uBACE,GAAA,CAAC,UAAA,EAAA,EAAW,IAAA,EAAK,QAAA,EAAS,YAAA,EAAW,SAAA,EAAU,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO,CAAA;AAE/G","file":"chunk-6Y7LPQMO.js","sourcesContent":["import { cn } from \"./lib/utils\"\nimport { LoaderIcon } from \"./lib/internal-icons\"\n\ntype SpinnerProps = React.ComponentProps<\"svg\">\n\nfunction Spinner({ className, ...props }: SpinnerProps) {\n return (\n <LoaderIcon role=\"status\" aria-label=\"Loading\" className={cn(\"size-4 animate-spin\", className)} {...props} />\n )\n}\n\nexport { Spinner }\n"]}
@@ -0,0 +1,17 @@
1
+ import { cn } from './chunk-76UQO56T.js';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ function Skeleton({ className, ...props }) {
5
+ return /* @__PURE__ */ jsx(
6
+ "div",
7
+ {
8
+ "data-slot": "skeleton",
9
+ className: cn("bg-muted animate-pulse rounded-md", className),
10
+ ...props
11
+ }
12
+ );
13
+ }
14
+
15
+ export { Skeleton };
16
+ //# sourceMappingURL=chunk-7F4MPMLJ.js.map
17
+ //# sourceMappingURL=chunk-7F4MPMLJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/skeleton.tsx"],"names":[],"mappings":";;;AAIA,SAAS,QAAA,CAAS,EAAE,SAAA,EAAW,GAAG,OAAM,EAAkB;AACxD,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,UAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,mCAAA,EAAqC,SAAS,CAAA;AAAA,MAC3D,GAAG;AAAA;AAAA,GACN;AAEJ","file":"chunk-7F4MPMLJ.js","sourcesContent":["import { cn } from \"./lib/utils\"\n\ntype SkeletonProps = React.ComponentProps<\"div\">\n\nfunction Skeleton({ className, ...props }: SkeletonProps) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"bg-muted animate-pulse rounded-md\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n"]}
@@ -0,0 +1,66 @@
1
+ import { cn } from './chunk-76UQO56T.js';
2
+ import * as React from 'react';
3
+ import { Tooltip as Tooltip$1 } from '@base-ui/react/tooltip';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ function TooltipProvider({ delay = 0, ...props }) {
7
+ return /* @__PURE__ */ jsx(
8
+ Tooltip$1.Provider,
9
+ {
10
+ "data-slot": "tooltip-provider",
11
+ delay,
12
+ ...props
13
+ }
14
+ );
15
+ }
16
+ function Tooltip(props) {
17
+ return /* @__PURE__ */ jsx(Tooltip$1.Root, { "data-slot": "tooltip", ...props });
18
+ }
19
+ function TooltipTrigger({ children, ...props }) {
20
+ if (React.isValidElement(children)) {
21
+ return /* @__PURE__ */ jsx(Tooltip$1.Trigger, { "data-slot": "tooltip-trigger", render: children, ...props });
22
+ }
23
+ if (process.env.NODE_ENV === "development" && children != null) {
24
+ console.warn("[TooltipTrigger] Children must be a valid React element, not raw text. Wrap text in a <span> or <button>.");
25
+ }
26
+ return /* @__PURE__ */ jsx(Tooltip$1.Trigger, { "data-slot": "tooltip-trigger", ...props, children });
27
+ }
28
+ function TooltipContent({
29
+ className,
30
+ positionerClassName,
31
+ side = "top",
32
+ sideOffset = 4,
33
+ align = "center",
34
+ alignOffset = 0,
35
+ anchor,
36
+ children,
37
+ ...props
38
+ }) {
39
+ return /* @__PURE__ */ jsx(Tooltip$1.Portal, { children: /* @__PURE__ */ jsx(
40
+ Tooltip$1.Positioner,
41
+ {
42
+ anchor,
43
+ align,
44
+ alignOffset,
45
+ side,
46
+ sideOffset,
47
+ className: cn("isolate z-50", positionerClassName),
48
+ children: /* @__PURE__ */ jsx(
49
+ Tooltip$1.Popup,
50
+ {
51
+ "data-slot": "tooltip-content",
52
+ className: cn(
53
+ "data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 bg-foreground text-background z-50 w-fit max-w-xs origin-(--transform-origin) rounded-md px-3 py-1.5 text-xs",
54
+ className
55
+ ),
56
+ ...props,
57
+ children
58
+ }
59
+ )
60
+ }
61
+ ) });
62
+ }
63
+
64
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
65
+ //# sourceMappingURL=chunk-7OIQ6YBK.js.map
66
+ //# sourceMappingURL=chunk-7OIQ6YBK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tooltip.tsx"],"names":["TooltipPrimitive"],"mappings":";;;;;AAsBA,SAAS,gBAAgB,EAAE,KAAA,GAAQ,CAAA,EAAG,GAAG,OAAM,EAAyB;AACtE,EAAA,uBACE,GAAA;AAAA,IAACA,SAAA,CAAiB,QAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,KAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,QAAQ,KAAA,EAAqB;AACpC,EAAA,2BAAQA,SAAA,CAAiB,IAAA,EAAjB,EAAsB,WAAA,EAAU,SAAA,EAAW,GAAG,KAAA,EAAO,CAAA;AAC/D;AAEA,SAAS,cAAA,CAAe,EAAE,QAAA,EAAU,GAAG,OAAM,EAAwB;AAGnE,EAAA,IAAU,KAAA,CAAA,cAAA,CAAe,QAAQ,CAAA,EAAG;AAClC,IAAA,uBAAO,GAAA,CAACA,UAAiB,OAAA,EAAjB,EAAyB,aAAU,iBAAA,EAAkB,MAAA,EAAQ,QAAA,EAAW,GAAG,KAAA,EAAO,CAAA;AAAA,EAC5F;AAGA,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,aAAA,IAAiB,YAAY,IAAA,EAAM;AAC9D,IAAA,OAAA,CAAQ,KAAK,2GAA2G,CAAA;AAAA,EAC1H;AAEA,EAAA,uBAAO,GAAA,CAACA,UAAiB,OAAA,EAAjB,EAAyB,aAAU,iBAAA,EAAmB,GAAG,OAAQ,QAAA,EAAS,CAAA;AACpF;AAEA,SAAS,cAAA,CAAe;AAAA,EACtB,SAAA;AAAA,EACA,mBAAA;AAAA,EACA,IAAA,GAAO,KAAA;AAAA,EACP,UAAA,GAAa,CAAA;AAAA,EACb,KAAA,GAAQ,QAAA;AAAA,EACR,WAAA,GAAc,CAAA;AAAA,EACd,MAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,uBACE,GAAA,CAACA,SAAA,CAAiB,MAAA,EAAjB,EACC,QAAA,kBAAA,GAAA;AAAA,IAACA,SAAA,CAAiB,UAAA;AAAA,IAAjB;AAAA,MACC,MAAA;AAAA,MACA,KAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,cAAA,EAAgB,mBAAmB,CAAA;AAAA,MAEjD,QAAA,kBAAA,GAAA;AAAA,QAACA,SAAA,CAAiB,KAAA;AAAA,QAAjB;AAAA,UACC,WAAA,EAAU,iBAAA;AAAA,UACV,SAAA,EAAW,EAAA;AAAA,YACT,wlBAAA;AAAA,YACA;AAAA,WACF;AAAA,UACC,GAAG,KAAA;AAAA,UAEH;AAAA;AAAA;AACH;AAAA,GACF,EACF,CAAA;AAEJ","file":"chunk-7OIQ6YBK.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\"\n\nimport { cn } from \"./lib/utils\"\n\ntype TooltipProviderProps = React.ComponentProps<typeof TooltipPrimitive.Provider>\n\ntype TooltipProps = React.ComponentProps<typeof TooltipPrimitive.Root>\n\ntype TooltipTriggerProps = React.ComponentProps<typeof TooltipPrimitive.Trigger>\n\ntype TooltipContentProps = React.ComponentProps<typeof TooltipPrimitive.Popup> & {\n side?: React.ComponentProps<typeof TooltipPrimitive.Positioner>[\"side\"];\n sideOffset?: React.ComponentProps<typeof TooltipPrimitive.Positioner>[\"sideOffset\"];\n align?: React.ComponentProps<typeof TooltipPrimitive.Positioner>[\"align\"];\n alignOffset?: React.ComponentProps<typeof TooltipPrimitive.Positioner>[\"alignOffset\"];\n anchor?: React.ComponentProps<typeof TooltipPrimitive.Positioner>[\"anchor\"];\n positionerClassName?: string;\n}\n\nfunction TooltipProvider({ delay = 0, ...props }: TooltipProviderProps) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delay={delay}\n {...props}\n />\n )\n}\n\nfunction Tooltip(props: TooltipProps) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({ children, ...props }: TooltipTriggerProps) {\n // If children is a valid React element, use it as the render target\n // This avoids nested button issues when wrapping Button components\n if (React.isValidElement(children)) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" render={children} {...props} />\n }\n\n // Raw text/primitives not supported - warn in development\n if (process.env.NODE_ENV === \"development\" && children != null) {\n console.warn(\"[TooltipTrigger] Children must be a valid React element, not raw text. Wrap text in a <span> or <button>.\")\n }\n\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props}>{children}</TooltipPrimitive.Trigger>\n}\n\nfunction TooltipContent({\n className,\n positionerClassName,\n side = \"top\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n anchor,\n children,\n ...props\n}: TooltipContentProps) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n anchor={anchor}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className={cn(\"isolate z-50\", positionerClassName)}\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n \"data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 bg-foreground text-background z-50 w-fit max-w-xs origin-(--transform-origin) rounded-md px-3 py-1.5 text-xs\",\n className,\n )}\n {...props}\n >\n {children}\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n TooltipProvider,\n}\n"]}
@@ -49,6 +49,12 @@ function ChevronsUpDownIcon(props) {
49
49
  /* @__PURE__ */ jsx("path", { d: "m7 9 5-5 5 5" })
50
50
  ] });
51
51
  }
52
+ function SidebarPanelIcon(props) {
53
+ return /* @__PURE__ */ jsxs("svg", { ...SVG_BASE, ...props, children: [
54
+ /* @__PURE__ */ jsx("rect", { width: "18", height: "18", x: "3", y: "3", rx: "2" }),
55
+ /* @__PURE__ */ jsx("path", { d: "M9 3v18" })
56
+ ] });
57
+ }
52
58
  var LoaderIcon = forwardRef(
53
59
  function LoaderIcon2(props, ref) {
54
60
  return /* @__PURE__ */ jsxs("svg", { ...SVG_BASE, ref, ...props, children: [
@@ -94,6 +100,6 @@ function StarIcon(props) {
94
100
  return /* @__PURE__ */ jsx("svg", { ...SVG_BASE, ...props, children: /* @__PURE__ */ jsx("path", { d: "M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z" }) });
95
101
  }
96
102
 
97
- export { AlertTriangleIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CloseIcon, EllipsisIcon, ErrorCircleIcon, InfoCircleIcon, LoaderIcon, MinusIcon, StarIcon, SuccessCircleIcon };
98
- //# sourceMappingURL=chunk-WJDWQFO3.js.map
99
- //# sourceMappingURL=chunk-WJDWQFO3.js.map
103
+ export { AlertTriangleIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, ChevronsUpDownIcon, CloseIcon, EllipsisIcon, ErrorCircleIcon, InfoCircleIcon, LoaderIcon, MinusIcon, SidebarPanelIcon, StarIcon, SuccessCircleIcon };
104
+ //# sourceMappingURL=chunk-DIGOLJIR.js.map
105
+ //# sourceMappingURL=chunk-DIGOLJIR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/internal-icons.tsx"],"names":["LoaderIcon"],"mappings":"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","file":"chunk-DIGOLJIR.js","sourcesContent":["/**\n * Internal-only SVG icons used by wave-ui components.\n *\n * NOT a public entry point — bundled into shared chunks via tsup splitting.\n */\n\nimport { forwardRef } from 'react';\n\ntype IconProps = React.SVGProps<SVGSVGElement>;\n\nconst SVG_BASE = {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n} as const;\n\n// ---------------------------------------------------------------------------\n// Navigation chevrons\n// ---------------------------------------------------------------------------\n\nexport function ChevronDownIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n );\n}\n\nexport function ChevronUpIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"m18 15-6-6-6 6\" />\n </svg>\n );\n}\n\nexport function ChevronLeftIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n );\n}\n\n\nexport function ChevronRightIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Actions\n// ---------------------------------------------------------------------------\n\nexport function CheckIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n\nexport function CloseIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n}\n\nexport function MinusIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"M5 12h14\" />\n </svg>\n );\n}\n\nexport function EllipsisIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n );\n}\n\nexport function EllipsisVerticalIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"12\" cy=\"5\" r=\"1\" />\n <circle cx=\"12\" cy=\"19\" r=\"1\" />\n </svg>\n );\n}\n\nexport function ChevronsUpDownIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"m7 15 5 5 5-5\" />\n <path d=\"m7 9 5-5 5 5\" />\n </svg>\n );\n}\n\n// ---------------------------------------------------------------------------\n// UI chrome\n// ---------------------------------------------------------------------------\n\nexport function SidebarPanelIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M9 3v18\" />\n </svg>\n );\n}\n\n/** `forwardRef` because `Spinner` exposes this as `React.ComponentProps<\"svg\">`. */\nexport const LoaderIcon = forwardRef<SVGSVGElement, IconProps>(\n function LoaderIcon(props, ref) {\n return (\n <svg {...SVG_BASE} ref={ref} {...props}>\n <path d=\"M12 2v4\" />\n <path d=\"m16.2 7.8 2.9-2.9\" />\n <path d=\"M18 12h4\" />\n <path d=\"m16.2 16.2 2.9 2.9\" />\n <path d=\"M12 18v4\" />\n <path d=\"m4.9 19.1 2.9-2.9\" />\n <path d=\"M2 12h4\" />\n <path d=\"m4.9 4.9 2.9 2.9\" />\n </svg>\n );\n },\n);\n\n// ---------------------------------------------------------------------------\n// Toast status icons\n// ---------------------------------------------------------------------------\n\nexport function AlertTriangleIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\" />\n <path d=\"M12 9v4\" />\n <path d=\"M12 17h.01\" />\n </svg>\n );\n}\n\nexport function SuccessCircleIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"M21.801 10A10 10 0 1 1 17 3.335\" />\n <path d=\"m9 11 3 3L22 4\" />\n </svg>\n );\n}\n\nexport function InfoCircleIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 16v-4\" />\n <path d=\"M12 8h.01\" />\n </svg>\n );\n}\n\nexport function ErrorCircleIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m15 9-6 6\" />\n <path d=\"m9 9 6 6\" />\n </svg>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Social icons\n// ---------------------------------------------------------------------------\n\nexport function TrashIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\" />\n <path d=\"M3 6h18\" />\n <path d=\"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\" />\n </svg>\n );\n}\n\nexport function StarIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\" />\n </svg>\n );\n}\n"]}
@@ -0,0 +1,143 @@
1
+ import { Button } from './chunk-OUFYQLVN.js';
2
+ import { CloseIcon } from './chunk-DIGOLJIR.js';
3
+ import { cn } from './chunk-76UQO56T.js';
4
+ import { DrawerPreview } from '@base-ui/react/drawer';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ function Drawer({ ...props }) {
8
+ return /* @__PURE__ */ jsx(DrawerPreview.Root, { "data-slot": "drawer", ...props });
9
+ }
10
+ function DrawerTrigger({ ...props }) {
11
+ return /* @__PURE__ */ jsx(DrawerPreview.Trigger, { "data-slot": "drawer-trigger", ...props });
12
+ }
13
+ function DrawerPortal({ ...props }) {
14
+ return /* @__PURE__ */ jsx(DrawerPreview.Portal, { "data-slot": "drawer-portal", ...props });
15
+ }
16
+ function DrawerClose({ ...props }) {
17
+ return /* @__PURE__ */ jsx(DrawerPreview.Close, { "data-slot": "drawer-close", ...props });
18
+ }
19
+ function DrawerOverlay({ className, ...props }) {
20
+ return /* @__PURE__ */ jsx(
21
+ DrawerPreview.Backdrop,
22
+ {
23
+ "data-slot": "drawer-overlay",
24
+ className: cn(
25
+ "fixed inset-0 z-50 bg-black/10 transition-opacity duration-300 data-[starting-style]:opacity-0 data-[ending-style]:opacity-0 supports-backdrop-filter:backdrop-blur-xs",
26
+ className
27
+ ),
28
+ ...props
29
+ }
30
+ );
31
+ }
32
+ function DrawerContent({
33
+ className,
34
+ children,
35
+ showCloseButton = false,
36
+ ...props
37
+ }) {
38
+ return /* @__PURE__ */ jsxs(DrawerPortal, { children: [
39
+ /* @__PURE__ */ jsx(DrawerOverlay, {}),
40
+ /* @__PURE__ */ jsxs(
41
+ DrawerPreview.Popup,
42
+ {
43
+ "data-slot": "drawer-content",
44
+ className: cn(
45
+ // Base layout & appearance
46
+ "group/drawer-content bg-background fixed z-50 flex flex-col overflow-y-auto text-sm shadow-lg outline-none",
47
+ // Transition — animate translate, disable during swipe
48
+ "transition-[translate] duration-300 ease-out data-[swiping]:duration-0",
49
+ // Bottom drawer (swipeDirection="down")
50
+ "data-[swipe-direction=down]:inset-x-0 data-[swipe-direction=down]:bottom-0 data-[swipe-direction=down]:mt-24 data-[swipe-direction=down]:max-h-[80vh] data-[swipe-direction=down]:rounded-t-xl data-[swipe-direction=down]:border-t",
51
+ // Top drawer (swipeDirection="up")
52
+ "data-[swipe-direction=up]:inset-x-0 data-[swipe-direction=up]:top-0 data-[swipe-direction=up]:mb-24 data-[swipe-direction=up]:max-h-[80vh] data-[swipe-direction=up]:rounded-b-xl data-[swipe-direction=up]:border-b",
53
+ // Left drawer (swipeDirection="left")
54
+ "data-[swipe-direction=left]:inset-y-0 data-[swipe-direction=left]:left-0 data-[swipe-direction=left]:w-3/4 data-[swipe-direction=left]:rounded-r-xl data-[swipe-direction=left]:border-r data-[swipe-direction=left]:sm:max-w-sm",
55
+ // Right drawer (swipeDirection="right")
56
+ "data-[swipe-direction=right]:inset-y-0 data-[swipe-direction=right]:right-0 data-[swipe-direction=right]:w-3/4 data-[swipe-direction=right]:rounded-l-xl data-[swipe-direction=right]:border-l data-[swipe-direction=right]:sm:max-w-sm",
57
+ // Enter/exit slide — bottom
58
+ "data-[swipe-direction=down]:data-[starting-style]:translate-y-full data-[swipe-direction=down]:data-[ending-style]:translate-y-full",
59
+ // Enter/exit slide — top
60
+ "data-[swipe-direction=up]:data-[starting-style]:-translate-y-full data-[swipe-direction=up]:data-[ending-style]:-translate-y-full",
61
+ // Enter/exit slide — left
62
+ "data-[swipe-direction=left]:data-[starting-style]:-translate-x-full data-[swipe-direction=left]:data-[ending-style]:-translate-x-full",
63
+ // Enter/exit slide — right
64
+ "data-[swipe-direction=right]:data-[starting-style]:translate-x-full data-[swipe-direction=right]:data-[ending-style]:translate-x-full",
65
+ className
66
+ ),
67
+ ...props,
68
+ children: [
69
+ /* @__PURE__ */ jsx("div", { className: "bg-muted mx-auto mt-4 hidden h-1 w-[100px] shrink-0 rounded-full group-data-[swipe-direction=down]/drawer-content:block" }),
70
+ children,
71
+ showCloseButton && /* @__PURE__ */ jsxs(
72
+ DrawerPreview.Close,
73
+ {
74
+ "data-slot": "drawer-close",
75
+ render: /* @__PURE__ */ jsx(
76
+ Button,
77
+ {
78
+ variant: "ghost",
79
+ className: "absolute top-2 right-2",
80
+ size: "icon-sm"
81
+ }
82
+ ),
83
+ children: [
84
+ /* @__PURE__ */ jsx(CloseIcon, {}),
85
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
86
+ ]
87
+ }
88
+ )
89
+ ]
90
+ }
91
+ )
92
+ ] });
93
+ }
94
+ function DrawerHeader({ className, ...props }) {
95
+ return /* @__PURE__ */ jsx(
96
+ "div",
97
+ {
98
+ "data-slot": "drawer-header",
99
+ className: cn(
100
+ "flex flex-col gap-0.5 p-4 group-data-[swipe-direction=down]/drawer-content:text-center group-data-[swipe-direction=up]/drawer-content:text-center md:text-left",
101
+ className
102
+ ),
103
+ ...props
104
+ }
105
+ );
106
+ }
107
+ function DrawerFooter({ className, ...props }) {
108
+ return /* @__PURE__ */ jsx(
109
+ "div",
110
+ {
111
+ "data-slot": "drawer-footer",
112
+ className: cn("mt-auto flex flex-col gap-2 p-4", className),
113
+ ...props
114
+ }
115
+ );
116
+ }
117
+ function DrawerTitle({ className, ...props }) {
118
+ return /* @__PURE__ */ jsx(
119
+ DrawerPreview.Title,
120
+ {
121
+ "data-slot": "drawer-title",
122
+ className: cn("text-foreground text-base font-medium", className),
123
+ ...props
124
+ }
125
+ );
126
+ }
127
+ function DrawerDescription({
128
+ className,
129
+ ...props
130
+ }) {
131
+ return /* @__PURE__ */ jsx(
132
+ DrawerPreview.Description,
133
+ {
134
+ "data-slot": "drawer-description",
135
+ className: cn("text-muted-foreground text-sm", className),
136
+ ...props
137
+ }
138
+ );
139
+ }
140
+
141
+ export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger };
142
+ //# sourceMappingURL=chunk-PVX4VQFJ.js.map
143
+ //# sourceMappingURL=chunk-PVX4VQFJ.js.map