kuzenbo 0.0.1

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 (256) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +185 -0
  3. package/dist/accordion-trigger-D5XnBMS6.d.ts +24 -0
  4. package/dist/accordion-trigger-TjAe8JHy.js +53 -0
  5. package/dist/alert-dialog-trigger-BV0BsaVU.d.ts +638 -0
  6. package/dist/alert-dialog-trigger-D5BRoizR.js +98 -0
  7. package/dist/alert-title-CISzcj0X.js +28 -0
  8. package/dist/alert-title-CVC9G-Xf.d.ts +22 -0
  9. package/dist/announcement-title-CCZuGB1O.d.ts +18 -0
  10. package/dist/announcement-title-CIwzt9Wl.js +18 -0
  11. package/dist/autocomplete-value-BhyszIrf.d.ts +111 -0
  12. package/dist/autocomplete-value-DNJ3sAIH.js +141 -0
  13. package/dist/avatar-image-BKgKyzVw.d.ts +35 -0
  14. package/dist/avatar-image-Bw3G-Bl6.js +45 -0
  15. package/dist/breadcrumb-separator-D66-B1DA.d.ts +44 -0
  16. package/dist/breadcrumb-separator-Do-19Uow.js +74 -0
  17. package/dist/button-group-text-D98w78rH.js +25 -0
  18. package/dist/calendar-week-number-6AXvZ4Ij.js +72 -0
  19. package/dist/calendar-week-number-in2gpvA_.d.ts +36 -0
  20. package/dist/card-title-CbRPAh3M.js +52 -0
  21. package/dist/card-title-DSDluDoy.d.ts +40 -0
  22. package/dist/carousel-previous-B_jysGv_.js +89 -0
  23. package/dist/chart-tooltip-content-h5oLtil-.js +144 -0
  24. package/dist/collapsible-trigger-DcQWODN-.js +20 -0
  25. package/dist/collapsible-trigger-aZF7_mPR.d.ts +15 -0
  26. package/dist/command-shortcut-DoWM7Mnm.js +97 -0
  27. package/dist/context-menu-trigger-CYBhdcpg.js +147 -0
  28. package/dist/context-menu-trigger-Du2vcTco.d.ts +103 -0
  29. package/dist/dialog-trigger-CR23tYql.js +97 -0
  30. package/dist/dialog-trigger-xeE4e96-.d.ts +74 -0
  31. package/dist/drawer-trigger-7jI4Zmqs.js +79 -0
  32. package/dist/drawer-trigger-H_Wv5R00.d.ts +67 -0
  33. package/dist/dropdown-menu-trigger-CFdruqOk.d.ts +108 -0
  34. package/dist/dropdown-menu-trigger-IKeAoU_a.js +152 -0
  35. package/dist/dropzone-context-BRX1K7nw.d.ts +45 -0
  36. package/dist/dropzone-status-CW-3AXuh.js +33 -0
  37. package/dist/emoji-picker-skin-tone-selector-Cmv-1vDO.js +117 -0
  38. package/dist/emoji-picker-skin-tone-selector-yMYxt4oJ.d.ts +67 -0
  39. package/dist/empty-title-CH3DhcfT.d.ts +53 -0
  40. package/dist/empty-title-CHNBH7WJ.js +53 -0
  41. package/dist/form-field-title-CNrq8v88.js +101 -0
  42. package/dist/hooks/use-isomorphic-effect.d.ts +7 -0
  43. package/dist/hooks/use-isomorphic-effect.js +7 -0
  44. package/dist/hooks/use-mobile.d.ts +4 -0
  45. package/dist/hooks/use-mobile.js +20 -0
  46. package/dist/hover-card-trigger-B9jf3FEB.js +31 -0
  47. package/dist/hover-card-trigger-BqVoZ7h4.d.ts +20 -0
  48. package/dist/index.d.ts +122 -0
  49. package/dist/index.js +130 -0
  50. package/dist/input-group-textarea-voYOV11-.js +79 -0
  51. package/dist/input-otp-slot-DWbXhUmU.js +45 -0
  52. package/dist/input-otp-slot-eVdOjx8C.d.ts +24 -0
  53. package/dist/item-title-BYrYJZpa.js +89 -0
  54. package/dist/kbd-group-CT-Xtgug.js +12 -0
  55. package/dist/kbd-group-D3yVrb2D.d.ts +10 -0
  56. package/dist/marquee-item-BGJ5NSiz.js +29 -0
  57. package/dist/marquee-item-DD6JuLJ4.d.ts +32 -0
  58. package/dist/menubar-trigger-BLg3XdRv.d.ts +104 -0
  59. package/dist/menubar-trigger-aKMWAxdz.js +146 -0
  60. package/dist/meter-value-BmxUICOA.js +37 -0
  61. package/dist/meter-value-DYkZLCtx.d.ts +30 -0
  62. package/dist/navigation-menu-trigger-Bf60DnIz.d.ts +53 -0
  63. package/dist/navigation-menu-trigger-D80wiliM.js +82 -0
  64. package/dist/number-field-scrub-area-CXSyafBE.js +80 -0
  65. package/dist/optional-portal-C7TpYnOc.js +15 -0
  66. package/dist/pagination-previous-DPZrRgiD.js +88 -0
  67. package/dist/pagination-previous-qJeZZTou.d.ts +45 -0
  68. package/dist/pill-status-CD9XXuE7.js +74 -0
  69. package/dist/pill-status-rg-3AMSI.d.ts +77 -0
  70. package/dist/popover-trigger-B9PVErig.d.ts +39 -0
  71. package/dist/popover-trigger-C8dP_u7N.js +52 -0
  72. package/dist/progress-value-CFlgP0nv.d.ts +28 -0
  73. package/dist/progress-value-CfCodKnX.js +37 -0
  74. package/dist/radio-group-item-09fw05Va.d.ts +10 -0
  75. package/dist/radio-group-item-CQjCazjw.js +24 -0
  76. package/dist/rating-star-6ov3lbpn.d.ts +57 -0
  77. package/dist/rating-star-BuLQfAnZ.js +110 -0
  78. package/dist/resizable-panel-B4lAr8Vb.d.ts +19 -0
  79. package/dist/resizable-panel-BO97wcPj.js +21 -0
  80. package/dist/scroll-bar-BQzpb5hF.js +19 -0
  81. package/dist/scroll-bar-vYvxEOph.d.ts +11 -0
  82. package/dist/select-value-BUnWentK.js +117 -0
  83. package/dist/select-value-DG31IHy3.d.ts +70 -0
  84. package/dist/sheet-trigger-CLgKANrf.d.ts +64 -0
  85. package/dist/sheet-trigger-CUU7xwUn.js +95 -0
  86. package/dist/sidebar-trigger-BCjVuIqi.js +366 -0
  87. package/dist/styles.css +145 -0
  88. package/dist/table-row-BxhKJPfE.d.ts +46 -0
  89. package/dist/table-row-D63xalkM.js +60 -0
  90. package/dist/tabs-trigger-B2mBxFgq.js +38 -0
  91. package/dist/tabs-trigger-BGo2XGvh.d.ts +41 -0
  92. package/dist/timeline-title-BH8JxX2n.js +389 -0
  93. package/dist/toggle-group-item-Bz_ohmnY.d.ts +53 -0
  94. package/dist/toggle-group-item-aggwtgam.js +34 -0
  95. package/dist/toolbar-separator-7CgKz2aX.d.ts +40 -0
  96. package/dist/toolbar-separator-Bre5OtBI.js +41 -0
  97. package/dist/tooltip-trigger-CrAGfaqr.d.ts +27 -0
  98. package/dist/tooltip-trigger-Z-aPDRog.js +37 -0
  99. package/dist/ui/accordion.d.ts +27 -0
  100. package/dist/ui/accordion.js +17 -0
  101. package/dist/ui/affix.d.ts +49 -0
  102. package/dist/ui/affix.js +57 -0
  103. package/dist/ui/alert-dialog.d.ts +123 -0
  104. package/dist/ui/alert-dialog.js +23 -0
  105. package/dist/ui/alert.d.ts +58 -0
  106. package/dist/ui/alert.js +59 -0
  107. package/dist/ui/announcement.d.ts +27 -0
  108. package/dist/ui/announcement.js +16 -0
  109. package/dist/ui/aspect-ratio.d.ts +13 -0
  110. package/dist/ui/aspect-ratio.js +13 -0
  111. package/dist/ui/autocomplete.d.ts +67 -0
  112. package/dist/ui/autocomplete.js +30 -0
  113. package/dist/ui/avatar.d.ts +37 -0
  114. package/dist/ui/avatar.js +22 -0
  115. package/dist/ui/badge.d.ts +54 -0
  116. package/dist/ui/badge.js +33 -0
  117. package/dist/ui/breadcrumb.d.ts +41 -0
  118. package/dist/ui/breadcrumb.js +20 -0
  119. package/dist/ui/button-group.d.ts +94 -0
  120. package/dist/ui/button-group.js +24 -0
  121. package/dist/ui/button.d.ts +91 -0
  122. package/dist/ui/button.js +64 -0
  123. package/dist/ui/calendar.d.ts +52 -0
  124. package/dist/ui/calendar.js +64 -0
  125. package/dist/ui/card.d.ts +40 -0
  126. package/dist/ui/card.js +20 -0
  127. package/dist/ui/carousel.d.ts +100 -0
  128. package/dist/ui/carousel.js +76 -0
  129. package/dist/ui/chart.d.ts +61 -0
  130. package/dist/ui/chart.js +34 -0
  131. package/dist/ui/checkbox-group.d.ts +12 -0
  132. package/dist/ui/checkbox-group.js +13 -0
  133. package/dist/ui/checkbox.d.ts +12 -0
  134. package/dist/ui/checkbox.js +27 -0
  135. package/dist/ui/collapsible.d.ts +19 -0
  136. package/dist/ui/collapsible.js +16 -0
  137. package/dist/ui/combobox.d.ts +95 -0
  138. package/dist/ui/combobox.js +31 -0
  139. package/dist/ui/command.d.ts +146 -0
  140. package/dist/ui/command.js +24 -0
  141. package/dist/ui/context-menu.d.ts +83 -0
  142. package/dist/ui/context-menu.js +26 -0
  143. package/dist/ui/country-flag.d.ts +18 -0
  144. package/dist/ui/country-flag.js +36 -0
  145. package/dist/ui/dialog.d.ts +53 -0
  146. package/dist/ui/dialog.js +23 -0
  147. package/dist/ui/drawer.d.ts +52 -0
  148. package/dist/ui/drawer.js +24 -0
  149. package/dist/ui/dropdown-menu.d.ts +88 -0
  150. package/dist/ui/dropdown-menu.js +26 -0
  151. package/dist/ui/dropzone.d.ts +233 -0
  152. package/dist/ui/dropzone.js +180 -0
  153. package/dist/ui/emoji-picker.d.ts +46 -0
  154. package/dist/ui/emoji-picker.js +23 -0
  155. package/dist/ui/empty.d.ts +50 -0
  156. package/dist/ui/empty.js +18 -0
  157. package/dist/ui/form-field.d.ts +134 -0
  158. package/dist/ui/form-field.js +33 -0
  159. package/dist/ui/google-logo.d.ts +13 -0
  160. package/dist/ui/google-logo.js +36 -0
  161. package/dist/ui/hover-card.d.ts +24 -0
  162. package/dist/ui/hover-card.js +16 -0
  163. package/dist/ui/input-group.d.ts +141 -0
  164. package/dist/ui/input-group.js +21 -0
  165. package/dist/ui/input-otp.d.ts +31 -0
  166. package/dist/ui/input-otp.js +19 -0
  167. package/dist/ui/input.d.ts +12 -0
  168. package/dist/ui/input.js +14 -0
  169. package/dist/ui/item.d.ts +158 -0
  170. package/dist/ui/item.js +50 -0
  171. package/dist/ui/kbd.d.ts +18 -0
  172. package/dist/ui/kbd.js +14 -0
  173. package/dist/ui/label.d.ts +12 -0
  174. package/dist/ui/label.js +15 -0
  175. package/dist/ui/marquee.d.ts +30 -0
  176. package/dist/ui/marquee.js +17 -0
  177. package/dist/ui/menubar.d.ts +228 -0
  178. package/dist/ui/menubar.js +29 -0
  179. package/dist/ui/meter.d.ts +29 -0
  180. package/dist/ui/meter.js +19 -0
  181. package/dist/ui/navigation-menu.d.ts +12 -0
  182. package/dist/ui/navigation-menu.js +15 -0
  183. package/dist/ui/number-field.d.ts +41 -0
  184. package/dist/ui/number-field.js +33 -0
  185. package/dist/ui/pagination.d.ts +38 -0
  186. package/dist/ui/pagination.js +20 -0
  187. package/dist/ui/pill.d.ts +49 -0
  188. package/dist/ui/pill.js +21 -0
  189. package/dist/ui/popover.d.ts +37 -0
  190. package/dist/ui/popover.js +19 -0
  191. package/dist/ui/portal.d.ts +29 -0
  192. package/dist/ui/portal.js +52 -0
  193. package/dist/ui/progress.d.ts +31 -0
  194. package/dist/ui/progress.js +22 -0
  195. package/dist/ui/qr-code.d.ts +20 -0
  196. package/dist/ui/qr-code.js +78 -0
  197. package/dist/ui/radio-group.d.ts +18 -0
  198. package/dist/ui/radio-group.js +15 -0
  199. package/dist/ui/rating.d.ts +80 -0
  200. package/dist/ui/rating.js +59 -0
  201. package/dist/ui/resizable.d.ts +25 -0
  202. package/dist/ui/resizable.js +18 -0
  203. package/dist/ui/scroll-area.d.ts +19 -0
  204. package/dist/ui/scroll-area.js +24 -0
  205. package/dist/ui/select.d.ts +65 -0
  206. package/dist/ui/select.js +23 -0
  207. package/dist/ui/separator.d.ts +12 -0
  208. package/dist/ui/separator.js +14 -0
  209. package/dist/ui/sheet.d.ts +54 -0
  210. package/dist/ui/sheet.js +23 -0
  211. package/dist/ui/sidebar.d.ts +247 -0
  212. package/dist/ui/sidebar.js +83 -0
  213. package/dist/ui/skeleton.d.ts +11 -0
  214. package/dist/ui/skeleton.js +12 -0
  215. package/dist/ui/slider.d.ts +15 -0
  216. package/dist/ui/slider.js +47 -0
  217. package/dist/ui/spacer.d.ts +18 -0
  218. package/dist/ui/spacer.js +25 -0
  219. package/dist/ui/spinner.d.ts +12 -0
  220. package/dist/ui/spinner.js +17 -0
  221. package/dist/ui/surface.d.ts +41 -0
  222. package/dist/ui/surface.js +31 -0
  223. package/dist/ui/switch.d.ts +14 -0
  224. package/dist/ui/switch.js +20 -0
  225. package/dist/ui/table.d.ts +41 -0
  226. package/dist/ui/table.js +34 -0
  227. package/dist/ui/tabs.d.ts +43 -0
  228. package/dist/ui/tabs.js +20 -0
  229. package/dist/ui/textarea.d.ts +13 -0
  230. package/dist/ui/textarea.js +14 -0
  231. package/dist/ui/theme-icon.d.ts +77 -0
  232. package/dist/ui/theme-icon.js +56 -0
  233. package/dist/ui/timeline.d.ts +96 -0
  234. package/dist/ui/timeline.js +88 -0
  235. package/dist/ui/toast.d.ts +50 -0
  236. package/dist/ui/toast.js +23 -0
  237. package/dist/ui/toggle-group.d.ts +31 -0
  238. package/dist/ui/toggle-group.js +31 -0
  239. package/dist/ui/toggle.d.ts +46 -0
  240. package/dist/ui/toggle.js +34 -0
  241. package/dist/ui/toolbar.d.ts +33 -0
  242. package/dist/ui/toolbar.js +19 -0
  243. package/dist/ui/tooltip.d.ts +29 -0
  244. package/dist/ui/tooltip.js +17 -0
  245. package/dist/ui/video-player.d.ts +48 -0
  246. package/dist/ui/video-player.js +37 -0
  247. package/dist/use-chart-BRpzPrMJ.d.ts +77 -0
  248. package/dist/use-combobox-anchor-2KUf_cBk.js +198 -0
  249. package/dist/use-combobox-anchor-ByuqnpKH.d.ts +120 -0
  250. package/dist/use-number-field-Dzl9JLNK.d.ts +55 -0
  251. package/dist/use-timeline-BRlmxoQ7.d.ts +81 -0
  252. package/dist/use-toast-BGG4leSx.d.ts +118 -0
  253. package/dist/use-toast-DjRKuQG6.js +129 -0
  254. package/dist/video-player-volume-range-D971L6mz.d.ts +65 -0
  255. package/dist/video-player-volume-range-V7x0b1-r.js +66 -0
  256. package/package.json +128 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Dobroslav Radosavljevic
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 ADDED
@@ -0,0 +1,185 @@
1
+ # kuzenbo
2
+
3
+ A modern React component library with 75+ components built on [@base-ui/react](https://base-ui.com/) primitives, styled with [Tailwind CSS v4](https://tailwindcss.com/) and [tailwind-variants](https://www.tailwind-variants.org/).
4
+
5
+ Combines the best design patterns from [shadcn/ui](https://ui.shadcn.com/), [HeroUI](https://www.heroui.com/), and [Mantine](https://mantine.dev/).
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install kuzenbo
11
+ ```
12
+
13
+ ### Peer Dependencies
14
+
15
+ React is required:
16
+
17
+ ```bash
18
+ npm install react react-dom
19
+ ```
20
+
21
+ Some components require additional peer dependencies. Install only what you need:
22
+
23
+ | Component | Required packages |
24
+ | ----------- | ------------------------------------- |
25
+ | Calendar | `react-day-picker` |
26
+ | Carousel | `embla-carousel embla-carousel-react` |
27
+ | Chart | `recharts` |
28
+ | Command | `cmdk` |
29
+ | CountryFlag | `country-flag-icons` |
30
+ | Drawer | `vaul` |
31
+ | Dropzone | `react-dropzone` |
32
+ | EmojiPicker | `frimousse` |
33
+ | InputOTP | `input-otp` |
34
+ | Marquee | `react-fast-marquee` |
35
+ | QRCode | `qrcode culori` |
36
+ | Resizable | `react-resizable-panels` |
37
+ | Textarea | `react-textarea-autosize` |
38
+ | VideoPlayer | `media-chrome` |
39
+
40
+ ## Tailwind CSS v4 Setup
41
+
42
+ Kuzenbo requires Tailwind CSS v4. Add the following to your main CSS file:
43
+
44
+ ```css
45
+ @import "tailwindcss";
46
+ @import "kuzenbo/styles.css";
47
+ @source "../node_modules/kuzenbo/dist";
48
+ ```
49
+
50
+ - `@import "kuzenbo/styles.css"` registers the theme tokens (colors, radius) with Tailwind and provides default light/dark mode values
51
+ - `@source` tells Tailwind to scan the library's dist for utility classes
52
+
53
+ > The `@source` path is relative to your CSS file. Adjust if your CSS file is not at the project root.
54
+
55
+ ### Customizing the theme
56
+
57
+ The default theme uses the shadcn/ui zinc palette. Override any token by redefining its CSS variable:
58
+
59
+ ```css
60
+ :root {
61
+ --primary: oklch(0.6 0.25 260);
62
+ --radius: 0.5rem;
63
+ }
64
+ ```
65
+
66
+ ## Usage
67
+
68
+ ### Simple component
69
+
70
+ ```tsx
71
+ import { Button } from "kuzenbo";
72
+
73
+ export default function App() {
74
+ return (
75
+ <Button variant="default" size="lg">
76
+ Click me
77
+ </Button>
78
+ );
79
+ }
80
+ ```
81
+
82
+ ### Compound component (dot notation)
83
+
84
+ ```tsx
85
+ import { Dialog } from "kuzenbo";
86
+
87
+ export default function App() {
88
+ return (
89
+ <Dialog>
90
+ <Dialog.Trigger>Open</Dialog.Trigger>
91
+ <Dialog.Portal>
92
+ <Dialog.Overlay />
93
+ <Dialog.Content>
94
+ <Dialog.Header>
95
+ <Dialog.Title>Title</Dialog.Title>
96
+ <Dialog.Description>Description</Dialog.Description>
97
+ </Dialog.Header>
98
+ </Dialog.Content>
99
+ </Dialog.Portal>
100
+ </Dialog>
101
+ );
102
+ }
103
+ ```
104
+
105
+ ### Component with optional peer dep
106
+
107
+ ```bash
108
+ npm install react-day-picker
109
+ ```
110
+
111
+ ```tsx
112
+ import { Calendar } from "kuzenbo";
113
+
114
+ export default function App() {
115
+ return <Calendar mode="single" />;
116
+ }
117
+ ```
118
+
119
+ ## Components
120
+
121
+ ### Layout
122
+
123
+ Accordion, AspectRatio, Card, Collapsible, Empty, Resizable, ScrollArea, Separator, Spacer, Surface
124
+
125
+ ### Forms
126
+
127
+ Autocomplete, Checkbox, CheckboxGroup, Combobox, Dropzone, FormField, Input, InputGroup, InputOTP, Label, NumberField, RadioGroup, Select, Slider, Switch, Textarea
128
+
129
+ ### Navigation
130
+
131
+ Breadcrumb, Menubar, NavigationMenu, Pagination, Sidebar, Tabs, Toolbar
132
+
133
+ ### Feedback
134
+
135
+ Alert, AlertDialog, Announcement, Meter, Progress, Rating, Skeleton, Spinner, Toast, Tooltip
136
+
137
+ ### Overlay
138
+
139
+ Dialog, Drawer, DropdownMenu, ContextMenu, HoverCard, Popover, Sheet
140
+
141
+ ### Data Display
142
+
143
+ Avatar, Badge, Calendar, Carousel, Chart, CountryFlag, EmojiPicker, GoogleLogo, Kbd, Marquee, Pill, QRCode, Table, ThemeIcon, Timeline, VideoPlayer
144
+
145
+ ### Actions
146
+
147
+ Affix, Button, ButtonGroup, Command, Toggle, ToggleGroup
148
+
149
+ ### Typography (planned)
150
+
151
+ Anchor, Blockquote, Heading, InlineCode, Large, Lead, List, Muted, Paragraph, Small, SmallHeading, Text
152
+
153
+ ### Utilities
154
+
155
+ Item, Portal
156
+
157
+ ## Development
158
+
159
+ | Command | Description |
160
+ | ------------------- | ----------------------------------- |
161
+ | `bun run build` | Build the package |
162
+ | `bun run dev` | Build in watch mode |
163
+ | `bun run test` | Run tests |
164
+ | `bun run lint` | Check linting and formatting |
165
+ | `bun run format` | Auto-fix lint/format issues |
166
+ | `bun run typecheck` | Run TypeScript type checking |
167
+ | `bun run bump` | Bump version and generate changelog |
168
+
169
+ ### Requirements
170
+
171
+ - **Bun** 1.3.6+
172
+ - **Node.js** 22+
173
+
174
+ ### Git Hooks
175
+
176
+ - **pre-commit**: Runs `lint-staged` to lint and format staged files
177
+ - **commit-msg**: Validates [Conventional Commits](https://www.conventionalcommits.org/) format
178
+
179
+ ## Contributing
180
+
181
+ See [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
182
+
183
+ ## License
184
+
185
+ MIT
@@ -0,0 +1,24 @@
1
+ import { Accordion } from "@base-ui/react/accordion";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
+
4
+ //#region src/components/accordion/accordion-content.d.ts
5
+ declare const AccordionContent: ({
6
+ className,
7
+ children,
8
+ ...props
9
+ }: Accordion.Panel.Props) => react_jsx_runtime0.JSX.Element;
10
+ //#endregion
11
+ //#region src/components/accordion/accordion-item.d.ts
12
+ declare const AccordionItem: ({
13
+ className,
14
+ ...props
15
+ }: Accordion.Item.Props) => react_jsx_runtime0.JSX.Element;
16
+ //#endregion
17
+ //#region src/components/accordion/accordion-trigger.d.ts
18
+ declare const AccordionTrigger: ({
19
+ className,
20
+ children,
21
+ ...props
22
+ }: Accordion.Trigger.Props) => react_jsx_runtime0.JSX.Element;
23
+ //#endregion
24
+ export { AccordionItem as n, AccordionContent as r, AccordionTrigger as t };
@@ -0,0 +1,53 @@
1
+ import { Accordion } from "@base-ui/react/accordion";
2
+ import { cn } from "tailwind-variants";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { ArrowDown01Icon, ArrowUp01Icon } from "@hugeicons/core-free-icons";
5
+ import { HugeiconsIcon } from "@hugeicons/react";
6
+
7
+ //#region src/components/accordion/accordion-content.tsx
8
+ const AccordionContent = ({ className, children, ...props }) => /* @__PURE__ */ jsx(Accordion.Panel, {
9
+ className: "overflow-hidden text-sm data-closed:animate-accordion-up data-open:animate-accordion-down",
10
+ "data-slot": "accordion-content",
11
+ ...props,
12
+ children: /* @__PURE__ */ jsx("div", {
13
+ className: cn("h-(--accordion-panel-height) pt-0 pb-4 data-ending-style:h-0 data-starting-style:h-0 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4", className),
14
+ children
15
+ })
16
+ });
17
+
18
+ //#endregion
19
+ //#region src/components/accordion/accordion-item.tsx
20
+ const AccordionItem = ({ className, ...props }) => /* @__PURE__ */ jsx(Accordion.Item, {
21
+ className: cn("not-last:border-b", className),
22
+ "data-slot": "accordion-item",
23
+ ...props
24
+ });
25
+
26
+ //#endregion
27
+ //#region src/components/accordion/accordion-trigger.tsx
28
+ const AccordionTrigger = ({ className, children, ...props }) => /* @__PURE__ */ jsx(Accordion.Header, {
29
+ className: "flex",
30
+ children: /* @__PURE__ */ jsxs(Accordion.Trigger, {
31
+ className: cn("group/accordion-trigger relative flex flex-1 cursor-pointer items-start justify-between rounded-md border border-transparent py-4 text-left font-medium text-sm outline-none transition-all hover:underline focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:after:border-ring disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground", className),
32
+ "data-slot": "accordion-trigger",
33
+ ...props,
34
+ children: [
35
+ children,
36
+ /* @__PURE__ */ jsx(HugeiconsIcon, {
37
+ className: "pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden",
38
+ "data-slot": "accordion-trigger-icon",
39
+ icon: ArrowDown01Icon,
40
+ strokeWidth: 2
41
+ }),
42
+ /* @__PURE__ */ jsx(HugeiconsIcon, {
43
+ className: "pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline",
44
+ "data-slot": "accordion-trigger-icon",
45
+ icon: ArrowUp01Icon,
46
+ strokeWidth: 2
47
+ })
48
+ ]
49
+ })
50
+ });
51
+
52
+ //#endregion
53
+ export { AccordionItem as n, AccordionContent as r, AccordionTrigger as t };