@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.
- package/README.md +72 -52
- package/dist/accordion.js +1 -1
- package/dist/breadcrumb.js +1 -1
- package/dist/button.d.ts +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chunk-PGXELRT4.js → chunk-45VQAWIM.js} +3 -3
- package/dist/{chunk-PGXELRT4.js.map → chunk-45VQAWIM.js.map} +1 -1
- package/dist/{chunk-ZOKFCJWM.js → chunk-6Y7LPQMO.js} +3 -3
- package/dist/{chunk-ZOKFCJWM.js.map → chunk-6Y7LPQMO.js.map} +1 -1
- package/dist/chunk-7F4MPMLJ.js +17 -0
- package/dist/chunk-7F4MPMLJ.js.map +1 -0
- package/dist/chunk-7OIQ6YBK.js +66 -0
- package/dist/chunk-7OIQ6YBK.js.map +1 -0
- package/dist/{chunk-WJDWQFO3.js → chunk-DIGOLJIR.js} +9 -3
- package/dist/chunk-DIGOLJIR.js.map +1 -0
- package/dist/chunk-PVX4VQFJ.js +143 -0
- package/dist/chunk-PVX4VQFJ.js.map +1 -0
- package/dist/chunk-ZZZH3JGW.js +23 -0
- package/dist/chunk-ZZZH3JGW.js.map +1 -0
- package/dist/combobox.js +1 -1
- package/dist/context-menu.js +1 -1
- package/dist/dialog.js +1 -1
- package/dist/drawer.js +4 -141
- package/dist/drawer.js.map +1 -1
- package/dist/hooks/use-mobile.d.ts +6 -1
- package/dist/hooks/use-mobile.js +1 -18
- package/dist/hooks/use-mobile.js.map +1 -1
- package/dist/infinite-scroll.js +2 -2
- package/dist/input-group.d.ts +1 -1
- package/dist/input-otp.js +1 -1
- package/dist/item.d.ts +1 -1
- package/dist/masonry.js +1 -1
- package/dist/menu.js +2 -2
- package/dist/menubar.js +2 -2
- package/dist/pagination.js +1 -1
- package/dist/select.js +1 -1
- package/dist/sidebar.d.ts +112 -0
- package/dist/sidebar.js +619 -0
- package/dist/sidebar.js.map +1 -0
- package/dist/skeleton.js +2 -15
- package/dist/skeleton.js.map +1 -1
- package/dist/spinner.js +2 -2
- package/dist/styles.css +196 -0
- package/dist/toast.js +1 -1
- package/dist/tooltip.js +2 -64
- package/dist/tooltip.js.map +1 -1
- package/package.json +6 -3
- package/dist/chunk-WJDWQFO3.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @waveso/ui
|
|
2
2
|
|
|
3
|
-
|
|
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
|
-
###
|
|
33
|
+
### Button
|
|
22
34
|
|
|
23
|
-
|
|
35
|
+
8 variants, 8 sizes, built on Base UI's `Button` primitive with full keyboard and ARIA support.
|
|
24
36
|
|
|
25
|
-
```
|
|
26
|
-
|
|
37
|
+
```tsx
|
|
38
|
+
import { Button } from '@waveso/ui/button';
|
|
27
39
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
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
|
-
#
|
|
99
|
-
npm run
|
|
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)
|
|
139
|
+
This project uses [Changesets](https://github.com/changesets/changesets) with GitHub Actions.
|
|
126
140
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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
|
-
|
|
132
|
-
|
|
145
|
+
<details>
|
|
146
|
+
<summary>Manual release (without CI)</summary>
|
|
133
147
|
|
|
134
|
-
|
|
135
|
-
npm
|
|
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
|
-
|
|
158
|
+
</details>
|
|
139
159
|
|
|
140
160
|
## License
|
|
141
161
|
|
package/dist/accordion.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChevronDownIcon, ChevronUpIcon } from './chunk-
|
|
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';
|
package/dist/breadcrumb.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChevronRightIcon, EllipsisIcon } from './chunk-
|
|
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" | "
|
|
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 { ChevronRightIcon, CheckIcon } from './chunk-
|
|
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-
|
|
228
|
-
//# sourceMappingURL=chunk-
|
|
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":"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","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-
|
|
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-
|
|
11
|
-
//# sourceMappingURL=chunk-
|
|
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-
|
|
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-
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
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
|