@masaraxui/react 1.0.0

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 (398) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -0
  3. package/dist/components/accordion/accordion.d.ts +30 -0
  4. package/dist/components/accordion/accordion.js +191 -0
  5. package/dist/components/accordion/index.d.ts +25 -0
  6. package/dist/components/accordion/index.js +18 -0
  7. package/dist/components/alert/alert.d.ts +15 -0
  8. package/dist/components/alert/alert.js +152 -0
  9. package/dist/components/alert/index.d.ts +21 -0
  10. package/dist/components/alert/index.js +16 -0
  11. package/dist/components/alert-dialog/alert-dialog.d.ts +65 -0
  12. package/dist/components/alert-dialog/alert-dialog.js +309 -0
  13. package/dist/components/alert-dialog/index.d.ts +33 -0
  14. package/dist/components/alert-dialog/index.js +22 -0
  15. package/dist/components/autocomplete/autocomplete.d.ts +31 -0
  16. package/dist/components/autocomplete/autocomplete.js +241 -0
  17. package/dist/components/autocomplete/index.d.ts +25 -0
  18. package/dist/components/autocomplete/index.js +18 -0
  19. package/dist/components/avatar/avatar.d.ts +15 -0
  20. package/dist/components/avatar/avatar.js +93 -0
  21. package/dist/components/avatar/index.d.ts +17 -0
  22. package/dist/components/avatar/index.js +14 -0
  23. package/dist/components/badge/badge.d.ts +19 -0
  24. package/dist/components/badge/badge.js +87 -0
  25. package/dist/components/badge/index.d.ts +17 -0
  26. package/dist/components/badge/index.js +14 -0
  27. package/dist/components/breadcrumbs/breadcrumbs.d.ts +14 -0
  28. package/dist/components/breadcrumbs/breadcrumbs.js +84 -0
  29. package/dist/components/breadcrumbs/index.d.ts +15 -0
  30. package/dist/components/breadcrumbs/index.js +13 -0
  31. package/dist/components/button/button.d.ts +10 -0
  32. package/dist/components/button/button.js +49 -0
  33. package/dist/components/button/index.d.ts +15 -0
  34. package/dist/components/button/index.js +13 -0
  35. package/dist/components/button-group/button-group.d.ts +26 -0
  36. package/dist/components/button-group/button-group.js +82 -0
  37. package/dist/components/button-group/index.d.ts +16 -0
  38. package/dist/components/button-group/index.js +14 -0
  39. package/dist/components/calendar/calendar.d.ts +71 -0
  40. package/dist/components/calendar/calendar.js +283 -0
  41. package/dist/components/calendar/index.d.ts +91 -0
  42. package/dist/components/calendar/index.js +29 -0
  43. package/dist/components/calendar-year-picker/calendar-year-picker.d.ts +61 -0
  44. package/dist/components/calendar-year-picker/calendar-year-picker.js +411 -0
  45. package/dist/components/calendar-year-picker/index.d.ts +43 -0
  46. package/dist/components/calendar-year-picker/index.js +18 -0
  47. package/dist/components/calendar-year-picker/year-picker-context.d.ts +28 -0
  48. package/dist/components/calendar-year-picker/year-picker-context.js +39 -0
  49. package/dist/components/card/card.d.ts +22 -0
  50. package/dist/components/card/card.js +141 -0
  51. package/dist/components/card/index.d.ts +23 -0
  52. package/dist/components/card/index.js +17 -0
  53. package/dist/components/checkbox/checkbox.d.ts +22 -0
  54. package/dist/components/checkbox/checkbox.js +124 -0
  55. package/dist/components/checkbox/index.d.ts +19 -0
  56. package/dist/components/checkbox/index.js +15 -0
  57. package/dist/components/checkbox-group/checkbox-group.d.ts +14 -0
  58. package/dist/components/checkbox-group/checkbox-group.js +33 -0
  59. package/dist/components/checkbox-group/index.d.ts +3 -0
  60. package/dist/components/checkbox-group/index.js +3 -0
  61. package/dist/components/chip/chip.d.ts +14 -0
  62. package/dist/components/chip/chip.js +67 -0
  63. package/dist/components/chip/index.d.ts +15 -0
  64. package/dist/components/chip/index.js +13 -0
  65. package/dist/components/close-button/close-button.d.ts +8 -0
  66. package/dist/components/close-button/close-button.js +33 -0
  67. package/dist/components/close-button/index.d.ts +13 -0
  68. package/dist/components/close-button/index.js +12 -0
  69. package/dist/components/color-area/color-area.d.ts +11 -0
  70. package/dist/components/color-area/color-area.js +70 -0
  71. package/dist/components/color-area/index.d.ts +15 -0
  72. package/dist/components/color-area/index.js +13 -0
  73. package/dist/components/color-field/color-field.d.ts +9 -0
  74. package/dist/components/color-field/color-field.js +29 -0
  75. package/dist/components/color-field/index.d.ts +22 -0
  76. package/dist/components/color-field/index.js +18 -0
  77. package/dist/components/color-input-group/color-input-group.d.ts +19 -0
  78. package/dist/components/color-input-group/color-input-group.js +98 -0
  79. package/dist/components/color-input-group/index.d.ts +19 -0
  80. package/dist/components/color-input-group/index.js +15 -0
  81. package/dist/components/color-picker/color-picker.d.ts +21 -0
  82. package/dist/components/color-picker/color-picker.js +86 -0
  83. package/dist/components/color-picker/index.d.ts +17 -0
  84. package/dist/components/color-picker/index.js +14 -0
  85. package/dist/components/color-slider/color-slider.d.ts +50 -0
  86. package/dist/components/color-slider/color-slider.js +205 -0
  87. package/dist/components/color-slider/index.d.ts +19 -0
  88. package/dist/components/color-slider/index.js +15 -0
  89. package/dist/components/color-swatch/color-swatch.d.ts +8 -0
  90. package/dist/components/color-swatch/color-swatch.js +31 -0
  91. package/dist/components/color-swatch/index.d.ts +13 -0
  92. package/dist/components/color-swatch/index.js +12 -0
  93. package/dist/components/color-swatch-picker/color-swatch-picker.d.ts +20 -0
  94. package/dist/components/color-swatch-picker/color-swatch-picker.js +149 -0
  95. package/dist/components/color-swatch-picker/index.d.ts +19 -0
  96. package/dist/components/color-swatch-picker/index.js +15 -0
  97. package/dist/components/combo-box/combo-box.d.ts +34 -0
  98. package/dist/components/combo-box/combo-box.js +116 -0
  99. package/dist/components/combo-box/index.d.ts +20 -0
  100. package/dist/components/combo-box/index.js +16 -0
  101. package/dist/components/date-field/date-field.d.ts +9 -0
  102. package/dist/components/date-field/date-field.js +29 -0
  103. package/dist/components/date-field/index.d.ts +26 -0
  104. package/dist/components/date-field/index.js +20 -0
  105. package/dist/components/date-input-group/date-input-group.d.ts +25 -0
  106. package/dist/components/date-input-group/date-input-group.js +146 -0
  107. package/dist/components/date-input-group/index.d.ts +23 -0
  108. package/dist/components/date-input-group/index.js +17 -0
  109. package/dist/components/date-picker/date-picker.d.ts +30 -0
  110. package/dist/components/date-picker/date-picker.js +151 -0
  111. package/dist/components/date-picker/index.d.ts +31 -0
  112. package/dist/components/date-picker/index.js +15 -0
  113. package/dist/components/date-range-picker/date-range-picker.d.ts +36 -0
  114. package/dist/components/date-range-picker/date-range-picker.js +173 -0
  115. package/dist/components/date-range-picker/index.d.ts +36 -0
  116. package/dist/components/date-range-picker/index.js +16 -0
  117. package/dist/components/description/description.d.ts +9 -0
  118. package/dist/components/description/description.js +22 -0
  119. package/dist/components/description/index.d.ts +13 -0
  120. package/dist/components/description/index.js +12 -0
  121. package/dist/components/disclosure/disclosure.d.ts +27 -0
  122. package/dist/components/disclosure/disclosure.js +157 -0
  123. package/dist/components/disclosure/index.d.ts +23 -0
  124. package/dist/components/disclosure/index.js +17 -0
  125. package/dist/components/disclosure-group/disclosure-group.d.ts +8 -0
  126. package/dist/components/disclosure-group/disclosure-group.js +35 -0
  127. package/dist/components/disclosure-group/index.d.ts +15 -0
  128. package/dist/components/disclosure-group/index.js +13 -0
  129. package/dist/components/disclosure-group/use-disclosure-group-navigation.d.ts +14 -0
  130. package/dist/components/disclosure-group/use-disclosure-group-navigation.js +51 -0
  131. package/dist/components/drawer/drawer.d.ts +84 -0
  132. package/dist/components/drawer/drawer.js +439 -0
  133. package/dist/components/drawer/index.d.ts +69 -0
  134. package/dist/components/drawer/index.js +22 -0
  135. package/dist/components/dropdown/dropdown.d.ts +38 -0
  136. package/dist/components/dropdown/dropdown.js +156 -0
  137. package/dist/components/dropdown/index.d.ts +29 -0
  138. package/dist/components/dropdown/index.js +20 -0
  139. package/dist/components/empty-state/empty-state.d.ts +7 -0
  140. package/dist/components/empty-state/empty-state.js +20 -0
  141. package/dist/components/empty-state/index.d.ts +13 -0
  142. package/dist/components/empty-state/index.js +12 -0
  143. package/dist/components/error-message/error-message.d.ts +9 -0
  144. package/dist/components/error-message/error-message.js +22 -0
  145. package/dist/components/error-message/index.d.ts +13 -0
  146. package/dist/components/error-message/index.js +12 -0
  147. package/dist/components/field-error/field-error.d.ts +8 -0
  148. package/dist/components/field-error/field-error.js +21 -0
  149. package/dist/components/field-error/index.d.ts +13 -0
  150. package/dist/components/field-error/index.js +12 -0
  151. package/dist/components/fieldset/fieldset.d.ts +16 -0
  152. package/dist/components/fieldset/fieldset.js +88 -0
  153. package/dist/components/fieldset/index.d.ts +19 -0
  154. package/dist/components/fieldset/index.js +15 -0
  155. package/dist/components/form/form.d.ts +7 -0
  156. package/dist/components/form/form.js +13 -0
  157. package/dist/components/form/index.d.ts +11 -0
  158. package/dist/components/form/index.js +11 -0
  159. package/dist/components/header/header.d.ts +7 -0
  160. package/dist/components/header/header.js +21 -0
  161. package/dist/components/header/index.d.ts +9 -0
  162. package/dist/components/header/index.js +10 -0
  163. package/dist/components/icons.d.ts +18 -0
  164. package/dist/components/icons.js +243 -0
  165. package/dist/components/index.d.ts +84 -0
  166. package/dist/components/input/index.d.ts +13 -0
  167. package/dist/components/input/index.js +12 -0
  168. package/dist/components/input/input.d.ts +8 -0
  169. package/dist/components/input/input.js +31 -0
  170. package/dist/components/input-group/index.d.ts +21 -0
  171. package/dist/components/input-group/index.js +16 -0
  172. package/dist/components/input-group/input-group.d.ts +20 -0
  173. package/dist/components/input-group/input-group.js +129 -0
  174. package/dist/components/input-otp/index.d.ts +22 -0
  175. package/dist/components/input-otp/index.js +21 -0
  176. package/dist/components/input-otp/input-otp.d.ts +26 -0
  177. package/dist/components/input-otp/input-otp.js +139 -0
  178. package/dist/components/kbd/index.d.ts +19 -0
  179. package/dist/components/kbd/index.js +15 -0
  180. package/dist/components/kbd/kbd.constants.d.ts +3 -0
  181. package/dist/components/kbd/kbd.constants.js +51 -0
  182. package/dist/components/kbd/kbd.d.ts +24 -0
  183. package/dist/components/kbd/kbd.js +76 -0
  184. package/dist/components/label/index.d.ts +13 -0
  185. package/dist/components/label/index.js +12 -0
  186. package/dist/components/label/label.d.ts +8 -0
  187. package/dist/components/label/label.js +27 -0
  188. package/dist/components/link/index.d.ts +15 -0
  189. package/dist/components/link/index.js +13 -0
  190. package/dist/components/link/link.d.ts +10 -0
  191. package/dist/components/link/link.js +59 -0
  192. package/dist/components/list-box/index.d.ts +23 -0
  193. package/dist/components/list-box/index.js +18 -0
  194. package/dist/components/list-box/list-box.d.ts +9 -0
  195. package/dist/components/list-box/list-box.js +23 -0
  196. package/dist/components/list-box-item/index.d.ts +15 -0
  197. package/dist/components/list-box-item/index.js +13 -0
  198. package/dist/components/list-box-item/list-box-item.d.ts +15 -0
  199. package/dist/components/list-box-item/list-box-item.js +77 -0
  200. package/dist/components/list-box-section/index.d.ts +10 -0
  201. package/dist/components/list-box-section/index.js +10 -0
  202. package/dist/components/list-box-section/list-box-section.d.ts +8 -0
  203. package/dist/components/list-box-section/list-box-section.js +22 -0
  204. package/dist/components/menu/index.d.ts +24 -0
  205. package/dist/components/menu/index.js +18 -0
  206. package/dist/components/menu/menu.d.ts +9 -0
  207. package/dist/components/menu/menu.js +20 -0
  208. package/dist/components/menu-item/index.d.ts +17 -0
  209. package/dist/components/menu-item/index.js +14 -0
  210. package/dist/components/menu-item/menu-item.d.ts +20 -0
  211. package/dist/components/menu-item/menu-item.js +123 -0
  212. package/dist/components/menu-section/index.d.ts +10 -0
  213. package/dist/components/menu-section/index.js +10 -0
  214. package/dist/components/menu-section/menu-section.d.ts +8 -0
  215. package/dist/components/menu-section/menu-section.js +22 -0
  216. package/dist/components/meter/index.d.ts +34 -0
  217. package/dist/components/meter/index.js +15 -0
  218. package/dist/components/meter/meter.d.ts +29 -0
  219. package/dist/components/meter/meter.js +108 -0
  220. package/dist/components/modal/index.d.ts +33 -0
  221. package/dist/components/modal/index.js +22 -0
  222. package/dist/components/modal/modal.d.ts +53 -0
  223. package/dist/components/modal/modal.js +288 -0
  224. package/dist/components/number-field/index.d.ts +21 -0
  225. package/dist/components/number-field/index.js +16 -0
  226. package/dist/components/number-field/number-field.d.ts +20 -0
  227. package/dist/components/number-field/number-field.js +127 -0
  228. package/dist/components/pagination/index.d.ts +64 -0
  229. package/dist/components/pagination/index.js +21 -0
  230. package/dist/components/pagination/pagination.d.ts +84 -0
  231. package/dist/components/pagination/pagination.js +230 -0
  232. package/dist/components/popover/index.d.ts +23 -0
  233. package/dist/components/popover/index.js +17 -0
  234. package/dist/components/popover/popover.d.ts +24 -0
  235. package/dist/components/popover/popover.js +153 -0
  236. package/dist/components/progress-bar/index.d.ts +34 -0
  237. package/dist/components/progress-bar/index.js +15 -0
  238. package/dist/components/progress-bar/progress-bar.d.ts +29 -0
  239. package/dist/components/progress-bar/progress-bar.js +108 -0
  240. package/dist/components/progress-circle/index.d.ts +34 -0
  241. package/dist/components/progress-circle/index.js +15 -0
  242. package/dist/components/progress-circle/progress-circle.d.ts +29 -0
  243. package/dist/components/progress-circle/progress-circle.js +126 -0
  244. package/dist/components/rac/components.d.ts +1 -0
  245. package/dist/components/rac/index.d.ts +5 -0
  246. package/dist/components/rac/index.js +3 -0
  247. package/dist/components/rac/types.d.ts +3 -0
  248. package/dist/components/rac/utils.d.ts +1 -0
  249. package/dist/components/radio/index.d.ts +19 -0
  250. package/dist/components/radio/index.js +15 -0
  251. package/dist/components/radio/radio.d.ts +21 -0
  252. package/dist/components/radio/radio.js +97 -0
  253. package/dist/components/radio-group/index.d.ts +13 -0
  254. package/dist/components/radio-group/index.js +12 -0
  255. package/dist/components/radio-group/radio-group.d.ts +8 -0
  256. package/dist/components/radio-group/radio-group.js +27 -0
  257. package/dist/components/range-calendar/index.d.ts +91 -0
  258. package/dist/components/range-calendar/index.js +29 -0
  259. package/dist/components/range-calendar/range-calendar.d.ts +71 -0
  260. package/dist/components/range-calendar/range-calendar.js +298 -0
  261. package/dist/components/scroll-shadow/index.d.ts +21 -0
  262. package/dist/components/scroll-shadow/index.js +13 -0
  263. package/dist/components/scroll-shadow/scroll-shadow.d.ts +32 -0
  264. package/dist/components/scroll-shadow/scroll-shadow.js +76 -0
  265. package/dist/components/scroll-shadow/use-scroll-shadow.d.ts +11 -0
  266. package/dist/components/scroll-shadow/use-scroll-shadow.js +121 -0
  267. package/dist/components/search-field/index.d.ts +21 -0
  268. package/dist/components/search-field/index.js +16 -0
  269. package/dist/components/search-field/search-field.d.ts +23 -0
  270. package/dist/components/search-field/search-field.js +127 -0
  271. package/dist/components/select/index.d.ts +21 -0
  272. package/dist/components/select/index.js +16 -0
  273. package/dist/components/select/select.d.ts +24 -0
  274. package/dist/components/select/select.js +140 -0
  275. package/dist/components/separator/index.d.ts +13 -0
  276. package/dist/components/separator/index.js +12 -0
  277. package/dist/components/separator/separator.d.ts +8 -0
  278. package/dist/components/separator/separator.js +27 -0
  279. package/dist/components/skeleton/index.d.ts +13 -0
  280. package/dist/components/skeleton/index.js +12 -0
  281. package/dist/components/skeleton/skeleton.d.ts +7 -0
  282. package/dist/components/skeleton/skeleton.js +25 -0
  283. package/dist/components/slider/index.d.ts +23 -0
  284. package/dist/components/slider/index.js +17 -0
  285. package/dist/components/slider/slider.d.ts +23 -0
  286. package/dist/components/slider/slider.js +177 -0
  287. package/dist/components/spinner/index.d.ts +13 -0
  288. package/dist/components/spinner/index.js +12 -0
  289. package/dist/components/spinner/spinner.d.ts +7 -0
  290. package/dist/components/spinner/spinner.js +88 -0
  291. package/dist/components/surface/index.d.ts +14 -0
  292. package/dist/components/surface/index.js +13 -0
  293. package/dist/components/surface/surface.d.ts +12 -0
  294. package/dist/components/surface/surface.js +34 -0
  295. package/dist/components/switch/index.d.ts +21 -0
  296. package/dist/components/switch/index.js +16 -0
  297. package/dist/components/switch/switch.d.ts +20 -0
  298. package/dist/components/switch/switch.js +118 -0
  299. package/dist/components/switch-group/index.d.ts +13 -0
  300. package/dist/components/switch-group/index.js +12 -0
  301. package/dist/components/switch-group/switch-group.d.ts +7 -0
  302. package/dist/components/switch-group/switch-group.js +25 -0
  303. package/dist/components/table/index.d.ts +38 -0
  304. package/dist/components/table/index.js +25 -0
  305. package/dist/components/table/table.d.ts +50 -0
  306. package/dist/components/table/table.js +283 -0
  307. package/dist/components/tabs/index.d.ts +25 -0
  308. package/dist/components/tabs/index.js +18 -0
  309. package/dist/components/tabs/tabs.d.ts +37 -0
  310. package/dist/components/tabs/tabs.js +156 -0
  311. package/dist/components/tag/index.d.ts +15 -0
  312. package/dist/components/tag/index.js +13 -0
  313. package/dist/components/tag/tag.d.ts +14 -0
  314. package/dist/components/tag/tag.js +85 -0
  315. package/dist/components/tag-group/index.d.ts +15 -0
  316. package/dist/components/tag-group/index.js +14 -0
  317. package/dist/components/tag-group/tag-group.d.ts +20 -0
  318. package/dist/components/tag-group/tag-group.js +59 -0
  319. package/dist/components/text/index.d.ts +13 -0
  320. package/dist/components/text/index.js +12 -0
  321. package/dist/components/text/text.d.ts +8 -0
  322. package/dist/components/text/text.js +25 -0
  323. package/dist/components/textarea/index.d.ts +13 -0
  324. package/dist/components/textarea/index.js +12 -0
  325. package/dist/components/textarea/textarea.d.ts +8 -0
  326. package/dist/components/textarea/textarea.js +27 -0
  327. package/dist/components/textfield/index.d.ts +14 -0
  328. package/dist/components/textfield/index.js +13 -0
  329. package/dist/components/textfield/textfield.d.ts +18 -0
  330. package/dist/components/textfield/textfield.js +39 -0
  331. package/dist/components/time-field/index.d.ts +26 -0
  332. package/dist/components/time-field/index.js +20 -0
  333. package/dist/components/time-field/time-field.d.ts +9 -0
  334. package/dist/components/time-field/time-field.js +29 -0
  335. package/dist/components/toast/constants.d.ts +6 -0
  336. package/dist/components/toast/constants.js +15 -0
  337. package/dist/components/toast/index.d.ts +75 -0
  338. package/dist/components/toast/index.js +23 -0
  339. package/dist/components/toast/toast-queue.d.ts +70 -0
  340. package/dist/components/toast/toast-queue.js +147 -0
  341. package/dist/components/toast/toast.d.ts +69 -0
  342. package/dist/components/toast/toast.js +365 -0
  343. package/dist/components/toggle-button/index.d.ts +13 -0
  344. package/dist/components/toggle-button/index.js +12 -0
  345. package/dist/components/toggle-button/toggle-button.d.ts +8 -0
  346. package/dist/components/toggle-button/toggle-button.js +36 -0
  347. package/dist/components/toggle-button-group/index.d.ts +16 -0
  348. package/dist/components/toggle-button-group/index.js +14 -0
  349. package/dist/components/toggle-button-group/toggle-button-group.d.ts +25 -0
  350. package/dist/components/toggle-button-group/toggle-button-group.js +70 -0
  351. package/dist/components/toolbar/index.d.ts +19 -0
  352. package/dist/components/toolbar/index.js +12 -0
  353. package/dist/components/toolbar/toolbar.d.ts +11 -0
  354. package/dist/components/toolbar/toolbar.js +39 -0
  355. package/dist/components/tooltip/index.d.ts +19 -0
  356. package/dist/components/tooltip/index.js +15 -0
  357. package/dist/components/tooltip/tooltip.d.ts +20 -0
  358. package/dist/components/tooltip/tooltip.js +106 -0
  359. package/dist/hooks/index.d.ts +9 -0
  360. package/dist/hooks/use-css-variable.d.ts +36 -0
  361. package/dist/hooks/use-css-variable.js +72 -0
  362. package/dist/hooks/use-is-hydrated.d.ts +19 -0
  363. package/dist/hooks/use-is-hydrated.js +28 -0
  364. package/dist/hooks/use-isomorphic-layout-effect.d.ts +2 -0
  365. package/dist/hooks/use-isomorphic-layout-effect.js +6 -0
  366. package/dist/hooks/use-list-data.d.ts +111 -0
  367. package/dist/hooks/use-list-data.js +296 -0
  368. package/dist/hooks/use-measured-height.d.ts +4 -0
  369. package/dist/hooks/use-measured-height.js +47 -0
  370. package/dist/hooks/use-media-query.d.ts +6 -0
  371. package/dist/hooks/use-media-query.js +50 -0
  372. package/dist/hooks/use-mounted.d.ts +1 -0
  373. package/dist/hooks/use-mounted.js +15 -0
  374. package/dist/hooks/use-overlay-state.d.ts +52 -0
  375. package/dist/hooks/use-overlay-state.js +70 -0
  376. package/dist/hooks/use-safe-layout-effect.d.ts +2 -0
  377. package/dist/hooks/use-safe-layout-effect.js +6 -0
  378. package/dist/index.d.ts +3 -0
  379. package/dist/index.js +190 -0
  380. package/dist/prerelease.d.ts +4 -0
  381. package/dist/prerelease.js +50 -0
  382. package/dist/styles.css +2 -0
  383. package/dist/utils/assertion.d.ts +9 -0
  384. package/dist/utils/assertion.js +3 -0
  385. package/dist/utils/calendar.d.ts +12 -0
  386. package/dist/utils/calendar.js +52 -0
  387. package/dist/utils/children.d.ts +9 -0
  388. package/dist/utils/children.js +17 -0
  389. package/dist/utils/compose.d.ts +7 -0
  390. package/dist/utils/compose.js +18 -0
  391. package/dist/utils/index.d.ts +6 -0
  392. package/dist/utils/logger.d.ts +23 -0
  393. package/dist/utils/logger.js +78 -0
  394. package/dist/utils/tv.d.ts +3 -0
  395. package/dist/utils/variants.d.ts +73 -0
  396. package/dist/version.d.ts +1 -0
  397. package/dist/version.js +5 -0
  398. package/package.json +406 -0
