@kuzenbo/core 0.0.4 → 0.0.5

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 (335) hide show
  1. package/dist/avatar-CXhwmJgG.js +65 -0
  2. package/dist/avatar-CXhwmJgG.js.map +1 -0
  3. package/dist/{avatar-image-Ce26D2fb.d.ts → avatar-DpiupAAM.d.ts} +35 -2
  4. package/dist/avatar-DpiupAAM.d.ts.map +1 -0
  5. package/dist/badge-BKRm6jL7.js +58 -0
  6. package/dist/badge-BKRm6jL7.js.map +1 -0
  7. package/dist/button-nAbTNrxA.d.ts +78 -0
  8. package/dist/button-nAbTNrxA.d.ts.map +1 -0
  9. package/dist/{dialog-trigger-BUF3elAP.js → dialog-CD5lfQA9.js} +33 -10
  10. package/dist/dialog-CD5lfQA9.js.map +1 -0
  11. package/dist/{dialog-viewport-Ce1huyAI.d.ts → dialog-DEkdr-9K.d.ts} +64 -2
  12. package/dist/dialog-DEkdr-9K.d.ts.map +1 -0
  13. package/dist/{dropdown-menu-trigger-COnFGfDa.js → dropdown-menu-BJi-V71O.js} +137 -101
  14. package/dist/dropdown-menu-BJi-V71O.js.map +1 -0
  15. package/dist/{dropdown-menu-trigger-BpgtLUvf.d.ts → dropdown-menu-Bpj576m0.d.ts} +259 -123
  16. package/dist/dropdown-menu-Bpj576m0.d.ts.map +1 -0
  17. package/dist/input-Ex9ZRqbo.js +38 -0
  18. package/dist/input-Ex9ZRqbo.js.map +1 -0
  19. package/dist/input-WWoBCgxe.d.ts +46 -0
  20. package/dist/input-WWoBCgxe.d.ts.map +1 -0
  21. package/dist/{input-group-textarea-B-rP98r5.js → input-group-CjcHP0L4.js} +50 -31
  22. package/dist/input-group-CjcHP0L4.js.map +1 -0
  23. package/dist/provider.js +2 -2
  24. package/dist/scroll-bar-C4qEUKlT.js.map +1 -1
  25. package/dist/separator-C8Qw2ADs.d.ts +13 -0
  26. package/dist/separator-C8Qw2ADs.d.ts.map +1 -0
  27. package/dist/{sheet-trigger-D7neoTF5.js → sheet-imSHXfFH.js} +29 -10
  28. package/dist/sheet-imSHXfFH.js.map +1 -0
  29. package/dist/{size-context-BjRwqlSg.js → size-context-CvLl3pMC.js} +3 -3
  30. package/dist/size-context-CvLl3pMC.js.map +1 -0
  31. package/dist/size-context-DXfCAlWF.d.ts.map +1 -1
  32. package/dist/size-provider-18EvJgDT.js.map +1 -1
  33. package/dist/size-provider-Bd2C6gKd.d.ts.map +1 -1
  34. package/dist/size-system-BTsMqZRQ.js +99 -0
  35. package/dist/size-system-BTsMqZRQ.js.map +1 -0
  36. package/dist/size-system-wzOLSuax.d.ts.map +1 -1
  37. package/dist/size.js +2 -2
  38. package/dist/{slider-root-presentation-ChJHPMIV.js → slider-root-presentation-B6OO_iCT.js} +19 -19
  39. package/dist/slider-root-presentation-B6OO_iCT.js.map +1 -0
  40. package/dist/{slider-value-Db8SCu0c.d.ts → slider-style-tokens-CZezJilZ.d.ts} +55 -55
  41. package/dist/slider-style-tokens-CZezJilZ.d.ts.map +1 -0
  42. package/dist/textarea-C8dsnn8D.d.ts +37 -0
  43. package/dist/textarea-C8dsnn8D.d.ts.map +1 -0
  44. package/dist/textarea-CkiM1N_I.js +39 -0
  45. package/dist/textarea-CkiM1N_I.js.map +1 -0
  46. package/dist/toggle-CxkIncmZ.d.ts +53 -0
  47. package/dist/toggle-CxkIncmZ.d.ts.map +1 -0
  48. package/dist/{tooltip-trigger-qXw-_nbh.js → tooltip-D0BEpCQx.js} +38 -13
  49. package/dist/tooltip-D0BEpCQx.js.map +1 -0
  50. package/dist/{tooltip-viewport-csA6luqI.d.ts → tooltip-DbJxt69l.d.ts} +61 -13
  51. package/dist/tooltip-DbJxt69l.d.ts.map +1 -0
  52. package/dist/ui/accordion.d.ts +4 -4
  53. package/dist/ui/accordion.d.ts.map +1 -1
  54. package/dist/ui/accordion.js +53 -52
  55. package/dist/ui/accordion.js.map +1 -1
  56. package/dist/ui/affix.d.ts +3 -2
  57. package/dist/ui/affix.d.ts.map +1 -1
  58. package/dist/ui/affix.js +8 -7
  59. package/dist/ui/affix.js.map +1 -1
  60. package/dist/ui/alert-dialog.d.ts +3 -1
  61. package/dist/ui/alert-dialog.d.ts.map +1 -1
  62. package/dist/ui/alert-dialog.js +10 -9
  63. package/dist/ui/alert-dialog.js.map +1 -1
  64. package/dist/ui/alert.d.ts +32 -32
  65. package/dist/ui/alert.d.ts.map +1 -1
  66. package/dist/ui/alert.js +86 -86
  67. package/dist/ui/alert.js.map +1 -1
  68. package/dist/ui/announcement.d.ts.map +1 -1
  69. package/dist/ui/announcement.js +5 -3
  70. package/dist/ui/announcement.js.map +1 -1
  71. package/dist/ui/aspect-ratio.d.ts.map +1 -1
  72. package/dist/ui/aspect-ratio.js.map +1 -1
  73. package/dist/ui/autocomplete.d.ts +74 -74
  74. package/dist/ui/autocomplete.d.ts.map +1 -1
  75. package/dist/ui/autocomplete.js +55 -53
  76. package/dist/ui/autocomplete.js.map +1 -1
  77. package/dist/ui/avatar.d.ts +2 -39
  78. package/dist/ui/avatar.js +2 -24
  79. package/dist/ui/badge.d.ts +28 -28
  80. package/dist/ui/badge.d.ts.map +1 -1
  81. package/dist/ui/badge.js +2 -54
  82. package/dist/ui/breadcrumb.d.ts +64 -64
  83. package/dist/ui/breadcrumb.d.ts.map +1 -1
  84. package/dist/ui/breadcrumb.js +47 -45
  85. package/dist/ui/breadcrumb.js.map +1 -1
  86. package/dist/ui/button-group.d.ts +34 -34
  87. package/dist/ui/button-group.d.ts.map +1 -1
  88. package/dist/ui/button-group.js +29 -28
  89. package/dist/ui/button-group.js.map +1 -1
  90. package/dist/ui/button.d.ts +2 -78
  91. package/dist/ui/button.js +42 -42
  92. package/dist/ui/button.js.map +1 -1
  93. package/dist/ui/card.d.ts.map +1 -1
  94. package/dist/ui/card.js +6 -6
  95. package/dist/ui/card.js.map +1 -1
  96. package/dist/ui/carousel.d.ts +1 -1
  97. package/dist/ui/carousel.d.ts.map +1 -1
  98. package/dist/ui/carousel.js +36 -17
  99. package/dist/ui/carousel.js.map +1 -1
  100. package/dist/ui/checkbox-group.d.ts.map +1 -1
  101. package/dist/ui/checkbox-group.js.map +1 -1
  102. package/dist/ui/checkbox.d.ts +20 -20
  103. package/dist/ui/checkbox.js +13 -13
  104. package/dist/ui/checkbox.js.map +1 -1
  105. package/dist/ui/code.d.ts.map +1 -1
  106. package/dist/ui/code.js +5 -5
  107. package/dist/ui/code.js.map +1 -1
  108. package/dist/ui/collapsible.js +1 -1
  109. package/dist/ui/collapsible.js.map +1 -1
  110. package/dist/ui/combobox.d.ts +107 -107
  111. package/dist/ui/combobox.d.ts.map +1 -1
  112. package/dist/ui/combobox.js +88 -87
  113. package/dist/ui/combobox.js.map +1 -1
  114. package/dist/ui/command.d.ts +57 -58
  115. package/dist/ui/command.d.ts.map +1 -1
  116. package/dist/ui/command.js +54 -64
  117. package/dist/ui/command.js.map +1 -1
  118. package/dist/ui/container.d.ts.map +1 -1
  119. package/dist/ui/container.js.map +1 -1
  120. package/dist/ui/context-menu.d.ts +132 -132
  121. package/dist/ui/context-menu.d.ts.map +1 -1
  122. package/dist/ui/context-menu.js +100 -98
  123. package/dist/ui/context-menu.js.map +1 -1
  124. package/dist/ui/copy-button.d.ts +1 -3
  125. package/dist/ui/copy-button.d.ts.map +1 -1
  126. package/dist/ui/copy-button.js +12 -13
  127. package/dist/ui/copy-button.js.map +1 -1
  128. package/dist/ui/dialog.d.ts +2 -66
  129. package/dist/ui/dialog.js +2 -24
  130. package/dist/ui/drawer.d.ts +91 -91
  131. package/dist/ui/drawer.d.ts.map +1 -1
  132. package/dist/ui/drawer.js +68 -66
  133. package/dist/ui/drawer.js.map +1 -1
  134. package/dist/ui/dropdown-menu.d.ts +3 -144
  135. package/dist/ui/dropdown-menu.js +2 -39
  136. package/dist/ui/dropzone.d.ts +55 -55
  137. package/dist/ui/dropzone.d.ts.map +1 -1
  138. package/dist/ui/dropzone.js +77 -72
  139. package/dist/ui/dropzone.js.map +1 -1
  140. package/dist/ui/emoji-picker.d.ts +79 -79
  141. package/dist/ui/emoji-picker.d.ts.map +1 -1
  142. package/dist/ui/emoji-picker.js +92 -87
  143. package/dist/ui/emoji-picker.js.map +1 -1
  144. package/dist/ui/empty.d.ts +61 -59
  145. package/dist/ui/empty.d.ts.map +1 -1
  146. package/dist/ui/empty.js +47 -44
  147. package/dist/ui/empty.js.map +1 -1
  148. package/dist/ui/field.d.ts +11 -11
  149. package/dist/ui/field.d.ts.map +1 -1
  150. package/dist/ui/field.js +9 -7
  151. package/dist/ui/field.js.map +1 -1
  152. package/dist/ui/fieldset.d.ts.map +1 -1
  153. package/dist/ui/fieldset.js.map +1 -1
  154. package/dist/ui/form.d.ts +8 -8
  155. package/dist/ui/form.d.ts.map +1 -1
  156. package/dist/ui/form.js.map +1 -1
  157. package/dist/ui/input-group.d.ts +35 -35
  158. package/dist/ui/input-group.d.ts.map +1 -1
  159. package/dist/ui/input-group.js +2 -28
  160. package/dist/ui/input-otp.d.ts +36 -36
  161. package/dist/ui/input-otp.d.ts.map +1 -1
  162. package/dist/ui/input-otp.js +29 -28
  163. package/dist/ui/input-otp.js.map +1 -1
  164. package/dist/ui/input.d.ts +2 -46
  165. package/dist/ui/input.js +2 -34
  166. package/dist/ui/item.d.ts +20 -20
  167. package/dist/ui/item.d.ts.map +1 -1
  168. package/dist/ui/item.js +22 -22
  169. package/dist/ui/item.js.map +1 -1
  170. package/dist/ui/kbd.d.ts.map +1 -1
  171. package/dist/ui/kbd.js +8 -8
  172. package/dist/ui/kbd.js.map +1 -1
  173. package/dist/ui/label.d.ts.map +1 -1
  174. package/dist/ui/label.js.map +1 -1
  175. package/dist/ui/marquee.d.ts.map +1 -1
  176. package/dist/ui/marquee.js +1 -1
  177. package/dist/ui/marquee.js.map +1 -1
  178. package/dist/ui/menubar.d.ts +133 -134
  179. package/dist/ui/menubar.d.ts.map +1 -1
  180. package/dist/ui/menubar.js +82 -81
  181. package/dist/ui/menubar.js.map +1 -1
  182. package/dist/ui/meter.d.ts.map +1 -1
  183. package/dist/ui/meter.js.map +1 -1
  184. package/dist/ui/navigation-list.d.ts +226 -226
  185. package/dist/ui/navigation-list.d.ts.map +1 -1
  186. package/dist/ui/navigation-list.js +240 -235
  187. package/dist/ui/navigation-list.js.map +1 -1
  188. package/dist/ui/navigation-menu.d.ts +82 -82
  189. package/dist/ui/navigation-menu.d.ts.map +1 -1
  190. package/dist/ui/navigation-menu.js +70 -67
  191. package/dist/ui/navigation-menu.js.map +1 -1
  192. package/dist/ui/number-field.d.ts +34 -34
  193. package/dist/ui/number-field.d.ts.map +1 -1
  194. package/dist/ui/number-field.js +24 -23
  195. package/dist/ui/number-field.js.map +1 -1
  196. package/dist/ui/pagination.d.ts +42 -42
  197. package/dist/ui/pagination.d.ts.map +1 -1
  198. package/dist/ui/pagination.js +43 -41
  199. package/dist/ui/pagination.js.map +1 -1
  200. package/dist/ui/pill.d.ts +2 -3
  201. package/dist/ui/pill.d.ts.map +1 -1
  202. package/dist/ui/pill.js +34 -23
  203. package/dist/ui/pill.js.map +1 -1
  204. package/dist/ui/popover.d.ts +13 -11
  205. package/dist/ui/popover.d.ts.map +1 -1
  206. package/dist/ui/popover.js +17 -14
  207. package/dist/ui/popover.js.map +1 -1
  208. package/dist/ui/portal.d.ts.map +1 -1
  209. package/dist/ui/portal.js +52 -11
  210. package/dist/ui/portal.js.map +1 -1
  211. package/dist/ui/preview-card.js +5 -5
  212. package/dist/ui/preview-card.js.map +1 -1
  213. package/dist/ui/progress.js.map +1 -1
  214. package/dist/ui/qr-code.d.ts.map +1 -1
  215. package/dist/ui/qr-code.js +7 -7
  216. package/dist/ui/qr-code.js.map +1 -1
  217. package/dist/ui/radio-group.d.ts +22 -22
  218. package/dist/ui/radio-group.js +15 -15
  219. package/dist/ui/radio-group.js.map +1 -1
  220. package/dist/ui/range-slider.d.ts +1 -1
  221. package/dist/ui/range-slider.d.ts.map +1 -1
  222. package/dist/ui/range-slider.js +4 -7
  223. package/dist/ui/range-slider.js.map +1 -1
  224. package/dist/ui/rating.d.ts +35 -35
  225. package/dist/ui/rating.d.ts.map +1 -1
  226. package/dist/ui/rating.js +55 -46
  227. package/dist/ui/rating.js.map +1 -1
  228. package/dist/ui/resizable.d.ts.map +1 -1
  229. package/dist/ui/resizable.js +2 -2
  230. package/dist/ui/resizable.js.map +1 -1
  231. package/dist/ui/scroll-area.js.map +1 -1
  232. package/dist/ui/select.d.ts +87 -87
  233. package/dist/ui/select.d.ts.map +1 -1
  234. package/dist/ui/select.js +85 -84
  235. package/dist/ui/select.js.map +1 -1
  236. package/dist/ui/separator.d.ts +2 -13
  237. package/dist/ui/separator.js.map +1 -1
  238. package/dist/ui/sheet.d.ts.map +1 -1
  239. package/dist/ui/sheet.js +2 -24
  240. package/dist/ui/sidebar.d.ts +73 -74
  241. package/dist/ui/sidebar.d.ts.map +1 -1
  242. package/dist/ui/sidebar.js +85 -84
  243. package/dist/ui/sidebar.js.map +1 -1
  244. package/dist/ui/skeleton.d.ts.map +1 -1
  245. package/dist/ui/skeleton.js +1 -1
  246. package/dist/ui/skeleton.js.map +1 -1
  247. package/dist/ui/slider.d.ts +1 -1
  248. package/dist/ui/slider.d.ts.map +1 -1
  249. package/dist/ui/slider.js +3 -1
  250. package/dist/ui/slider.js.map +1 -1
  251. package/dist/ui/spacer.d.ts.map +1 -1
  252. package/dist/ui/spacer.js +2 -2
  253. package/dist/ui/spacer.js.map +1 -1
  254. package/dist/ui/spinner.d.ts.map +1 -1
  255. package/dist/ui/spinner.js +2 -2
  256. package/dist/ui/spinner.js.map +1 -1
  257. package/dist/ui/switch.d.ts +11 -11
  258. package/dist/ui/switch.js +7 -7
  259. package/dist/ui/switch.js.map +1 -1
  260. package/dist/ui/table.d.ts +60 -60
  261. package/dist/ui/table.d.ts.map +1 -1
  262. package/dist/ui/table.js +52 -46
  263. package/dist/ui/table.js.map +1 -1
  264. package/dist/ui/tabs.d.ts +25 -25
  265. package/dist/ui/tabs.d.ts.map +1 -1
  266. package/dist/ui/tabs.js +75 -68
  267. package/dist/ui/tabs.js.map +1 -1
  268. package/dist/ui/textarea.d.ts +2 -37
  269. package/dist/ui/textarea.js +2 -35
  270. package/dist/ui/theme-icon.d.ts +30 -30
  271. package/dist/ui/theme-icon.d.ts.map +1 -1
  272. package/dist/ui/theme-icon.js +22 -22
  273. package/dist/ui/theme-icon.js.map +1 -1
  274. package/dist/ui/timeline.d.ts +6 -6
  275. package/dist/ui/timeline.d.ts.map +1 -1
  276. package/dist/ui/timeline.js +163 -163
  277. package/dist/ui/timeline.js.map +1 -1
  278. package/dist/ui/toggle-group.d.ts +32 -32
  279. package/dist/ui/toggle-group.d.ts.map +1 -1
  280. package/dist/ui/toggle-group.js +22 -16
  281. package/dist/ui/toggle-group.js.map +1 -1
  282. package/dist/ui/toggle.d.ts +2 -53
  283. package/dist/ui/toggle.js +15 -15
  284. package/dist/ui/toggle.js.map +1 -1
  285. package/dist/ui/toolbar.d.ts +54 -54
  286. package/dist/ui/toolbar.d.ts.map +1 -1
  287. package/dist/ui/toolbar.js +43 -40
  288. package/dist/ui/toolbar.js.map +1 -1
  289. package/dist/ui/tooltip.d.ts +2 -54
  290. package/dist/ui/tooltip.js +2 -28
  291. package/dist/ui/typography.d.ts +50 -36
  292. package/dist/ui/typography.d.ts.map +1 -1
  293. package/dist/ui/typography.js +28 -17
  294. package/dist/ui/typography.js.map +1 -1
  295. package/package.json +15 -15
  296. package/dist/avatar-image-BQ_NEKH4.js +0 -47
  297. package/dist/avatar-image-BQ_NEKH4.js.map +0 -1
  298. package/dist/avatar-image-Ce26D2fb.d.ts.map +0 -1
  299. package/dist/dialog-trigger-BUF3elAP.js.map +0 -1
  300. package/dist/dialog-viewport-Ce1huyAI.d.ts.map +0 -1
  301. package/dist/dropdown-menu-trigger-BpgtLUvf.d.ts.map +0 -1
  302. package/dist/dropdown-menu-trigger-COnFGfDa.js.map +0 -1
  303. package/dist/input-group-textarea-B-rP98r5.js.map +0 -1
  304. package/dist/sheet-trigger-D7neoTF5.js.map +0 -1
  305. package/dist/size-context-BjRwqlSg.js.map +0 -1
  306. package/dist/size-system-DTXmtQXw.js +0 -47
  307. package/dist/size-system-DTXmtQXw.js.map +0 -1
  308. package/dist/slider-root-presentation-ChJHPMIV.js.map +0 -1
  309. package/dist/slider-value-Db8SCu0c.d.ts.map +0 -1
  310. package/dist/tooltip-trigger-qXw-_nbh.js.map +0 -1
  311. package/dist/tooltip-viewport-csA6luqI.d.ts.map +0 -1
  312. package/dist/ui/avatar.d.ts.map +0 -1
  313. package/dist/ui/avatar.js.map +0 -1
  314. package/dist/ui/badge.js.map +0 -1
  315. package/dist/ui/button.d.ts.map +0 -1
  316. package/dist/ui/dialog.d.ts.map +0 -1
  317. package/dist/ui/dialog.js.map +0 -1
  318. package/dist/ui/dropdown-menu.d.ts.map +0 -1
  319. package/dist/ui/dropdown-menu.js.map +0 -1
  320. package/dist/ui/input-group.js.map +0 -1
  321. package/dist/ui/input.d.ts.map +0 -1
  322. package/dist/ui/input.js.map +0 -1
  323. package/dist/ui/separator.d.ts.map +0 -1
  324. package/dist/ui/sheet.js.map +0 -1
  325. package/dist/ui/textarea.d.ts.map +0 -1
  326. package/dist/ui/textarea.js.map +0 -1
  327. package/dist/ui/toggle.d.ts.map +0 -1
  328. package/dist/ui/tooltip.d.ts.map +0 -1
  329. package/dist/ui/tooltip.js.map +0 -1
  330. package/dist/use-badge-default-props-8d9wPL0k.js +0 -8
  331. package/dist/use-badge-default-props-8d9wPL0k.js.map +0 -1
  332. package/dist/use-input-default-props-B6VgKXGM.js +0 -8
  333. package/dist/use-input-default-props-B6VgKXGM.js.map +0 -1
  334. package/dist/use-textarea-default-props-7MlOxkDO.js +0 -8
  335. package/dist/use-textarea-default-props-7MlOxkDO.js.map +0 -1
