@codefast/ui 0.0.8 → 0.0.10

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 (459) hide show
  1. package/dist/accordion.d.mts +8 -4
  2. package/dist/accordion.d.ts +8 -4
  3. package/dist/accordion.js +42 -32
  4. package/dist/accordion.js.map +1 -1
  5. package/dist/accordion.mjs +42 -32
  6. package/dist/accordion.mjs.map +1 -1
  7. package/dist/alert-dialog.d.mts +17 -8
  8. package/dist/alert-dialog.d.ts +17 -8
  9. package/dist/alert-dialog.js +47 -75
  10. package/dist/alert-dialog.js.map +1 -1
  11. package/dist/alert-dialog.mjs +47 -75
  12. package/dist/alert-dialog.mjs.map +1 -1
  13. package/dist/alert.d.mts +10 -5
  14. package/dist/alert.d.ts +10 -5
  15. package/dist/alert.js +5 -26
  16. package/dist/alert.js.map +1 -1
  17. package/dist/alert.mjs +5 -26
  18. package/dist/alert.mjs.map +1 -1
  19. package/dist/aspect-ratio.d.mts +2 -1
  20. package/dist/aspect-ratio.d.ts +2 -1
  21. package/dist/aspect-ratio.js.map +1 -1
  22. package/dist/aspect-ratio.mjs.map +1 -1
  23. package/dist/avatar.d.mts +7 -4
  24. package/dist/avatar.d.ts +7 -4
  25. package/dist/avatar.js +3 -16
  26. package/dist/avatar.js.map +1 -1
  27. package/dist/avatar.mjs +3 -16
  28. package/dist/avatar.mjs.map +1 -1
  29. package/dist/badge.d.mts +5 -2
  30. package/dist/badge.d.ts +5 -2
  31. package/dist/badge.js +1 -5
  32. package/dist/badge.js.map +1 -1
  33. package/dist/badge.mjs +1 -5
  34. package/dist/badge.mjs.map +1 -1
  35. package/dist/blockquote.d.mts +5 -4
  36. package/dist/blockquote.d.ts +5 -4
  37. package/dist/blockquote.js.map +1 -1
  38. package/dist/blockquote.mjs.map +1 -1
  39. package/dist/box.d.mts +1 -1
  40. package/dist/box.d.ts +1 -1
  41. package/dist/box.js +4 -6
  42. package/dist/box.js.map +1 -1
  43. package/dist/box.mjs +4 -6
  44. package/dist/box.mjs.map +1 -1
  45. package/dist/breadcrumb.d.mts +18 -11
  46. package/dist/breadcrumb.d.ts +18 -11
  47. package/dist/breadcrumb.js +12 -39
  48. package/dist/breadcrumb.js.map +1 -1
  49. package/dist/breadcrumb.mjs +12 -39
  50. package/dist/breadcrumb.mjs.map +1 -1
  51. package/dist/button.d.mts +4 -2
  52. package/dist/button.d.ts +4 -2
  53. package/dist/button.js +3 -2
  54. package/dist/button.mjs +2 -1
  55. package/dist/calendar.d.mts +3 -2
  56. package/dist/calendar.d.ts +3 -2
  57. package/dist/calendar.js +7 -19
  58. package/dist/calendar.js.map +1 -1
  59. package/dist/calendar.mjs +6 -18
  60. package/dist/calendar.mjs.map +1 -1
  61. package/dist/card.d.mts +13 -7
  62. package/dist/card.d.ts +13 -7
  63. package/dist/card.js +7 -44
  64. package/dist/card.js.map +1 -1
  65. package/dist/card.mjs +7 -44
  66. package/dist/card.mjs.map +1 -1
  67. package/dist/carousel.d.mts +13 -8
  68. package/dist/carousel.d.ts +13 -8
  69. package/dist/carousel.js +104 -104
  70. package/dist/carousel.js.map +1 -1
  71. package/dist/carousel.mjs +104 -104
  72. package/dist/carousel.mjs.map +1 -1
  73. package/dist/checkbox-cards.d.mts +15 -0
  74. package/dist/checkbox-cards.d.ts +15 -0
  75. package/dist/checkbox-cards.js +56 -0
  76. package/dist/checkbox-cards.js.map +1 -0
  77. package/dist/checkbox-cards.mjs +56 -0
  78. package/dist/checkbox-cards.mjs.map +1 -0
  79. package/dist/checkbox-group.d.mts +13 -0
  80. package/dist/checkbox-group.d.ts +13 -0
  81. package/dist/checkbox-group.js +44 -0
  82. package/dist/checkbox-group.js.map +1 -0
  83. package/dist/checkbox-group.mjs +44 -0
  84. package/dist/checkbox-group.mjs.map +1 -0
  85. package/dist/checkbox-group.primitive.d.mts +38 -0
  86. package/dist/checkbox-group.primitive.d.ts +38 -0
  87. package/dist/checkbox-group.primitive.js +19 -0
  88. package/dist/checkbox-group.primitive.js.map +1 -0
  89. package/dist/checkbox-group.primitive.mjs +19 -0
  90. package/dist/checkbox-group.primitive.mjs.map +1 -0
  91. package/dist/checkbox.d.mts +3 -2
  92. package/dist/checkbox.d.ts +3 -2
  93. package/dist/checkbox.js +5 -1
  94. package/dist/checkbox.js.map +1 -1
  95. package/dist/checkbox.mjs +5 -1
  96. package/dist/checkbox.mjs.map +1 -1
  97. package/dist/chunk-3ZZ3SRTJ.js +148 -0
  98. package/dist/chunk-3ZZ3SRTJ.js.map +1 -0
  99. package/dist/chunk-5UHPKXF4.mjs +60 -0
  100. package/dist/chunk-5UHPKXF4.mjs.map +1 -0
  101. package/dist/chunk-EWS3N4OZ.mjs +148 -0
  102. package/dist/chunk-EWS3N4OZ.mjs.map +1 -0
  103. package/dist/{chunk-PTD4AMHI.mjs → chunk-FGI3JA75.mjs} +1 -1
  104. package/dist/chunk-FGI3JA75.mjs.map +1 -0
  105. package/dist/{chunk-RTKEO347.js → chunk-IVYGBU4G.js} +1 -1
  106. package/dist/chunk-IVYGBU4G.js.map +1 -0
  107. package/dist/chunk-IXEJO7ZP.js +86 -0
  108. package/dist/chunk-IXEJO7ZP.js.map +1 -0
  109. package/dist/chunk-J6COVJTP.js +60 -0
  110. package/dist/chunk-J6COVJTP.js.map +1 -0
  111. package/dist/chunk-JULVZPCS.mjs +120 -0
  112. package/dist/chunk-JULVZPCS.mjs.map +1 -0
  113. package/dist/chunk-LNSEYAPJ.js +121 -0
  114. package/dist/chunk-LNSEYAPJ.js.map +1 -0
  115. package/dist/chunk-MOJNV3XZ.js +120 -0
  116. package/dist/chunk-MOJNV3XZ.js.map +1 -0
  117. package/dist/{chunk-U2WDUCW3.js → chunk-NEP3JDVQ.js} +31 -6
  118. package/dist/chunk-NEP3JDVQ.js.map +1 -0
  119. package/dist/chunk-OK63Q6EJ.mjs +121 -0
  120. package/dist/chunk-OK63Q6EJ.mjs.map +1 -0
  121. package/dist/{chunk-5GHZ6EXI.js → chunk-ORAVN37L.js} +6 -10
  122. package/dist/chunk-ORAVN37L.js.map +1 -0
  123. package/dist/{chunk-T52N6ZBP.mjs → chunk-XCBBSHAK.mjs} +6 -10
  124. package/dist/chunk-XCBBSHAK.mjs.map +1 -0
  125. package/dist/chunk-XCKLBP2V.mjs +86 -0
  126. package/dist/chunk-XCKLBP2V.mjs.map +1 -0
  127. package/dist/chunk-XHZUPL2U.mjs +81 -0
  128. package/dist/chunk-XHZUPL2U.mjs.map +1 -0
  129. package/dist/code.d.mts +5 -4
  130. package/dist/code.d.ts +5 -4
  131. package/dist/code.js.map +1 -1
  132. package/dist/code.mjs.map +1 -1
  133. package/dist/collapsible.d.mts +4 -1
  134. package/dist/collapsible.d.ts +4 -1
  135. package/dist/collapsible.js.map +1 -1
  136. package/dist/collapsible.mjs.map +1 -1
  137. package/dist/command.d.mts +24 -12
  138. package/dist/command.d.ts +24 -12
  139. package/dist/command.js +9 -40
  140. package/dist/command.js.map +1 -1
  141. package/dist/command.mjs +9 -40
  142. package/dist/command.mjs.map +1 -1
  143. package/dist/container.d.mts +5 -4
  144. package/dist/container.d.ts +5 -4
  145. package/dist/container.js.map +1 -1
  146. package/dist/container.mjs.map +1 -1
  147. package/dist/context-menu.d.mts +31 -16
  148. package/dist/context-menu.d.ts +31 -16
  149. package/dist/context-menu.js +108 -124
  150. package/dist/context-menu.js.map +1 -1
  151. package/dist/context-menu.mjs +109 -125
  152. package/dist/context-menu.mjs.map +1 -1
  153. package/dist/data-table.d.mts +10 -7
  154. package/dist/data-table.d.ts +10 -7
  155. package/dist/data-table.js +131 -149
  156. package/dist/data-table.js.map +1 -1
  157. package/dist/data-table.mjs +120 -138
  158. package/dist/data-table.mjs.map +1 -1
  159. package/dist/dialog.d.mts +14 -6
  160. package/dist/dialog.d.ts +14 -6
  161. package/dist/dialog.js +2 -2
  162. package/dist/dialog.mjs +1 -1
  163. package/dist/drawer.d.mts +12 -4
  164. package/dist/drawer.d.ts +12 -4
  165. package/dist/drawer.js +30 -63
  166. package/dist/drawer.js.map +1 -1
  167. package/dist/drawer.mjs +30 -63
  168. package/dist/drawer.mjs.map +1 -1
  169. package/dist/dropdown-menu.d.mts +29 -15
  170. package/dist/dropdown-menu.d.ts +29 -15
  171. package/dist/dropdown-menu.js +2 -2
  172. package/dist/dropdown-menu.mjs +1 -1
  173. package/dist/em.d.mts +5 -4
  174. package/dist/em.d.ts +5 -4
  175. package/dist/em.js.map +1 -1
  176. package/dist/em.mjs.map +1 -1
  177. package/dist/form.d.mts +14 -6
  178. package/dist/form.d.ts +14 -6
  179. package/dist/form.js +13 -40
  180. package/dist/form.js.map +1 -1
  181. package/dist/form.mjs +13 -40
  182. package/dist/form.mjs.map +1 -1
  183. package/dist/heading.d.mts +6 -5
  184. package/dist/heading.d.ts +6 -5
  185. package/dist/heading.js.map +1 -1
  186. package/dist/heading.mjs.map +1 -1
  187. package/dist/hover-card.d.mts +5 -2
  188. package/dist/hover-card.d.ts +5 -2
  189. package/dist/hover-card.js +15 -13
  190. package/dist/hover-card.js.map +1 -1
  191. package/dist/hover-card.mjs +15 -13
  192. package/dist/hover-card.mjs.map +1 -1
  193. package/dist/input-otp.d.mts +12 -32
  194. package/dist/input-otp.d.ts +12 -32
  195. package/dist/input-otp.js +16 -13
  196. package/dist/input-otp.js.map +1 -1
  197. package/dist/input-otp.mjs +15 -12
  198. package/dist/input-otp.mjs.map +1 -1
  199. package/dist/input.d.mts +6 -3
  200. package/dist/input.d.ts +6 -3
  201. package/dist/input.js +8 -10
  202. package/dist/input.js.map +1 -1
  203. package/dist/input.mjs +8 -10
  204. package/dist/input.mjs.map +1 -1
  205. package/dist/kbd.d.mts +5 -4
  206. package/dist/kbd.d.ts +5 -4
  207. package/dist/kbd.js.map +1 -1
  208. package/dist/kbd.mjs.map +1 -1
  209. package/dist/label.d.mts +3 -2
  210. package/dist/label.d.ts +3 -2
  211. package/dist/label.js +2 -2
  212. package/dist/label.mjs +1 -1
  213. package/dist/menubar.d.mts +32 -17
  214. package/dist/menubar.d.ts +32 -17
  215. package/dist/menubar.js +73 -93
  216. package/dist/menubar.js.map +1 -1
  217. package/dist/menubar.mjs +74 -94
  218. package/dist/menubar.mjs.map +1 -1
  219. package/dist/navigation-menu.d.mts +16 -8
  220. package/dist/navigation-menu.d.ts +16 -8
  221. package/dist/navigation-menu.js +89 -93
  222. package/dist/navigation-menu.js.map +1 -1
  223. package/dist/navigation-menu.mjs +89 -93
  224. package/dist/navigation-menu.mjs.map +1 -1
  225. package/dist/pagination.d.mts +13 -7
  226. package/dist/pagination.d.ts +13 -7
  227. package/dist/pagination.js +18 -55
  228. package/dist/pagination.js.map +1 -1
  229. package/dist/pagination.mjs +18 -55
  230. package/dist/pagination.mjs.map +1 -1
  231. package/dist/popover.d.mts +8 -3
  232. package/dist/popover.d.ts +8 -3
  233. package/dist/popover.js +16 -21
  234. package/dist/popover.js.map +1 -1
  235. package/dist/popover.mjs +16 -21
  236. package/dist/popover.mjs.map +1 -1
  237. package/dist/pre.d.mts +5 -4
  238. package/dist/pre.d.ts +5 -4
  239. package/dist/pre.js.map +1 -1
  240. package/dist/pre.mjs.map +1 -1
  241. package/dist/progress.d.mts +3 -2
  242. package/dist/progress.d.ts +3 -2
  243. package/dist/progress.js +2 -5
  244. package/dist/progress.js.map +1 -1
  245. package/dist/progress.mjs +2 -5
  246. package/dist/progress.mjs.map +1 -1
  247. package/dist/quote.d.mts +5 -4
  248. package/dist/quote.d.ts +5 -4
  249. package/dist/quote.js.map +1 -1
  250. package/dist/quote.mjs.map +1 -1
  251. package/dist/radio-cards.d.mts +9 -0
  252. package/dist/radio-cards.d.ts +9 -0
  253. package/dist/radio-cards.js +36 -0
  254. package/dist/radio-cards.js.map +1 -0
  255. package/dist/radio-cards.mjs +36 -0
  256. package/dist/radio-cards.mjs.map +1 -0
  257. package/dist/radio-group.d.mts +5 -3
  258. package/dist/radio-group.d.ts +5 -3
  259. package/dist/radio-group.js +3 -9
  260. package/dist/radio-group.js.map +1 -1
  261. package/dist/radio-group.mjs +3 -9
  262. package/dist/radio-group.mjs.map +1 -1
  263. package/dist/radio.d.mts +8 -0
  264. package/dist/radio.d.ts +8 -0
  265. package/dist/radio.js +35 -0
  266. package/dist/radio.js.map +1 -0
  267. package/dist/radio.mjs +35 -0
  268. package/dist/radio.mjs.map +1 -0
  269. package/dist/resizable.d.mts +6 -6
  270. package/dist/resizable.d.ts +6 -6
  271. package/dist/resizable.js +4 -6
  272. package/dist/resizable.js.map +1 -1
  273. package/dist/resizable.mjs +4 -6
  274. package/dist/resizable.mjs.map +1 -1
  275. package/dist/scroll-area.d.mts +5 -3
  276. package/dist/scroll-area.d.ts +5 -3
  277. package/dist/scroll-area.js +25 -31
  278. package/dist/scroll-area.js.map +1 -1
  279. package/dist/scroll-area.mjs +25 -31
  280. package/dist/scroll-area.mjs.map +1 -1
  281. package/dist/section.d.mts +5 -4
  282. package/dist/section.d.ts +5 -4
  283. package/dist/section.js.map +1 -1
  284. package/dist/section.mjs.map +1 -1
  285. package/dist/select.d.mts +18 -8
  286. package/dist/select.d.ts +18 -8
  287. package/dist/select.js +2 -2
  288. package/dist/select.mjs +1 -1
  289. package/dist/separator.d.mts +3 -2
  290. package/dist/separator.d.ts +3 -2
  291. package/dist/separator.js +1 -5
  292. package/dist/separator.js.map +1 -1
  293. package/dist/separator.mjs +1 -5
  294. package/dist/separator.mjs.map +1 -1
  295. package/dist/sheet.d.mts +20 -10
  296. package/dist/sheet.d.ts +20 -10
  297. package/dist/sheet.js +35 -76
  298. package/dist/sheet.js.map +1 -1
  299. package/dist/sheet.mjs +35 -76
  300. package/dist/sheet.mjs.map +1 -1
  301. package/dist/skeleton.d.mts +3 -2
  302. package/dist/skeleton.d.ts +3 -2
  303. package/dist/skeleton.js +2 -11
  304. package/dist/skeleton.js.map +1 -1
  305. package/dist/skeleton.mjs +2 -11
  306. package/dist/skeleton.mjs.map +1 -1
  307. package/dist/slider.d.mts +3 -2
  308. package/dist/slider.d.ts +3 -2
  309. package/dist/slider.js +10 -5
  310. package/dist/slider.js.map +1 -1
  311. package/dist/slider.mjs +10 -5
  312. package/dist/slider.mjs.map +1 -1
  313. package/dist/sonner.d.mts +1 -1
  314. package/dist/sonner.d.ts +1 -1
  315. package/dist/sonner.js +1 -6
  316. package/dist/sonner.js.map +1 -1
  317. package/dist/sonner.mjs +1 -6
  318. package/dist/sonner.mjs.map +1 -1
  319. package/dist/spinner.d.mts +8 -0
  320. package/dist/spinner.d.ts +8 -0
  321. package/dist/spinner.js +8 -0
  322. package/dist/spinner.js.map +1 -0
  323. package/dist/spinner.mjs +8 -0
  324. package/dist/spinner.mjs.map +1 -0
  325. package/dist/strong.d.mts +5 -4
  326. package/dist/strong.d.ts +5 -4
  327. package/dist/strong.js.map +1 -1
  328. package/dist/strong.mjs.map +1 -1
  329. package/dist/styles.css +1 -1
  330. package/dist/styles.css.map +1 -1
  331. package/dist/switch.d.mts +3 -2
  332. package/dist/switch.d.ts +3 -2
  333. package/dist/switch.js +2 -1
  334. package/dist/switch.js.map +1 -1
  335. package/dist/switch.mjs +2 -1
  336. package/dist/switch.mjs.map +1 -1
  337. package/dist/table.d.mts +17 -9
  338. package/dist/table.d.ts +17 -9
  339. package/dist/table.js +6 -47
  340. package/dist/table.js.map +1 -1
  341. package/dist/table.mjs +6 -47
  342. package/dist/table.mjs.map +1 -1
  343. package/dist/tabs.d.mts +8 -4
  344. package/dist/tabs.d.ts +8 -4
  345. package/dist/tabs.js +4 -2
  346. package/dist/tabs.js.map +1 -1
  347. package/dist/tabs.mjs +4 -2
  348. package/dist/tabs.mjs.map +1 -1
  349. package/dist/text.d.mts +1 -1
  350. package/dist/text.d.ts +1 -1
  351. package/dist/text.js +4 -6
  352. package/dist/text.js.map +1 -1
  353. package/dist/text.mjs +4 -6
  354. package/dist/text.mjs.map +1 -1
  355. package/dist/textarea.d.mts +3 -2
  356. package/dist/textarea.d.ts +3 -2
  357. package/dist/textarea.js +2 -1
  358. package/dist/textarea.js.map +1 -1
  359. package/dist/textarea.mjs +2 -1
  360. package/dist/textarea.mjs.map +1 -1
  361. package/dist/toggle-group.d.mts +5 -3
  362. package/dist/toggle-group.d.ts +5 -3
  363. package/dist/toggle-group.js +41 -34
  364. package/dist/toggle-group.js.map +1 -1
  365. package/dist/toggle-group.mjs +40 -33
  366. package/dist/toggle-group.mjs.map +1 -1
  367. package/dist/toggle.d.mts +3 -2
  368. package/dist/toggle.d.ts +3 -2
  369. package/dist/toggle.js +2 -2
  370. package/dist/toggle.mjs +1 -1
  371. package/dist/tooltip.d.mts +8 -3
  372. package/dist/tooltip.d.ts +8 -3
  373. package/dist/tooltip.js +15 -20
  374. package/dist/tooltip.js.map +1 -1
  375. package/dist/tooltip.mjs +15 -20
  376. package/dist/tooltip.mjs.map +1 -1
  377. package/package.json +40 -9
  378. package/src/accordion.tsx +63 -40
  379. package/src/alert-dialog.tsx +84 -84
  380. package/src/alert.tsx +25 -32
  381. package/src/aspect-ratio.tsx +3 -1
  382. package/src/avatar.tsx +19 -26
  383. package/src/badge.tsx +8 -9
  384. package/src/blockquote.tsx +9 -7
  385. package/src/box.tsx +8 -7
  386. package/src/breadcrumb.tsx +55 -54
  387. package/src/button.tsx +44 -15
  388. package/src/calendar.tsx +8 -23
  389. package/src/card.tsx +44 -53
  390. package/src/carousel.tsx +152 -134
  391. package/src/checkbox-cards.tsx +68 -0
  392. package/src/checkbox-group.primitive.tsx +199 -0
  393. package/src/checkbox-group.tsx +57 -0
  394. package/src/checkbox.tsx +11 -6
  395. package/src/code.tsx +9 -5
  396. package/src/collapsible.tsx +12 -1
  397. package/src/command.tsx +65 -65
  398. package/src/container.tsx +9 -7
  399. package/src/context-menu.tsx +184 -160
  400. package/src/data-table.tsx +43 -48
  401. package/src/dialog.tsx +68 -71
  402. package/src/drawer.tsx +59 -67
  403. package/src/dropdown-menu.tsx +164 -139
  404. package/src/em.tsx +9 -5
  405. package/src/form.tsx +61 -69
  406. package/src/heading.tsx +10 -8
  407. package/src/hover-card.tsx +30 -18
  408. package/src/input-otp.tsx +40 -26
  409. package/src/input.tsx +16 -15
  410. package/src/kbd.tsx +9 -5
  411. package/src/label.tsx +6 -5
  412. package/src/menubar.tsx +154 -139
  413. package/src/navigation-menu.tsx +118 -102
  414. package/src/pagination.tsx +39 -49
  415. package/src/popover.tsx +41 -27
  416. package/src/pre.tsx +9 -5
  417. package/src/progress.tsx +8 -10
  418. package/src/quote.tsx +9 -5
  419. package/src/radio-cards.tsx +50 -0
  420. package/src/radio-group.tsx +14 -17
  421. package/src/radio.tsx +44 -0
  422. package/src/resizable.tsx +7 -8
  423. package/src/scroll-area.tsx +33 -37
  424. package/src/section.tsx +9 -7
  425. package/src/select.tsx +116 -105
  426. package/src/separator.tsx +8 -14
  427. package/src/sheet.tsx +62 -70
  428. package/src/skeleton.tsx +5 -11
  429. package/src/slider.tsx +13 -10
  430. package/src/sonner.tsx +4 -8
  431. package/src/spinner.tsx +75 -0
  432. package/src/strong.tsx +9 -5
  433. package/src/switch.tsx +8 -6
  434. package/src/table.tsx +54 -64
  435. package/src/tabs.tsx +30 -15
  436. package/src/text.tsx +9 -9
  437. package/src/textarea.tsx +8 -6
  438. package/src/toggle-group.tsx +59 -48
  439. package/src/toggle.tsx +12 -13
  440. package/src/tooltip.tsx +33 -25
  441. package/dist/chunk-2D7SRYKN.js +0 -135
  442. package/dist/chunk-2D7SRYKN.js.map +0 -1
  443. package/dist/chunk-5GHZ6EXI.js.map +0 -1
  444. package/dist/chunk-EDVCMWDT.mjs +0 -158
  445. package/dist/chunk-EDVCMWDT.mjs.map +0 -1
  446. package/dist/chunk-EIHWTXQ4.mjs +0 -112
  447. package/dist/chunk-EIHWTXQ4.mjs.map +0 -1
  448. package/dist/chunk-ESWGFN3R.mjs +0 -135
  449. package/dist/chunk-ESWGFN3R.mjs.map +0 -1
  450. package/dist/chunk-KW5FJ62U.mjs +0 -56
  451. package/dist/chunk-KW5FJ62U.mjs.map +0 -1
  452. package/dist/chunk-LDYBRDAY.js +0 -112
  453. package/dist/chunk-LDYBRDAY.js.map +0 -1
  454. package/dist/chunk-OCLLX7EY.js +0 -158
  455. package/dist/chunk-OCLLX7EY.js.map +0 -1
  456. package/dist/chunk-PTD4AMHI.mjs.map +0 -1
  457. package/dist/chunk-RTKEO347.js.map +0 -1
  458. package/dist/chunk-T52N6ZBP.mjs.map +0 -1
  459. package/dist/chunk-U2WDUCW3.js.map +0 -1
