@waveso/ui 0.0.2 → 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 (171) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +72 -52
  3. package/dist/accordion.d.ts +14 -0
  4. package/dist/accordion.js +81 -0
  5. package/dist/accordion.js.map +1 -0
  6. package/dist/alert.d.ts +8 -4
  7. package/dist/alert.js.map +1 -1
  8. package/dist/aspect-ratio.d.ts +10 -0
  9. package/dist/aspect-ratio.js +18 -0
  10. package/dist/aspect-ratio.js.map +1 -0
  11. package/dist/autocomplete.d.ts +48 -0
  12. package/dist/autocomplete.js +222 -0
  13. package/dist/autocomplete.js.map +1 -0
  14. package/dist/avatar.d.ts +13 -7
  15. package/dist/avatar.js.map +1 -1
  16. package/dist/badge.d.ts +3 -2
  17. package/dist/badge.js +1 -1
  18. package/dist/badge.js.map +1 -1
  19. package/dist/breadcrumb.d.ts +20 -0
  20. package/dist/breadcrumb.js +123 -0
  21. package/dist/breadcrumb.js.map +1 -0
  22. package/dist/button-group.d.ts +19 -0
  23. package/dist/button-group.js +81 -0
  24. package/dist/button-group.js.map +1 -0
  25. package/dist/card.d.ts +15 -8
  26. package/dist/card.js.map +1 -1
  27. package/dist/checkbox.js +1 -1
  28. package/dist/chunk-45VQAWIM.js +228 -0
  29. package/dist/chunk-45VQAWIM.js.map +1 -0
  30. package/dist/chunk-6Y7LPQMO.js +11 -0
  31. package/dist/chunk-6Y7LPQMO.js.map +1 -0
  32. package/dist/chunk-7F4MPMLJ.js +17 -0
  33. package/dist/chunk-7F4MPMLJ.js.map +1 -0
  34. package/dist/chunk-7OIQ6YBK.js +66 -0
  35. package/dist/chunk-7OIQ6YBK.js.map +1 -0
  36. package/dist/chunk-D5XPEJ6T.js +36 -0
  37. package/dist/chunk-D5XPEJ6T.js.map +1 -0
  38. package/dist/chunk-DIGOLJIR.js +105 -0
  39. package/dist/chunk-DIGOLJIR.js.map +1 -0
  40. package/dist/chunk-IQ7YQ5XA.js +141 -0
  41. package/dist/chunk-IQ7YQ5XA.js.map +1 -0
  42. package/dist/chunk-NCHHHWTB.js +85 -0
  43. package/dist/chunk-NCHHHWTB.js.map +1 -0
  44. package/dist/chunk-PVX4VQFJ.js +143 -0
  45. package/dist/chunk-PVX4VQFJ.js.map +1 -0
  46. package/dist/chunk-QFSEK4M6.js +22 -0
  47. package/dist/chunk-QFSEK4M6.js.map +1 -0
  48. package/dist/chunk-QRW37LRP.js +25 -0
  49. package/dist/chunk-QRW37LRP.js.map +1 -0
  50. package/dist/chunk-RPQHL6C5.js +26 -0
  51. package/dist/chunk-RPQHL6C5.js.map +1 -0
  52. package/dist/chunk-YTSQQTSF.js +44 -0
  53. package/dist/chunk-YTSQQTSF.js.map +1 -0
  54. package/dist/chunk-ZZZH3JGW.js +23 -0
  55. package/dist/chunk-ZZZH3JGW.js.map +1 -0
  56. package/dist/collapsible.d.ts +12 -0
  57. package/dist/collapsible.js +16 -0
  58. package/dist/collapsible.js.map +1 -0
  59. package/dist/combobox.d.ts +48 -0
  60. package/dist/combobox.js +281 -0
  61. package/dist/combobox.js.map +1 -0
  62. package/dist/context-menu.d.ts +47 -0
  63. package/dist/context-menu.js +193 -0
  64. package/dist/context-menu.js.map +1 -0
  65. package/dist/dialog.js +1 -1
  66. package/dist/direction.d.ts +1 -0
  67. package/dist/direction.js +3 -0
  68. package/dist/direction.js.map +1 -0
  69. package/dist/drawer.d.ts +29 -0
  70. package/dist/drawer.js +6 -0
  71. package/dist/drawer.js.map +1 -0
  72. package/dist/encrypted-text.d.ts +16 -0
  73. package/dist/encrypted-text.js +141 -0
  74. package/dist/encrypted-text.js.map +1 -0
  75. package/dist/field.d.ts +22 -0
  76. package/dist/field.js +4 -0
  77. package/dist/field.js.map +1 -0
  78. package/dist/form.d.ts +80 -0
  79. package/dist/form.js +108 -0
  80. package/dist/form.js.map +1 -0
  81. package/dist/hooks/use-mobile.d.ts +6 -1
  82. package/dist/hooks/use-mobile.js +1 -18
  83. package/dist/hooks/use-mobile.js.map +1 -1
  84. package/dist/infinite-scroll.d.ts +19 -0
  85. package/dist/infinite-scroll.js +102 -0
  86. package/dist/infinite-scroll.js.map +1 -0
  87. package/dist/input-group.d.ts +29 -0
  88. package/dist/input-group.js +7 -0
  89. package/dist/input-group.js.map +1 -0
  90. package/dist/input-otp.d.ts +18 -0
  91. package/dist/input-otp.js +79 -0
  92. package/dist/input-otp.js.map +1 -0
  93. package/dist/input.d.ts +2 -1
  94. package/dist/input.js +2 -20
  95. package/dist/input.js.map +1 -1
  96. package/dist/item.d.ts +37 -0
  97. package/dist/item.js +181 -0
  98. package/dist/item.js.map +1 -0
  99. package/dist/kbd.d.ts +8 -0
  100. package/dist/kbd.js +30 -0
  101. package/dist/kbd.js.map +1 -0
  102. package/dist/label.d.ts +2 -1
  103. package/dist/label.js.map +1 -1
  104. package/dist/masonry.d.ts +17 -0
  105. package/dist/masonry.js +235 -0
  106. package/dist/masonry.js.map +1 -0
  107. package/dist/menu.d.ts +47 -0
  108. package/dist/menu.js +5 -0
  109. package/dist/menu.js.map +1 -0
  110. package/dist/menubar.d.ts +40 -0
  111. package/dist/menubar.js +84 -0
  112. package/dist/menubar.js.map +1 -0
  113. package/dist/pagination.d.ts +29 -0
  114. package/dist/pagination.js +120 -0
  115. package/dist/pagination.js.map +1 -0
  116. package/dist/popover.d.ts +24 -0
  117. package/dist/popover.js +105 -0
  118. package/dist/popover.js.map +1 -0
  119. package/dist/preview-card.d.ts +17 -0
  120. package/dist/preview-card.js +70 -0
  121. package/dist/preview-card.js.map +1 -0
  122. package/dist/radio-group.d.ts +12 -0
  123. package/dist/radio-group.js +28 -0
  124. package/dist/radio-group.js.map +1 -0
  125. package/dist/radio.d.ts +10 -0
  126. package/dist/radio.js +4 -0
  127. package/dist/radio.js.map +1 -0
  128. package/dist/scroll-area.d.ts +10 -0
  129. package/dist/scroll-area.js +59 -0
  130. package/dist/scroll-area.js.map +1 -0
  131. package/dist/select.d.ts +36 -0
  132. package/dist/select.js +208 -0
  133. package/dist/select.js.map +1 -0
  134. package/dist/separator.js +2 -24
  135. package/dist/separator.js.map +1 -1
  136. package/dist/sidebar.d.ts +112 -0
  137. package/dist/sidebar.js +619 -0
  138. package/dist/sidebar.js.map +1 -0
  139. package/dist/skeleton.d.ts +2 -1
  140. package/dist/skeleton.js +2 -15
  141. package/dist/skeleton.js.map +1 -1
  142. package/dist/slider.d.ts +10 -0
  143. package/dist/slider.js +70 -0
  144. package/dist/slider.js.map +1 -0
  145. package/dist/spinner.d.ts +2 -1
  146. package/dist/spinner.js +3 -9
  147. package/dist/spinner.js.map +1 -1
  148. package/dist/styles.css +196 -0
  149. package/dist/table.d.ts +21 -0
  150. package/dist/table.js +106 -0
  151. package/dist/table.js.map +1 -0
  152. package/dist/tabs.d.ts +20 -0
  153. package/dist/tabs.js +82 -0
  154. package/dist/tabs.js.map +1 -0
  155. package/dist/textarea.js +2 -23
  156. package/dist/textarea.js.map +1 -1
  157. package/dist/toast.d.ts +57 -0
  158. package/dist/toast.js +239 -0
  159. package/dist/toast.js.map +1 -0
  160. package/dist/toggle-group.d.ts +17 -0
  161. package/dist/toggle-group.js +78 -0
  162. package/dist/toggle-group.js.map +1 -0
  163. package/dist/toggle.d.ts +14 -0
  164. package/dist/toggle.js +4 -0
  165. package/dist/toggle.js.map +1 -0
  166. package/dist/tooltip.d.ts +21 -0
  167. package/dist/tooltip.js +4 -0
  168. package/dist/tooltip.js.map +1 -0
  169. package/package.json +10 -3
  170. package/dist/chunk-L3UIJEIQ.js +0 -41
  171. package/dist/chunk-L3UIJEIQ.js.map +0 -1
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Wave
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @waveso/ui
2
2
 