package/dist/ui/rating.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
 
3
+ import { a as useComponentSize, s as useKuzenboComponentDefaults } from "../size-provider-18EvJgDT.js";
3
4
  import { useCallback } from "react";
4
5
  import { jsx, jsxs } from "react/jsx-runtime";
5
6
  import { cn, tv } from "tailwind-variants";
@@ -10,57 +11,58 @@ import { HugeiconsIcon } from "@hugeicons/react";
10
11
  const ratingStarVariants = tv({
11
12
  base: [
12
13
  "relative inline-flex shrink-0",
13
- "cursor-pointer",
14
+ "cursor-clickable",
14
15
  "transition-colors duration-150"
15
16
  ],
17
+ defaultVariants: {
18
+ editable: false,
19
+ size: "md"
20
+ },
16
21
  variants: {
22
+ editable: {
23
+ false: ["cursor-default"],
24
+ true: ["hover:scale-110"]
25
+ },
17
26
  size: {
18
- xs: ["size-3"],
19
- sm: ["size-3.5"],
20
- md: ["size-4"],
21
27
  lg: ["size-5"],
22
- xl: ["size-6"]
23
- },
24
- editable: {
25
- true: ["hover:scale-110"],
26
- false: ["cursor-default"]
28
+ md: ["size-4"],
29
+ sm: ["size-3.5"],
30
+ xl: ["size-6"],
31
+ xs: ["size-3"]
27
32
  }
28
- },
29
- defaultVariants: {
30
- size: "md",
31
- editable: false
32
33
  }
33
34
  });