package/src/carousel.tsx CHANGED
@@ -1,60 +1,55 @@
1
1
  "use client";
2
2
 
3
3
  import * as React from "react";
4
- import useEmblaCarousel, {
5
- type UseEmblaCarouselType,
6
- } from "embla-carousel-react";
4
+ import useEmblaCarousel, { type UseEmblaCarouselType } from "embla-carousel-react";
7
5
  import { ArrowLeftIcon, ArrowRightIcon } from "@radix-ui/react-icons";
6
+ import { createContextScope, type Scope } from "@radix-ui/react-context";
8
7
  import { cn } from "./utils";
9
- import { Button } from "./button";
8
+ import { Button, type ButtonProps } from "./button";
10
9
 
11
10
  /* -----------------------------------------------------------------------------
12
11
  * Context: Carousel
13
12
  * -------------------------------------------------------------------------- */
14
13
 
14
+ const CAROUSEL_NAME = "Carousel";
15
+
16
+ type ScopedProps<P> = P & { __scopeCarousel?: Scope };
17
+
18
+ const [createCarouselContext] = createContextScope(CAROUSEL_NAME);
19
+
15
20
  type CarouselApi = UseEmblaCarouselType[1];
16
21
  type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
17
22
  type CarouselOptions = UseCarouselParameters[0];
