@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,411 @@
1
+ "use client";
2
+ import { calendarYearPickerVariants } from '@masaraxui/styles';
3
+ import { useDateFormatter } from '@react-aria/i18n';
4
+ import React__default from 'react';
5
+ import { Button } from 'react-aria-components';
6
+ import { getYearRange } from '../../utils/calendar.js';
7
+ import { composeTwRenderProps, composeSlotClassName } from '../../utils/compose.js';
8
+ import { IconChevronRight } from '../icons.js';
9
+ import { useYearPicker, useYearPickerState } from './year-picker-context.js';
10
+ import { jsx, Fragment } from 'react/jsx-runtime';
11
+
12
+ const CalendarYearPickerTriggerContext = /*#__PURE__*/React__default.createContext(null);
13
+ function useCalendarYearPickerTriggerContext() {
14
+ const context = React__default.useContext(CalendarYearPickerTriggerContext);
15
+ if (!context) {
16
+ throw new Error("CalendarYearPicker trigger components must be used within <CalendarYearPicker.Trigger>.");
17
+ }
18
+ return context;
19
+ }
20
+ const CalendarYearPickerTrigger = ({
21
+ children,
22
+ className,
23
+ onKeyDown,
24
+ onPress,
25
+ ...props
26
+ }) => {
27
+ const {
28
+ isYearPickerOpen,
29
+ setIsYearPickerOpen
30
+ } = useYearPicker();
31
+ const state = useYearPickerState();
32
+ const slots = React__default.useMemo(() => calendarYearPickerVariants(), []);
33
+
34
+ // Format "Month Year" (e.g. "December 2025"), handling non-Gregorian calendars and eras
35
+ const focusedDate = state.focusedDate;
36
+ const monthYearFormatter = useDateFormatter({
37
+ month: "long",
38
+ year: "numeric",
39
+ era: focusedDate.calendar.identifier === "gregory" && focusedDate.era === "BC" ? "short" : undefined,
40
+ calendar: focusedDate.calendar.identifier,
41
+ timeZone: state.timeZone
42
+ });
43
+ const monthYear = monthYearFormatter.format(focusedDate.toDate(state.timeZone));
44
+ const handleToggle = React__default.useCallback(() => {
45
+ setIsYearPickerOpen(!isYearPickerOpen);
46
+ }, [isYearPickerOpen, setIsYearPickerOpen]);
47
+ const handleKeyDown = e => {
48
+ onKeyDown?.(e);
49
+ if (e.defaultPrevented) {
50
+ return;
51
+ }
52
+ if (e.key === "Escape" && isYearPickerOpen) {
53
+ e.preventDefault();
54
+ setIsYearPickerOpen(false);
55
+ }
56
+ };
57
+ const values = React__default.useMemo(() => ({
58
+ isOpen: isYearPickerOpen,
59
+ monthYear,
60
+ toggle: handleToggle
61
+ }), [handleToggle, isYearPickerOpen, monthYear]);
62
+ const contextValue = React__default.useMemo(() => ({
63
+ ...values,
64
+ slots
65
+ }), [slots, values]);
66
+ return /*#__PURE__*/jsx(CalendarYearPickerTriggerContext, {
67
+ value: contextValue,
68
+ children: /*#__PURE__*/jsx(Button, {
69
+ "aria-expanded": isYearPickerOpen,
70
+ "aria-label": `${monthYear}, year selector`,
71
+ className: composeTwRenderProps(className, slots.trigger()),
72
+ "data-open": isYearPickerOpen || undefined,
73
+ "data-slot": "calendar-year-picker-trigger",
74
+ slot: null,
75
+ onKeyDown: handleKeyDown,
76
+ onPress: event => {
77
+ onPress?.(event);
78
+ handleToggle();
79
+ },
80
+ ...props,
81
+ children: typeof children === "function" ? children(values) : children
82
+ })
83
+ });
84
+ };
85
+ CalendarYearPickerTrigger.displayName = "MasaraxUI.CalendarYearPicker.Trigger";
86
+
87
+ /* -------------------------------------------------------------------------------------------------
88
+ * CalendarYearPickerTriggerHeading
89
+ * -----------------------------------------------------------------------------------------------*/
90
+ const CalendarYearPickerTriggerHeading = ({
91
+ children,
92
+ className,
93
+ ...props
94
+ }) => {
95
+ const {
96
+ monthYear,
97
+ slots,
98
+ ...values
99
+ } = useCalendarYearPickerTriggerContext();
100
+ return /*#__PURE__*/jsx("span", {
101
+ className: composeSlotClassName(slots.triggerHeading, className),
102
+ "data-slot": "calendar-year-picker-trigger-heading",
103
+ ...props,
104
+ children: typeof children === "function" ? children({
105
+ monthYear,
106
+ ...values
107
+ }) : children || monthYear
108
+ });
109
+ };
110
+ CalendarYearPickerTriggerHeading.displayName = "MasaraxUI.CalendarYearPicker.TriggerHeading";
111
+
112
+ /* -------------------------------------------------------------------------------------------------
113
+ * CalendarYearPickerTriggerIndicator
114
+ * -----------------------------------------------------------------------------------------------*/
115
+ const CalendarYearPickerTriggerIndicator = ({
116
+ children,
117
+ className,
118
+ ...props
119
+ }) => {
120
+ const {
121
+ monthYear,
122
+ slots,
123
+ ...values
124
+ } = useCalendarYearPickerTriggerContext();
125
+ return /*#__PURE__*/jsx("span", {
126
+ "aria-hidden": "true",
127
+ className: composeSlotClassName(slots.triggerIndicator, className),
128
+ "data-slot": "calendar-year-picker-trigger-indicator",
129
+ ...props,
130
+ children: typeof children === "function" ? children({
131
+ monthYear,
132
+ ...values
133
+ }) : children || /*#__PURE__*/jsx(IconChevronRight, {
134
+ height: "1em",
135
+ width: "1em"
136
+ })
137
+ });
138
+ };
139
+ CalendarYearPickerTriggerIndicator.displayName = "MasaraxUI.CalendarYearPicker.TriggerIndicator";
140
+
141
+ /* -------------------------------------------------------------------------------------------------
142
+ * CalendarYearPickerGrid
143
+ *
144
+ * Renders a 3-column grid of year buttons. Hidden via CSS opacity when closed,
145
+ * visible when data-open="true". tabIndex is toggled so only the active view
146
+ * receives keyboard focus.
147
+ * -----------------------------------------------------------------------------------------------*/
148
+
149
+ const CalendarYearPickerGridContext = /*#__PURE__*/React__default.createContext(null);
150
+ function useCalendarYearPickerGridContext() {
151
+ const context = React__default.useContext(CalendarYearPickerGridContext);
152
+ if (!context) {
153
+ throw new Error("CalendarYearPicker components must be used within <CalendarYearPicker.Grid>.");
154
+ }
155
+ return context;
156
+ }
157
+ const CalendarYearPickerGrid = ({
158
+ children,
159
+ className,
160
+ onKeyDown,
161
+ ...props
162
+ }) => {
163
+ const {
164
+ calendarGridSlot,
165
+ calendarRef,
166
+ isYearPickerOpen,
167
+ setIsYearPickerOpen
168
+ } = useYearPicker();
169
+ const state = useYearPickerState();
170
+ const gridRef = React__default.useRef(null);
171
+ const slots = React__default.useMemo(() => calendarYearPickerVariants(), []);
172
+ const focusedDate = state.focusedDate;
173
+ const yearFormatter = useDateFormatter({
174
+ year: "numeric",
175
+ era: focusedDate.calendar.identifier === "gregory" && focusedDate.era === "BC" ? "short" : undefined,
176
+ calendar: focusedDate.calendar.identifier,
177
+ timeZone: state.timeZone
178
+ });
179
+ const focusedYear = state.focusedDate.year;
180
+
181
+ // Build calendar-aware year list using DateValue arithmetic
182
+ const yearDates = React__default.useMemo(() => getYearRange(state.minValue, state.maxValue), [state.minValue, state.maxValue]);
183
+ const years = React__default.useMemo(() => yearDates.map(d => d.year), [yearDates]);
184
+ const yearDateMap = React__default.useMemo(() => new Map(yearDates.map(d => [d.year, d])), [yearDates]);
185
+ const formatYear = React__default.useCallback(year => {
186
+ const dateValue = yearDateMap.get(year);
187
+ if (!dateValue) return String(year);
188
+ return yearFormatter.format(dateValue.toDate(state.timeZone));
189
+ }, [yearDateMap, yearFormatter, state.timeZone]);
190
+ const [activeYear, setActiveYear] = React__default.useState(focusedYear);
191
+
192
+ // Position the year grid to overlay the day grid
193
+ React__default.useEffect(() => {
194
+ const yearGrid = gridRef.current;
195
+ if (!yearGrid) return;
196
+ const calendar = calendarRef.current;
197
+ const calendarGrid = calendar?.querySelector(`[data-slot='${calendarGridSlot}']`);
198
+ if (calendarGrid) {
199
+ yearGrid.style.top = `${calendarGrid.offsetTop}px`;
200
+ yearGrid.style.height = `${calendarGrid.offsetHeight}px`;
201
+ }
202
+ }, [calendarGridSlot, calendarRef, state.focusedDate]);
203
+ const focusYearCell = React__default.useCallback(year => {
204
+ const yearGrid = gridRef.current;
205
+ if (!yearGrid) return;
206
+ const yearCell = yearGrid.querySelector(`[data-year='${year}']`);
207
+ if (yearCell) {
208
+ yearCell.focus();
209
+ }
210
+ }, []);
211
+
212
+ // Keep keyboard navigation anchored to the currently selected year when opening.
213
+ React__default.useEffect(() => {
214
+ if (!isYearPickerOpen || years.length === 0) return;
215
+ const [firstYear] = years;
216
+ if (firstYear == null) return;
217
+ const nextActiveYear = years.includes(focusedYear) ? focusedYear : firstYear;
218
+ setActiveYear(nextActiveYear);
219
+
220
+ // Focus after DOM updates so tab navigation lands directly on a year cell.
221
+ const rafId = requestAnimationFrame(() => {
222
+ focusYearCell(nextActiveYear);
223
+ });
224
+ return () => {
225
+ cancelAnimationFrame(rafId);
226
+ };
227
+ }, [isYearPickerOpen, focusedYear, years, focusYearCell]);
228
+ React__default.useEffect(() => {
229
+ if (!isYearPickerOpen || years.length === 0) return;
230
+ const [firstYear] = years;
231
+ if (firstYear == null) return;
232
+ if (!years.includes(activeYear)) {
233
+ setActiveYear(firstYear);
234
+ }
235
+ }, [activeYear, isYearPickerOpen, years]);
236
+ const handleYearSelect = React__default.useCallback(year => {
237
+ const newDate = state.focusedDate.set({
238
+ year
239
+ });
240
+ state.setFocusedDate(newDate);
241
+ setIsYearPickerOpen(false);
242
+ }, [setIsYearPickerOpen, state]);
243
+ const handleKeyDown = e => {
244
+ onKeyDown?.(e);
245
+ if (e.defaultPrevented) {
246
+ return;
247
+ }
248
+ if (e.key === "Escape" && isYearPickerOpen) {
249
+ e.preventDefault();
250
+ setIsYearPickerOpen(false);
251
+ return;
252
+ }
253
+ if (!isYearPickerOpen || years.length === 0) {
254
+ return;
255
+ }
256
+ const currentIndex = years.indexOf(activeYear);
257
+ if (currentIndex === -1) {
258
+ return;
259
+ }
260
+ let nextIndex = currentIndex;
261
+ switch (e.key) {
262
+ case "ArrowRight":
263
+ nextIndex = Math.min(currentIndex + 1, years.length - 1);
264
+ break;
265
+ case "ArrowLeft":
266
+ nextIndex = Math.max(currentIndex - 1, 0);
267
+ break;
268
+ case "ArrowDown":
269
+ nextIndex = Math.min(currentIndex + 3, years.length - 1);
270
+ break;
271
+ case "ArrowUp":
272
+ nextIndex = Math.max(currentIndex - 3, 0);
273
+ break;
274
+ case "Home":
275
+ nextIndex = 0;
276
+ break;
277
+ case "End":
278
+ nextIndex = years.length - 1;
279
+ break;
280
+ default:
281
+ return;
282
+ }
283
+ if (nextIndex !== currentIndex) {
284
+ const nextYear = years[nextIndex];
285
+ if (nextYear == null) return;
286
+ e.preventDefault();
287
+ setActiveYear(nextYear);
288
+ focusYearCell(nextYear);
289
+ }
290
+ };
291
+ const contextValue = React__default.useMemo(() => ({
292
+ focusedYear,
293
+ isYearPickerOpen,
294
+ activeYear,
295
+ selectYear: handleYearSelect,
296
+ setActiveYear,
297
+ slots,
298
+ years,
299
+ formatYear
300
+ }), [activeYear, focusedYear, formatYear, handleYearSelect, isYearPickerOpen, slots, years]);
301
+ return /*#__PURE__*/jsx(CalendarYearPickerGridContext, {
302
+ value: contextValue,
303
+ children: /*#__PURE__*/jsx("div", {
304
+ ref: gridRef,
305
+ "aria-hidden": !isYearPickerOpen,
306
+ "aria-label": "Year selector",
307
+ className: composeSlotClassName(slots.yearGrid, className),
308
+ "data-open": isYearPickerOpen || undefined,
309
+ "data-slot": "calendar-year-picker-grid",
310
+ role: "listbox",
311
+ tabIndex: -1,
312
+ onKeyDown: handleKeyDown,
313
+ ...props,
314
+ children: children
315
+ })
316
+ });
317
+ };
318
+ CalendarYearPickerGrid.displayName = "MasaraxUI.CalendarYearPicker.Grid";
319
+
320
+ /* -------------------------------------------------------------------------------------------------
321
+ * CalendarYearPickerGridBody
322
+ * -----------------------------------------------------------------------------------------------*/
323
+ const CalendarYearPickerGridBody = ({
324
+ children
325
+ }) => {
326
+ const {
327
+ focusedYear,
328
+ formatYear,
329
+ isYearPickerOpen,
330
+ selectYear,
331
+ years
332
+ } = useCalendarYearPickerGridContext();
333
+ const currentYear = new Date().getFullYear();
334
+ return /*#__PURE__*/jsx(Fragment, {
335
+ children: years.map(year => {
336
+ const isSelected = year === focusedYear;
337
+ const formattedYear = formatYear(year);
338
+ const values = {
339
+ formattedYear,
340
+ isCurrentYear: year === currentYear,
341
+ isOpen: isYearPickerOpen,
342
+ isSelected,
343
+ selectYear: () => selectYear(year),
344
+ year
345
+ };
346
+ return /*#__PURE__*/jsx(React__default.Fragment, {
347
+ children: typeof children === "function" ? children(values) : /*#__PURE__*/jsx(CalendarYearPickerCell, {
348
+ year: year
349
+ })
350
+ }, year);
351
+ })
352
+ });
353
+ };
354
+ CalendarYearPickerGridBody.displayName = "MasaraxUI.CalendarYearPicker.GridBody";
355
+
356
+ /* -------------------------------------------------------------------------------------------------
357
+ * CalendarYearPickerCell
358
+ * -----------------------------------------------------------------------------------------------*/
359
+ const CalendarYearPickerCell = ({
360
+ children,
361
+ className,
362
+ excludeFromTabOrder,
363
+ onFocus,
364
+ onPress,
365
+ year,
366
+ ...props
367
+ }) => {
368
+ const {
369
+ activeYear,
370
+ focusedYear,
371
+ formatYear,
372
+ isYearPickerOpen,
373
+ selectYear,
374
+ setActiveYear,
375
+ slots
376
+ } = useCalendarYearPickerGridContext();
377
+ const isSelected = year === focusedYear;
378
+ const isActive = year === activeYear;
379
+ const formattedYear = formatYear(year);
380
+ const values = {
381
+ formattedYear,
382
+ isCurrentYear: year === new Date().getFullYear(),
383
+ isOpen: isYearPickerOpen,
384
+ isSelected,
385
+ selectYear: () => selectYear(year),
386
+ year
387
+ };
388
+ return /*#__PURE__*/jsx(Button, {
389
+ "aria-label": formattedYear,
390
+ "aria-selected": isSelected,
391
+ className: composeTwRenderProps(className, slots.yearCell()),
392
+ "data-selected": isSelected || undefined,
393
+ "data-slot": "calendar-year-picker-year-cell",
394
+ "data-year": year,
395
+ excludeFromTabOrder: excludeFromTabOrder ?? !(isYearPickerOpen && isActive),
396
+ slot: null,
397
+ onFocus: event => {
398
+ onFocus?.(event);
399
+ setActiveYear(year);
400
+ },
401
+ onPress: event => {
402
+ onPress?.(event);
403
+ selectYear(year);
404
+ },
405
+ ...props,
406
+ children: typeof children === "function" ? children(values) : children || formattedYear
407
+ });
408
+ };
409
+ CalendarYearPickerCell.displayName = "MasaraxUI.CalendarYearPicker.Cell";
410
+
411
+ export { CalendarYearPickerCell, CalendarYearPickerGrid, CalendarYearPickerGridBody, CalendarYearPickerTrigger, CalendarYearPickerTriggerHeading, CalendarYearPickerTriggerIndicator };
@@ -0,0 +1,43 @@
1
+ import type { ComponentProps } from "react";
2
+ import { CalendarYearPickerCell, CalendarYearPickerGrid, CalendarYearPickerGridBody, CalendarYearPickerTrigger, CalendarYearPickerTriggerHeading, CalendarYearPickerTriggerIndicator } from "./calendar-year-picker";
3
+ export declare const CalendarYearPicker: {
4
+ Trigger: {
5
+ ({ children, className, onKeyDown, onPress, ...props }: import("./calendar-year-picker").CalendarYearPickerTriggerProps): import("react/jsx-runtime").JSX.Element;
6
+ displayName: string;
7
+ };
8
+ TriggerHeading: {
9
+ ({ children, className, ...props }: import("./calendar-year-picker").CalendarYearPickerTriggerHeadingProps): import("react/jsx-runtime").JSX.Element;
10
+ displayName: string;
11
+ };
12
+ TriggerIndicator: {
13
+ ({ children, className, ...props }: import("./calendar-year-picker").CalendarYearPickerTriggerIndicatorProps): import("react/jsx-runtime").JSX.Element;
14
+ displayName: string;
15
+ };
16
+ Grid: {
17
+ ({ children, className, onKeyDown, ...props }: import("./calendar-year-picker").CalendarYearPickerGridProps): import("react/jsx-runtime").JSX.Element;
18
+ displayName: string;
19
+ };
20
+ GridBody: {
21
+ ({ children }: import("./calendar-year-picker").CalendarYearPickerGridBodyProps): import("react/jsx-runtime").JSX.Element;
22
+ displayName: string;
23
+ };
24
+ Cell: {
25
+ ({ children, className, excludeFromTabOrder, onFocus, onPress, year, ...props }: import("./calendar-year-picker").CalendarYearPickerCellProps): import("react/jsx-runtime").JSX.Element;
26
+ displayName: string;
27
+ };
28
+ };
29
+ export type CalendarYearPicker = {
30
+ TriggerProps: ComponentProps<typeof CalendarYearPickerTrigger>;
31
+ TriggerHeadingProps: ComponentProps<typeof CalendarYearPickerTriggerHeading>;
32
+ TriggerIndicatorProps: ComponentProps<typeof CalendarYearPickerTriggerIndicator>;
33
+ GridProps: ComponentProps<typeof CalendarYearPickerGrid>;
34
+ GridBodyProps: ComponentProps<typeof CalendarYearPickerGridBody>;
35
+ CellProps: ComponentProps<typeof CalendarYearPickerCell>;
36
+ };
37
+ export { CalendarYearPickerTrigger, CalendarYearPickerTriggerHeading, CalendarYearPickerTriggerIndicator, CalendarYearPickerGrid, CalendarYearPickerGridBody, CalendarYearPickerCell, };
38
+ export type { CalendarYearPickerTriggerProps, CalendarYearPickerTriggerHeadingProps, CalendarYearPickerTriggerIndicatorProps, CalendarYearPickerTriggerRenderProps, CalendarYearPickerGridProps, CalendarYearPickerGridBodyProps, CalendarYearPickerCellProps, CalendarYearPickerCellRenderProps, } from "./calendar-year-picker";
39
+ export { YearPickerContext, useYearPicker } from "./year-picker-context";
40
+ export { YearPickerStateContext, useYearPickerState } from "./year-picker-context";
41
+ export type { YearPickerContextValue, YearPickerStateContextValue } from "./year-picker-context";
42
+ export { calendarYearPickerVariants } from "@masaraxui/styles";
43
+ export type { CalendarYearPickerVariants } from "@masaraxui/styles";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ import { CalendarYearPickerCell, CalendarYearPickerGridBody, CalendarYearPickerGrid, CalendarYearPickerTriggerIndicator, CalendarYearPickerTriggerHeading, CalendarYearPickerTrigger } from './calendar-year-picker.js';
3
+ export { YearPickerContext, YearPickerStateContext, useYearPicker, useYearPickerState } from './year-picker-context.js';
4
+ export { calendarYearPickerVariants } from '@masaraxui/styles';
5
+
6
+ /* -------------------------------------------------------------------------------------------------
7
+ * Compound Component
8
+ * -----------------------------------------------------------------------------------------------*/
9
+ const CalendarYearPicker = {
10
+ Trigger: CalendarYearPickerTrigger,
11
+ TriggerHeading: CalendarYearPickerTriggerHeading,
12
+ TriggerIndicator: CalendarYearPickerTriggerIndicator,
13
+ Grid: CalendarYearPickerGrid,
14
+ GridBody: CalendarYearPickerGridBody,
15
+ Cell: CalendarYearPickerCell
16
+ };
17
+
18
+ export { CalendarYearPicker, CalendarYearPickerCell, CalendarYearPickerGrid, CalendarYearPickerGridBody, CalendarYearPickerTrigger, CalendarYearPickerTriggerHeading, CalendarYearPickerTriggerIndicator };
@@ -0,0 +1,28 @@
1
+ import type { DateValue } from "react-aria-components";
2
+ interface YearPickerContextValue {
3
+ isYearPickerOpen: boolean;
4
+ setIsYearPickerOpen: (open: boolean) => void;
5
+ calendarRef: React.RefObject<HTMLDivElement | null>;
6
+ calendarGridSlot: "calendar-grid" | "range-calendar-grid";
7
+ }
8
+ interface YearPickerStateContextValue {
9
+ focusedDate: DateValue;
10
+ setFocusedDate: (value: DateValue) => void;
11
+ timeZone: string;
12
+ minValue?: DateValue | null;
13
+ maxValue?: DateValue | null;
14
+ }
15
+ declare const YearPickerContext: import("react").Context<YearPickerContextValue | null>;
16
+ declare const YearPickerStateContext: import("react").Context<YearPickerStateContextValue | null>;
17
+ /**
18
+ * Hook to consume YearPickerContext.
19
+ * Must be used inside Calendar or RangeCalendar.
20
+ */
21
+ declare function useYearPicker(): YearPickerContextValue;
22
+ /**
23
+ * Hook to consume normalized calendar state used by YearPicker.
24
+ * Must be provided by Calendar or RangeCalendar root via adapter bridge.
25
+ */
26
+ declare function useYearPickerState(): YearPickerStateContextValue;
27
+ export { YearPickerContext, YearPickerStateContext, useYearPicker, useYearPickerState };
28
+ export type { YearPickerContextValue, YearPickerStateContextValue };
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ import { createContext, useContext } from 'react';
3
+
4
+ /* -------------------------------------------------------------------------------------------------
5
+ * YearPickerContext
6
+ *
7
+ * Context provided by Calendar (and RangeCalendar) to control year-picker visibility.
8
+ * Internal child components consume this to toggle the year-picker open/close state,
9
+ * keeping the public API clean and wrapper-free.
10
+ * -----------------------------------------------------------------------------------------------*/
11
+
12
+ const YearPickerContext = /*#__PURE__*/createContext(null);
13
+ const YearPickerStateContext = /*#__PURE__*/createContext(null);
14
+
15
+ /**
16
+ * Hook to consume YearPickerContext.
17
+ * Must be used inside Calendar or RangeCalendar.
18
+ */
19
+ function useYearPicker() {
20
+ const context = useContext(YearPickerContext);
21
+ if (!context) {
22
+ throw new Error("useYearPicker must be used within a <Calendar> or <RangeCalendar> component.");
23
+ }
24
+ return context;
25
+ }
26
+
27
+ /**
28
+ * Hook to consume normalized calendar state used by YearPicker.
29
+ * Must be provided by Calendar or RangeCalendar root via adapter bridge.
30
+ */
31
+ function useYearPickerState() {
32
+ const context = useContext(YearPickerStateContext);
33
+ if (!context) {
34
+ throw new Error("useYearPickerState must be used within a <Calendar> or <RangeCalendar> component.");
35
+ }
36
+ return context;
37
+ }
38
+
39
+ export { YearPickerContext, YearPickerStateContext, useYearPicker, useYearPickerState };
@@ -0,0 +1,22 @@
1
+ import type { CardVariants } from "@masaraxui/styles";
2
+ import type { ComponentPropsWithRef } from "react";
3
+ interface CardRootProps extends ComponentPropsWithRef<"div">, CardVariants {
4
+ }
5
+ declare const CardRoot: ({ children, className, variant, ...props }: CardRootProps) => import("react/jsx-runtime").JSX.Element;
6
+ interface CardHeaderProps extends ComponentPropsWithRef<"div"> {
7
+ }
8
+ declare const CardHeader: ({ className, ...props }: CardHeaderProps) => import("react/jsx-runtime").JSX.Element;
9
+ interface CardTitleProps extends ComponentPropsWithRef<"h3"> {
10
+ }
11
+ declare const CardTitle: ({ children, className, ...props }: CardTitleProps) => import("react/jsx-runtime").JSX.Element;
12
+ interface CardDescriptionProps extends ComponentPropsWithRef<"p"> {
13
+ }
14
+ declare const CardDescription: ({ children, className, ...props }: CardDescriptionProps) => import("react/jsx-runtime").JSX.Element;
15
+ interface CardContentProps extends ComponentPropsWithRef<"div"> {
16
+ }
17
+ declare const CardContent: ({ className, ...props }: CardContentProps) => import("react/jsx-runtime").JSX.Element;
18
+ interface CardFooterProps extends ComponentPropsWithRef<"div"> {
19
+ }
20
+ declare const CardFooter: ({ className, ...props }: CardFooterProps) => import("react/jsx-runtime").JSX.Element;
21
+ export { CardRoot, CardHeader, CardTitle, CardDescription, CardContent, CardFooter };
22
+ export type { CardRootProps, CardHeaderProps, CardTitleProps, CardDescriptionProps, CardContentProps, CardFooterProps, };