34
35
  const ratingStarFilledVariants = tv({
35
36
  base: ["absolute inset-0", "fill-warning-foreground text-warning-foreground"],
37
+ defaultVariants: { visible: true },
36
38
  variants: { visible: {
37
- true: ["opacity-100"],
38
- false: ["opacity-0"]
39
- } },
40
- defaultVariants: { visible: true }
39
+ false: ["opacity-0"],
40
+ true: ["opacity-100"]
41
+ } }
41
42
  });
42
43
  const ratingStarHalfVariants = tv({
43
44
  base: ["absolute inset-0 overflow-hidden", "fill-warning-foreground text-warning-foreground"],
45
+ defaultVariants: { visible: true },
44
46
  variants: { visible: {
45
- true: ["opacity-100"],
46
- false: ["opacity-0"]
47
- } },
48
- defaultVariants: { visible: true }
47
+ false: ["opacity-0"],
48
+ true: ["opacity-100"]
49
+ } }
49
50
  });
50
51
  const ratingStarOutlineVariants = tv({
51
52
  base: ["relative", "text-muted-foreground"],
53
+ defaultVariants: { active: false },
52
54
  variants: { active: {
53
- true: ["opacity-30"],
54
- false: ["opacity-100"]
55
- } },
56
- defaultVariants: { active: false }
55
+ false: ["opacity-100"],
56
+ true: ["opacity-30"]
57
+ } }
57
58
  });