18
23
  type CarouselPlugin = UseCarouselParameters[1];
19
24
 
20
- interface CarouselProps {
25
+ interface BaseCarouselProps {
21
26
  opts?: CarouselOptions;
22
27
  plugins?: CarouselPlugin;
23
28
  orientation?: "horizontal" | "vertical";
24
29
  setApi?: (api: CarouselApi) => void;
25
30
  }
26
31
 
27
- type CarouselContextProps = {
32
+ type CarouselContextValue = {
28
33
  carouselRef: ReturnType<typeof useEmblaCarousel>[0];
29
34
  api: ReturnType<typeof useEmblaCarousel>[1];
30
35
  scrollPrev: () => void;
31
36
  scrollNext: () => void;
32
37
  canScrollPrev: boolean;
33
38
  canScrollNext: boolean;
34
- } & CarouselProps;
35
-
36
- const CarouselContext = React.createContext<CarouselContextProps | null>(null);
37
-
38
- function useCarousel(): CarouselContextProps {
39
- const context = React.useContext(CarouselContext);
39
+ } & BaseCarouselProps;
40
40
 
41
- if (!context) {
42
- throw new Error("useCarousel must be used within a <Carousel />");
43
- }
44
-
45
- return context;
46
- }
41
+ const [CarouselProvider, useCarouselContext] = createCarouselContext<CarouselContextValue>(CAROUSEL_NAME);
47
42
 
48
43
  /* -----------------------------------------------------------------------------
49
44
  * Component: Carousel
50
45
  * -------------------------------------------------------------------------- */
51
46
 
52
- const Carousel = React.forwardRef<
53
- HTMLDivElement,
54
- React.HTMLAttributes<HTMLDivElement> & CarouselProps
55
- >(
47
+ type CarouselElement = HTMLDivElement;
48
+ type CarouselProps = React.HTMLAttributes<HTMLDivElement> & BaseCarouselProps;
49
+
50
+ const Carousel = React.forwardRef<CarouselElement, CarouselProps>(
56
51
  (
57
- { orientation, opts, setApi, plugins, className, children, ...props },
52
+ { __scopeCarousel, orientation, opts, setApi, plugins, className, children, ...props }: ScopedProps<CarouselProps>,
58
53
  ref,
59
54
  ) => {
60
55
  const [carouselRef, api] = useEmblaCarousel(
@@ -64,6 +59,7 @@ const Carousel = React.forwardRef<
64
59
  },
65
60
  plugins,
66
61
  );
62
+
67
63
  const [canScrollPrev, setCanScrollPrev] = React.useState(false);
68
64
  const [canScrollNext, setCanScrollNext] = React.useState(false);
69
65
 
@@ -120,18 +116,16 @@ const Carousel = React.forwardRef<
120
116
  }, [api, onSelect]);
121
117
 
122
118
  return (
123
- <CarouselContext.Provider
124
- value={{
125
- carouselRef,
126
- api,
127
- opts,
128
- orientation:
129
- orientation ?? (opts?.axis === "y" ? "vertical" : "horizontal"),
130
- scrollPrev,
131
- scrollNext,
132
- canScrollPrev,
133
- canScrollNext,
134
- }}
119
+ <CarouselProvider
120
+ scope={__scopeCarousel}
121
+ carouselRef={carouselRef}
122
+ api={api}
123
+ opts={opts}
124
+ orientation={orientation ?? (opts?.axis === "y" ? "vertical" : "horizontal")}
125
+ scrollPrev={scrollPrev}
126
+ scrollNext={scrollNext}
127
+ canScrollPrev={canScrollPrev}
128
+ canScrollNext={canScrollNext}
135
129
  >
136
130
  <div
137
131
  ref={ref}
@@ -143,129 +137,148 @@ const Carousel = React.forwardRef<
143
137
  >
144
138
  {children}
145
139
  </div>
146
- </CarouselContext.Provider>
140
+ </CarouselProvider>
147
141
  );
148
142
  },