3
- A React component library built on [Base UI](https://base-ui.com) primitives and [Tailwind CSS v4](https://tailwindcss.com). Ships unstyled, accessible components that you theme with CSS variables.
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 @@ A React component library built on [Base UI](https://base-ui.com) primitives and
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
 
@@ -0,0 +1,14 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Accordion as Accordion$1 } from '@base-ui/react/accordion';
4
+
5
+ type AccordionProps = React.ComponentProps<typeof Accordion$1.Root>;
6
+ type AccordionItemProps = React.ComponentProps<typeof Accordion$1.Item>;
7
+ type AccordionTriggerProps = React.ComponentProps<typeof Accordion$1.Trigger>;
8
+ type AccordionContentProps = React.ComponentProps<typeof Accordion$1.Panel>;
9
+ declare function Accordion({ className, ...props }: AccordionProps): react_jsx_runtime.JSX.Element;
10
+ declare function AccordionItem({ className, ...props }: AccordionItemProps): react_jsx_runtime.JSX.Element;
11
+ declare function AccordionTrigger({ className, children, ...props }: AccordionTriggerProps): react_jsx_runtime.JSX.Element;
12
+ declare function AccordionContent({ className, children, ...props }: AccordionContentProps): react_jsx_runtime.JSX.Element;
13
+
14
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
@@ -0,0 +1,81 @@
1
+ import { ChevronDownIcon, ChevronUpIcon } from './chunk-DIGOLJIR.js';
2
+ import { cn } from './chunk-76UQO56T.js';
3
+ import { Accordion as Accordion$1 } from '@base-ui/react/accordion';
4
+ import { jsx, jsxs } from 'react/jsx-runtime';
5
+
6
+ function Accordion({ className, ...props }) {
7
+ return /* @__PURE__ */ jsx(
8
+ Accordion$1.Root,
9
+ {
10
+ "data-slot": "accordion",
11
+ className: cn(
12
+ "overflow-hidden flex w-full flex-col",
13
+ className
14
+ ),
15
+ ...props
16
+ }
17
+ );
18
+ }
19
+ function AccordionItem({ className, ...props }) {
20
+ return /* @__PURE__ */ jsx(
21
+ Accordion$1.Item,
22
+ {
23
+ "data-slot": "accordion-item",
24
+ className: cn(
25
+ "not-last:border-b",
26
+ className
27
+ ),
28
+ ...props
29
+ }
30
+ );
31
+ }
32
+ function AccordionTrigger({
33
+ className,
34
+ children,
35
+ ...props
36
+ }) {
37
+ return /* @__PURE__ */ jsx(Accordion$1.Header, { "data-slot": "accordion-header", className: "flex", children: /* @__PURE__ */ jsxs(
38
+ Accordion$1.Trigger,
39
+ {
40
+ "data-slot": "accordion-trigger",
41
+ className: cn(
42
+ "focus-visible:ring-ring/50 focus-visible:border-ring focus-visible:after:border-ring **:data-[slot=accordion-trigger-icon]:text-muted-foreground group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-3 aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4",
43
+ className
44
+ ),
45
+ ...props,
46
+ children: [
47
+ children,
48
+ /* @__PURE__ */ jsx(ChevronDownIcon, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" }),
49
+ /* @__PURE__ */ jsx(ChevronUpIcon, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" })
50
+ ]
51
+ }
52
+ ) });
53
+ }
54
+ function AccordionContent({
55
+ className,
56
+ children,
57
+ ...props
58
+ }) {
59
+ return /* @__PURE__ */ jsx(
60
+ Accordion$1.Panel,
61
+ {
62
+ "data-slot": "accordion-content",
63
+ className: "data-open:animate-accordion-down data-closed:animate-accordion-up overflow-hidden text-sm",
64
+ ...props,
65
+ children: /* @__PURE__ */ jsx(
66
+ "div",
67
+ {
68
+ className: cn(
69
+ "[&_a]:hover:text-foreground h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4",
70
+ className
71
+ ),
72
+ children
73
+ }
74
+ )
75
+ }
76
+ );
77
+ }
78
+
79
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
80
+ //# sourceMappingURL=accordion.js.map
81
+ //# sourceMappingURL=accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/accordion.tsx"],"names":["AccordionPrimitive"],"mappings":";;;;;AAeA,SAAS,SAAA,CAAU,EAAE,SAAA,EAAW,GAAG,OAAM,EAAmB;AAC1D,EAAA,uBACE,GAAA;AAAA,IAACA,WAAA,CAAmB,IAAA;AAAA,IAAnB;AAAA,MACC,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,sCAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,aAAA,CAAc,EAAE,SAAA,EAAW,GAAG,OAAM,EAAuB;AAClE,EAAA,uBACE,GAAA;AAAA,IAACA,WAAA,CAAmB,IAAA;AAAA,IAAnB;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,mBAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0B;AACxB,EAAA,2BACGA,WAAA,CAAmB,MAAA,EAAnB,EAA0B,WAAA,EAAU,kBAAA,EAAmB,WAAU,MAAA,EAChE,QAAA,kBAAA,IAAA;AAAA,IAACA,WAAA,CAAmB,OAAA;AAAA,IAAnB;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,4fAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACD,GAAA,CAAC,eAAA,EAAA,EAAgB,WAAA,EAAU,wBAAA,EAAyB,WAAU,2EAAA,EAA4E,CAAA;AAAA,wBAC1I,GAAA,CAAC,aAAA,EAAA,EAAc,WAAA,EAAU,wBAAA,EAAyB,WAAU,kFAAA,EAAmF;AAAA;AAAA;AAAA,GACjJ,EACF,CAAA;AAEJ;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0B;AACxB,EAAA,uBACE,GAAA;AAAA,IAACA,WAAA,CAAmB,KAAA;AAAA,IAAnB;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAU,2FAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,EAAA;AAAA,YACT,yLAAA;AAAA,YACA;AAAA,WACF;AAAA,UAEC;AAAA;AAAA;AACH;AAAA,GACF;AAEJ","file":"accordion.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\n\nimport { Accordion as AccordionPrimitive } from \"@base-ui/react/accordion\"\n\nimport { cn } from \"./lib/utils\"\n\nimport { ChevronDownIcon, ChevronUpIcon } from \"./lib/internal-icons\"\n\ntype AccordionProps = React.ComponentProps<typeof AccordionPrimitive.Root>\ntype AccordionItemProps = React.ComponentProps<typeof AccordionPrimitive.Item>\ntype AccordionTriggerProps = React.ComponentProps<typeof AccordionPrimitive.Trigger>\ntype AccordionContentProps = React.ComponentProps<typeof AccordionPrimitive.Panel>\n\nfunction Accordion({ className, ...props }: AccordionProps) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\n \"overflow-hidden flex w-full flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({ className, ...props }: AccordionItemProps) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\n \"not-last:border-b\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: AccordionTriggerProps) {\n return (\n <AccordionPrimitive.Header data-slot=\"accordion-header\" className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"focus-visible:ring-ring/50 focus-visible:border-ring focus-visible:after:border-ring **:data-[slot=accordion-trigger-icon]:text-muted-foreground group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-3 aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\" />\n <ChevronUpIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: AccordionContentProps) {\n return (\n <AccordionPrimitive.Panel\n data-slot=\"accordion-content\"\n className=\"data-open:animate-accordion-down data-closed:animate-accordion-up overflow-hidden text-sm\"\n {...props}\n >\n <div\n className={cn(\n \"[&_a]:hover:text-foreground h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4\",\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Panel>\n )\n}\n\nexport {\n Accordion,\n AccordionItem,\n AccordionTrigger,\n AccordionContent,\n}\n"]}
package/dist/alert.d.ts CHANGED
@@ -6,9 +6,13 @@ import { VariantProps } from 'class-variance-authority';
6
6
  declare const alertVariants: (props?: ({
7
7
  variant?: "default" | "destructive" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
- declare function Alert({ className, variant, ...props }: React.ComponentProps<"div"> & VariantProps<typeof alertVariants>): react_jsx_runtime.JSX.Element;
10
- declare function AlertTitle({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
11
- declare function AlertDescription({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
12
- declare function AlertAction({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
9
+ type AlertProps = React.ComponentProps<"div"> & VariantProps<typeof alertVariants>;
10
+ type AlertTitleProps = React.ComponentProps<"div">;
11
+ type AlertDescriptionProps = React.ComponentProps<"div">;
12
+ type AlertActionProps = React.ComponentProps<"div">;
13
+ declare function Alert({ className, variant, ...props }: AlertProps): react_jsx_runtime.JSX.Element;
14
+ declare function AlertTitle({ className, ...props }: AlertTitleProps): react_jsx_runtime.JSX.Element;
15
+ declare function AlertDescription({ className, ...props }: AlertDescriptionProps): react_jsx_runtime.JSX.Element;
16
+ declare function AlertAction({ className, ...props }: AlertActionProps): react_jsx_runtime.JSX.Element;
13
17
 
14
18
  export { Alert, AlertAction, AlertDescription, AlertTitle };
package/dist/alert.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/alert.tsx"],"names":[],"mappings":";;;;AAKA,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB,2TAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,8BAAA;AAAA,QACT,WAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEA,SAAS,KAAA,CAAM;AAAA,EACb,SAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqE;AACnE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,OAAA;AAAA,MACV,IAAA,EAAK,OAAA;AAAA,MACL,WAAW,EAAA,CAAG,aAAA,CAAc,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,MAClD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACxE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,qHAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAgC;AAC9B,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,4JAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAgC;AACzE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,wBAAA,EAA0B,SAAS,CAAA;AAAA,MAChD,GAAG;AAAA;AAAA,GACN;AAEJ","file":"alert.js","sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"./lib/utils\"\n\nconst alertVariants = cva(\n \"grid gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 w-full relative group/alert\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n destructive:\n \"text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n \"[&_a]:hover:text-foreground font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-muted-foreground [&_a]:hover:text-foreground text-sm text-balance md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-action\"\n className={cn(\"absolute top-2 right-2\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Alert,\n AlertTitle,\n AlertDescription,\n AlertAction\n}\n"]}
1
+ {"version":3,"sources":["../src/alert.tsx"],"names":[],"mappings":";;;;AAKA,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB,2TAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,8BAAA;AAAA,QACT,WAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAOA,SAAS,KAAA,CAAM;AAAA,EACb,SAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAe;AACb,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,OAAA;AAAA,MACV,IAAA,EAAK,OAAA;AAAA,MACL,WAAW,EAAA,CAAG,aAAA,CAAc,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,MAClD,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,UAAA,CAAW,EAAE,SAAA,EAAW,GAAG,OAAM,EAAoB;AAC5D,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,qHAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,gBAAA,CAAiB;AAAA,EACxB,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA0B;AACxB,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,4JAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAqB;AAC9D,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,wBAAA,EAA0B,SAAS,CAAA;AAAA,MAChD,GAAG;AAAA;AAAA,GACN;AAEJ","file":"alert.js","sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"./lib/utils\"\n\nconst alertVariants = cva(\n \"grid gap-0.5 rounded-lg border px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 w-full relative group/alert\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n destructive:\n \"text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\ntype AlertProps = React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>\ntype AlertTitleProps = React.ComponentProps<\"div\">\ntype AlertDescriptionProps = React.ComponentProps<\"div\">\ntype AlertActionProps = React.ComponentProps<\"div\">\n\nfunction Alert({\n className,\n variant,\n ...props\n}: AlertProps) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction AlertTitle({ className, ...props }: AlertTitleProps) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n \"[&_a]:hover:text-foreground font-medium group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: AlertDescriptionProps) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-muted-foreground [&_a]:hover:text-foreground text-sm text-balance md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_p:not(:last-child)]:mb-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertAction({ className, ...props }: AlertActionProps) {\n return (\n <div\n data-slot=\"alert-action\"\n className={cn(\"absolute top-2 right-2\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Alert,\n AlertTitle,\n AlertDescription,\n AlertAction\n}\n"]}
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+
4
+ type AspectRatioProps = React.ComponentProps<"div"> & {
5
+ /** The width-to-height ratio (e.g. 16/9, 4/3, 1) */
6
+ ratio: number;
7
+ };
8
+ declare function AspectRatio({ ratio, className, ...props }: AspectRatioProps): react_jsx_runtime.JSX.Element;
9
+
10
+ export { AspectRatio, type AspectRatioProps };
@@ -0,0 +1,18 @@
1
+ import { cn } from './chunk-76UQO56T.js';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ function AspectRatio({ ratio, className, ...props }) {
5
+ return /* @__PURE__ */ jsx(
6
+ "div",
7
+ {
8
+ "data-slot": "aspect-ratio",
9
+ style: { "--ratio": ratio },
10
+ className: cn("relative aspect-(--ratio)", className),
11
+ ...props
12
+ }
13
+ );
14
+ }
15
+
16
+ export { AspectRatio };
17
+ //# sourceMappingURL=aspect-ratio.js.map
18
+ //# sourceMappingURL=aspect-ratio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/aspect-ratio.tsx"],"names":[],"mappings":";;;AAaA,SAAS,YAAY,EAAE,KAAA,EAAO,SAAA,EAAW,GAAG,OAAM,EAAqB;AACrE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,KAAA,EAAO,EAAE,SAAA,EAAW,KAAA,EAAM;AAAA,MAC1B,SAAA,EAAW,EAAA,CAAG,2BAAA,EAA6B,SAAS,CAAA;AAAA,MACnD,GAAG;AAAA;AAAA,GACN;AAEJ","file":"aspect-ratio.js","sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"./lib/utils\"\n\n// --- Types ---\n\ntype AspectRatioProps = React.ComponentProps<\"div\"> & {\n /** The width-to-height ratio (e.g. 16/9, 4/3, 1) */\n ratio: number\n}\n\n// --- Components ---\n\nfunction AspectRatio({ ratio, className, ...props }: AspectRatioProps) {\n return (\n <div\n data-slot=\"aspect-ratio\"\n style={{ \"--ratio\": ratio } as React.CSSProperties}\n className={cn(\"relative aspect-(--ratio)\", className)}\n {...props}\n />\n )\n}\n\n// --- Exports ---\n\nexport { AspectRatio }\nexport type { AspectRatioProps }\n"]}
@@ -0,0 +1,48 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Autocomplete as Autocomplete$1 } from '@base-ui/react/autocomplete';
4
+
5
+ type AutocompleteProps = React.ComponentProps<typeof Autocomplete$1.Root>;
6
+ type AutocompleteInputProps = React.ComponentProps<typeof Autocomplete$1.Input>;
7
+ type AutocompleteTriggerProps = React.ComponentProps<typeof Autocomplete$1.Trigger>;
8
+ type AutocompleteIconProps = React.ComponentProps<typeof Autocomplete$1.Icon>;
9
+ type AutocompleteClearProps = React.ComponentProps<typeof Autocomplete$1.Clear>;
10
+ type AutocompleteValueProps = React.ComponentProps<typeof Autocomplete$1.Value>;
11
+ type AutocompletePortalProps = React.ComponentProps<typeof Autocomplete$1.Portal>;
12
+ type AutocompleteBackdropProps = React.ComponentProps<typeof Autocomplete$1.Backdrop>;
13
+ type AutocompletePositionerProps = React.ComponentProps<typeof Autocomplete$1.Positioner>;
14
+ type AutocompletePopupProps = React.ComponentProps<typeof Autocomplete$1.Popup>;
15
+ type AutocompleteArrowProps = React.ComponentProps<typeof Autocomplete$1.Arrow>;
16
+ type AutocompleteStatusProps = React.ComponentProps<typeof Autocomplete$1.Status>;
17
+ type AutocompleteEmptyProps = React.ComponentProps<typeof Autocomplete$1.Empty>;
18
+ type AutocompleteListProps = React.ComponentProps<typeof Autocomplete$1.List>;
19
+ type AutocompleteRowProps = React.ComponentProps<typeof Autocomplete$1.Row>;
20
+ type AutocompleteItemProps = React.ComponentProps<typeof Autocomplete$1.Item>;
21
+ type AutocompleteSeparatorProps = React.ComponentProps<typeof Autocomplete$1.Separator>;
22
+ type AutocompleteGroupProps = React.ComponentProps<typeof Autocomplete$1.Group>;
23
+ type AutocompleteGroupLabelProps = React.ComponentProps<typeof Autocomplete$1.GroupLabel>;
24
+ type AutocompleteCollectionProps = React.ComponentProps<typeof Autocomplete$1.Collection>;
25
+ type AutocompleteContentProps = AutocompletePopupProps & Pick<AutocompletePositionerProps, "align" | "alignOffset" | "side" | "sideOffset">;
26
+ declare function Autocomplete({ ...props }: AutocompleteProps): react_jsx_runtime.JSX.Element;
27
+ declare function AutocompleteInput({ className, ...props }: AutocompleteInputProps): react_jsx_runtime.JSX.Element;
28
+ declare function AutocompleteTrigger({ className, ...props }: AutocompleteTriggerProps): react_jsx_runtime.JSX.Element;
29
+ declare function AutocompleteIcon({ className, ...props }: AutocompleteIconProps): react_jsx_runtime.JSX.Element;
30
+ declare function AutocompleteClear({ className, ...props }: AutocompleteClearProps): react_jsx_runtime.JSX.Element;
31
+ declare function AutocompleteValue({ ...props }: AutocompleteValueProps): react_jsx_runtime.JSX.Element;
32
+ declare function AutocompletePortal({ className, ...props }: AutocompletePortalProps): react_jsx_runtime.JSX.Element;
33
+ declare function AutocompleteBackdrop({ className, ...props }: AutocompleteBackdropProps): react_jsx_runtime.JSX.Element;
34
+ declare function AutocompletePositioner({ className, ...props }: AutocompletePositionerProps): react_jsx_runtime.JSX.Element;
35
+ declare function AutocompletePopup({ className, ...props }: AutocompletePopupProps): react_jsx_runtime.JSX.Element;
36
+ declare function AutocompleteArrow({ className, ...props }: AutocompleteArrowProps): react_jsx_runtime.JSX.Element;
37
+ declare function AutocompleteStatus({ className, ...props }: AutocompleteStatusProps): react_jsx_runtime.JSX.Element;
38
+ declare function AutocompleteEmpty({ className, ...props }: AutocompleteEmptyProps): react_jsx_runtime.JSX.Element;
39
+ declare function AutocompleteList({ className, ...props }: AutocompleteListProps): react_jsx_runtime.JSX.Element;
40
+ declare function AutocompleteRow({ className, ...props }: AutocompleteRowProps): react_jsx_runtime.JSX.Element;
41
+ declare function AutocompleteItem({ className, ...props }: AutocompleteItemProps): react_jsx_runtime.JSX.Element;
42
+ declare function AutocompleteSeparator({ className, ...props }: AutocompleteSeparatorProps): react_jsx_runtime.JSX.Element;
43
+ declare function AutocompleteGroup({ className, ...props }: AutocompleteGroupProps): react_jsx_runtime.JSX.Element;
44
+ declare function AutocompleteGroupLabel({ className, ...props }: AutocompleteGroupLabelProps): react_jsx_runtime.JSX.Element;
45
+ declare function AutocompleteCollection({ ...props }: AutocompleteCollectionProps): react_jsx_runtime.JSX.Element;
46
+ declare function AutocompleteContent({ className, align, alignOffset, side, sideOffset, ...props }: AutocompleteContentProps): react_jsx_runtime.JSX.Element;
47
+
48
+ export { Autocomplete, AutocompleteArrow, AutocompleteBackdrop, AutocompleteClear, AutocompleteCollection, AutocompleteContent, AutocompleteEmpty, AutocompleteGroup, AutocompleteGroupLabel, AutocompleteIcon, AutocompleteInput, AutocompleteItem, AutocompleteList, AutocompletePopup, AutocompletePortal, AutocompletePositioner, AutocompleteRow, AutocompleteSeparator, AutocompleteStatus, AutocompleteTrigger, AutocompleteValue };
@@ -0,0 +1,222 @@
1
+ import { cn } from './chunk-76UQO56T.js';
2
+ import { Autocomplete as Autocomplete$1 } from '@base-ui/react/autocomplete';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ function Autocomplete({ ...props }) {
6
+ return /* @__PURE__ */ jsx(Autocomplete$1.Root, { "data-slot": "autocomplete", ...props });
7
+ }
8
+ function AutocompleteInput({ className, ...props }) {
9
+ return /* @__PURE__ */ jsx(
10
+ Autocomplete$1.Input,
11
+ {
12
+ "data-slot": "autocomplete-input",
13
+ className: cn(
14
+ "dark:bg-input/30 border-input focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 disabled:bg-input/50 dark:disabled:bg-input/80 placeholder:text-muted-foreground h-8 w-full min-w-0 rounded-lg border bg-transparent px-2.5 py-1 text-base transition-colors outline-none focus-visible:ring-3 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-3 md:text-sm",
15
+ className
16
+ ),
17
+ ...props
18
+ }
19
+ );
20
+ }
21
+ function AutocompleteTrigger({ className, ...props }) {
22
+ return /* @__PURE__ */ jsx(
23
+ Autocomplete$1.Trigger,
24
+ {
25
+ "data-slot": "autocomplete-trigger",
26
+ className: cn("shrink-0", className),
27
+ ...props
28
+ }
29
+ );
30
+ }
31
+ function AutocompleteIcon({ className, ...props }) {
32
+ return /* @__PURE__ */ jsx(
33
+ Autocomplete$1.Icon,
34
+ {
35
+ "data-slot": "autocomplete-icon",
36
+ className: cn("shrink-0", className),
37
+ ...props
38
+ }
39
+ );
40
+ }
41
+ function AutocompleteClear({ className, ...props }) {
42
+ return /* @__PURE__ */ jsx(
43
+ Autocomplete$1.Clear,
44
+ {
45
+ "data-slot": "autocomplete-clear",
46
+ className: cn("shrink-0", className),
47
+ ...props
48
+ }
49
+ );
50
+ }
51
+ function AutocompleteValue({ ...props }) {
52
+ return /* @__PURE__ */ jsx(Autocomplete$1.Value, { "data-slot": "autocomplete-value", ...props });
53
+ }
54
+ function AutocompletePortal({ className, ...props }) {
55
+ return /* @__PURE__ */ jsx(
56
+ Autocomplete$1.Portal,
57
+ {
58
+ "data-slot": "autocomplete-portal",
59
+ className: cn(className),
60
+ ...props
61
+ }
62
+ );
63
+ }
64
+ function AutocompleteBackdrop({ className, ...props }) {
65
+ return /* @__PURE__ */ jsx(
66
+ Autocomplete$1.Backdrop,
67
+ {
68
+ "data-slot": "autocomplete-backdrop",
69
+ className: cn("fixed inset-0", className),
70
+ ...props
71
+ }
72
+ );
73
+ }
74
+ function AutocompletePositioner({ className, ...props }) {
75
+ return /* @__PURE__ */ jsx(
76
+ Autocomplete$1.Positioner,
77
+ {
78
+ "data-slot": "autocomplete-positioner",
79
+ className: cn(className),
80
+ ...props
81
+ }
82
+ );
83
+ }
84
+ function AutocompletePopup({ className, ...props }) {
85
+ return /* @__PURE__ */ jsx(
86
+ Autocomplete$1.Popup,
87
+ {
88
+ "data-slot": "autocomplete-popup",
89
+ className: cn(
90
+ "bg-popover text-popover-foreground 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 group/autocomplete-content relative max-h-(--available-height) min-w-(--anchor-width) origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg shadow-md ring-1 duration-100",
91
+ className
92
+ ),
93
+ ...props
94
+ }
95
+ );
96
+ }
97
+ function AutocompleteArrow({ className, ...props }) {
98
+ return /* @__PURE__ */ jsx(
99
+ Autocomplete$1.Arrow,
100
+ {
101
+ "data-slot": "autocomplete-arrow",
102
+ className: cn("fill-popover", className),
103
+ ...props
104
+ }
105
+ );
106
+ }
107
+ function AutocompleteStatus({ className, ...props }) {
108
+ return /* @__PURE__ */ jsx(
109
+ Autocomplete$1.Status,
110
+ {
111
+ "data-slot": "autocomplete-status",
112
+ className: cn("text-muted-foreground flex w-full justify-center py-2 text-center text-sm", className),
113
+ ...props
114
+ }
115
+ );
116
+ }
117
+ function AutocompleteEmpty({ className, ...props }) {
118
+ return /* @__PURE__ */ jsx(
119
+ Autocomplete$1.Empty,
120
+ {
121
+ "data-slot": "autocomplete-empty",
122
+ className: cn("text-muted-foreground hidden w-full justify-center py-2 text-center text-sm group-data-empty/autocomplete-content:flex", className),
123
+ ...props
124
+ }
125
+ );
126
+ }
127
+ function AutocompleteList({ className, ...props }) {
128
+ return /* @__PURE__ */ jsx(
129
+ Autocomplete$1.List,
130
+ {
131
+ "data-slot": "autocomplete-list",
132
+ className: cn("scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0", className),
133
+ ...props
134
+ }
135
+ );
136
+ }
137
+ function AutocompleteRow({ className, ...props }) {
138
+ return /* @__PURE__ */ jsx(
139
+ Autocomplete$1.Row,
140
+ {
141
+ "data-slot": "autocomplete-row",
142
+ className: cn(className),
143
+ ...props
144
+ }
145
+ );
146
+ }
147
+ function AutocompleteItem({ className, ...props }) {
148
+ return /* @__PURE__ */ jsx(
149
+ Autocomplete$1.Item,
150
+ {
151
+ "data-slot": "autocomplete-item",
152
+ className: cn(
153
+ "data-highlighted:bg-accent data-highlighted:text-accent-foreground relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pl-1.5 pr-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
154
+ className
155
+ ),
156
+ ...props
157
+ }
158
+ );
159
+ }
160
+ function AutocompleteSeparator({ className, ...props }) {
161
+ return /* @__PURE__ */ jsx(
162
+ Autocomplete$1.Separator,
163
+ {
164
+ "data-slot": "autocomplete-separator",
165
+ className: cn("bg-border -mx-1 my-1 h-px", className),
166
+ ...props
167
+ }
168
+ );
169
+ }
170
+ function AutocompleteGroup({ className, ...props }) {
171
+ return /* @__PURE__ */ jsx(
172
+ Autocomplete$1.Group,
173
+ {
174
+ "data-slot": "autocomplete-group",
175
+ className: cn("pt-1", className),
176
+ ...props
177
+ }
178
+ );
179
+ }
180
+ function AutocompleteGroupLabel({ className, ...props }) {
181
+ return /* @__PURE__ */ jsx(
182
+ Autocomplete$1.GroupLabel,
183
+ {
184
+ "data-slot": "autocomplete-group-label",
185
+ className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
186
+ ...props
187
+ }
188
+ );
189
+ }
190
+ function AutocompleteCollection({ ...props }) {
191
+ return /* @__PURE__ */ jsx(
192
+ Autocomplete$1.Collection,
193
+ {
194
+ "data-slot": "autocomplete-collection",
195
+ ...props
196
+ }
197
+ );
198
+ }
199
+ function AutocompleteContent({
200
+ className,
201
+ align = "start",
202
+ alignOffset = 0,
203
+ side = "bottom",
204
+ sideOffset = 6,
205
+ ...props
206
+ }) {
207
+ return /* @__PURE__ */ jsx(AutocompletePortal, { children: /* @__PURE__ */ jsx(
208
+ AutocompletePositioner,
209
+ {
210
+ align,
211
+ alignOffset,
212
+ side,
213
+ sideOffset,
214
+ className: "isolate z-50",
215
+ children: /* @__PURE__ */ jsx(AutocompletePopup, { className, ...props })
216
+ }
217
+ ) });
218
+ }
219
+
220
+ export { Autocomplete, AutocompleteArrow, AutocompleteBackdrop, AutocompleteClear, AutocompleteCollection, AutocompleteContent, AutocompleteEmpty, AutocompleteGroup, AutocompleteGroupLabel, AutocompleteIcon, AutocompleteInput, AutocompleteItem, AutocompleteList, AutocompletePopup, AutocompletePortal, AutocompletePositioner, AutocompleteRow, AutocompleteSeparator, AutocompleteStatus, AutocompleteTrigger, AutocompleteValue };
221
+ //# sourceMappingURL=autocomplete.js.map
222
+ //# sourceMappingURL=autocomplete.js.map