@@ -0,0 +1,205 @@
1
+ "use client";
2
+ import { colorSliderVariants } from '@masaraxui/styles';
3
+ import React__default, { createContext, useContext } from 'react';
4
+ import { ColorSlider, ColorThumb, SliderTrack, SliderOutput } from 'react-aria-components';
5
+ import { composeTwRenderProps } from '../../utils/compose.js';
6
+ import { jsx, Fragment } from 'react/jsx-runtime';
7
+
8
+ /* -------------------------------------------------------------------------------------------------
9
+ * ColorSlider Validation Utilities
10
+ * -----------------------------------------------------------------------------------------------*/
11
+
12
+ /** Maps channels to their required color space (for channels that are color-space specific) */
13
+ const CHANNEL_TO_REQUIRED_COLORSPACE = {
14
+ red: "rgb",
15
+ green: "rgb",
16
+ blue: "rgb",
17
+ lightness: "hsl",
18
+ brightness: "hsb"
19
+ };
20
+
21
+ /** Channels that only work with HSL or HSB (not RGB) */
22
+ const HSL_HSB_ONLY_CHANNELS = new Set(["hue", "saturation"]);
23
+
24
+ /**
25
+ * Validates and returns a valid colorSpace for the given channel.
26
+ * If an invalid combination is detected, logs a warning and returns the correct colorSpace.
27
+ */
28
+ function getValidColorSpace(channel, colorSpace) {
29
+ // Check if channel requires a specific color space (e.g., "red" requires "rgb")
30
+ const requiredSpace = CHANNEL_TO_REQUIRED_COLORSPACE[channel];
31
+ if (requiredSpace && colorSpace && colorSpace !== requiredSpace) {
32
+ // eslint-disable-next-line no-console
33
+ console.warn(`[MasaraxUI ColorSlider] Invalid combination: channel="${channel}" requires colorSpace="${requiredSpace}", ` + `but received colorSpace="${colorSpace}". Auto-correcting to "${requiredSpace}".`);
34
+ return requiredSpace;
35
+ }
36
+
37
+ // Check if channel is HSL/HSB only (hue, saturation) but RGB was specified
38
+ if (HSL_HSB_ONLY_CHANNELS.has(channel) && colorSpace === "rgb") {
39
+ // eslint-disable-next-line no-console
40
+ console.warn(`[MasaraxUI ColorSlider] Invalid combination: channel="${channel}" is not available in RGB color space. ` + `Use colorSpace="hsl" or colorSpace="hsb" instead. Auto-correcting to "hsl".`);
41
+ return "hsl";
42
+ }
43
+ return colorSpace;
44
+ }
45
+
46
+ /* -------------------------------------------------------------------------------------------------
47
+ * ColorSlider Context
48
+ * -----------------------------------------------------------------------------------------------*/
49
+
50
+ const ColorSliderContext = /*#__PURE__*/createContext({});
51
+
52
+ /* -------------------------------------------------------------------------------------------------
53
+ * ColorSlider Root
54
+ * -----------------------------------------------------------------------------------------------*/
55
+
56
+ const ColorSliderRoot = ({
57
+ channel,
58
+ children,
59
+ className,
60
+ colorSpace,
61
+ orientation = "horizontal",
62
+ ...props
63
+ }) => {
64
+ const slots = React__default.useMemo(() => colorSliderVariants({}), []);
65
+
66
+ // Validate and auto-correct invalid channel/colorSpace combinations
67
+ const validColorSpace = getValidColorSpace(channel, colorSpace);
68
+ return /*#__PURE__*/jsx(ColorSlider, {
69
+ channel: channel,
70
+ colorSpace: validColorSpace,
71
+ "data-slot": "color-slider",
72
+ orientation: orientation,
73
+ ...props,
74
+ className: composeTwRenderProps(className, slots.base()),
75
+ children: values => /*#__PURE__*/jsx(ColorSliderContext, {
76
+ value: {
77
+ channel,
78
+ slots,
79
+ state: values
80
+ },
81
+ children: typeof children === "function" ? children(values) : children
82
+ })
83
+ });
84
+ };
85
+
86
+ /* -------------------------------------------------------------------------------------------------
87
+ * ColorSlider Output
88
+ * -----------------------------------------------------------------------------------------------*/
89
+
90
+ const ColorSliderOutput = ({
91
+ children,
92
+ className,
93
+ ...props
94
+ }) => {
95
+ const {
96
+ slots
97
+ } = useContext(ColorSliderContext);
98
+ return /*#__PURE__*/jsx(SliderOutput, {
99
+ className: composeTwRenderProps(className, slots?.output()),
100
+ "data-slot": "color-slider-output",
101
+ ...props,
102
+ children: children ? values => /*#__PURE__*/jsx(Fragment, {
103
+ children: typeof children === "function" ? children(values) : children
104
+ }) : ({
105
+ state
106
+ }) => state.getThumbValueLabel(0)
107
+ });
108
+ };
109
+
110
+ /* -------------------------------------------------------------------------------------------------
111
+ * ColorSlider Track
112
+ * -----------------------------------------------------------------------------------------------*/
113
+
114
+ const ColorSliderTrack = ({
115
+ children,
116
+ className,
117
+ style,
118
+ ...props
119
+ }) => {
120
+ const {
121
+ channel,
122
+ slots,
123
+ state
124
+ } = useContext(ColorSliderContext);
125
+ // Calculate start and end colors for the gradient edge caps
126
+ const displayColor = state?.state?.getDisplayColor();
127
+ const edgeColors = React__default.useMemo(() => {
128
+ // Access color through state.state.value (ColorSliderState.value)
129
+ if (!displayColor || !channel) {
130
+ return {
131
+ end: "transparent",
132
+ start: "transparent"
133
+ };
134
+ }
135
+ const range = displayColor.getChannelRange(channel);
136
+
137
+ // Get colors at min and max values of the channel
138
+ const startColor = displayColor.withChannelValue(channel, range.minValue);
139
+ const endColor = displayColor.withChannelValue(channel, range.maxValue);
140
+ return {
141
+ end: endColor.toString("css"),
142
+ start: startColor.toString("css")
143
+ };
144
+ }, [channel, displayColor]);
145
+ return /*#__PURE__*/jsx(SliderTrack, {
146
+ className: composeTwRenderProps(className, slots?.track()),
147
+ "data-slot": "color-slider-track",
148
+ style: ({
149
+ defaultStyle,
150
+ ...rest
151
+ }) => ({
152
+ // Add transparency checkerboard pattern for alpha channel
153
+ background: `${defaultStyle.background}, repeating-conic-gradient(#efefef 0% 25%, #f7f7f7 0% 50%) 50% / 16px 16px`,
154
+ // Pass edge colors as CSS custom properties for ::before and ::after
155
+ "--track-end-color": edgeColors.end,
156
+ "--track-start-color": edgeColors.start,
157
+ ...(typeof style === "function" ? style({
158
+ defaultStyle,
159
+ ...rest
160
+ }) : style)
161
+ }),
162
+ ...props,
163
+ children: values => /*#__PURE__*/jsx(Fragment, {
164
+ children: typeof children === "function" ? children(values) : children
165
+ })
166
+ });
167
+ };
168
+
169
+ /* -------------------------------------------------------------------------------------------------
170
+ * ColorSlider Thumb
171
+ * -----------------------------------------------------------------------------------------------*/
172
+
173
+ const ColorSliderThumb = ({
174
+ children,
175
+ className,
176
+ style,
177
+ ...props
178
+ }) => {
179
+ const {
180
+ slots
181
+ } = useContext(ColorSliderContext);
182
+ return /*#__PURE__*/jsx(ColorThumb, {
183
+ className: composeTwRenderProps(className, slots?.thumb()),
184
+ "data-slot": "color-slider-thumb",
185
+ style: ({
186
+ defaultStyle,
187
+ isDisabled,
188
+ ...rest
189
+ }) => ({
190
+ ...defaultStyle,
191
+ backgroundColor: isDisabled ? undefined : defaultStyle.backgroundColor,
192
+ ...(typeof style === "function" ? style({
193
+ defaultStyle,
194
+ isDisabled,
195
+ ...rest
196
+ }) : style)
197
+ }),
198
+ ...props,
199
+ children: values => /*#__PURE__*/jsx(Fragment, {
200
+ children: typeof children === "function" ? children(values) : children
201
+ })
202
+ });
203
+ };
204
+
205
+ export { ColorSliderOutput, ColorSliderRoot, ColorSliderThumb, ColorSliderTrack };
@@ -0,0 +1,19 @@
1
+ import type { ComponentProps } from "react";
2
+ import { ColorSliderOutput, ColorSliderRoot, ColorSliderThumb, ColorSliderTrack } from "./color-slider";
3
+ export declare const ColorSlider: (({ channel, children, className, colorSpace, orientation, ...props }: import("./color-slider").ColorSliderRootProps) => import("react/jsx-runtime").JSX.Element) & {
4
+ Root: ({ channel, children, className, colorSpace, orientation, ...props }: import("./color-slider").ColorSliderRootProps) => import("react/jsx-runtime").JSX.Element;
5
+ Output: ({ children, className, ...props }: import("./color-slider").ColorSliderOutputProps) => import("react/jsx-runtime").JSX.Element;
6
+ Track: ({ children, className, style, ...props }: import("./color-slider").ColorSliderTrackProps) => import("react/jsx-runtime").JSX.Element;
7
+ Thumb: ({ children, className, style, ...props }: import("./color-slider").ColorSliderThumbProps) => import("react/jsx-runtime").JSX.Element;
8
+ };
9
+ export type ColorSlider = {
10
+ Props: ComponentProps<typeof ColorSliderRoot>;
11
+ RootProps: ComponentProps<typeof ColorSliderRoot>;
12
+ OutputProps: ComponentProps<typeof ColorSliderOutput>;
13
+ TrackProps: ComponentProps<typeof ColorSliderTrack>;
14
+ ThumbProps: ComponentProps<typeof ColorSliderThumb>;
15
+ };
16
+ export { ColorSliderRoot, ColorSliderOutput, ColorSliderTrack, ColorSliderThumb };
17
+ export type { ColorSliderRootProps, ColorSliderRootProps as ColorSliderProps, ColorSliderOutputProps, ColorSliderTrackProps, ColorSliderThumbProps, HSLChannel, HSBChannel, RGBChannel, HSLHSBSharedChannel, AlphaChannel, ColorSliderChannelProps, } from "./color-slider";
18
+ export { colorSliderVariants } from "@masaraxui/styles";
19
+ export type { ColorSliderVariants } from "@masaraxui/styles";
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ import { ColorSliderRoot, ColorSliderThumb, ColorSliderTrack, ColorSliderOutput } from './color-slider.js';
3
+ export { colorSliderVariants } from '@masaraxui/styles';
4
+
5
+ /* -------------------------------------------------------------------------------------------------
6
+ * Compound Component
7
+ * -----------------------------------------------------------------------------------------------*/
8
+ const ColorSlider = Object.assign(ColorSliderRoot, {
9
+ Root: ColorSliderRoot,
10
+ Output: ColorSliderOutput,
11
+ Track: ColorSliderTrack,
12
+ Thumb: ColorSliderThumb
13
+ });
14
+
15
+ export { ColorSlider, ColorSliderOutput, ColorSliderRoot, ColorSliderThumb, ColorSliderTrack };
@@ -0,0 +1,8 @@
1
+ import type { ColorSwatchVariants } from "@masaraxui/styles";
2
+ import type { ComponentPropsWithRef } from "react";
3
+ import { ColorSwatch as ColorSwatchPrimitive } from "react-aria-components";
4
+ interface ColorSwatchRootProps extends ComponentPropsWithRef<typeof ColorSwatchPrimitive>, ColorSwatchVariants {
5
+ }
6
+ declare const ColorSwatchRoot: ({ className, shape, size, style, ...props }: ColorSwatchRootProps) => import("react/jsx-runtime").JSX.Element;
7
+ export { ColorSwatchRoot };
8
+ export type { ColorSwatchRootProps };
@@ -0,0 +1,31 @@
1
+ "use client";
2
+ import { colorSwatchVariants } from '@masaraxui/styles';
3
+ import { ColorSwatch } from 'react-aria-components';
4
+ import { composeTwRenderProps } from '../../utils/compose.js';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ const ColorSwatchRoot = ({
8
+ className,
9
+ shape,
10
+ size,
11
+ style,
12
+ ...props
13
+ }) => {
14
+ return /*#__PURE__*/jsx(ColorSwatch, {
15
+ ...props,
16
+ className: composeTwRenderProps(className, colorSwatchVariants({
17
+ shape,
18
+ size
19
+ })),
20
+ "data-slot": "color-swatch",
21
+ style: renderProps => {
22
+ const userStyle = typeof style === "function" ? style(renderProps) : style;
23
+ return {
24
+ "--color-swatch-current": renderProps.color.toString("css"),
25
+ ...userStyle
26
+ };
27
+ }
28
+ });
29
+ };
30
+
31
+ export { ColorSwatchRoot };
@@ -0,0 +1,13 @@
1
+ import type { ComponentProps } from "react";
2
+ import { ColorSwatchRoot } from "./color-swatch";
3
+ export declare const ColorSwatch: (({ className, shape, size, style, ...props }: import("./color-swatch").ColorSwatchRootProps) => import("react/jsx-runtime").JSX.Element) & {
4
+ Root: ({ className, shape, size, style, ...props }: import("./color-swatch").ColorSwatchRootProps) => import("react/jsx-runtime").JSX.Element;
5
+ };
6
+ export type ColorSwatch = {
7
+ Props: ComponentProps<typeof ColorSwatchRoot>;
8
+ RootProps: ComponentProps<typeof ColorSwatchRoot>;
9
+ };
10
+ export { ColorSwatchRoot };
11
+ export type { ColorSwatchRootProps, ColorSwatchRootProps as ColorSwatchProps } from "./color-swatch";
12
+ export { colorSwatchVariants } from "@masaraxui/styles";
13
+ export type { ColorSwatchVariants } from "@masaraxui/styles";
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ import { ColorSwatchRoot } from './color-swatch.js';
3
+ export { colorSwatchVariants } from '@masaraxui/styles';
4
+
5
+ /* -------------------------------------------------------------------------------------------------
6
+ * Compound Component
7
+ * -----------------------------------------------------------------------------------------------*/
8
+ const ColorSwatch = Object.assign(ColorSwatchRoot, {
9
+ Root: ColorSwatchRoot
10
+ });
11
+
12
+ export { ColorSwatch, ColorSwatchRoot };
@@ -0,0 +1,20 @@
1
+ import type { ColorSwatchPickerVariants } from "@masaraxui/styles";
2
+ import type { ComponentPropsWithRef } from "react";
3
+ import type { ColorSwatchPickerItemRenderProps } from "react-aria-components";
4
+ import React from "react";
5
+ import { ColorSwatchPickerItem as ColorSwatchPickerItemPrimitive, ColorSwatchPicker as ColorSwatchPickerPrimitive, ColorSwatch as ColorSwatchPrimitive } from "react-aria-components";
6
+ interface ColorSwatchPickerRootProps extends ComponentPropsWithRef<typeof ColorSwatchPickerPrimitive>, ColorSwatchPickerVariants {
7
+ }
8
+ declare const ColorSwatchPickerRoot: ({ children, className, layout, size, variant, ...props }: ColorSwatchPickerRootProps) => import("react/jsx-runtime").JSX.Element;
9
+ interface ColorSwatchPickerItemProps extends ComponentPropsWithRef<typeof ColorSwatchPickerItemPrimitive> {
10
+ }
11
+ declare const ColorSwatchPickerItem: ({ children, className, ...props }: ColorSwatchPickerItemProps) => import("react/jsx-runtime").JSX.Element;
12
+ interface ColorSwatchPickerSwatchProps extends ComponentPropsWithRef<typeof ColorSwatchPrimitive> {
13
+ }
14
+ declare const ColorSwatchPickerSwatch: ({ className, ...props }: ColorSwatchPickerSwatchProps) => import("react/jsx-runtime").JSX.Element;
15
+ interface ColorSwatchPickerIndicatorProps extends Omit<ComponentPropsWithRef<"span">, "children"> {
16
+ children?: React.ReactNode | ((props: ColorSwatchPickerItemRenderProps) => React.ReactNode);
17
+ }
18
+ declare const ColorSwatchPickerIndicator: ({ children, className, ...props }: ColorSwatchPickerIndicatorProps) => import("react/jsx-runtime").JSX.Element;
19
+ export { ColorSwatchPickerRoot, ColorSwatchPickerItem, ColorSwatchPickerSwatch, ColorSwatchPickerIndicator, };
20
+ export type { ColorSwatchPickerRootProps, ColorSwatchPickerItemProps, ColorSwatchPickerSwatchProps, ColorSwatchPickerIndicatorProps, };
@@ -0,0 +1,149 @@
1
+ "use client";
2
+ import { colorSwatchPickerVariants } from '@masaraxui/styles';
3
+ import React__default, { createContext, useContext } from 'react';
4
+ import { ColorSwatchPicker, ColorSwatch, ColorSwatchPickerItem as ColorSwatchPickerItem$1 } from 'react-aria-components';
5
+ import { composeTwRenderProps, composeSlotClassName } from '../../utils/compose.js';
6
+ import { jsx } from 'react/jsx-runtime';
7
+
8
+ const ColorSwatchPickerContext = /*#__PURE__*/createContext({});
9
+
10
+ /* -------------------------------------------------------------------------------------------------
11
+ | * ColorSwatchPickerItem Context
12
+ | * -----------------------------------------------------------------------------------------------*/
13
+
14
+ const ColorSwatchPickerItemContext = /*#__PURE__*/createContext({});
15
+
16
+ /* -------------------------------------------------------------------------------------------------
17
+ | * ColorSwatchPicker Root
18
+ | * -----------------------------------------------------------------------------------------------*/
19
+
20
+ const ColorSwatchPickerRoot = ({
21
+ children,
22
+ className,
23
+ layout,
24
+ size,
25
+ variant,
26
+ ...props
27
+ }) => {
28
+ const slots = React__default.useMemo(() => colorSwatchPickerVariants({
29
+ layout,
30
+ size,
31
+ variant
32
+ }), [layout, size, variant]);
33
+ return /*#__PURE__*/jsx(ColorSwatchPickerContext, {
34
+ value: {
35
+ slots
36
+ },
37
+ children: /*#__PURE__*/jsx(ColorSwatchPicker, {
38
+ "data-slot": "color-swatch-picker",
39
+ ...props,
40
+ className: composeTwRenderProps(className, slots.base()),
41
+ children: children
42
+ })
43
+ });
44
+ };
45
+
46
+ /* -------------------------------------------------------------------------------------------------
47
+ | * ColorSwatchPicker Item
48
+ | * -----------------------------------------------------------------------------------------------*/
49
+
50
+ const ColorSwatchPickerItem = ({
51
+ children,
52
+ className,
53
+ ...props
54
+ }) => {
55
+ const {
56
+ slots
57
+ } = useContext(ColorSwatchPickerContext);
58
+ return /*#__PURE__*/jsx(ColorSwatchPickerItem$1, {
59
+ "data-slot": "color-swatch-picker-item",
60
+ ...props,
61
+ className: composeTwRenderProps(className, slots?.item()),
62
+ style: renderProps => ({
63
+ "--color-swatch-current": renderProps.color.toString("css")
64
+ }),
65
+ children: renderProps => /*#__PURE__*/jsx(ColorSwatchPickerItemContext, {
66
+ value: {
67
+ state: renderProps
68
+ },
69
+ children: typeof children === "function" ? children(renderProps) : children
70
+ })
71
+ });
72
+ };
73
+
74
+ /* -------------------------------------------------------------------------------------------------
75
+ | * ColorSwatchPicker Swatch
76
+ | * -----------------------------------------------------------------------------------------------*/
77
+
78
+ const ColorSwatchPickerSwatch = ({
79
+ className,
80
+ ...props
81
+ }) => {
82
+ const {
83
+ slots
84
+ } = useContext(ColorSwatchPickerContext);
85
+ return /*#__PURE__*/jsx(ColorSwatch, {
86
+ className: composeTwRenderProps(className, slots?.swatch()),
87
+ "data-slot": "color-swatch-picker-swatch",
88
+ ...props
89
+ });
90
+ };
91
+
92
+ /* -------------------------------------------------------------------------------------------------
93
+ | * ColorSwatchPicker Indicator
94
+ | * -----------------------------------------------------------------------------------------------*/
95
+
96
+ /**
97
+ * Calculate relative luminance of a color
98
+ * Uses the formula: L = 0.2126 * R + 0.7152 * G + 0.0722 * B
99
+ * Returns a value between 0 (black) and 1 (white)
100
+ */
101
+ function getColorLuminance(color) {
102
+ // Get RGB values (0-255 range)
103
+ const r = color.getChannelValue("red");
104
+ const g = color.getChannelValue("green");
105
+ const b = color.getChannelValue("blue");
106
+
107
+ // Normalize to 0-1 and calculate luminance
108
+ return (0.2126 * r + 0.7152 * g + 0.0722 * b) / 255;
109
+ }
110
+ const ColorSwatchPickerIndicator = ({
111
+ children,
112
+ className,
113
+ ...props
114
+ }) => {
115
+ const {
116
+ slots
117
+ } = useContext(ColorSwatchPickerContext);
118
+ const {
119
+ state
120
+ } = useContext(ColorSwatchPickerItemContext);
121
+
122
+ // Determine if the background color is light (luminance > 0.5)
123
+ // Use white checkmark on dark backgrounds, black on light backgrounds
124
+ const isLightColor = state?.color ? getColorLuminance(state.color) > 0.5 : false;
125
+ const content = typeof children === "function" ? children(state ?? {}) : children ? children : /*#__PURE__*/jsx("svg", {
126
+ "aria-hidden": "true",
127
+ "data-slot": "color-swatch-picker-checkmark",
128
+ fill: "none",
129
+ role: "presentation",
130
+ stroke: "currentColor",
131
+ strokeLinecap: "round",
132
+ strokeLinejoin: "round",
133
+ strokeWidth: 1.5,
134
+ viewBox: "0 0 12 12",
135
+ children: /*#__PURE__*/jsx("polyline", {
136
+ points: "2.5 6 5 8.5 9.5 3"
137
+ })
138
+ });
139
+ return /*#__PURE__*/jsx("span", {
140
+ "aria-hidden": "true",
141
+ className: composeSlotClassName(slots?.indicator, className),
142
+ "data-light-color": isLightColor ? "true" : undefined,
143
+ "data-slot": "color-swatch-picker-indicator",
144
+ ...props,
145
+ children: content
146
+ });
147
+ };
148
+
149
+ export { ColorSwatchPickerIndicator, ColorSwatchPickerItem, ColorSwatchPickerRoot, ColorSwatchPickerSwatch };
@@ -0,0 +1,19 @@
1
+ import type { ComponentProps } from "react";
2
+ import { ColorSwatchPickerIndicator, ColorSwatchPickerItem, ColorSwatchPickerRoot, ColorSwatchPickerSwatch } from "./color-swatch-picker";
3
+ export declare const ColorSwatchPicker: (({ children, className, layout, size, variant, ...props }: import("./color-swatch-picker").ColorSwatchPickerRootProps) => import("react/jsx-runtime").JSX.Element) & {
4
+ Root: ({ children, className, layout, size, variant, ...props }: import("./color-swatch-picker").ColorSwatchPickerRootProps) => import("react/jsx-runtime").JSX.Element;
5
+ Item: ({ children, className, ...props }: import("./color-swatch-picker").ColorSwatchPickerItemProps) => import("react/jsx-runtime").JSX.Element;
6
+ Swatch: ({ className, ...props }: import("./color-swatch-picker").ColorSwatchPickerSwatchProps) => import("react/jsx-runtime").JSX.Element;
7
+ Indicator: ({ children, className, ...props }: import("./color-swatch-picker").ColorSwatchPickerIndicatorProps) => import("react/jsx-runtime").JSX.Element;
8
+ };
9
+ export type ColorSwatchPicker = {
10
+ Props: ComponentProps<typeof ColorSwatchPickerRoot>;
11
+ RootProps: ComponentProps<typeof ColorSwatchPickerRoot>;
12
+ ItemProps: ComponentProps<typeof ColorSwatchPickerItem>;
13
+ SwatchProps: ComponentProps<typeof ColorSwatchPickerSwatch>;
14
+ IndicatorProps: ComponentProps<typeof ColorSwatchPickerIndicator>;
15
+ };
16
+ export { ColorSwatchPickerRoot, ColorSwatchPickerItem, ColorSwatchPickerSwatch, ColorSwatchPickerIndicator, };
17
+ export type { ColorSwatchPickerRootProps, ColorSwatchPickerRootProps as ColorSwatchPickerProps, ColorSwatchPickerItemProps, ColorSwatchPickerSwatchProps, ColorSwatchPickerIndicatorProps, } from "./color-swatch-picker";
18
+ export { colorSwatchPickerVariants } from "@masaraxui/styles";
19
+ export type { ColorSwatchPickerVariants } from "@masaraxui/styles";
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ import { ColorSwatchPickerRoot, ColorSwatchPickerIndicator, ColorSwatchPickerSwatch, ColorSwatchPickerItem } from './color-swatch-picker.js';
3
+ export { colorSwatchPickerVariants } from '@masaraxui/styles';
4
+
5
+ /* -------------------------------------------------------------------------------------------------
6
+ | * Compound Component
7
+ | * -----------------------------------------------------------------------------------------------*/
8
+ const ColorSwatchPicker = Object.assign(ColorSwatchPickerRoot, {
9
+ Root: ColorSwatchPickerRoot,
10
+ Item: ColorSwatchPickerItem,
11
+ Swatch: ColorSwatchPickerSwatch,
12
+ Indicator: ColorSwatchPickerIndicator
13
+ });
14
+
15
+ export { ColorSwatchPicker, ColorSwatchPickerIndicator, ColorSwatchPickerItem, ColorSwatchPickerRoot, ColorSwatchPickerSwatch };
@@ -0,0 +1,34 @@
1
+ import type { ComboBoxVariants } from "@masaraxui/styles";
2
+ import type { ComponentPropsWithRef, ReactNode } from "react";
3
+ import type { ButtonProps } from "react-aria-components";
4
+ import { comboBoxVariants } from "@masaraxui/styles";
5
+ import React from "react";
6
+ import { ComboBox as ComboBoxPrimitive, Popover as PopoverPrimitive } from "react-aria-components";
7
+ type ComboBoxContext = {
8
+ slots?: ReturnType<typeof comboBoxVariants>;
9
+ variant?: "primary" | "secondary";
10
+ };
11
+ declare const ComboBoxContext: React.Context<ComboBoxContext>;
12
+ interface ComboBoxRootProps<T extends object> extends ComponentPropsWithRef<typeof ComboBoxPrimitive<T>>, ComboBoxVariants {
13
+ items?: Iterable<T>;
14
+ /**
15
+ * The variant of the combo box.
16
+ * @default "primary"
17
+ */
18
+ variant?: "primary" | "secondary";
19
+ }
20
+ declare const ComboBoxRoot: <T extends object = object>({ children, className, fullWidth, menuTrigger, variant, ...props }: ComboBoxRootProps<T>) => import("react/jsx-runtime").JSX.Element;
21
+ interface ComboBoxInputGroupProps extends React.HTMLAttributes<HTMLDivElement> {
22
+ }
23
+ declare const ComboBoxInputGroup: ({ children, className, ...props }: ComboBoxInputGroupProps) => import("react/jsx-runtime").JSX.Element;
24
+ interface ComboBoxTriggerProps extends ButtonProps {
25
+ className?: string;
26
+ children?: ReactNode;
27
+ }
28
+ declare const ComboBoxTrigger: ({ children, className, ...rest }: ComboBoxTriggerProps) => import("react/jsx-runtime").JSX.Element;
29
+ interface ComboBoxPopoverProps extends Omit<ComponentPropsWithRef<typeof PopoverPrimitive>, "children"> {
30
+ children: React.ReactNode;
31
+ }
32
+ declare const ComboBoxPopover: ({ children, className, placement, ...props }: ComboBoxPopoverProps) => import("react/jsx-runtime").JSX.Element;
33
+ export { ComboBoxRoot, ComboBoxInputGroup, ComboBoxTrigger, ComboBoxPopover, ComboBoxContext };
34
+ export type { ComboBoxRootProps, ComboBoxInputGroupProps, ComboBoxTriggerProps, ComboBoxPopoverProps, };
@@ -0,0 +1,116 @@
1
+ "use client";
2
+ import { comboBoxVariants } from '@masaraxui/styles';
3
+ import React__default, { createContext, useContext } from 'react';
4
+ import { ComboBox, Popover, ComboBoxStateContext, Button } from 'react-aria-components';
5
+ import { dataAttr } from '../../utils/assertion.js';
6
+ import { composeTwRenderProps, composeSlotClassName } from '../../utils/compose.js';
7
+ import { IconChevronDown } from '../icons.js';
8
+ import { jsx, Fragment } from 'react/jsx-runtime';
9
+ import { SurfaceContext } from '../surface/surface.js';
10
+
11
+ const ComboBoxContext = /*#__PURE__*/createContext({});
12
+
13
+ /* -------------------------------------------------------------------------------------------------
14
+ * ComboBox Root
15
+ * -----------------------------------------------------------------------------------------------*/
16
+
17
+ const ComboBoxRoot = ({
18
+ children,
19
+ className,
20
+ fullWidth,
21
+ menuTrigger = "focus",
22
+ variant,
23
+ ...props
24
+ }) => {
25
+ const slots = React__default.useMemo(() => comboBoxVariants({
26
+ fullWidth
27
+ }), [fullWidth]);
28
+ return /*#__PURE__*/jsx(ComboBoxContext, {
29
+ value: {
30
+ slots,
31
+ variant
32
+ },
33
+ children: /*#__PURE__*/jsx(ComboBox, {
34
+ "data-slot": "combo-box",
35
+ menuTrigger: menuTrigger,
36
+ ...props,
37
+ className: composeTwRenderProps(className, slots?.base()),
38
+ children: values => /*#__PURE__*/jsx(Fragment, {
39
+ children: typeof children === "function" ? children(values) : children
40
+ })
41
+ })
42
+ });
43
+ };
44
+
45
+ /* -------------------------------------------------------------------------------------------------
46
+ * ComboBox InputGroup
47
+ * -----------------------------------------------------------------------------------------------*/
48
+
49
+ const ComboBoxInputGroup = ({
50
+ children,
51
+ className,
52
+ ...props
53
+ }) => {
54
+ const {
55
+ slots
56
+ } = useContext(ComboBoxContext);
57
+ const inputGroupClassName = composeSlotClassName(slots?.inputGroup, className);
58
+ return /*#__PURE__*/jsx("div", {
59
+ className: inputGroupClassName,
60
+ "data-slot": "combo-box-input-group",
61
+ ...props,
62
+ children: children
63
+ });
64
+ };
65
+
66
+ /* -------------------------------------------------------------------------------------------------
67
+ * ComboBox Trigger
68
+ * -----------------------------------------------------------------------------------------------*/
69
+
70
+ const ComboBoxTrigger = ({
71
+ children,
72
+ className,
73
+ ...rest
74
+ }) => {
75
+ const {
76
+ slots
77
+ } = useContext(ComboBoxContext);
78
+ const state = useContext(ComboBoxStateContext);
79
+ return /*#__PURE__*/jsx(Button, {
80
+ className: composeTwRenderProps(className, slots?.trigger()),
81
+ "data-open": dataAttr(state?.isOpen),
82
+ "data-slot": "combo-box-trigger",
83
+ ...rest,
84
+ children: children ?? /*#__PURE__*/jsx(IconChevronDown, {
85
+ "data-slot": "combo-box-trigger-default-icon"
86
+ })
87
+ });
88
+ };
89
+
90
+ /* -------------------------------------------------------------------------------------------------
91
+ * ComboBox Popover
92
+ * -----------------------------------------------------------------------------------------------*/
93
+
94
+ const ComboBoxPopover = ({
95
+ children,
96
+ className,
97
+ placement = "bottom",
98
+ ...props
99
+ }) => {
100
+ const {
101
+ slots
102
+ } = useContext(ComboBoxContext);
103
+ return /*#__PURE__*/jsx(SurfaceContext, {
104
+ value: {
105
+ variant: "default"
106
+ },
107
+ children: /*#__PURE__*/jsx(Popover, {
108
+ ...props,
109
+ className: composeTwRenderProps(className, slots?.popover()),
110
+ placement: placement,
111
+ children: children
112
+ })
113
+ });
114
+ };
115
+
116
+ export { ComboBoxContext, ComboBoxInputGroup, ComboBoxPopover, ComboBoxRoot, ComboBoxTrigger };