149
143
  );
150
- Carousel.displayName = "Carousel";
144
+
145
+ Carousel.displayName = CAROUSEL_NAME;
151
146
 
152
147
  /* -----------------------------------------------------------------------------
153
148
  * Component: CarouselContent
154
149
  * -------------------------------------------------------------------------- */
155
150
 
156
- const CarouselContent = React.forwardRef<
157
- HTMLDivElement,
158
- React.HTMLAttributes<HTMLDivElement>
159
- >(({ className, ...props }, ref) => {
160
- const { carouselRef, orientation } = useCarousel();
151
+ const CAROUSEL_CONTENT_NAME = "CarouselContent";
161
152
 
162
- return (
163
- <div ref={carouselRef} className="overflow-hidden">
164
- <div
165
- ref={ref}
166
- className={cn(
167
- "flex",
168
- orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
169
- className,
170
- )}
171
- {...props}
172
- />
173
- </div>
174
- );
175
- });
176
- CarouselContent.displayName = "CarouselContent";
153
+ type CarouselContentElement = HTMLDivElement;
154
+ type CarouselContentProps = React.HTMLAttributes<HTMLDivElement>;
155
+
156
+ const CarouselContent = React.forwardRef<CarouselContentElement, CarouselContentProps>(
157
+ ({ __scopeCarousel, className, ...props }: ScopedProps<CarouselContentProps>, ref) => {
158
+ const { carouselRef, orientation } = useCarouselContext(CAROUSEL_CONTENT_NAME, __scopeCarousel);
159
+
160
+ return (
161
+ <div ref={carouselRef} className="overflow-hidden">
162
+ <div
163
+ ref={ref}
164
+ className={cn("flex", orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col", className)}
165
+ {...props}
166
+ />
167
+ </div>
168
+ );
169
+ },
170
+ );
171
+
172
+ CarouselContent.displayName = CAROUSEL_CONTENT_NAME;
177
173
 
178
174
  /* -----------------------------------------------------------------------------
179
175
  * Component: CarouselItem
180
176
  * -------------------------------------------------------------------------- */
181
177
 
182
- const CarouselItem = React.forwardRef<
183
- HTMLDivElement,
184
- React.HTMLAttributes<HTMLDivElement>
185
- >(({ className, ...props }, ref) => {
186
- const { orientation } = useCarousel();
187
-
188
- return (
189
- <div
190
- ref={ref}
191
- role="group"
192
- aria-roledescription="slide"
193
- className={cn(
194
- "min-w-0 shrink-0 grow-0 basis-full",
195
- orientation === "horizontal" ? "pl-4" : "pt-4",
196
- className,
197
- )}
198
- {...props}
199
- />
200
- );
201
- });
202
- CarouselItem.displayName = "CarouselItem";
178
+ const CAROUSEL_ITEM_NAME = "CarouselItem";
179
+
180
+ type CarouselItemElement = HTMLDivElement;
181
+ type CarouselItemProps = React.HTMLAttributes<HTMLDivElement>;
182
+
183
+ const CarouselItem = React.forwardRef<CarouselItemElement, CarouselItemProps>(
184
+ ({ __scopeCarousel, className, ...props }: ScopedProps<CarouselItemProps>, ref) => {
185
+ const { orientation } = useCarouselContext(CAROUSEL_ITEM_NAME, __scopeCarousel);
186
+
187
+ return (
188
+ <div
189
+ ref={ref}
190
+ role="group"
191
+ aria-roledescription="slide"
192
+ className={cn("min-w-0 shrink-0 grow-0 basis-full", orientation === "horizontal" ? "pl-4" : "pt-4", className)}
193
+ {...props}
194
+ />
195
+ );
196
+ },
197
+ );
198
+
199
+ CarouselItem.displayName = CAROUSEL_ITEM_NAME;
203
200
 
204
201
  /* -----------------------------------------------------------------------------
205
202
  * Component: CarouselPrevious
206
203
  * -------------------------------------------------------------------------- */
207
204
 
208
- const CarouselPrevious = React.forwardRef<
209
- HTMLButtonElement,
210
- React.ComponentProps<typeof Button>
211
- >(({ className, variant = "outline", size = "icon", ...props }, ref) => {
212
- const { orientation, scrollPrev, canScrollPrev } = useCarousel();
213
-
214
- return (
215
- <Button
216
- ref={ref}
217
- variant={variant}
218
- size={size}
219
- className={cn(
220
- "absolute size-8 rounded-full",
221
- orientation === "horizontal"
222
- ? "-left-12 top-1/2 -translate-y-1/2"
223
- : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
224
- className,
225
- )}
226
- disabled={!canScrollPrev}
227
- onClick={scrollPrev}
228
- {...props}
229
- >
230
- <ArrowLeftIcon className="size-4" />
231
- <span className="sr-only">Previous slide</span>
232
- </Button>
233
- );
234
- });
235
- CarouselPrevious.displayName = "CarouselPrevious";
205
+ const CAROUSEL_PREVIOUS_NAME = "CarouselPrevious";
206
+
207
+ type CarouselPreviousElement = HTMLButtonElement;
208
+ type CarouselPreviousProps = ButtonProps;
209
+
210
+ const CarouselPrevious = React.forwardRef<CarouselPreviousElement, CarouselPreviousProps>(
211
+ (
212
+ { __scopeCarousel, className, variant = "outline", size = "icon", ...props }: ScopedProps<CarouselPreviousProps>,
213
+ ref,
214
+ ) => {
215
+ const { orientation, scrollPrev, canScrollPrev } = useCarouselContext(CAROUSEL_PREVIOUS_NAME, __scopeCarousel);
216
+
217
+ return (
218
+ <Button
219
+ ref={ref}
220
+ variant={variant}
221
+ size={size}
222
+ className={cn(
223
+ "absolute size-8 rounded-full",
224
+ orientation === "horizontal"
225
+ ? "-left-12 top-1/2 -translate-y-1/2"
226
+ : "-top-12 left-1/2 -translate-x-1/2 rotate-90",
227
+ className,
228
+ )}
229
+ disabled={!canScrollPrev}
230
+ onClick={scrollPrev}
231
+ {...props}
232
+ >
233
+ <ArrowLeftIcon className="size-4" />
234
+ <span className="sr-only">Previous slide</span>
235
+ </Button>
236
+ );
237
+ },
238
+ );
239
+
240
+ CarouselPrevious.displayName = CAROUSEL_PREVIOUS_NAME;
236
241
 
237
242
  /* -----------------------------------------------------------------------------
238
243
  * Component: CarouselNext
239
244
  * -------------------------------------------------------------------------- */
240
245
 
241
- const CarouselNext = React.forwardRef<
242
- HTMLButtonElement,
243
- React.ComponentProps<typeof Button>
244
- >(({ className, variant = "outline", size = "icon", ...props }, ref) => {
245
- const { orientation, scrollNext, canScrollNext } = useCarousel();
246
-
247
- return (
248
- <Button
249
- ref={ref}
250
- variant={variant}
251
- size={size}
252
- className={cn(
253
- "absolute size-8 rounded-full",
254
- orientation === "horizontal"
255
- ? "-right-12 top-1/2 -translate-y-1/2"
256
- : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
257
- className,
258
- )}
259
- disabled={!canScrollNext}
260
- onClick={scrollNext}
261
- {...props}
262
- >
263
- <ArrowRightIcon className="size-4" />
264
- <span className="sr-only">Next slide</span>
265
- </Button>
266
- );
267
- });
268
- CarouselNext.displayName = "CarouselNext";
246
+ const CAROUSEL_NEXT_NAME = "CarouselNext";
247
+
248
+ type CarouselNextElement = HTMLButtonElement;
249
+ type CarouselNextProps = ButtonProps;
250
+
251
+ const CarouselNext = React.forwardRef<CarouselNextElement, CarouselNextProps>(
252
+ (
253
+ { __scopeCarousel, className, variant = "outline", size = "icon", ...props }: ScopedProps<CarouselNextProps>,
254
+ ref,
255
+ ) => {
256
+ const { orientation, scrollNext, canScrollNext } = useCarouselContext(CAROUSEL_NEXT_NAME, __scopeCarousel);
257
+
258
+ return (
259
+ <Button
260
+ ref={ref}
261
+ variant={variant}
262
+ size={size}
263
+ className={cn(
264
+ "absolute size-8 rounded-full",
265
+ orientation === "horizontal"
266
+ ? "-right-12 top-1/2 -translate-y-1/2"
267
+ : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
268
+ className,
269
+ )}
270
+ disabled={!canScrollNext}
271
+ onClick={scrollNext}
272
+ {...props}
273
+ >
274
+ <ArrowRightIcon className="size-4" />
275
+ <span className="sr-only">Next slide</span>
276
+ </Button>
277
+ );
278
+ },
279
+ );
280
+
281
+ CarouselNext.displayName = CAROUSEL_NEXT_NAME;
269
282
 
270
283
  /* -----------------------------------------------------------------------------
271
284
  * Exports
@@ -278,4 +291,9 @@ export {
278
291
  CarouselItem,
279
292
  CarouselPrevious,
280
293
  CarouselNext,
294
+ type CarouselProps,
295
+ type CarouselContentProps,
296
+ type CarouselItemProps,
297
+ type CarouselPreviousProps,
298
+ type CarouselNextProps,
281
299
  };
@@ -0,0 +1,68 @@
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import { CheckIcon } from "@radix-ui/react-icons";
5
+ import * as CheckboxGroupPrimitive from "./checkbox-group.primitive";
6
+ import { cn } from "./utils";
7
+
8
+ /* -----------------------------------------------------------------------------
9
+ * Component: CheckboxCards
10
+ * -------------------------------------------------------------------------- */
11
+
12
+ type CheckboxCardsElement = React.ElementRef<typeof CheckboxGroupPrimitive.Root>;
13
+ type CheckboxCardsProps = React.ComponentPropsWithoutRef<typeof CheckboxGroupPrimitive.Root>;
14
+
15
+ const CheckboxCards = React.forwardRef<CheckboxCardsElement, CheckboxCardsProps>(({ className, ...props }, ref) => {
16
+ return <CheckboxGroupPrimitive.Root className={cn("grid gap-2", className)} {...props} ref={ref} />;
17
+ });
18
+
19
+ CheckboxCards.displayName = CheckboxGroupPrimitive.Root.displayName;
20
+
21
+ /* -----------------------------------------------------------------------------
22
+ * Component: CheckboxCardsItem
23
+ * -------------------------------------------------------------------------- */
24
+
25
+ type CheckboxCardsItemElement = React.ElementRef<typeof CheckboxGroupPrimitive.Item>;
26
+
27
+ interface CheckboxCardsItemProps extends React.ComponentPropsWithoutRef<typeof CheckboxGroupPrimitive.Item> {
28
+ checkboxClassName?: string;
29
+ }
30
+
31
+ const CheckboxCardsItem = React.forwardRef<CheckboxCardsItemElement, CheckboxCardsItemProps>(
32
+ ({ className, children, checkboxClassName, ...props }, ref) => {
33
+ return (
34
+ <label
35
+ className={cn(
36
+ "border-compound/70 flex items-center justify-center gap-4 rounded-md border p-4",
37
+ "hover:border-compound",
38
+ className,
39
+ )}
40
+ >
41
+ {children}
42
+ <CheckboxGroupPrimitive.Item
43
+ ref={ref}
44
+ className={cn(
45
+ "border-compound/70 peer size-4 shrink-0 cursor-default rounded-sm border shadow",
46
+ "aria-checked:border-primary aria-checked:bg-primary aria-checked:text-primary-foreground",
47
+ "disabled:cursor-not-allowed disabled:opacity-50",
48
+ "focus-visible:ring-ring focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
49
+ checkboxClassName,
50
+ )}
51
+ {...props}
52
+ >
53
+ <CheckboxGroupPrimitive.CheckboxGroupIndicator className="flex size-full items-center justify-center text-current">
54
+ <CheckIcon className="size-3.5" />
55
+ </CheckboxGroupPrimitive.CheckboxGroupIndicator>
56
+ </CheckboxGroupPrimitive.Item>
57
+ </label>
58
+ );
59
+ },
60
+ );
61
+
62
+ CheckboxCardsItem.displayName = CheckboxGroupPrimitive.Item.displayName;
63
+
64
+ /* -----------------------------------------------------------------------------
65
+ * Exports
66
+ * -------------------------------------------------------------------------- */
67
+
68
+ export { CheckboxCards, CheckboxCardsItem, type CheckboxCardsProps, type CheckboxCardsItemProps };
@@ -0,0 +1,199 @@
1
+ import * as React from "react";
2
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
3
+ import { createCheckboxScope } from "@radix-ui/react-checkbox";
4
+ import { createContextScope, type Scope } from "@radix-ui/react-context";
5
+ import * as RovingFocusGroup from "@radix-ui/react-roving-focus";
6
+ import { createRovingFocusGroupScope } from "@radix-ui/react-roving-focus";
7
+ import { useControllableState } from "@radix-ui/react-use-controllable-state";
8
+ import { useDirection } from "@radix-ui/react-direction";
9
+ import { Primitive } from "@radix-ui/react-primitive";
10
+
11
+ /* -------------------------------------------------------------------------------------------------
12
+ * Component: CheckboxGroup
13
+ * -----------------------------------------------------------------------------------------------*/
14
+
15
+ const CHECKBOX_GROUP_NAME = "CheckboxGroup";
16
+
17
+ type ScopedProps<P> = P & { __scopeCheckboxGroup?: Scope };
18
+
19
+ const [createCheckboxGroupContext, createCheckboxGroupScope] = createContextScope(CHECKBOX_GROUP_NAME, [
20
+ createRovingFocusGroupScope,
21
+ createCheckboxScope,
22
+ ]);
23
+
24
+ const useRovingFocusGroupScope = createRovingFocusGroupScope();
25
+ const useCheckboxScope = createCheckboxScope();
26
+
27
+ interface CheckboxGroupContextValue {
28
+ name?: string;
29
+ required: boolean;
30
+ disabled: boolean;
31
+ value?: string[];
32
+ onItemCheck: (value: string) => void;
33
+ onItemUncheck: (value: string) => void;
34
+ }
35
+
36
+ const [CheckboxGroupProvider, useCheckboxGroupContext] =
37
+ createCheckboxGroupContext<CheckboxGroupContextValue>(CHECKBOX_GROUP_NAME);
38
+
39
+ type CheckboxGroupElement = React.ElementRef<typeof Primitive.div>;
40
+
41
+ interface CheckboxGroupProps extends React.ComponentPropsWithoutRef<typeof Primitive.div> {
42
+ name?: CheckboxGroupContextValue["name"];
43
+ required?: React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>["required"];
44
+ disabled?: React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>["disabled"];
45
+ dir?: RovingFocusGroup.RovingFocusGroupProps["dir"];
46
+ orientation?: RovingFocusGroup.RovingFocusGroupProps["orientation"];
47
+ loop?: RovingFocusGroup.RovingFocusGroupProps["loop"];
48
+ defaultValue?: string[];
49
+ value?: CheckboxGroupContextValue["value"];
50
+ onValueChange?: (value: string[]) => void;
51
+ }
52
+
53
+ const CheckboxGroup = React.forwardRef<CheckboxGroupElement, CheckboxGroupProps>(
54
+ (
55
+ {
56
+ __scopeCheckboxGroup,
57
+ name,
58
+ defaultValue,
59
+ value: valueProp,
60
+ required = false,
61
+ disabled = false,
62
+ orientation,
63
+ dir,
64
+ loop = true,
65
+ onValueChange,
66
+ ...props
67
+ }: ScopedProps<CheckboxGroupProps>,
68
+ ref,
69
+ ) => {
70
+ const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeCheckboxGroup);
71
+ const direction = useDirection(dir);
72
+ const [value = [], setValue] = useControllableState({
73
+ prop: valueProp,
74
+ defaultProp: defaultValue,
75
+ onChange: onValueChange,
76
+ });
77
+
78
+ const handleItemCheck = React.useCallback(
79
+ (itemValue: string) => {
80
+ setValue((prevValue = []) => [...prevValue, itemValue]);
81
+ },
82
+ [setValue],
83
+ );
84
+
85
+ const handleItemUncheck = React.useCallback(
86
+ (itemValue: string) => {
87
+ setValue((prevValue = []) => prevValue.filter((val) => val !== itemValue));
88
+ },
89
+ [setValue],
90
+ );
91
+
92
+ return (
93
+ <CheckboxGroupProvider
94
+ scope={__scopeCheckboxGroup}
95
+ name={name}
96
+ required={required}
97
+ disabled={disabled}
98
+ value={value}
99
+ onItemCheck={handleItemCheck}
100
+ onItemUncheck={handleItemUncheck}
101
+ >
102
+ <RovingFocusGroup.Root asChild {...rovingFocusGroupScope} orientation={orientation} dir={direction} loop={loop}>
103
+ {/* eslint-disable-next-line react/jsx-pascal-case -- radix-ui */}
104
+ <Primitive.div ref={ref} role="group" data-disabled={disabled ? "" : undefined} dir={direction} {...props} />
105
+ </RovingFocusGroup.Root>
106
+ </CheckboxGroupProvider>
107
+ );
108
+ },
109
+ );
110
+
111
+ CheckboxGroup.displayName = CHECKBOX_GROUP_NAME;
112
+
113
+ /* -------------------------------------------------------------------------------------------------
114
+ * Component: CheckboxGroupItem
115
+ * -----------------------------------------------------------------------------------------------*/
116
+
117
+ const ITEM_NAME = `${CHECKBOX_GROUP_NAME}Item`;
118
+
119
+ type CheckboxGroupItemElement = React.ElementRef<typeof CheckboxPrimitive.Root>;
120
+
121
+ interface CheckboxGroupItemProps
122
+ extends Omit<
123
+ React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>,
124
+ "checked" | "defaultChecked" | "onCheckedChange" | "name"
125
+ > {
126
+ value: string;
127
+ }
128
+
129
+ const CheckboxGroupItem = React.forwardRef<CheckboxGroupItemElement, CheckboxGroupItemProps>(
130
+ ({ __scopeCheckboxGroup, disabled, ...props }: ScopedProps<CheckboxGroupItemProps>, ref) => {
131
+ const context = useCheckboxGroupContext(ITEM_NAME, __scopeCheckboxGroup);
132
+ const isDisabled = context.disabled || disabled;
133
+ const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeCheckboxGroup);
134
+ const checkboxScope = useCheckboxScope(__scopeCheckboxGroup);
135
+ const checked = context.value?.includes(props.value);
136
+
137
+ return (
138
+ <RovingFocusGroup.Item asChild {...rovingFocusGroupScope} focusable={!isDisabled} active={checked}>
139
+ <CheckboxPrimitive.Root
140
+ ref={ref}
141
+ name={context.name}
142
+ disabled={isDisabled}
143
+ required={context.required}
144
+ checked={checked}
145
+ {...checkboxScope}
146
+ {...props}
147
+ onCheckedChange={(checkedState) => {
148
+ if (checkedState) {
149
+ context.onItemCheck(props.value);
150
+ } else {
151
+ context.onItemUncheck(props.value);
152
+ }
153
+ }}
154
+ />
155
+ </RovingFocusGroup.Item>
156
+ );
157
+ },
158
+ );
159
+
160
+ CheckboxGroupItem.displayName = ITEM_NAME;
161
+
162
+ /* -------------------------------------------------------------------------------------------------
163
+ * Component: CheckboxGroupIndicator
164
+ * -----------------------------------------------------------------------------------------------*/
165
+
166
+ const INDICATOR_NAME = `${CHECKBOX_GROUP_NAME}Indicator`;
167
+
168
+ type CheckboxGroupIndicatorElement = React.ElementRef<typeof CheckboxPrimitive.Indicator>;
169
+ type CheckboxGroupIndicatorProps = React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Indicator>;
170
+
171
+ const CheckboxGroupIndicator = React.forwardRef<CheckboxGroupIndicatorElement, CheckboxGroupIndicatorProps>(
172
+ ({ __scopeCheckboxGroup, ...props }: ScopedProps<CheckboxGroupIndicatorProps>, ref) => {
173
+ const checkboxScope = useCheckboxScope(__scopeCheckboxGroup);
174
+ return <CheckboxPrimitive.Indicator ref={ref} {...checkboxScope} {...props} />;
175
+ },
176
+ );
177
+
178
+ CheckboxGroupIndicator.displayName = INDICATOR_NAME;
179
+
180
+ /* -----------------------------------------------------------------------------
181
+ * Exports
182
+ * -------------------------------------------------------------------------- */
183
+
184
+ const Root = CheckboxGroup;
185
+ const Item = CheckboxGroupItem;
186
+ const Indicator = CheckboxGroupIndicator;
187
+
188
+ export {
189
+ createCheckboxGroupScope,
190
+ CheckboxGroup,
191
+ CheckboxGroupItem,
192
+ CheckboxGroupIndicator,
193
+ Root,
194
+ Item,
195
+ Indicator,
196
+ type CheckboxGroupProps,
197
+ type CheckboxGroupItemProps,
198
+ type CheckboxGroupIndicatorProps,
199
+ };