58
59
  const RatingStar = ({ className, size, filled = false, halfFilled = false, active = false, editable = false, starClassName, onClick, ...props }) => {
60
+ const resolvedSize = useComponentSize(size);
59
61
  const getStarSize = () => {
60
- if (size === "xs") return 12;
61
- if (size === "sm") return 14;
62
- if (size === "lg") return 20;
63
- if (size === "xl") return 24;
62
+ if (resolvedSize === "xs") return 12;
63
+ if (resolvedSize === "sm") return 14;
64
+ if (resolvedSize === "lg") return 20;
65
+ if (resolvedSize === "xl") return 24;
64
66
  return 16;
65
67
  };
66
68
  const getAriaLabel = () => {
@@ -72,9 +74,11 @@ const RatingStar = ({ className, size, filled = false, halfFilled = false, activ
72
74
  return /* @__PURE__ */ jsxs("button", {
73
75
  "aria-label": getAriaLabel(),
74
76
  className: cn(ratingStarVariants({
75
- size,
76
- editable
77
+ editable,
78
+ size: resolvedSize
77
79
  }), className),
80
+ "data-size": resolvedSize,
81
+ "data-slot": "rating-star",
78
82
  disabled: !editable,
79
83
  onClick,
80
84
  type: "button",
@@ -117,33 +121,36 @@ const RatingStar = ({ className, size, filled = false, halfFilled = false, activ
117
121
  //#region src/ui/rating/rating.tsx
118
122
  const ratingVariants = tv({
119
123
  base: ["inline-flex items-center gap-1"],
124
+ defaultVariants: { size: "md" },
120
125
  variants: { size: {
121
- xs: ["gap-0.5"],
122
- sm: ["gap-0.5"],
123
- md: ["gap-1"],
124
126
  lg: ["gap-1.5"],
125
- xl: ["gap-2"]
126
- } },
127
- defaultVariants: { size: "md" }
127
+ md: ["gap-1"],
128
+ sm: ["gap-0.5"],
129
+ xl: ["gap-2"],
130
+ xs: ["gap-0.5"]
131
+ } }
128
132
  });
129
133
  const ratingValueVariants = tv({
130
134
  base: ["text-sm font-medium"],
135
+ defaultVariants: { size: "md" },
131
136
  variants: { size: {
132
- xs: ["text-xs"],
133
- sm: ["text-xs"],
134
- md: ["text-sm"],
135
137
  lg: ["text-base"],
136
- xl: ["text-base"]
137
- } },
138
- defaultVariants: { size: "md" }
138
+ md: ["text-sm"],
139
+ sm: ["text-xs"],
140
+ xl: ["text-base"],
141
+ xs: ["text-xs"]
142
+ } }
139
143
  });
140
144
  const Rating = ({ className, size, rating, maxRating = 5, showValue = false, editable = false, onRatingChange, starClassName, ...props }) => {
145
+ const { size: componentDefaultSize } = useKuzenboComponentDefaults("Rating");
146
+ const resolvedSize = useComponentSize(size, componentDefaultSize);
141
147
  const handleStarClick = useCallback((e) => {
142
148
  const value = Number(e.currentTarget.dataset.value);
143
149
  if (editable && onRatingChange) onRatingChange(value);
144
150
  }, [editable, onRatingChange]);
145
151
  return /* @__PURE__ */ jsxs("div", {
146
- className: cn(ratingVariants({ size }), className),
152
+ className: cn(ratingVariants({ size: resolvedSize }), className),
153
+ "data-size": resolvedSize,
147
154
  "data-slot": "rating",
148
155
  ...props,
149
156
  children: [Array.from({ length: maxRating }, (_, index) => {
@@ -158,10 +165,12 @@ const Rating = ({ className, size, rating, maxRating = 5, showValue = false, edi
158
165
  filled: isFilled,
159
166
  halfFilled: isHalfFilled,
160
167
  onClick: handleStarClick,
161
- size
168
+ size: resolvedSize
162
169
  }, starValue);
163
170
  }), showValue && /* @__PURE__ */ jsx("span", {
164
- className: cn(ratingValueVariants({ size }), "ml-1"),
171
+ className: cn(ratingValueVariants({ size: resolvedSize }), "ml-1"),
172
+ "data-size": resolvedSize,
173
+ "data-slot": "rating-value",
165
174
  children: rating.toFixed(1)
166
175
  })]
167
176
  });
@@ -1 +1 @@
1
- {"version":3,"file":"rating.js","names":[],"sources":["../../src/ui/rating/rating-star.tsx","../../src/ui/rating/rating.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ComponentProps } from \"react\";\n\nimport { StarIcon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nexport const ratingStarVariants = tv({\n base: [\n // Layout: relative container for star\n \"relative inline-flex shrink-0\",\n // Cursor: clickable when editable\n \"cursor-pointer\",\n // Transitions: smooth color transitions\n \"transition-colors duration-150\",\n ],\n variants: {\n size: {\n xs: [\n // Extra small size: smallest star\n \"size-3\",\n ],\n sm: [\n // Small size: smaller star\n \"size-3.5\",\n ],\n md: [\n // Medium size: default star\n \"size-4\",\n ],\n lg: [\n // Large size: larger star\n \"size-5\",\n ],\n xl: [\n // Extra large size: largest star\n \"size-6\",\n ],\n },\n editable: {\n true: [\n // Hover: slight scale on hover when editable\n \"hover:scale-110\",\n ],\n false: [\n // Non-editable: no pointer cursor\n \"cursor-default\",\n ],\n },\n },\n defaultVariants: {\n size: \"md\",\n editable: false,\n },\n});\n\nexport const ratingStarFilledVariants = tv({\n base: [\n // Layout: absolute positioned filled star\n \"absolute inset-0\",\n // Fill: semantic warning token for filled stars\n \"fill-warning-foreground text-warning-foreground\",\n ],\n variants: {\n visible: {\n true: [\n // Visible: show filled star\n \"opacity-100\",\n ],\n false: [\n // Hidden: hide filled star\n \"opacity-0\",\n ],\n },\n },\n defaultVariants: {\n visible: true,\n },\n});\n\nexport const ratingStarHalfVariants = tv({\n base: [\n // Layout: absolute positioned half-filled star\n \"absolute inset-0 overflow-hidden\",\n // Fill: semantic warning token for half-filled stars\n \"fill-warning-foreground text-warning-foreground\",\n ],\n variants: {\n visible: {\n true: [\n // Visible: show half-filled star\n \"opacity-100\",\n ],\n false: [\n // Hidden: hide half-filled star\n \"opacity-0\",\n ],\n },\n },\n defaultVariants: {\n visible: true,\n },\n});\n\nexport const ratingStarOutlineVariants = tv({\n base: [\n // Layout: relative positioned outline star\n \"relative\",\n // Color: muted color for outline\n \"text-muted-foreground\",\n ],\n variants: {\n active: {\n true: [\n // Active: slightly visible outline\n \"opacity-30\",\n ],\n false: [\n // Inactive: more visible outline\n \"opacity-100\",\n ],\n },\n },\n defaultVariants: {\n active: false,\n },\n});\n\ntype RatingStarVariants = VariantProps<typeof ratingStarVariants>;\n\nexport type RatingStarProps = RatingStarVariants &\n ComponentProps<\"button\"> & {\n filled?: boolean;\n halfFilled?: boolean;\n active?: boolean;\n starClassName?: string;\n };\n\nexport const RatingStar = ({\n className,\n size,\n filled = false,\n halfFilled = false,\n active = false,\n editable = false,\n starClassName,\n onClick,\n ...props\n}: RatingStarProps) => {\n const getStarSize = () => {\n if (size === \"xs\") {\n return 12;\n }\n if (size === \"sm\") {\n return 14;\n }\n if (size === \"lg\") {\n return 20;\n }\n if (size === \"xl\") {\n return 24;\n }\n return 16;\n };\n\n const getAriaLabel = () => {\n if (filled) {\n return \"Filled star\";\n }\n if (halfFilled) {\n return \"Half-filled star\";\n }\n return \"Empty star\";\n };\n\n const starSize = getStarSize();\n\n return (\n <button\n aria-label={getAriaLabel()}\n className={cn(ratingStarVariants({ size, editable }), className)}\n disabled={!editable}\n onClick={onClick}\n type=\"button\"\n {...props}\n >\n {/* Filled star overlay */}\n <span\n className={cn(\n ratingStarFilledVariants({ visible: filled }),\n starClassName\n )}\n >\n <HugeiconsIcon\n className=\"fill-warning-foreground text-warning-foreground\"\n icon={StarIcon}\n size={starSize}\n strokeWidth={1.5}\n />\n </span>\n\n {/* Half-filled star overlay */}\n {halfFilled && (\n <span\n className={cn(\n ratingStarHalfVariants({ visible: true }),\n starClassName\n )}\n >\n <div className=\"w-1/2 overflow-hidden\">\n <HugeiconsIcon\n className=\"fill-warning-foreground text-warning-foreground\"\n icon={StarIcon}\n size={starSize}\n strokeWidth={1.5}\n />\n </div>\n </span>\n )}\n\n {/* Outline star */}\n <span\n className={cn(ratingStarOutlineVariants({ active }), starClassName)}\n >\n <HugeiconsIcon icon={StarIcon} size={starSize} strokeWidth={1.5} />\n </span>\n </button>\n );\n};\n","\"use client\";\n\nimport type { ComponentProps, MouseEvent } from \"react\";\n\nimport { useCallback } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport { RatingStar } from \"./rating-star\";\n\nexport const ratingVariants = tv({\n base: [\n // Layout: flex container with centered items\n \"inline-flex items-center gap-1\",\n ],\n variants: {\n size: {\n xs: [\n // Extra small size: compact gap\n \"gap-0.5\",\n ],\n sm: [\n // Small size: smaller gap and text\n \"gap-0.5\",\n ],\n md: [\n // Medium size: default gap\n \"gap-1\",\n ],\n lg: [\n // Large size: larger gap\n \"gap-1.5\",\n ],\n xl: [\n // Extra large size: largest spacing\n \"gap-2\",\n ],\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport const ratingValueVariants = tv({\n base: [\n // Typography: rating value text styling\n \"text-sm font-medium\",\n ],\n variants: {\n size: {\n xs: [\n // Extra small size: smallest text\n \"text-xs\",\n ],\n sm: [\n // Small size: smaller text\n \"text-xs\",\n ],\n md: [\n // Medium size: default text\n \"text-sm\",\n ],\n lg: [\n // Large size: larger text\n \"text-base\",\n ],\n xl: [\n // Extra large size: largest text\n \"text-base\",\n ],\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\ntype RatingVariants = VariantProps<typeof ratingVariants>;\n\nexport type RatingProps = RatingVariants &\n Omit<ComponentProps<\"div\">, \"onClick\"> & {\n rating: number;\n maxRating?: number;\n showValue?: boolean;\n editable?: boolean;\n onRatingChange?: (rating: number) => void;\n starClassName?: string;\n };\n\nconst Rating = ({\n className,\n size,\n rating,\n maxRating = 5,\n showValue = false,\n editable = false,\n onRatingChange,\n starClassName,\n ...props\n}: RatingProps) => {\n const handleStarClick = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n const value = Number(e.currentTarget.dataset.value);\n if (editable && onRatingChange) {\n onRatingChange(value);\n }\n },\n [editable, onRatingChange]\n );\n\n return (\n <div\n className={cn(ratingVariants({ size }), className)}\n data-slot=\"rating\"\n {...props}\n >\n {Array.from({ length: maxRating }, (_, index) => {\n const starValue = index + 1;\n const isFilled = starValue <= Math.floor(rating);\n const isHalfFilled =\n !isFilled && starValue - 0.5 <= rating && rating < starValue;\n const isActive = starValue <= rating;\n\n return (\n <RatingStar\n active={isActive}\n className={starClassName}\n data-value={starValue}\n editable={editable}\n filled={isFilled}\n halfFilled={isHalfFilled}\n key={starValue}\n onClick={handleStarClick}\n size={size}\n />\n );\n })}\n {showValue && (\n <span className={cn(ratingValueVariants({ size }), \"ml-1\")}>\n {rating.toFixed(1)}\n </span>\n )}\n </div>\n );\n};\n\nRating.Star = RatingStar;\n\nexport { Rating, RatingStar };\n\nexport type { RatingStarProps } from \"./rating-star\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"rating.js","names":[],"sources":["../../src/ui/rating/rating-star.tsx","../../src/ui/rating/rating.tsx"],"sourcesContent":["\"use client\";\n\nimport { StarIcon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport type { ComponentProps } from \"react\";\nimport { cn, tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { useComponentSize } from \"../shared/size/size-provider\";\n\nexport const ratingStarVariants = tv({\n base: [\n // Layout: relative container for star\n \"relative inline-flex shrink-0\",\n // Cursor: clickable when editable\n \"cursor-clickable\",\n // Transitions: smooth color transitions\n \"transition-colors duration-150\",\n ],\n defaultVariants: {\n editable: false,\n size: \"md\",\n },\n variants: {\n editable: {\n false: [\n // Non-editable: no pointer cursor\n \"cursor-default\",\n ],\n true: [\n // Hover: slight scale on hover when editable\n \"hover:scale-110\",\n ],\n },\n size: {\n lg: [\n // Large size: larger star\n \"size-5\",\n ],\n md: [\n // Medium size: default star\n \"size-4\",\n ],\n sm: [\n // Small size: smaller star\n \"size-3.5\",\n ],\n xl: [\n // Extra large size: largest star\n \"size-6\",\n ],\n xs: [\n // Extra small size: smallest star\n \"size-3\",\n ],\n },\n },\n});\n\nexport const ratingStarFilledVariants = tv({\n base: [\n // Layout: absolute positioned filled star\n \"absolute inset-0\",\n // Fill: semantic warning token for filled stars\n \"fill-warning-foreground text-warning-foreground\",\n ],\n defaultVariants: {\n visible: true,\n },\n variants: {\n visible: {\n false: [\n // Hidden: hide filled star\n \"opacity-0\",\n ],\n true: [\n // Visible: show filled star\n \"opacity-100\",\n ],\n },\n },\n});\n\nexport const ratingStarHalfVariants = tv({\n base: [\n // Layout: absolute positioned half-filled star\n \"absolute inset-0 overflow-hidden\",\n // Fill: semantic warning token for half-filled stars\n \"fill-warning-foreground text-warning-foreground\",\n ],\n defaultVariants: {\n visible: true,\n },\n variants: {\n visible: {\n false: [\n // Hidden: hide half-filled star\n \"opacity-0\",\n ],\n true: [\n // Visible: show half-filled star\n \"opacity-100\",\n ],\n },\n },\n});\n\nexport const ratingStarOutlineVariants = tv({\n base: [\n // Layout: relative positioned outline star\n \"relative\",\n // Color: muted color for outline\n \"text-muted-foreground\",\n ],\n defaultVariants: {\n active: false,\n },\n variants: {\n active: {\n false: [\n // Inactive: more visible outline\n \"opacity-100\",\n ],\n true: [\n // Active: slightly visible outline\n \"opacity-30\",\n ],\n },\n },\n});\n\ntype RatingStarVariants = VariantProps<typeof ratingStarVariants>;\n\nexport type RatingStarProps = RatingStarVariants &\n ComponentProps<\"button\"> & {\n filled?: boolean;\n halfFilled?: boolean;\n active?: boolean;\n starClassName?: string;\n };\n\nexport const RatingStar = ({\n className,\n size,\n filled = false,\n halfFilled = false,\n active = false,\n editable = false,\n starClassName,\n onClick,\n ...props\n}: RatingStarProps) => {\n const resolvedSize = useComponentSize(size);\n\n const getStarSize = () => {\n if (resolvedSize === \"xs\") {\n return 12;\n }\n if (resolvedSize === \"sm\") {\n return 14;\n }\n if (resolvedSize === \"lg\") {\n return 20;\n }\n if (resolvedSize === \"xl\") {\n return 24;\n }\n return 16;\n };\n\n const getAriaLabel = () => {\n if (filled) {\n return \"Filled star\";\n }\n if (halfFilled) {\n return \"Half-filled star\";\n }\n return \"Empty star\";\n };\n\n const starSize = getStarSize();\n\n return (\n <button\n aria-label={getAriaLabel()}\n className={cn(\n ratingStarVariants({ editable, size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"rating-star\"\n disabled={!editable}\n onClick={onClick}\n type=\"button\"\n {...props}\n >\n {/* Filled star overlay */}\n <span\n className={cn(\n ratingStarFilledVariants({ visible: filled }),\n starClassName\n )}\n >\n <HugeiconsIcon\n className=\"fill-warning-foreground text-warning-foreground\"\n icon={StarIcon}\n size={starSize}\n strokeWidth={1.5}\n />\n </span>\n\n {/* Half-filled star overlay */}\n {halfFilled && (\n <span\n className={cn(\n ratingStarHalfVariants({ visible: true }),\n starClassName\n )}\n >\n <div className=\"w-1/2 overflow-hidden\">\n <HugeiconsIcon\n className=\"fill-warning-foreground text-warning-foreground\"\n icon={StarIcon}\n size={starSize}\n strokeWidth={1.5}\n />\n </div>\n </span>\n )}\n\n {/* Outline star */}\n <span\n className={cn(ratingStarOutlineVariants({ active }), starClassName)}\n >\n <HugeiconsIcon icon={StarIcon} size={starSize} strokeWidth={1.5} />\n </span>\n </button>\n );\n};\n","\"use client\";\n\nimport type { ComponentProps, MouseEvent } from \"react\";\nimport { useCallback } from \"react\";\nimport { cn, tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport {\n useComponentSize,\n useKuzenboComponentDefaults,\n} from \"../shared/size/size-provider\";\nimport { RatingStar } from \"./rating-star\";\n\nexport const ratingVariants = tv({\n base: [\n // Layout: flex container with centered items\n \"inline-flex items-center gap-1\",\n ],\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: [\n // Large size: larger gap\n \"gap-1.5\",\n ],\n md: [\n // Medium size: default gap\n \"gap-1\",\n ],\n sm: [\n // Small size: smaller gap and text\n \"gap-0.5\",\n ],\n xl: [\n // Extra large size: largest spacing\n \"gap-2\",\n ],\n xs: [\n // Extra small size: compact gap\n \"gap-0.5\",\n ],\n },\n },\n});\n\nexport const ratingValueVariants = tv({\n base: [\n // Typography: rating value text styling\n \"text-sm font-medium\",\n ],\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: [\n // Large size: larger text\n \"text-base\",\n ],\n md: [\n // Medium size: default text\n \"text-sm\",\n ],\n sm: [\n // Small size: smaller text\n \"text-xs\",\n ],\n xl: [\n // Extra large size: largest text\n \"text-base\",\n ],\n xs: [\n // Extra small size: smallest text\n \"text-xs\",\n ],\n },\n },\n});\n\ntype RatingVariants = VariantProps<typeof ratingVariants>;\n\nexport type RatingProps = RatingVariants &\n Omit<ComponentProps<\"div\">, \"onClick\"> & {\n rating: number;\n maxRating?: number;\n showValue?: boolean;\n editable?: boolean;\n onRatingChange?: (rating: number) => void;\n starClassName?: string;\n };\n\nconst Rating = ({\n className,\n size,\n rating,\n maxRating = 5,\n showValue = false,\n editable = false,\n onRatingChange,\n starClassName,\n ...props\n}: RatingProps) => {\n const { size: componentDefaultSize } =\n useKuzenboComponentDefaults<RatingProps>(\"Rating\");\n const resolvedSize = useComponentSize(size, componentDefaultSize);\n\n const handleStarClick = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n const value = Number(e.currentTarget.dataset.value);\n if (editable && onRatingChange) {\n onRatingChange(value);\n }\n },\n [editable, onRatingChange]\n );\n\n return (\n <div\n className={cn(ratingVariants({ size: resolvedSize }), className)}\n data-size={resolvedSize}\n data-slot=\"rating\"\n {...props}\n >\n {Array.from({ length: maxRating }, (_, index) => {\n const starValue = index + 1;\n const isFilled = starValue <= Math.floor(rating);\n const isHalfFilled =\n !isFilled && starValue - 0.5 <= rating && rating < starValue;\n const isActive = starValue <= rating;\n\n return (\n <RatingStar\n active={isActive}\n className={starClassName}\n data-value={starValue}\n editable={editable}\n filled={isFilled}\n halfFilled={isHalfFilled}\n key={starValue}\n onClick={handleStarClick}\n size={resolvedSize}\n />\n );\n })}\n {showValue && (\n <span\n className={cn(ratingValueVariants({ size: resolvedSize }), \"ml-1\")}\n data-size={resolvedSize}\n data-slot=\"rating-value\"\n >\n {rating.toFixed(1)}\n </span>\n )}\n </div>\n );\n};\n\nRating.Star = RatingStar;\n\nexport { Rating, RatingStar };\n\nexport type { RatingStarProps } from \"./rating-star\";\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resizable.d.ts","names":[],"sources":["../../src/ui/resizable/resizable-handle.tsx","../../src/ui/resizable/resizable-panel.tsx","../../src/ui/resizable/resizable.tsx"],"mappings":";;;;;KAMY,oBAAA,GAAuB,cAAA,QAAsB,SAAA;EACvD,UAAA;AAAA;AAAA,cAGI,eAAA;EAAmB,UAAA;EAAA,SAAA;EAAA,GAAA;AAAA,GAItB,oBAAA,KAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCTX,mBAAA,GAAsB,cAAA,QAAsB,KAAA;AAAA,cAElD,cAAA;EAAA,GAAkB;AAAA,GAAc,mBAAA,KAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCE7C,wBAAA,GAA2B,cAAA,QAAsB,KAAA;AAAA,cAEvD,mBAAA;EAAA;;;KAGH,wBAAA,GAAwB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"resizable.d.ts","names":[],"sources":["../../src/ui/resizable/resizable-handle.tsx","../../src/ui/resizable/resizable-panel.tsx","../../src/ui/resizable/resizable.tsx"],"mappings":";;;;;KAKY,oBAAA,GAAuB,cAAA,QAAsB,SAAA;EACvD,UAAA;AAAA;AAAA,cAGI,eAAA;EAAmB,UAAA;EAAA,SAAA;EAAA,GAAA;AAAA,GAItB,oBAAA,KAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCTX,mBAAA,GAAsB,cAAA,QAAsB,KAAA;AAAA,cAElD,cAAA;EAAA,GAAkB;AAAA,GAAc,mBAAA,KAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCE7C,wBAAA,GAA2B,cAAA,QAAsB,KAAA;AAAA,cAEvD,mBAAA;EAAA;;;KAGH,wBAAA,GAAwB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -6,10 +6,10 @@ import { Group, Panel, Separator } from "react-resizable-panels";
6
6
 
7
7
  //#region src/ui/resizable/resizable-handle.tsx
8
8
  const ResizableHandle = ({ withHandle, className, ...props }) => /* @__PURE__ */ jsx(Separator, {
9
- className: cn("relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90", className),
9
+ className: cn("bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90", className),
10
10
  "data-slot": "resizable-handle",
11
11
  ...props,
12
- children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border" })
12
+ children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-raised bg-border flex h-6 w-1 shrink-0 rounded-lg" })
13
13
  });
14
14
 
15
15
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"resizable.js","names":[],"sources":["../../src/ui/resizable/resizable-handle.tsx","../../src/ui/resizable/resizable-panel.tsx","../../src/ui/resizable/resizable.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ComponentProps } from \"react\";\n\nimport { Separator } from \"react-resizable-panels\";\nimport { cn } from \"tailwind-variants\";\nexport type ResizableHandleProps = ComponentProps<typeof Separator> & {\n withHandle?: boolean;\n};\n\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: ResizableHandleProps) => (\n <Separator\n className={cn(\n \"relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90\",\n className\n )}\n data-slot=\"resizable-handle\"\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex h-6 w-1 shrink-0 rounded-lg bg-border\" />\n )}\n </Separator>\n);\n\nexport { ResizableHandle };\n","\"use client\";\n\nimport type { ComponentProps } from \"react\";\n\nimport { Panel } from \"react-resizable-panels\";\nexport type ResizablePanelProps = ComponentProps<typeof Panel>;\n\nconst ResizablePanel = ({ ...props }: ResizablePanelProps) => (\n <Panel data-slot=\"resizable-panel\" {...props} />\n);\n\nexport { ResizablePanel };\n","\"use client\";\n\nimport type { ComponentProps } from \"react\";\n\nimport { Group } from \"react-resizable-panels\";\nimport { cn } from \"tailwind-variants\";\n\nimport { ResizableHandle } from \"./resizable-handle\";\nimport { ResizablePanel } from \"./resizable-panel\";\nexport type ResizablePanelGroupProps = ComponentProps<typeof Group>;\n\nconst ResizablePanelGroup = ({\n className,\n ...props\n}: ResizablePanelGroupProps) => (\n <Group\n className={cn(\n \"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\",\n className\n )}\n data-slot=\"resizable-panel-group\"\n {...props}\n />\n);\n\nResizablePanelGroup.Handle = ResizableHandle;\nResizablePanelGroup.Panel = ResizablePanel;\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup };\n\nexport type { ResizableHandleProps } from \"./resizable-handle\";\nexport type { ResizablePanelProps } from \"./resizable-panel\";\n"],"mappings":";;;;;;;AAUA,MAAM,mBAAmB,EACvB,YACA,WACA,GAAG,YAEH,oBAAC;CACC,WAAW,GACT,6oBACA,UACD;CACD,aAAU;CACV,GAAI;WAEH,cACC,oBAAC,SAAI,WAAU,oDAAoD;EAE3D;;;;ACnBd,MAAM,kBAAkB,EAAE,GAAG,YAC3B,oBAAC;CAAM,aAAU;CAAkB,GAAI;EAAS;;;;ACGlD,MAAM,uBAAuB,EAC3B,WACA,GAAG,YAEH,oBAAC;CACC,WAAW,GACT,qEACA,UACD;CACD,aAAU;CACV,GAAI;EACJ;AAGJ,oBAAoB,SAAS;AAC7B,oBAAoB,QAAQ"}
1
+ {"version":3,"file":"resizable.js","names":[],"sources":["../../src/ui/resizable/resizable-handle.tsx","../../src/ui/resizable/resizable-panel.tsx","../../src/ui/resizable/resizable.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ComponentProps } from \"react\";\nimport { Separator } from \"react-resizable-panels\";\nimport { cn } from \"tailwind-variants\";\nexport type ResizableHandleProps = ComponentProps<typeof Separator> & {\n withHandle?: boolean;\n};\n\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: ResizableHandleProps) => (\n <Separator\n className={cn(\n \"bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90\",\n className\n )}\n data-slot=\"resizable-handle\"\n {...props}\n >\n {withHandle && (\n <div className=\"z-raised bg-border flex h-6 w-1 shrink-0 rounded-lg\" />\n )}\n </Separator>\n);\n\nexport { ResizableHandle };\n","\"use client\";\n\nimport type { ComponentProps } from \"react\";\nimport { Panel } from \"react-resizable-panels\";\nexport type ResizablePanelProps = ComponentProps<typeof Panel>;\n\nconst ResizablePanel = ({ ...props }: ResizablePanelProps) => (\n <Panel data-slot=\"resizable-panel\" {...props} />\n);\n\nexport { ResizablePanel };\n","\"use client\";\n\nimport type { ComponentProps } from \"react\";\nimport { Group } from \"react-resizable-panels\";\nimport { cn } from \"tailwind-variants\";\n\nimport { ResizableHandle } from \"./resizable-handle\";\nimport { ResizablePanel } from \"./resizable-panel\";\nexport type ResizablePanelGroupProps = ComponentProps<typeof Group>;\n\nconst ResizablePanelGroup = ({\n className,\n ...props\n}: ResizablePanelGroupProps) => (\n <Group\n className={cn(\n \"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\",\n className\n )}\n data-slot=\"resizable-panel-group\"\n {...props}\n />\n);\n\nResizablePanelGroup.Handle = ResizableHandle;\nResizablePanelGroup.Panel = ResizablePanel;\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup };\n\nexport type { ResizableHandleProps } from \"./resizable-handle\";\nexport type { ResizablePanelProps } from \"./resizable-panel\";\n"],"mappings":";;;;;;;AASA,MAAM,mBAAmB,EACvB,YACA,WACA,GAAG,YAEH,oBAAC,WAAD;CACE,WAAW,GACT,6oBACA,UACD;CACD,aAAU;CACV,GAAI;WAEH,cACC,oBAAC,OAAD,EAAK,WAAU,uDAAwD;CAE/D;;;;ACnBd,MAAM,kBAAkB,EAAE,GAAG,YAC3B,oBAAC,OAAD;CAAO,aAAU;CAAkB,GAAI;CAAS;;;;ACGlD,MAAM,uBAAuB,EAC3B,WACA,GAAG,YAEH,oBAAC,OAAD;CACE,WAAW,GACT,qEACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;AAGJ,oBAAoB,SAAS;AAC7B,oBAAoB,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-area.js","names":["ScrollAreaPrimitive","ScrollAreaPrimitive","ScrollAreaPrimitive","ScrollAreaPrimitive"],"sources":["../../src/ui/scroll-area/scroll-content.tsx","../../src/ui/scroll-area/scroll-corner.tsx","../../src/ui/scroll-area/scroll-viewport.tsx","../../src/ui/scroll-area/scroll-area.tsx"],"sourcesContent":["import { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nexport type ScrollAreaContentProps = ScrollAreaPrimitive.Content.Props;\n\nconst ScrollAreaContent = ({ className, ...props }: ScrollAreaContentProps) => (\n <ScrollAreaPrimitive.Content\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Content.State>(\n undefined,\n className\n )}\n data-slot=\"scroll-area-content\"\n {...props}\n />\n);\n\nexport { ScrollAreaContent };\n","import { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nexport type ScrollAreaCornerProps = ScrollAreaPrimitive.Corner.Props;\n\nconst ScrollAreaCorner = ({ className, ...props }: ScrollAreaCornerProps) => (\n <ScrollAreaPrimitive.Corner\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Corner.State>(\n undefined,\n className\n )}\n data-slot=\"scroll-area-corner\"\n {...props}\n />\n);\n\nexport { ScrollAreaCorner };\n","import { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nexport type ScrollAreaViewportProps = ScrollAreaPrimitive.Viewport.Props;\n\nconst ScrollAreaViewport = ({\n className,\n ...props\n}: ScrollAreaViewportProps) => (\n <ScrollAreaPrimitive.Viewport\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Viewport.State>(\n \"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1\",\n className\n )}\n data-slot=\"scroll-area-viewport\"\n {...props}\n />\n);\n\nexport { ScrollAreaViewport };\n","\"use client\";\n\nimport { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\nimport { Children, isValidElement } from \"react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ScrollBar } from \"./scroll-bar\";\nimport { ScrollAreaContent } from \"./scroll-content\";\nimport { ScrollAreaCorner } from \"./scroll-corner\";\nimport { ScrollAreaThumb } from \"./scroll-thumb\";\nimport { ScrollAreaViewport } from \"./scroll-viewport\";\nexport type ScrollAreaProps = ScrollAreaPrimitive.Root.Props;\n\nconst ScrollArea = ({ className, children, ...props }: ScrollAreaProps) => (\n <ScrollAreaPrimitive.Root\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Root.State>(\n \"relative\",\n className\n )}\n data-slot=\"scroll-area\"\n {...props}\n >\n {Children.toArray(children).some((child) => {\n if (!isValidElement(child)) {\n return false;\n }\n return (\n child.type === ScrollAreaPrimitive.Viewport ||\n child.type === ScrollAreaViewport\n );\n }) ? (\n children\n ) : (\n <>\n <ScrollAreaViewport>\n <ScrollAreaContent>{children}</ScrollAreaContent>\n </ScrollAreaViewport>\n <ScrollBar />\n <ScrollAreaCorner />\n </>\n )}\n </ScrollAreaPrimitive.Root>\n);\n\nScrollArea.Bar = ScrollBar;\nScrollArea.Content = ScrollAreaContent;\nScrollArea.Corner = ScrollAreaCorner;\nScrollArea.Scrollbar = ScrollBar;\nScrollArea.Thumb = ScrollAreaThumb;\nScrollArea.Viewport = ScrollAreaViewport;\n\nexport {\n ScrollArea,\n ScrollAreaContent,\n ScrollAreaCorner,\n ScrollAreaThumb,\n ScrollAreaViewport,\n ScrollBar,\n};\n\nexport type { ScrollBarProps } from \"./scroll-bar\";\nexport type { ScrollAreaContentProps } from \"./scroll-content\";\nexport type { ScrollAreaCornerProps } from \"./scroll-corner\";\nexport type { ScrollAreaThumbProps } from \"./scroll-thumb\";\nexport type { ScrollAreaViewportProps } from \"./scroll-viewport\";\n"],"mappings":";;;;;;;;;AAKA,MAAM,qBAAqB,EAAE,WAAW,GAAG,YACzC,oBAACA,aAAoB;CACnB,WAAW,qBACT,QACA,UACD;CACD,aAAU;CACV,GAAI;EACJ;;;;ACRJ,MAAM,oBAAoB,EAAE,WAAW,GAAG,YACxC,oBAACC,aAAoB;CACnB,WAAW,qBACT,QACA,UACD;CACD,aAAU;CACV,GAAI;EACJ;;;;ACRJ,MAAM,sBAAsB,EAC1B,WACA,GAAG,YAEH,oBAACC,aAAoB;CACnB,WAAW,qBACT,sJACA,UACD;CACD,aAAU;CACV,GAAI;EACJ;;;;ACHJ,MAAM,cAAc,EAAE,WAAW,UAAU,GAAG,YAC5C,oBAACC,aAAoB;CACnB,WAAW,qBACT,YACA,UACD;CACD,aAAU;CACV,GAAI;WAEH,SAAS,QAAQ,SAAS,CAAC,MAAM,UAAU;AAC1C,MAAI,CAAC,eAAe,MAAM,CACxB,QAAO;AAET,SACE,MAAM,SAASA,aAAoB,YACnC,MAAM,SAAS;GAEjB,GACA,WAEA;EACE,oBAAC,gCACC,oBAAC,qBAAmB,WAA6B,GAC9B;EACrB,oBAAC,cAAY;EACb,oBAAC,qBAAmB;KACnB;EAEoB;AAG7B,WAAW,MAAM;AACjB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,WAAW"}
1
+ {"version":3,"file":"scroll-area.js","names":["ScrollAreaPrimitive","ScrollAreaPrimitive","ScrollAreaPrimitive","ScrollAreaPrimitive"],"sources":["../../src/ui/scroll-area/scroll-content.tsx","../../src/ui/scroll-area/scroll-corner.tsx","../../src/ui/scroll-area/scroll-viewport.tsx","../../src/ui/scroll-area/scroll-area.tsx"],"sourcesContent":["import { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nexport type ScrollAreaContentProps = ScrollAreaPrimitive.Content.Props;\n\nconst ScrollAreaContent = ({ className, ...props }: ScrollAreaContentProps) => (\n <ScrollAreaPrimitive.Content\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Content.State>(\n undefined,\n className\n )}\n data-slot=\"scroll-area-content\"\n {...props}\n />\n);\n\nexport { ScrollAreaContent };\n","import { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nexport type ScrollAreaCornerProps = ScrollAreaPrimitive.Corner.Props;\n\nconst ScrollAreaCorner = ({ className, ...props }: ScrollAreaCornerProps) => (\n <ScrollAreaPrimitive.Corner\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Corner.State>(\n undefined,\n className\n )}\n data-slot=\"scroll-area-corner\"\n {...props}\n />\n);\n\nexport { ScrollAreaCorner };\n","import { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nexport type ScrollAreaViewportProps = ScrollAreaPrimitive.Viewport.Props;\n\nconst ScrollAreaViewport = ({\n className,\n ...props\n}: ScrollAreaViewportProps) => (\n <ScrollAreaPrimitive.Viewport\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Viewport.State>(\n \"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1\",\n className\n )}\n data-slot=\"scroll-area-viewport\"\n {...props}\n />\n);\n\nexport { ScrollAreaViewport };\n","\"use client\";\n\nimport { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\nimport { Children, isValidElement } from \"react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ScrollBar } from \"./scroll-bar\";\nimport { ScrollAreaContent } from \"./scroll-content\";\nimport { ScrollAreaCorner } from \"./scroll-corner\";\nimport { ScrollAreaThumb } from \"./scroll-thumb\";\nimport { ScrollAreaViewport } from \"./scroll-viewport\";\nexport type ScrollAreaProps = ScrollAreaPrimitive.Root.Props;\n\nconst ScrollArea = ({ className, children, ...props }: ScrollAreaProps) => (\n <ScrollAreaPrimitive.Root\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Root.State>(\n \"relative\",\n className\n )}\n data-slot=\"scroll-area\"\n {...props}\n >\n {Children.toArray(children).some((child) => {\n if (!isValidElement(child)) {\n return false;\n }\n return (\n child.type === ScrollAreaPrimitive.Viewport ||\n child.type === ScrollAreaViewport\n );\n }) ? (\n children\n ) : (\n <>\n <ScrollAreaViewport>\n <ScrollAreaContent>{children}</ScrollAreaContent>\n </ScrollAreaViewport>\n <ScrollBar />\n <ScrollAreaCorner />\n </>\n )}\n </ScrollAreaPrimitive.Root>\n);\n\nScrollArea.Bar = ScrollBar;\nScrollArea.Content = ScrollAreaContent;\nScrollArea.Corner = ScrollAreaCorner;\nScrollArea.Scrollbar = ScrollBar;\nScrollArea.Thumb = ScrollAreaThumb;\nScrollArea.Viewport = ScrollAreaViewport;\n\nexport {\n ScrollArea,\n ScrollAreaContent,\n ScrollAreaCorner,\n ScrollAreaThumb,\n ScrollAreaViewport,\n ScrollBar,\n};\n\nexport type { ScrollBarProps } from \"./scroll-bar\";\nexport type { ScrollAreaContentProps } from \"./scroll-content\";\nexport type { ScrollAreaCornerProps } from \"./scroll-corner\";\nexport type { ScrollAreaThumbProps } from \"./scroll-thumb\";\nexport type { ScrollAreaViewportProps } from \"./scroll-viewport\";\n"],"mappings":";;;;;;;;;AAKA,MAAM,qBAAqB,EAAE,WAAW,GAAG,YACzC,oBAACA,aAAoB,SAArB;CACE,WAAW,qBACT,QACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACRJ,MAAM,oBAAoB,EAAE,WAAW,GAAG,YACxC,oBAACC,aAAoB,QAArB;CACE,WAAW,qBACT,QACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACRJ,MAAM,sBAAsB,EAC1B,WACA,GAAG,YAEH,oBAACC,aAAoB,UAArB;CACE,WAAW,qBACT,sJACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACHJ,MAAM,cAAc,EAAE,WAAW,UAAU,GAAG,YAC5C,oBAACC,aAAoB,MAArB;CACE,WAAW,qBACT,YACA,UACD;CACD,aAAU;CACV,GAAI;WAEH,SAAS,QAAQ,SAAS,CAAC,MAAM,UAAU;AAC1C,MAAI,CAAC,eAAe,MAAM,CACxB,QAAO;AAET,SACE,MAAM,SAASA,aAAoB,YACnC,MAAM,SAAS;GAEjB,GACA,WAEA;EACE,oBAAC,oBAAD,YACE,oBAAC,mBAAD,EAAoB,UAA6B,GAC9B;EACrB,oBAAC,WAAD,EAAa;EACb,oBAAC,kBAAD,EAAoB;EACnB;CAEoB;AAG7B,WAAW,MAAM;AACjB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,WAAW"}