@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,36 @@
1
+ "use client";
2
+ import { toggleButtonVariants } from '@masaraxui/styles';
3
+ import { useContext } from 'react';
4
+ import { ToggleButton } from 'react-aria-components';
5
+ import { jsx } from 'react/jsx-runtime';
6
+ import { ToggleButtonGroupContext } from '../toggle-button-group/toggle-button-group.js';
7
+ import { composeTwRenderProps } from '../../utils/compose.js';
8
+
9
+ const ToggleButtonRoot = ({
10
+ children,
11
+ className,
12
+ isIconOnly,
13
+ size,
14
+ style,
15
+ variant,
16
+ ...rest
17
+ }) => {
18
+ const groupContext = useContext(ToggleButtonGroupContext);
19
+
20
+ // Merge props with precedence: direct props > context props
21
+ const finalSize = size ?? groupContext?.size;
22
+ const styles = toggleButtonVariants({
23
+ isIconOnly,
24
+ size: finalSize,
25
+ variant
26
+ });
27
+ return /*#__PURE__*/jsx(ToggleButton, {
28
+ className: composeTwRenderProps(className, styles),
29
+ "data-slot": "toggle-button",
30
+ style: style,
31
+ ...rest,
32
+ children: renderProps => typeof children === "function" ? children(renderProps) : children
33
+ });
34
+ };
35
+
36
+ export { ToggleButtonRoot };
@@ -0,0 +1,16 @@
1
+ import type { ComponentProps } from "react";
2
+ import { ToggleButtonGroupRoot, ToggleButtonGroupSeparator } from "./toggle-button-group";
3
+ export declare const ToggleButtonGroup: (({ children, className, fullWidth, isDetached, isDisabled, orientation: orientationProp, size, ...rest }: import("./toggle-button-group").ToggleButtonGroupRootProps) => import("react/jsx-runtime").JSX.Element) & {
4
+ Root: ({ children, className, fullWidth, isDetached, isDisabled, orientation: orientationProp, size, ...rest }: import("./toggle-button-group").ToggleButtonGroupRootProps) => import("react/jsx-runtime").JSX.Element;
5
+ Separator: ({ className, ...props }: import("./toggle-button-group").ToggleButtonGroupSeparatorProps) => import("react/jsx-runtime").JSX.Element;
6
+ };
7
+ export type ToggleButtonGroup = {
8
+ Props: ComponentProps<typeof ToggleButtonGroupRoot>;
9
+ RootProps: ComponentProps<typeof ToggleButtonGroupRoot>;
10
+ SeparatorProps: ComponentProps<typeof ToggleButtonGroupSeparator>;
11
+ };
12
+ export { ToggleButtonGroupRoot, ToggleButtonGroupSeparator };
13
+ export type { ToggleButtonGroupRootProps, ToggleButtonGroupRootProps as ToggleButtonGroupProps, ToggleButtonGroupSeparatorProps, } from "./toggle-button-group";
14
+ export { ToggleButtonGroupContext, TOGGLE_BUTTON_GROUP_CHILD } from "./toggle-button-group";
15
+ export { toggleButtonGroupVariants } from "@masaraxui/styles";
16
+ export type { ToggleButtonGroupVariants } from "@masaraxui/styles";
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ import { ToggleButtonGroupRoot, ToggleButtonGroupSeparator } from './toggle-button-group.js';
3
+ export { TOGGLE_BUTTON_GROUP_CHILD, ToggleButtonGroupContext } from './toggle-button-group.js';
4
+ export { toggleButtonGroupVariants } from '@masaraxui/styles';
5
+
6
+ /* -------------------------------------------------------------------------------------------------
7
+ * Compound Component
8
+ * -----------------------------------------------------------------------------------------------*/
9
+ const ToggleButtonGroup = Object.assign(ToggleButtonGroupRoot, {
10
+ Root: ToggleButtonGroupRoot,
11
+ Separator: ToggleButtonGroupSeparator
12
+ });
13
+
14
+ export { ToggleButtonGroup, ToggleButtonGroupRoot, ToggleButtonGroupSeparator };
@@ -0,0 +1,25 @@
1
+ import type { ToggleButtonGroupVariants, ToggleButtonVariants } from "@masaraxui/styles";
2
+ import type { ComponentPropsWithRef } from "react";
3
+ import { toggleButtonGroupVariants } from "@masaraxui/styles";
4
+ import React from "react";
5
+ import { ToggleButtonGroup as ToggleButtonGroupPrimitive } from "react-aria-components";
6
+ type ToggleButtonGroupContext = {
7
+ slots?: ReturnType<typeof toggleButtonGroupVariants>;
8
+ size?: ToggleButtonVariants["size"];
9
+ isDisabled?: boolean;
10
+ };
11
+ declare const ToggleButtonGroupContext: React.Context<ToggleButtonGroupContext>;
12
+ export declare const TOGGLE_BUTTON_GROUP_CHILD = "__toggle_button_group_child";
13
+ interface ToggleButtonGroupRootProps extends ComponentPropsWithRef<typeof ToggleButtonGroupPrimitive>, ToggleButtonGroupVariants {
14
+ /** Size to propagate to all child ToggleButtons */
15
+ size?: ToggleButtonVariants["size"];
16
+ /** Whether the group buttons are visually separated (detached) instead of connected */
17
+ isDetached?: boolean;
18
+ }
19
+ declare const ToggleButtonGroupRoot: ({ children, className, fullWidth, isDetached, isDisabled, orientation: orientationProp, size, ...rest }: ToggleButtonGroupRootProps) => import("react/jsx-runtime").JSX.Element;
20
+ interface ToggleButtonGroupSeparatorProps extends ComponentPropsWithRef<"span"> {
21
+ className?: string;
22
+ }
23
+ declare const ToggleButtonGroupSeparator: ({ className, ...props }: ToggleButtonGroupSeparatorProps) => import("react/jsx-runtime").JSX.Element;
24
+ export { ToggleButtonGroupRoot, ToggleButtonGroupSeparator, ToggleButtonGroupContext };
25
+ export type { ToggleButtonGroupRootProps, ToggleButtonGroupSeparatorProps };
@@ -0,0 +1,70 @@
1
+ "use client";
2
+ import { toggleButtonGroupVariants } from '@masaraxui/styles';
3
+ import React__default, { createContext, useContext } from 'react';
4
+ import { useSlottedContext, ToggleButtonGroupContext as ToggleButtonGroupContext$1, ToggleButtonGroup } from 'react-aria-components';
5
+ import { jsx } from 'react/jsx-runtime';
6
+ import { composeTwRenderProps, composeSlotClassName } from '../../utils/compose.js';
7
+
8
+ const ToggleButtonGroupContext = /*#__PURE__*/createContext({});
9
+
10
+ // Property name to mark direct children of ToggleButtonGroup
11
+ const TOGGLE_BUTTON_GROUP_CHILD = "__toggle_button_group_child";
12
+
13
+ /* -------------------------------------------------------------------------------------------------
14
+ * ToggleButtonGroup Root
15
+ * -----------------------------------------------------------------------------------------------*/
16
+
17
+ const ToggleButtonGroupRoot = ({
18
+ children,
19
+ className,
20
+ fullWidth,
21
+ isDetached = false,
22
+ isDisabled,
23
+ orientation: orientationProp,
24
+ size,
25
+ ...rest
26
+ }) => {
27
+ const racContext = useSlottedContext(ToggleButtonGroupContext$1);
28
+ const orientation = orientationProp ?? racContext?.orientation ?? "horizontal";
29
+ const slots = React__default.useMemo(() => toggleButtonGroupVariants({
30
+ fullWidth,
31
+ isDetached,
32
+ orientation
33
+ }), [fullWidth, isDetached, orientation]);
34
+ return /*#__PURE__*/jsx(ToggleButtonGroupContext, {
35
+ value: {
36
+ slots,
37
+ size,
38
+ isDisabled
39
+ },
40
+ children: /*#__PURE__*/jsx(ToggleButtonGroup, {
41
+ className: composeTwRenderProps(className, slots.base()),
42
+ "data-slot": "toggle-button-group",
43
+ isDisabled: isDisabled,
44
+ orientation: orientation,
45
+ ...rest,
46
+ children: children
47
+ })
48
+ });
49
+ };
50
+
51
+ /* -------------------------------------------------------------------------------------------------
52
+ * ToggleButtonGroup Separator
53
+ * -----------------------------------------------------------------------------------------------*/
54
+
55
+ const ToggleButtonGroupSeparator = ({
56
+ className,
57
+ ...props
58
+ }) => {
59
+ const {
60
+ slots
61
+ } = useContext(ToggleButtonGroupContext);
62
+ return /*#__PURE__*/jsx("span", {
63
+ "aria-hidden": "true",
64
+ className: composeSlotClassName(slots?.separator, className),
65
+ "data-slot": "toggle-button-group-separator",
66
+ ...props
67
+ });
68
+ };
69
+
70
+ export { TOGGLE_BUTTON_GROUP_CHILD, ToggleButtonGroupContext, ToggleButtonGroupRoot, ToggleButtonGroupSeparator };
@@ -0,0 +1,19 @@
1
+ import type { ComponentProps } from "react";
2
+ import { ToolbarRoot } from "./toolbar";
3
+ export declare const Toolbar: {
4
+ ({ children, className, isAttached, orientation, ...props }: import("./toolbar").ToolbarRootProps): import("react/jsx-runtime").JSX.Element;
5
+ displayName: string;
6
+ } & {
7
+ Root: {
8
+ ({ children, className, isAttached, orientation, ...props }: import("./toolbar").ToolbarRootProps): import("react/jsx-runtime").JSX.Element;
9
+ displayName: string;
10
+ };
11
+ };
12
+ export type Toolbar = {
13
+ Props: ComponentProps<typeof ToolbarRoot>;
14
+ RootProps: ComponentProps<typeof ToolbarRoot>;
15
+ };
16
+ export { ToolbarRoot } from "./toolbar";
17
+ export type { ToolbarRootProps, ToolbarRootProps as ToolbarProps } from "./toolbar";
18
+ export { toolbarVariants } from "@masaraxui/styles";
19
+ export type { ToolbarVariants } from "@masaraxui/styles";
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ import { ToolbarRoot } from './toolbar.js';
3
+ export { toolbarVariants } from '@masaraxui/styles';
4
+
5
+ /* -------------------------------------------------------------------------------------------------
6
+ * Compound Component
7
+ * -----------------------------------------------------------------------------------------------*/
8
+ const Toolbar = Object.assign(ToolbarRoot, {
9
+ Root: ToolbarRoot
10
+ });
11
+
12
+ export { Toolbar, ToolbarRoot };
@@ -0,0 +1,11 @@
1
+ import type { ToolbarVariants } from "@masaraxui/styles";
2
+ import type { ComponentPropsWithRef } from "react";
3
+ import { Toolbar as ToolbarPrimitive } from "react-aria-components";
4
+ interface ToolbarRootProps extends ComponentPropsWithRef<typeof ToolbarPrimitive>, ToolbarVariants {
5
+ }
6
+ declare const ToolbarRoot: {
7
+ ({ children, className, isAttached, orientation, ...props }: ToolbarRootProps): import("react/jsx-runtime").JSX.Element;
8
+ displayName: string;
9
+ };
10
+ export { ToolbarRoot };
11
+ export type { ToolbarRootProps };
@@ -0,0 +1,39 @@
1
+ "use client";
2
+ import { toolbarVariants } from '@masaraxui/styles';
3
+ import React__default from 'react';
4
+ import { ToggleButtonGroupContext, SeparatorContext, Toolbar } from 'react-aria-components';
5
+ import { jsx } from 'react/jsx-runtime';
6
+ import { composeTwRenderProps } from '../../utils/compose.js';
7
+
8
+ const ToolbarRoot = ({
9
+ children,
10
+ className,
11
+ isAttached,
12
+ orientation = "horizontal",
13
+ ...props
14
+ }) => {
15
+ const styles = React__default.useMemo(() => toolbarVariants({
16
+ isAttached,
17
+ orientation
18
+ }), [isAttached, orientation]);
19
+ return /*#__PURE__*/jsx(ToggleButtonGroupContext.Provider, {
20
+ value: {
21
+ orientation
22
+ },
23
+ children: /*#__PURE__*/jsx(SeparatorContext.Provider, {
24
+ value: {
25
+ orientation: orientation === "horizontal" ? "vertical" : "horizontal"
26
+ },
27
+ children: /*#__PURE__*/jsx(Toolbar, {
28
+ className: composeTwRenderProps(className, styles),
29
+ "data-slot": "toolbar",
30
+ orientation: orientation,
31
+ ...props,
32
+ children: children
33
+ })
34
+ })
35
+ });
36
+ };
37
+ ToolbarRoot.displayName = "MasaraxUI.Toolbar";
38
+
39
+ export { ToolbarRoot };
@@ -0,0 +1,19 @@
1
+ import type { ComponentProps } from "react";
2
+ import { TooltipArrow, TooltipContent, TooltipRoot, TooltipTrigger } from "./tooltip";
3
+ export declare const Tooltip: (({ children, ...props }: import("react").ComponentPropsWithRef<typeof import("react-aria-components").TooltipTrigger>) => import("react/jsx-runtime").JSX.Element) & {
4
+ Root: ({ children, ...props }: import("react").ComponentPropsWithRef<typeof import("react-aria-components").TooltipTrigger>) => import("react/jsx-runtime").JSX.Element;
5
+ Trigger: ({ children, className, ...props }: import("./tooltip").TooltipTriggerProps) => import("react/jsx-runtime").JSX.Element;
6
+ Content: ({ children, className, offset: offsetProp, showArrow, ...props }: import("./tooltip").TooltipContentProps) => import("react/jsx-runtime").JSX.Element;
7
+ Arrow: ({ children, className, ...props }: import("./tooltip").TooltipArrowProps) => import("react/jsx-runtime").JSX.Element;
8
+ };
9
+ export type Tooltip = {
10
+ Props: ComponentProps<typeof TooltipRoot>;
11
+ RootProps: ComponentProps<typeof TooltipRoot>;
12
+ TriggerProps: ComponentProps<typeof TooltipTrigger>;
13
+ ContentProps: ComponentProps<typeof TooltipContent>;
14
+ ArrowProps: ComponentProps<typeof TooltipArrow>;
15
+ };
16
+ export { TooltipRoot, TooltipTrigger, TooltipContent, TooltipArrow };
17
+ export type { TooltipRootProps, TooltipRootProps as TooltipProps, TooltipArrowProps, TooltipContentProps, TooltipTriggerProps, } from "./tooltip";
18
+ export { tooltipVariants } from "@masaraxui/styles";
19
+ export type { TooltipVariants } from "@masaraxui/styles";
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ import { TooltipRoot, TooltipArrow, TooltipContent, TooltipTrigger } from './tooltip.js';
3
+ export { tooltipVariants } from '@masaraxui/styles';
4
+
5
+ /* -------------------------------------------------------------------------------------------------
6
+ * Compound Component
7
+ * -----------------------------------------------------------------------------------------------*/
8
+ const Tooltip = Object.assign(TooltipRoot, {
9
+ Root: TooltipRoot,
10
+ Trigger: TooltipTrigger,
11
+ Content: TooltipContent,
12
+ Arrow: TooltipArrow
13
+ });
14
+
15
+ export { Tooltip, TooltipArrow, TooltipContent, TooltipRoot, TooltipTrigger };
@@ -0,0 +1,20 @@
1
+ import type { TooltipVariants } from "@masaraxui/styles";
2
+ import type { ComponentPropsWithRef } from "react";
3
+ import React from "react";
4
+ import { OverlayArrow, Tooltip as TooltipPrimitive, TooltipTrigger as TooltipTriggerPrimitive } from "react-aria-components";
5
+ type TooltipRootProps = ComponentPropsWithRef<typeof TooltipTriggerPrimitive>;
6
+ declare const TooltipRoot: ({ children, ...props }: ComponentPropsWithRef<typeof TooltipTriggerPrimitive>) => import("react/jsx-runtime").JSX.Element;
7
+ interface TooltipContentProps extends Omit<ComponentPropsWithRef<typeof TooltipPrimitive>, "children">, TooltipVariants {
8
+ showArrow?: boolean;
9
+ children: React.ReactNode;
10
+ }
11
+ declare const TooltipContent: ({ children, className, offset: offsetProp, showArrow, ...props }: TooltipContentProps) => import("react/jsx-runtime").JSX.Element;
12
+ type TooltipArrowProps = Omit<ComponentPropsWithRef<typeof OverlayArrow>, "children"> & {
13
+ children?: React.ReactNode;
14
+ };
15
+ declare const TooltipArrow: ({ children, className, ...props }: TooltipArrowProps) => import("react/jsx-runtime").JSX.Element;
16
+ interface TooltipTriggerProps extends ComponentPropsWithRef<"div"> {
17
+ }
18
+ declare const TooltipTrigger: ({ children, className, ...props }: TooltipTriggerProps) => import("react/jsx-runtime").JSX.Element;
19
+ export { TooltipRoot, TooltipTrigger, TooltipContent, TooltipArrow };
20
+ export type { TooltipRootProps, TooltipArrowProps, TooltipContentProps, TooltipTriggerProps };
@@ -0,0 +1,106 @@
1
+ "use client";
2
+ import { tooltipVariants } from '@masaraxui/styles';
3
+ import React__default, { createContext, useContext } from 'react';
4
+ import { TooltipTrigger as TooltipTrigger$1, OverlayArrow, Tooltip, Focusable } from 'react-aria-components';
5
+ import { composeTwRenderProps, composeSlotClassName } from '../../utils/compose.js';
6
+ import { jsx } from 'react/jsx-runtime';
7
+
8
+ const TooltipContext = /*#__PURE__*/createContext({});
9
+
10
+ /* -------------------------------------------------------------------------------------------------
11
+ * Tooltip Root
12
+ * -----------------------------------------------------------------------------------------------*/
13
+
14
+ const TooltipRoot = ({
15
+ children,
16
+ ...props
17
+ }) => {
18
+ const slots = React__default.useMemo(() => tooltipVariants(), []);
19
+ return /*#__PURE__*/jsx(TooltipContext, {
20
+ value: {
21
+ slots
22
+ },
23
+ children: /*#__PURE__*/jsx(TooltipTrigger$1, {
24
+ "data-slot": "tooltip-root",
25
+ ...props,
26
+ children: children
27
+ })
28
+ });
29
+ };
30
+
31
+ /* -------------------------------------------------------------------------------------------------
32
+ * Tooltip Content
33
+ * -----------------------------------------------------------------------------------------------*/
34
+
35
+ const TooltipContent = ({
36
+ children,
37
+ className,
38
+ offset: offsetProp,
39
+ showArrow = false,
40
+ ...props
41
+ }) => {
42
+ const {
43
+ slots
44
+ } = useContext(TooltipContext);
45
+ const offset = offsetProp ? offsetProp : showArrow ? 7 : 3;
46
+ return /*#__PURE__*/jsx(Tooltip, {
47
+ ...props,
48
+ className: composeTwRenderProps(className, slots?.base()),
49
+ offset: offset,
50
+ children: children
51
+ });
52
+ };
53
+
54
+ /* -------------------------------------------------------------------------------------------------
55
+ * Tooltip Arrow
56
+ * -----------------------------------------------------------------------------------------------*/
57
+
58
+ const TooltipArrow = ({
59
+ children,
60
+ className,
61
+ ...props
62
+ }) => {
63
+ const defaultArrow = /*#__PURE__*/jsx("svg", {
64
+ "data-slot": "overlay-arrow",
65
+ height: 12,
66
+ viewBox: "0 0 12 12",
67
+ width: 12,
68
+ children: /*#__PURE__*/jsx("path", {
69
+ d: "M0 0 Q6 9 12 0"
70
+ })
71
+ });
72
+ const arrow = /*#__PURE__*/React__default.isValidElement(children) ? /*#__PURE__*/React__default.cloneElement(children, {
73
+ "data-slot": "overlay-arrow"
74
+ }) : defaultArrow;
75
+ return /*#__PURE__*/jsx(OverlayArrow, {
76
+ "data-slot": "tooltip-arrow",
77
+ ...props,
78
+ className: className,
79
+ children: arrow
80
+ });
81
+ };
82
+
83
+ /* -------------------------------------------------------------------------------------------------
84
+ * Tooltip Trigger
85
+ * -----------------------------------------------------------------------------------------------*/
86
+
87
+ const TooltipTrigger = ({
88
+ children,
89
+ className,
90
+ ...props
91
+ }) => {
92
+ const {
93
+ slots
94
+ } = useContext(TooltipContext);
95
+ return /*#__PURE__*/jsx(Focusable, {
96
+ children: /*#__PURE__*/jsx("div", {
97
+ className: composeSlotClassName(slots?.trigger, className),
98
+ "data-slot": "tooltip-trigger",
99
+ role: "button",
100
+ ...props,
101
+ children: children
102
+ })
103
+ });
104
+ };
105
+
106
+ export { TooltipArrow, TooltipContent, TooltipRoot, TooltipTrigger };
@@ -0,0 +1,9 @@
1
+ export * from "./use-css-variable";
2
+ export * from "./use-is-hydrated";
3
+ export * from "./use-list-data";
4
+ export * from "./use-measured-height";
5
+ export * from "./use-mounted";
6
+ export * from "./use-overlay-state";
7
+ export * from "./use-safe-layout-effect";
8
+ export * from "./use-isomorphic-layout-effect";
9
+ export * from "./use-media-query";
@@ -0,0 +1,36 @@
1
+ /**
2
+ * A hook that safely retrieves CSS custom property values from the document element
3
+ * with SSR support, automatic fallback handling, and optional caching.
4
+ *
5
+ * @example
6
+ * ```jsx
7
+ * function Component() {
8
+ * const animationType = useCSSVariable('--skeleton-animation')
9
+ * // Returns the CSS variable value or undefined (cached by default)
10
+ * }
11
+ * ```
12
+ *
13
+ * @example
14
+ * ```jsx
15
+ * function Component({ color }) {
16
+ * // Override with prop if provided
17
+ * const themeColor = useCSSVariable('--theme-color', color)
18
+ * // Returns color prop if defined, otherwise CSS variable value
19
+ * }
20
+ * ```
21
+ *
22
+ * @example
23
+ * ```jsx
24
+ * function Component() {
25
+ * // Disable caching for dynamic CSS variables
26
+ * const dynamicValue = useCSSVariable('--dynamic-value', undefined, false)
27
+ * // Will always query the DOM for fresh value
28
+ * }
29
+ * ```
30
+ *
31
+ * @param variableName - The CSS custom property name (e.g., '--my-variable')
32
+ * @param override - Optional override value that takes precedence over CSS variable
33
+ * @param cache - Whether to cache the CSS variable value (default: true)
34
+ * @returns The CSS variable value, override value, or undefined
35
+ */
36
+ export declare function useCSSVariable(variableName: string, override?: string, cache?: boolean): string | undefined;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ import { useIsSSR } from '@react-aria/ssr';
3
+ import * as React from 'react';
4
+
5
+ // Cache for CSS variable values to avoid repeated DOM queries
6
+ const cssVariableCache = new Map();
7
+
8
+ /**
9
+ * A hook that safely retrieves CSS custom property values from the document element
10
+ * with SSR support, automatic fallback handling, and optional caching.
11
+ *
12
+ * @example
13
+ * ```jsx
14
+ * function Component() {
15
+ * const animationType = useCSSVariable('--skeleton-animation')
16
+ * // Returns the CSS variable value or undefined (cached by default)
17
+ * }
18
+ * ```
19
+ *
20
+ * @example
21
+ * ```jsx
22
+ * function Component({ color }) {
23
+ * // Override with prop if provided
24
+ * const themeColor = useCSSVariable('--theme-color', color)
25
+ * // Returns color prop if defined, otherwise CSS variable value
26
+ * }
27
+ * ```
28
+ *
29
+ * @example
30
+ * ```jsx
31
+ * function Component() {
32
+ * // Disable caching for dynamic CSS variables
33
+ * const dynamicValue = useCSSVariable('--dynamic-value', undefined, false)
34
+ * // Will always query the DOM for fresh value
35
+ * }
36
+ * ```
37
+ *
38
+ * @param variableName - The CSS custom property name (e.g., '--my-variable')
39
+ * @param override - Optional override value that takes precedence over CSS variable
40
+ * @param cache - Whether to cache the CSS variable value (default: true)
41
+ * @returns The CSS variable value, override value, or undefined
42
+ */
43
+ function useCSSVariable(variableName, override, cache = true) {
44
+ const isSSR = useIsSSR();
45
+ return React.useMemo(() => {
46
+ // Return override if provided
47
+ if (override !== undefined) return override;
48
+
49
+ // Return undefined during SSR
50
+ if (isSSR) return undefined;
51
+
52
+ // Check cache first if caching is enabled
53
+ if (cache && cssVariableCache.has(variableName)) {
54
+ return cssVariableCache.get(variableName);
55
+ }
56
+ try {
57
+ const root = document.documentElement;
58
+ const value = getComputedStyle(root).getPropertyValue(variableName).trim() || undefined;
59
+
60
+ // Cache the value if caching is enabled
61
+ if (cache) {
62
+ cssVariableCache.set(variableName, value);
63
+ }
64
+ return value;
65
+ } catch {
66
+ // Return undefined if any error occurs (e.g., document not available)
67
+ return undefined;
68
+ }
69
+ }, [variableName, override, isSSR, cache]);
70
+ }
71
+
72
+ export { useCSSVariable };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * A hook that returns true if the component is mounted on the client (hydrated)
3
+ * and false when rendering on the server.
4
+ *
5
+ * @example
6
+ * ```jsx
7
+ * function Component() {
8
+ * const isHydrated = useIsHydrated()
9
+ *
10
+ * if (!isHydrated) {
11
+ * return <div>Loading...</div>
12
+ * }
13
+ *
14
+ * return <div>Client rendered content</div>
15
+ * }
16
+ * ```
17
+ * @returns boolean indicating if the component is hydrated
18
+ */
19
+ export declare function useIsHydrated(): boolean;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ import * as React from 'react';
3
+
4
+ /**
5
+ * A hook that returns true if the component is mounted on the client (hydrated)
6
+ * and false when rendering on the server.
7
+ *
8
+ * @example
9
+ * ```jsx
10
+ * function Component() {
11
+ * const isHydrated = useIsHydrated()
12
+ *
13
+ * if (!isHydrated) {
14
+ * return <div>Loading...</div>
15
+ * }
16
+ *
17
+ * return <div>Client rendered content</div>
18
+ * }
19
+ * ```
20
+ * @returns boolean indicating if the component is hydrated
21
+ */
22
+
23
+ function useIsHydrated() {
24
+ const subscribe = () => () => {};
25
+ return React.useSyncExternalStore(subscribe, () => true, () => false);
26
+ }
27
+
28
+ export { useIsHydrated };
@@ -0,0 +1,2 @@
1
+ import { useEffect } from "react";
2
+ export declare const useIsomorphicLayoutEffect: typeof useEffect;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ import { useLayoutEffect, useEffect } from 'react';
3
+
4
+ const useIsomorphicLayoutEffect = typeof window !== "undefined" ? useLayoutEffect : useEffect;
5
+
6
+ export { useIsomorphicLayoutEffect };