@nuka-ui/core 1.1.3 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1152) hide show
  1. package/README.md +7 -7
  2. package/dist/bundle.css +2 -2
  3. package/dist/components/Accordion/Accordion.cjs +1 -1
  4. package/dist/components/Accordion/Accordion.cjs.map +1 -1
  5. package/dist/components/Accordion/Accordion.context.cjs +1 -1
  6. package/dist/components/Accordion/Accordion.context.cjs.map +1 -1
  7. package/dist/components/Accordion/Accordion.context.js +1 -1
  8. package/dist/components/Accordion/Accordion.context.js.map +1 -1
  9. package/dist/components/Accordion/Accordion.d.ts.map +1 -1
  10. package/dist/components/Accordion/Accordion.js +2 -0
  11. package/dist/components/Accordion/Accordion.js.map +1 -1
  12. package/dist/components/Accordion/AccordionContent.cjs +1 -1
  13. package/dist/components/Accordion/AccordionContent.cjs.map +1 -1
  14. package/dist/components/Accordion/AccordionContent.js.map +1 -1
  15. package/dist/components/Accordion/AccordionItem.cjs +1 -1
  16. package/dist/components/Accordion/AccordionItem.cjs.map +1 -1
  17. package/dist/components/Accordion/AccordionItem.d.ts.map +1 -1
  18. package/dist/components/Accordion/AccordionItem.js +1 -0
  19. package/dist/components/Accordion/AccordionItem.js.map +1 -1
  20. package/dist/components/Accordion/AccordionTrigger.cjs +1 -1
  21. package/dist/components/Accordion/AccordionTrigger.cjs.map +1 -1
  22. package/dist/components/Accordion/AccordionTrigger.d.ts.map +1 -1
  23. package/dist/components/Accordion/AccordionTrigger.js +1 -0
  24. package/dist/components/Accordion/AccordionTrigger.js.map +1 -1
  25. package/dist/components/Alert/Alert.cjs +1 -1
  26. package/dist/components/Alert/Alert.cjs.map +1 -1
  27. package/dist/components/Alert/Alert.js.map +1 -1
  28. package/dist/components/Alert/Alert.variants.cjs +1 -1
  29. package/dist/components/Alert/Alert.variants.cjs.map +1 -1
  30. package/dist/components/Alert/Alert.variants.js.map +1 -1
  31. package/dist/components/AppShell/AppShell.cjs +1 -1
  32. package/dist/components/AppShell/AppShell.cjs.map +1 -1
  33. package/dist/components/AppShell/AppShell.d.ts.map +1 -1
  34. package/dist/components/AppShell/AppShell.js +1 -0
  35. package/dist/components/AppShell/AppShell.js.map +1 -1
  36. package/dist/components/AppShell/AppShellBody.cjs +1 -1
  37. package/dist/components/AppShell/AppShellBody.cjs.map +1 -1
  38. package/dist/components/AppShell/AppShellBody.d.ts.map +1 -1
  39. package/dist/components/AppShell/AppShellBody.js +1 -0
  40. package/dist/components/AppShell/AppShellBody.js.map +1 -1
  41. package/dist/components/AppShell/AppShellHeader.cjs +1 -1
  42. package/dist/components/AppShell/AppShellHeader.cjs.map +1 -1
  43. package/dist/components/AppShell/AppShellHeader.d.ts.map +1 -1
  44. package/dist/components/AppShell/AppShellHeader.js +1 -0
  45. package/dist/components/AppShell/AppShellHeader.js.map +1 -1
  46. package/dist/components/AppShell/AppShellMain.cjs +1 -1
  47. package/dist/components/AppShell/AppShellMain.cjs.map +1 -1
  48. package/dist/components/AppShell/AppShellMain.d.ts.map +1 -1
  49. package/dist/components/AppShell/AppShellMain.js +1 -0
  50. package/dist/components/AppShell/AppShellMain.js.map +1 -1
  51. package/dist/components/AspectRatio/AspectRatio.cjs +1 -1
  52. package/dist/components/AspectRatio/AspectRatio.cjs.map +1 -1
  53. package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
  54. package/dist/components/Avatar/Avatar.cjs +1 -1
  55. package/dist/components/Avatar/Avatar.cjs.map +1 -1
  56. package/dist/components/Avatar/Avatar.js.map +1 -1
  57. package/dist/components/Avatar/Avatar.variants.cjs +1 -1
  58. package/dist/components/Avatar/Avatar.variants.cjs.map +1 -1
  59. package/dist/components/Avatar/Avatar.variants.js +1 -1
  60. package/dist/components/Avatar/Avatar.variants.js.map +1 -1
  61. package/dist/components/Badge/Badge.cjs +1 -1
  62. package/dist/components/Badge/Badge.cjs.map +1 -1
  63. package/dist/components/Badge/Badge.js.map +1 -1
  64. package/dist/components/Badge/Badge.variants.cjs +1 -1
  65. package/dist/components/Badge/Badge.variants.cjs.map +1 -1
  66. package/dist/components/Badge/Badge.variants.js +1 -1
  67. package/dist/components/Badge/Badge.variants.js.map +1 -1
  68. package/dist/components/Banner/Banner.cjs +1 -1
  69. package/dist/components/Banner/Banner.cjs.map +1 -1
  70. package/dist/components/Banner/Banner.js.map +1 -1
  71. package/dist/components/Banner/Banner.variants.cjs +1 -1
  72. package/dist/components/Banner/Banner.variants.cjs.map +1 -1
  73. package/dist/components/Banner/Banner.variants.js.map +1 -1
  74. package/dist/components/Breadcrumb/Breadcrumb.cjs +1 -1
  75. package/dist/components/Breadcrumb/Breadcrumb.cjs.map +1 -1
  76. package/dist/components/Breadcrumb/Breadcrumb.js +1 -0
  77. package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -1
  78. package/dist/components/Breadcrumb/BreadcrumbEllipsis.cjs +1 -1
  79. package/dist/components/Breadcrumb/BreadcrumbEllipsis.cjs.map +1 -1
  80. package/dist/components/Breadcrumb/BreadcrumbEllipsis.d.ts.map +1 -1
  81. package/dist/components/Breadcrumb/BreadcrumbEllipsis.js +1 -0
  82. package/dist/components/Breadcrumb/BreadcrumbEllipsis.js.map +1 -1
  83. package/dist/components/Breadcrumb/BreadcrumbItem.cjs +1 -1
  84. package/dist/components/Breadcrumb/BreadcrumbItem.cjs.map +1 -1
  85. package/dist/components/Breadcrumb/BreadcrumbItem.d.ts.map +1 -1
  86. package/dist/components/Breadcrumb/BreadcrumbItem.js +1 -0
  87. package/dist/components/Breadcrumb/BreadcrumbItem.js.map +1 -1
  88. package/dist/components/Breadcrumb/BreadcrumbLink.cjs +1 -1
  89. package/dist/components/Breadcrumb/BreadcrumbLink.cjs.map +1 -1
  90. package/dist/components/Breadcrumb/BreadcrumbLink.d.ts.map +1 -1
  91. package/dist/components/Breadcrumb/BreadcrumbLink.js +1 -0
  92. package/dist/components/Breadcrumb/BreadcrumbLink.js.map +1 -1
  93. package/dist/components/Breadcrumb/BreadcrumbList.cjs +1 -1
  94. package/dist/components/Breadcrumb/BreadcrumbList.cjs.map +1 -1
  95. package/dist/components/Breadcrumb/BreadcrumbList.d.ts.map +1 -1
  96. package/dist/components/Breadcrumb/BreadcrumbList.js +1 -0
  97. package/dist/components/Breadcrumb/BreadcrumbList.js.map +1 -1
  98. package/dist/components/Breadcrumb/BreadcrumbPage.cjs +1 -1
  99. package/dist/components/Breadcrumb/BreadcrumbPage.cjs.map +1 -1
  100. package/dist/components/Breadcrumb/BreadcrumbPage.d.ts.map +1 -1
  101. package/dist/components/Breadcrumb/BreadcrumbPage.js +2 -1
  102. package/dist/components/Breadcrumb/BreadcrumbPage.js.map +1 -1
  103. package/dist/components/Breadcrumb/BreadcrumbSeparator.cjs +1 -1
  104. package/dist/components/Breadcrumb/BreadcrumbSeparator.cjs.map +1 -1
  105. package/dist/components/Breadcrumb/BreadcrumbSeparator.d.ts.map +1 -1
  106. package/dist/components/Breadcrumb/BreadcrumbSeparator.js +1 -0
  107. package/dist/components/Breadcrumb/BreadcrumbSeparator.js.map +1 -1
  108. package/dist/components/Button/Button.cjs +1 -1
  109. package/dist/components/Button/Button.cjs.map +1 -1
  110. package/dist/components/Button/Button.d.ts +2 -1
  111. package/dist/components/Button/Button.d.ts.map +1 -1
  112. package/dist/components/Button/Button.js +3 -3
  113. package/dist/components/Button/Button.js.map +1 -1
  114. package/dist/components/Button/Button.variants.cjs +1 -1
  115. package/dist/components/Button/Button.variants.cjs.map +1 -1
  116. package/dist/components/Button/Button.variants.js +1 -1
  117. package/dist/components/Button/Button.variants.js.map +1 -1
  118. package/dist/components/Callout/Callout.cjs +2 -0
  119. package/dist/components/Callout/Callout.cjs.map +1 -0
  120. package/dist/components/Callout/Callout.d.ts +13 -0
  121. package/dist/components/Callout/Callout.d.ts.map +1 -0
  122. package/dist/components/Callout/Callout.js +37 -0
  123. package/dist/components/Callout/Callout.js.map +1 -0
  124. package/dist/components/Callout/Callout.variants.cjs +2 -0
  125. package/dist/components/Callout/Callout.variants.cjs.map +1 -0
  126. package/dist/components/Callout/Callout.variants.d.ts +8 -0
  127. package/dist/components/Callout/Callout.variants.d.ts.map +1 -0
  128. package/dist/components/Callout/Callout.variants.js +42 -0
  129. package/dist/components/Callout/Callout.variants.js.map +1 -0
  130. package/dist/components/Callout/index.d.ts +4 -0
  131. package/dist/components/Callout/index.d.ts.map +1 -0
  132. package/dist/components/Card/Card.cjs +1 -1
  133. package/dist/components/Card/Card.cjs.map +1 -1
  134. package/dist/components/Card/Card.d.ts +9 -3
  135. package/dist/components/Card/Card.d.ts.map +1 -1
  136. package/dist/components/Card/Card.js +27 -11
  137. package/dist/components/Card/Card.js.map +1 -1
  138. package/dist/components/Card/Card.variants.cjs +1 -1
  139. package/dist/components/Card/Card.variants.cjs.map +1 -1
  140. package/dist/components/Card/Card.variants.js.map +1 -1
  141. package/dist/components/Card/index.d.ts +1 -1
  142. package/dist/components/Card/index.d.ts.map +1 -1
  143. package/dist/components/Checkbox/Checkbox.cjs +1 -1
  144. package/dist/components/Checkbox/Checkbox.cjs.map +1 -1
  145. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
  146. package/dist/components/Checkbox/Checkbox.js +4 -0
  147. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  148. package/dist/components/Checkbox/Checkbox.variants.cjs +1 -1
  149. package/dist/components/Checkbox/Checkbox.variants.cjs.map +1 -1
  150. package/dist/components/Checkbox/Checkbox.variants.d.ts.map +1 -1
  151. package/dist/components/Checkbox/Checkbox.variants.js.map +1 -1
  152. package/dist/components/Chip/Chip.cjs +1 -1
  153. package/dist/components/Chip/Chip.cjs.map +1 -1
  154. package/dist/components/Chip/Chip.js.map +1 -1
  155. package/dist/components/Chip/Chip.variants.cjs +1 -1
  156. package/dist/components/Chip/Chip.variants.cjs.map +1 -1
  157. package/dist/components/Chip/Chip.variants.js +1 -1
  158. package/dist/components/Chip/Chip.variants.js.map +1 -1
  159. package/dist/components/Code/Code.cjs +1 -1
  160. package/dist/components/Code/Code.cjs.map +1 -1
  161. package/dist/components/Code/Code.js.map +1 -1
  162. package/dist/components/Code/Code.variants.cjs +1 -1
  163. package/dist/components/Code/Code.variants.cjs.map +1 -1
  164. package/dist/components/Code/Code.variants.js.map +1 -1
  165. package/dist/components/Collapsible/Collapsible.cjs +1 -1
  166. package/dist/components/Collapsible/Collapsible.cjs.map +1 -1
  167. package/dist/components/Collapsible/Collapsible.context.cjs +1 -1
  168. package/dist/components/Collapsible/Collapsible.context.cjs.map +1 -1
  169. package/dist/components/Collapsible/Collapsible.context.js +1 -1
  170. package/dist/components/Collapsible/Collapsible.context.js.map +1 -1
  171. package/dist/components/Collapsible/Collapsible.d.ts.map +1 -1
  172. package/dist/components/Collapsible/Collapsible.js +1 -0
  173. package/dist/components/Collapsible/Collapsible.js.map +1 -1
  174. package/dist/components/Collapsible/CollapsibleContent.cjs +1 -1
  175. package/dist/components/Collapsible/CollapsibleContent.cjs.map +1 -1
  176. package/dist/components/Collapsible/CollapsibleContent.d.ts.map +1 -1
  177. package/dist/components/Collapsible/CollapsibleContent.js +2 -0
  178. package/dist/components/Collapsible/CollapsibleContent.js.map +1 -1
  179. package/dist/components/Collapsible/CollapsibleTrigger.cjs +1 -1
  180. package/dist/components/Collapsible/CollapsibleTrigger.cjs.map +1 -1
  181. package/dist/components/Collapsible/CollapsibleTrigger.d.ts.map +1 -1
  182. package/dist/components/Collapsible/CollapsibleTrigger.js +1 -0
  183. package/dist/components/Collapsible/CollapsibleTrigger.js.map +1 -1
  184. package/dist/components/Combobox/Combobox.cjs +1 -1
  185. package/dist/components/Combobox/Combobox.cjs.map +1 -1
  186. package/dist/components/Combobox/Combobox.context.cjs +1 -1
  187. package/dist/components/Combobox/Combobox.context.cjs.map +1 -1
  188. package/dist/components/Combobox/Combobox.context.d.ts +6 -1
  189. package/dist/components/Combobox/Combobox.context.d.ts.map +1 -1
  190. package/dist/components/Combobox/Combobox.context.js +3 -2
  191. package/dist/components/Combobox/Combobox.context.js.map +1 -1
  192. package/dist/components/Combobox/Combobox.js.map +1 -1
  193. package/dist/components/Combobox/Combobox.utils.cjs.map +1 -1
  194. package/dist/components/Combobox/Combobox.utils.js.map +1 -1
  195. package/dist/components/Combobox/Combobox.variants.cjs +1 -1
  196. package/dist/components/Combobox/Combobox.variants.cjs.map +1 -1
  197. package/dist/components/Combobox/Combobox.variants.js.map +1 -1
  198. package/dist/components/Combobox/ComboboxContent.cjs +1 -1
  199. package/dist/components/Combobox/ComboboxContent.cjs.map +1 -1
  200. package/dist/components/Combobox/ComboboxContent.d.ts.map +1 -1
  201. package/dist/components/Combobox/ComboboxContent.js +2 -0
  202. package/dist/components/Combobox/ComboboxContent.js.map +1 -1
  203. package/dist/components/Combobox/ComboboxEmpty.cjs +1 -1
  204. package/dist/components/Combobox/ComboboxEmpty.cjs.map +1 -1
  205. package/dist/components/Combobox/ComboboxEmpty.d.ts.map +1 -1
  206. package/dist/components/Combobox/ComboboxEmpty.js +1 -0
  207. package/dist/components/Combobox/ComboboxEmpty.js.map +1 -1
  208. package/dist/components/Combobox/ComboboxGroup.cjs +1 -1
  209. package/dist/components/Combobox/ComboboxGroup.cjs.map +1 -1
  210. package/dist/components/Combobox/ComboboxGroup.d.ts.map +1 -1
  211. package/dist/components/Combobox/ComboboxGroup.js +37 -23
  212. package/dist/components/Combobox/ComboboxGroup.js.map +1 -1
  213. package/dist/components/Combobox/ComboboxInput.cjs +1 -1
  214. package/dist/components/Combobox/ComboboxInput.cjs.map +1 -1
  215. package/dist/components/Combobox/ComboboxInput.d.ts.map +1 -1
  216. package/dist/components/Combobox/ComboboxInput.js +2 -0
  217. package/dist/components/Combobox/ComboboxInput.js.map +1 -1
  218. package/dist/components/Combobox/ComboboxListbox.cjs +1 -1
  219. package/dist/components/Combobox/ComboboxListbox.cjs.map +1 -1
  220. package/dist/components/Combobox/ComboboxListbox.d.ts.map +1 -1
  221. package/dist/components/Combobox/ComboboxListbox.js +1 -0
  222. package/dist/components/Combobox/ComboboxListbox.js.map +1 -1
  223. package/dist/components/Combobox/ComboboxOption.cjs +1 -1
  224. package/dist/components/Combobox/ComboboxOption.cjs.map +1 -1
  225. package/dist/components/Combobox/ComboboxOption.d.ts.map +1 -1
  226. package/dist/components/Combobox/ComboboxOption.js +38 -28
  227. package/dist/components/Combobox/ComboboxOption.js.map +1 -1
  228. package/dist/components/Combobox/ComboboxTrigger.cjs +1 -1
  229. package/dist/components/Combobox/ComboboxTrigger.cjs.map +1 -1
  230. package/dist/components/Combobox/ComboboxTrigger.d.ts.map +1 -1
  231. package/dist/components/Combobox/ComboboxTrigger.js +1 -0
  232. package/dist/components/Combobox/ComboboxTrigger.js.map +1 -1
  233. package/dist/components/CommandMenu/CommandMenu.cjs +1 -1
  234. package/dist/components/CommandMenu/CommandMenu.cjs.map +1 -1
  235. package/dist/components/CommandMenu/CommandMenu.context.cjs +1 -1
  236. package/dist/components/CommandMenu/CommandMenu.context.cjs.map +1 -1
  237. package/dist/components/CommandMenu/CommandMenu.context.d.ts +8 -1
  238. package/dist/components/CommandMenu/CommandMenu.context.d.ts.map +1 -1
  239. package/dist/components/CommandMenu/CommandMenu.context.js +3 -2
  240. package/dist/components/CommandMenu/CommandMenu.context.js.map +1 -1
  241. package/dist/components/CommandMenu/CommandMenu.d.ts.map +1 -1
  242. package/dist/components/CommandMenu/CommandMenu.js +51 -39
  243. package/dist/components/CommandMenu/CommandMenu.js.map +1 -1
  244. package/dist/components/CommandMenu/CommandMenu.utils.cjs +1 -1
  245. package/dist/components/CommandMenu/CommandMenu.utils.cjs.map +1 -1
  246. package/dist/components/CommandMenu/CommandMenu.utils.js.map +1 -1
  247. package/dist/components/CommandMenu/CommandMenuEmpty.cjs +1 -1
  248. package/dist/components/CommandMenu/CommandMenuEmpty.cjs.map +1 -1
  249. package/dist/components/CommandMenu/CommandMenuEmpty.d.ts.map +1 -1
  250. package/dist/components/CommandMenu/CommandMenuEmpty.js +1 -0
  251. package/dist/components/CommandMenu/CommandMenuEmpty.js.map +1 -1
  252. package/dist/components/CommandMenu/CommandMenuGroup.cjs +1 -1
  253. package/dist/components/CommandMenu/CommandMenuGroup.cjs.map +1 -1
  254. package/dist/components/CommandMenu/CommandMenuGroup.d.ts.map +1 -1
  255. package/dist/components/CommandMenu/CommandMenuGroup.js +41 -24
  256. package/dist/components/CommandMenu/CommandMenuGroup.js.map +1 -1
  257. package/dist/components/CommandMenu/CommandMenuInput.cjs +1 -1
  258. package/dist/components/CommandMenu/CommandMenuInput.cjs.map +1 -1
  259. package/dist/components/CommandMenu/CommandMenuInput.d.ts.map +1 -1
  260. package/dist/components/CommandMenu/CommandMenuInput.js +2 -0
  261. package/dist/components/CommandMenu/CommandMenuInput.js.map +1 -1
  262. package/dist/components/CommandMenu/CommandMenuItem.cjs +1 -1
  263. package/dist/components/CommandMenu/CommandMenuItem.cjs.map +1 -1
  264. package/dist/components/CommandMenu/CommandMenuItem.d.ts.map +1 -1
  265. package/dist/components/CommandMenu/CommandMenuItem.js +36 -21
  266. package/dist/components/CommandMenu/CommandMenuItem.js.map +1 -1
  267. package/dist/components/CommandMenu/CommandMenuList.cjs +1 -1
  268. package/dist/components/CommandMenu/CommandMenuList.cjs.map +1 -1
  269. package/dist/components/CommandMenu/CommandMenuList.d.ts.map +1 -1
  270. package/dist/components/CommandMenu/CommandMenuList.js +1 -0
  271. package/dist/components/CommandMenu/CommandMenuList.js.map +1 -1
  272. package/dist/components/CommandMenu/CommandMenuShortcut.cjs +1 -1
  273. package/dist/components/CommandMenu/CommandMenuShortcut.cjs.map +1 -1
  274. package/dist/components/CommandMenu/CommandMenuShortcut.d.ts.map +1 -1
  275. package/dist/components/CommandMenu/CommandMenuShortcut.js +1 -0
  276. package/dist/components/CommandMenu/CommandMenuShortcut.js.map +1 -1
  277. package/dist/components/Container/Container.cjs +1 -1
  278. package/dist/components/Container/Container.cjs.map +1 -1
  279. package/dist/components/Container/Container.d.ts +11 -3
  280. package/dist/components/Container/Container.d.ts.map +1 -1
  281. package/dist/components/Container/Container.js +4 -4
  282. package/dist/components/Container/Container.js.map +1 -1
  283. package/dist/components/ContextMenu/ContextMenu.cjs +1 -1
  284. package/dist/components/ContextMenu/ContextMenu.cjs.map +1 -1
  285. package/dist/components/ContextMenu/ContextMenu.context.cjs +1 -1
  286. package/dist/components/ContextMenu/ContextMenu.context.cjs.map +1 -1
  287. package/dist/components/ContextMenu/ContextMenu.context.js +1 -1
  288. package/dist/components/ContextMenu/ContextMenu.context.js.map +1 -1
  289. package/dist/components/ContextMenu/ContextMenu.js.map +1 -1
  290. package/dist/components/ContextMenu/ContextMenuCheckboxItem.cjs +1 -1
  291. package/dist/components/ContextMenu/ContextMenuCheckboxItem.cjs.map +1 -1
  292. package/dist/components/ContextMenu/ContextMenuCheckboxItem.js.map +1 -1
  293. package/dist/components/ContextMenu/ContextMenuContent.cjs +1 -1
  294. package/dist/components/ContextMenu/ContextMenuContent.cjs.map +1 -1
  295. package/dist/components/ContextMenu/ContextMenuContent.d.ts.map +1 -1
  296. package/dist/components/ContextMenu/ContextMenuContent.js +1 -0
  297. package/dist/components/ContextMenu/ContextMenuContent.js.map +1 -1
  298. package/dist/components/ContextMenu/ContextMenuItem.cjs +1 -1
  299. package/dist/components/ContextMenu/ContextMenuItem.cjs.map +1 -1
  300. package/dist/components/ContextMenu/ContextMenuItem.js.map +1 -1
  301. package/dist/components/ContextMenu/ContextMenuLabel.cjs +1 -1
  302. package/dist/components/ContextMenu/ContextMenuLabel.cjs.map +1 -1
  303. package/dist/components/ContextMenu/ContextMenuLabel.js.map +1 -1
  304. package/dist/components/ContextMenu/ContextMenuRadioGroup.cjs +1 -1
  305. package/dist/components/ContextMenu/ContextMenuRadioGroup.cjs.map +1 -1
  306. package/dist/components/ContextMenu/ContextMenuRadioGroup.js.map +1 -1
  307. package/dist/components/ContextMenu/ContextMenuRadioItem.cjs +1 -1
  308. package/dist/components/ContextMenu/ContextMenuRadioItem.cjs.map +1 -1
  309. package/dist/components/ContextMenu/ContextMenuRadioItem.js.map +1 -1
  310. package/dist/components/ContextMenu/ContextMenuSeparator.cjs +1 -1
  311. package/dist/components/ContextMenu/ContextMenuSeparator.cjs.map +1 -1
  312. package/dist/components/ContextMenu/ContextMenuSeparator.js.map +1 -1
  313. package/dist/components/ContextMenu/ContextMenuTrigger.cjs +1 -1
  314. package/dist/components/ContextMenu/ContextMenuTrigger.cjs.map +1 -1
  315. package/dist/components/ContextMenu/ContextMenuTrigger.d.ts.map +1 -1
  316. package/dist/components/ContextMenu/ContextMenuTrigger.js +1 -0
  317. package/dist/components/ContextMenu/ContextMenuTrigger.js.map +1 -1
  318. package/dist/components/DataTable/DataTable.cjs +1 -1
  319. package/dist/components/DataTable/DataTable.cjs.map +1 -1
  320. package/dist/components/DataTable/DataTable.js.map +1 -1
  321. package/dist/components/DatePicker/DatePicker.cjs +1 -1
  322. package/dist/components/DatePicker/DatePicker.cjs.map +1 -1
  323. package/dist/components/DatePicker/DatePicker.context.cjs +1 -1
  324. package/dist/components/DatePicker/DatePicker.context.cjs.map +1 -1
  325. package/dist/components/DatePicker/DatePicker.context.js +1 -1
  326. package/dist/components/DatePicker/DatePicker.context.js.map +1 -1
  327. package/dist/components/DatePicker/DatePicker.hooks.cjs +1 -1
  328. package/dist/components/DatePicker/DatePicker.hooks.cjs.map +1 -1
  329. package/dist/components/DatePicker/DatePicker.hooks.d.ts.map +1 -1
  330. package/dist/components/DatePicker/DatePicker.hooks.js +10 -12
  331. package/dist/components/DatePicker/DatePicker.hooks.js.map +1 -1
  332. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  333. package/dist/components/DatePicker/DatePicker.utils.cjs.map +1 -1
  334. package/dist/components/DatePicker/DatePicker.utils.js.map +1 -1
  335. package/dist/components/DatePicker/DatePickerCalendar.cjs +1 -1
  336. package/dist/components/DatePicker/DatePickerCalendar.cjs.map +1 -1
  337. package/dist/components/DatePicker/DatePickerCalendar.d.ts.map +1 -1
  338. package/dist/components/DatePicker/DatePickerCalendar.js +18 -6
  339. package/dist/components/DatePicker/DatePickerCalendar.js.map +1 -1
  340. package/dist/components/DatePicker/DatePickerInput.cjs +1 -1
  341. package/dist/components/DatePicker/DatePickerInput.cjs.map +1 -1
  342. package/dist/components/DatePicker/DatePickerInput.d.ts.map +1 -1
  343. package/dist/components/DatePicker/DatePickerInput.js +20 -23
  344. package/dist/components/DatePicker/DatePickerInput.js.map +1 -1
  345. package/dist/components/Dialog/Dialog.cjs +1 -1
  346. package/dist/components/Dialog/Dialog.cjs.map +1 -1
  347. package/dist/components/Dialog/Dialog.context.cjs +1 -1
  348. package/dist/components/Dialog/Dialog.context.cjs.map +1 -1
  349. package/dist/components/Dialog/Dialog.context.js +1 -1
  350. package/dist/components/Dialog/Dialog.context.js.map +1 -1
  351. package/dist/components/Dialog/Dialog.d.ts.map +1 -1
  352. package/dist/components/Dialog/Dialog.js +2 -0
  353. package/dist/components/Dialog/Dialog.js.map +1 -1
  354. package/dist/components/Divider/Divider.cjs +1 -1
  355. package/dist/components/Divider/Divider.cjs.map +1 -1
  356. package/dist/components/Divider/Divider.js.map +1 -1
  357. package/dist/components/DropdownMenu/DropdownMenu.cjs +1 -1
  358. package/dist/components/DropdownMenu/DropdownMenu.cjs.map +1 -1
  359. package/dist/components/DropdownMenu/DropdownMenu.context.cjs +1 -1
  360. package/dist/components/DropdownMenu/DropdownMenu.context.cjs.map +1 -1
  361. package/dist/components/DropdownMenu/DropdownMenu.context.js +1 -1
  362. package/dist/components/DropdownMenu/DropdownMenu.context.js.map +1 -1
  363. package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -1
  364. package/dist/components/DropdownMenu/DropdownMenuCheckboxItem.cjs +1 -1
  365. package/dist/components/DropdownMenu/DropdownMenuCheckboxItem.cjs.map +1 -1
  366. package/dist/components/DropdownMenu/DropdownMenuCheckboxItem.js.map +1 -1
  367. package/dist/components/DropdownMenu/DropdownMenuContent.cjs +1 -1
  368. package/dist/components/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
  369. package/dist/components/DropdownMenu/DropdownMenuContent.d.ts.map +1 -1
  370. package/dist/components/DropdownMenu/DropdownMenuContent.js +1 -0
  371. package/dist/components/DropdownMenu/DropdownMenuContent.js.map +1 -1
  372. package/dist/components/DropdownMenu/DropdownMenuItem.cjs +1 -1
  373. package/dist/components/DropdownMenu/DropdownMenuItem.cjs.map +1 -1
  374. package/dist/components/DropdownMenu/DropdownMenuItem.js.map +1 -1
  375. package/dist/components/DropdownMenu/DropdownMenuLabel.cjs +1 -1
  376. package/dist/components/DropdownMenu/DropdownMenuLabel.cjs.map +1 -1
  377. package/dist/components/DropdownMenu/DropdownMenuLabel.js.map +1 -1
  378. package/dist/components/DropdownMenu/DropdownMenuRadioGroup.cjs +1 -1
  379. package/dist/components/DropdownMenu/DropdownMenuRadioGroup.cjs.map +1 -1
  380. package/dist/components/DropdownMenu/DropdownMenuRadioGroup.js.map +1 -1
  381. package/dist/components/DropdownMenu/DropdownMenuRadioItem.cjs +1 -1
  382. package/dist/components/DropdownMenu/DropdownMenuRadioItem.cjs.map +1 -1
  383. package/dist/components/DropdownMenu/DropdownMenuRadioItem.js.map +1 -1
  384. package/dist/components/DropdownMenu/DropdownMenuSeparator.cjs +1 -1
  385. package/dist/components/DropdownMenu/DropdownMenuSeparator.cjs.map +1 -1
  386. package/dist/components/DropdownMenu/DropdownMenuSeparator.js.map +1 -1
  387. package/dist/components/DropdownMenu/DropdownMenuTrigger.cjs +1 -1
  388. package/dist/components/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
  389. package/dist/components/DropdownMenu/DropdownMenuTrigger.d.ts.map +1 -1
  390. package/dist/components/DropdownMenu/DropdownMenuTrigger.js +1 -0
  391. package/dist/components/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
  392. package/dist/components/EmptyState/EmptyState.cjs +1 -1
  393. package/dist/components/EmptyState/EmptyState.cjs.map +1 -1
  394. package/dist/components/EmptyState/EmptyState.d.ts +4 -1
  395. package/dist/components/EmptyState/EmptyState.d.ts.map +1 -1
  396. package/dist/components/EmptyState/EmptyState.js +16 -8
  397. package/dist/components/EmptyState/EmptyState.js.map +1 -1
  398. package/dist/components/Eyebrow/Eyebrow.cjs +1 -1
  399. package/dist/components/Eyebrow/Eyebrow.cjs.map +1 -1
  400. package/dist/components/Eyebrow/Eyebrow.d.ts +1 -1
  401. package/dist/components/Eyebrow/Eyebrow.d.ts.map +1 -1
  402. package/dist/components/Eyebrow/Eyebrow.js +6 -3
  403. package/dist/components/Eyebrow/Eyebrow.js.map +1 -1
  404. package/dist/components/Eyebrow/Eyebrow.variants.cjs +1 -1
  405. package/dist/components/Eyebrow/Eyebrow.variants.cjs.map +1 -1
  406. package/dist/components/Eyebrow/Eyebrow.variants.d.ts +2 -1
  407. package/dist/components/Eyebrow/Eyebrow.variants.d.ts.map +1 -1
  408. package/dist/components/Eyebrow/Eyebrow.variants.js +28 -7
  409. package/dist/components/Eyebrow/Eyebrow.variants.js.map +1 -1
  410. package/dist/components/FileInput/FileInput.cjs +1 -1
  411. package/dist/components/FileInput/FileInput.cjs.map +1 -1
  412. package/dist/components/FileInput/FileInput.d.ts.map +1 -1
  413. package/dist/components/FileInput/FileInput.js +10 -2
  414. package/dist/components/FileInput/FileInput.js.map +1 -1
  415. package/dist/components/FileInput/FileInput.variants.cjs +1 -1
  416. package/dist/components/FileInput/FileInput.variants.cjs.map +1 -1
  417. package/dist/components/FileInput/FileInput.variants.js.map +1 -1
  418. package/dist/components/FormField/FormField.cjs +1 -1
  419. package/dist/components/FormField/FormField.cjs.map +1 -1
  420. package/dist/components/FormField/FormField.context.cjs +1 -1
  421. package/dist/components/FormField/FormField.context.cjs.map +1 -1
  422. package/dist/components/FormField/FormField.context.js +1 -1
  423. package/dist/components/FormField/FormField.context.js.map +1 -1
  424. package/dist/components/FormField/FormField.d.ts.map +1 -1
  425. package/dist/components/FormField/FormField.js +3 -0
  426. package/dist/components/FormField/FormField.js.map +1 -1
  427. package/dist/components/Grid/Grid.cjs +1 -1
  428. package/dist/components/Grid/Grid.cjs.map +1 -1
  429. package/dist/components/Grid/Grid.d.ts +11 -3
  430. package/dist/components/Grid/Grid.d.ts.map +1 -1
  431. package/dist/components/Grid/Grid.js +4 -4
  432. package/dist/components/Grid/Grid.js.map +1 -1
  433. package/dist/components/Heading/Heading.cjs +1 -1
  434. package/dist/components/Heading/Heading.cjs.map +1 -1
  435. package/dist/components/Heading/Heading.js.map +1 -1
  436. package/dist/components/Heading/Heading.variants.cjs +1 -1
  437. package/dist/components/Heading/Heading.variants.cjs.map +1 -1
  438. package/dist/components/Heading/Heading.variants.d.ts +1 -1
  439. package/dist/components/Heading/Heading.variants.d.ts.map +1 -1
  440. package/dist/components/Heading/Heading.variants.js +7 -2
  441. package/dist/components/Heading/Heading.variants.js.map +1 -1
  442. package/dist/components/Icon/Icon.cjs +1 -1
  443. package/dist/components/Icon/Icon.cjs.map +1 -1
  444. package/dist/components/Icon/Icon.d.ts.map +1 -1
  445. package/dist/components/Icon/Icon.js +5 -11
  446. package/dist/components/Icon/Icon.js.map +1 -1
  447. package/dist/components/Icon/Icon.variants.cjs +1 -1
  448. package/dist/components/Icon/Icon.variants.cjs.map +1 -1
  449. package/dist/components/Icon/Icon.variants.d.ts.map +1 -1
  450. package/dist/components/Icon/Icon.variants.js.map +1 -1
  451. package/dist/components/Input/Input.cjs +1 -1
  452. package/dist/components/Input/Input.cjs.map +1 -1
  453. package/dist/components/Input/Input.js.map +1 -1
  454. package/dist/components/Input/Input.variants.cjs +1 -1
  455. package/dist/components/Input/Input.variants.cjs.map +1 -1
  456. package/dist/components/Input/Input.variants.js.map +1 -1
  457. package/dist/components/Kbd/Kbd.cjs +1 -1
  458. package/dist/components/Kbd/Kbd.cjs.map +1 -1
  459. package/dist/components/Kbd/Kbd.js.map +1 -1
  460. package/dist/components/Kbd/Kbd.variants.cjs +1 -1
  461. package/dist/components/Kbd/Kbd.variants.cjs.map +1 -1
  462. package/dist/components/Kbd/Kbd.variants.d.ts.map +1 -1
  463. package/dist/components/Kbd/Kbd.variants.js.map +1 -1
  464. package/dist/components/Label/Label.cjs +1 -1
  465. package/dist/components/Label/Label.cjs.map +1 -1
  466. package/dist/components/Label/Label.d.ts +4 -1
  467. package/dist/components/Label/Label.d.ts.map +1 -1
  468. package/dist/components/Label/Label.js +21 -10
  469. package/dist/components/Label/Label.js.map +1 -1
  470. package/dist/components/Menu/MenuCheckboxItemBase.cjs +1 -1
  471. package/dist/components/Menu/MenuCheckboxItemBase.cjs.map +1 -1
  472. package/dist/components/Menu/MenuCheckboxItemBase.d.ts.map +1 -1
  473. package/dist/components/Menu/MenuCheckboxItemBase.js +2 -0
  474. package/dist/components/Menu/MenuCheckboxItemBase.js.map +1 -1
  475. package/dist/components/Menu/MenuContentBase.cjs +1 -1
  476. package/dist/components/Menu/MenuContentBase.cjs.map +1 -1
  477. package/dist/components/Menu/MenuContentBase.js +1 -1
  478. package/dist/components/Menu/MenuContentBase.js.map +1 -1
  479. package/dist/components/Menu/MenuItemBase.cjs +1 -1
  480. package/dist/components/Menu/MenuItemBase.cjs.map +1 -1
  481. package/dist/components/Menu/MenuItemBase.d.ts.map +1 -1
  482. package/dist/components/Menu/MenuItemBase.js +1 -0
  483. package/dist/components/Menu/MenuItemBase.js.map +1 -1
  484. package/dist/components/Menu/MenuLabelBase.cjs +1 -1
  485. package/dist/components/Menu/MenuLabelBase.cjs.map +1 -1
  486. package/dist/components/Menu/MenuLabelBase.d.ts.map +1 -1
  487. package/dist/components/Menu/MenuLabelBase.js +1 -0
  488. package/dist/components/Menu/MenuLabelBase.js.map +1 -1
  489. package/dist/components/Menu/MenuRadioGroupBase.cjs +1 -1
  490. package/dist/components/Menu/MenuRadioGroupBase.cjs.map +1 -1
  491. package/dist/components/Menu/MenuRadioGroupBase.js +2 -1
  492. package/dist/components/Menu/MenuRadioGroupBase.js.map +1 -1
  493. package/dist/components/Menu/MenuRadioItemBase.cjs +1 -1
  494. package/dist/components/Menu/MenuRadioItemBase.cjs.map +1 -1
  495. package/dist/components/Menu/MenuRadioItemBase.d.ts.map +1 -1
  496. package/dist/components/Menu/MenuRadioItemBase.js +2 -0
  497. package/dist/components/Menu/MenuRadioItemBase.js.map +1 -1
  498. package/dist/components/Menu/MenuSeparatorBase.cjs +1 -1
  499. package/dist/components/Menu/MenuSeparatorBase.cjs.map +1 -1
  500. package/dist/components/Menu/MenuSeparatorBase.d.ts.map +1 -1
  501. package/dist/components/Menu/MenuSeparatorBase.js +1 -0
  502. package/dist/components/Menu/MenuSeparatorBase.js.map +1 -1
  503. package/dist/components/Menu/menuItemVariants.cjs +1 -1
  504. package/dist/components/Menu/menuItemVariants.cjs.map +1 -1
  505. package/dist/components/Menu/menuItemVariants.js +1 -1
  506. package/dist/components/Menu/menuItemVariants.js.map +1 -1
  507. package/dist/components/Menubar/Menubar.cjs +1 -1
  508. package/dist/components/Menubar/Menubar.cjs.map +1 -1
  509. package/dist/components/Menubar/Menubar.context.cjs +1 -1
  510. package/dist/components/Menubar/Menubar.context.cjs.map +1 -1
  511. package/dist/components/Menubar/Menubar.context.js +2 -2
  512. package/dist/components/Menubar/Menubar.context.js.map +1 -1
  513. package/dist/components/Menubar/Menubar.d.ts.map +1 -1
  514. package/dist/components/Menubar/Menubar.js +1 -0
  515. package/dist/components/Menubar/Menubar.js.map +1 -1
  516. package/dist/components/Menubar/MenubarCheckboxItem.cjs +1 -1
  517. package/dist/components/Menubar/MenubarCheckboxItem.cjs.map +1 -1
  518. package/dist/components/Menubar/MenubarCheckboxItem.js.map +1 -1
  519. package/dist/components/Menubar/MenubarContent.cjs +1 -1
  520. package/dist/components/Menubar/MenubarContent.cjs.map +1 -1
  521. package/dist/components/Menubar/MenubarContent.d.ts.map +1 -1
  522. package/dist/components/Menubar/MenubarContent.js +1 -0
  523. package/dist/components/Menubar/MenubarContent.js.map +1 -1
  524. package/dist/components/Menubar/MenubarItem.cjs +1 -1
  525. package/dist/components/Menubar/MenubarItem.cjs.map +1 -1
  526. package/dist/components/Menubar/MenubarItem.js.map +1 -1
  527. package/dist/components/Menubar/MenubarMenu.cjs +1 -1
  528. package/dist/components/Menubar/MenubarMenu.cjs.map +1 -1
  529. package/dist/components/Menubar/MenubarMenu.js.map +1 -1
  530. package/dist/components/Menubar/MenubarRadioGroup.cjs +1 -1
  531. package/dist/components/Menubar/MenubarRadioGroup.cjs.map +1 -1
  532. package/dist/components/Menubar/MenubarRadioGroup.js.map +1 -1
  533. package/dist/components/Menubar/MenubarRadioItem.cjs +1 -1
  534. package/dist/components/Menubar/MenubarRadioItem.cjs.map +1 -1
  535. package/dist/components/Menubar/MenubarRadioItem.js.map +1 -1
  536. package/dist/components/Menubar/MenubarSeparator.cjs +1 -1
  537. package/dist/components/Menubar/MenubarSeparator.cjs.map +1 -1
  538. package/dist/components/Menubar/MenubarSeparator.js.map +1 -1
  539. package/dist/components/Menubar/MenubarTrigger.cjs +1 -1
  540. package/dist/components/Menubar/MenubarTrigger.cjs.map +1 -1
  541. package/dist/components/Menubar/MenubarTrigger.d.ts.map +1 -1
  542. package/dist/components/Menubar/MenubarTrigger.js +2 -1
  543. package/dist/components/Menubar/MenubarTrigger.js.map +1 -1
  544. package/dist/components/Nav/Nav.cjs +1 -1
  545. package/dist/components/Nav/Nav.cjs.map +1 -1
  546. package/dist/components/Nav/Nav.js +1 -0
  547. package/dist/components/Nav/Nav.js.map +1 -1
  548. package/dist/components/Nav/NavItem.cjs +1 -1
  549. package/dist/components/Nav/NavItem.cjs.map +1 -1
  550. package/dist/components/Nav/NavItem.d.ts.map +1 -1
  551. package/dist/components/Nav/NavItem.js +1 -0
  552. package/dist/components/Nav/NavItem.js.map +1 -1
  553. package/dist/components/Nav/NavLink.cjs +1 -1
  554. package/dist/components/Nav/NavLink.cjs.map +1 -1
  555. package/dist/components/Nav/NavLink.d.ts.map +1 -1
  556. package/dist/components/Nav/NavLink.js +2 -1
  557. package/dist/components/Nav/NavLink.js.map +1 -1
  558. package/dist/components/Nav/NavList.cjs +1 -1
  559. package/dist/components/Nav/NavList.cjs.map +1 -1
  560. package/dist/components/Nav/NavList.d.ts.map +1 -1
  561. package/dist/components/Nav/NavList.js +1 -0
  562. package/dist/components/Nav/NavList.js.map +1 -1
  563. package/dist/components/Nav/NavSubmenu.cjs +1 -1
  564. package/dist/components/Nav/NavSubmenu.cjs.map +1 -1
  565. package/dist/components/Nav/NavSubmenu.d.ts.map +1 -1
  566. package/dist/components/Nav/NavSubmenu.js +1 -0
  567. package/dist/components/Nav/NavSubmenu.js.map +1 -1
  568. package/dist/components/Nav/NavTrigger.cjs +1 -1
  569. package/dist/components/Nav/NavTrigger.cjs.map +1 -1
  570. package/dist/components/Nav/NavTrigger.d.ts.map +1 -1
  571. package/dist/components/Nav/NavTrigger.js +3 -1
  572. package/dist/components/Nav/NavTrigger.js.map +1 -1
  573. package/dist/components/NavigationMenu/NavigationMenu.cjs +1 -1
  574. package/dist/components/NavigationMenu/NavigationMenu.cjs.map +1 -1
  575. package/dist/components/NavigationMenu/NavigationMenu.context.cjs +1 -1
  576. package/dist/components/NavigationMenu/NavigationMenu.context.cjs.map +1 -1
  577. package/dist/components/NavigationMenu/NavigationMenu.context.js +3 -3
  578. package/dist/components/NavigationMenu/NavigationMenu.context.js.map +1 -1
  579. package/dist/components/NavigationMenu/NavigationMenu.d.ts.map +1 -1
  580. package/dist/components/NavigationMenu/NavigationMenu.js +1 -0
  581. package/dist/components/NavigationMenu/NavigationMenu.js.map +1 -1
  582. package/dist/components/NavigationMenu/NavigationMenu.utils.cjs.map +1 -1
  583. package/dist/components/NavigationMenu/NavigationMenu.utils.js.map +1 -1
  584. package/dist/components/NavigationMenu/NavigationMenuContent.cjs +1 -1
  585. package/dist/components/NavigationMenu/NavigationMenuContent.cjs.map +1 -1
  586. package/dist/components/NavigationMenu/NavigationMenuContent.d.ts.map +1 -1
  587. package/dist/components/NavigationMenu/NavigationMenuContent.js +1 -0
  588. package/dist/components/NavigationMenu/NavigationMenuContent.js.map +1 -1
  589. package/dist/components/NavigationMenu/NavigationMenuItem.cjs +1 -1
  590. package/dist/components/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
  591. package/dist/components/NavigationMenu/NavigationMenuItem.d.ts.map +1 -1
  592. package/dist/components/NavigationMenu/NavigationMenuItem.js +1 -0
  593. package/dist/components/NavigationMenu/NavigationMenuItem.js.map +1 -1
  594. package/dist/components/NavigationMenu/NavigationMenuLink.cjs +1 -1
  595. package/dist/components/NavigationMenu/NavigationMenuLink.cjs.map +1 -1
  596. package/dist/components/NavigationMenu/NavigationMenuLink.d.ts.map +1 -1
  597. package/dist/components/NavigationMenu/NavigationMenuLink.js +2 -1
  598. package/dist/components/NavigationMenu/NavigationMenuLink.js.map +1 -1
  599. package/dist/components/NavigationMenu/NavigationMenuList.cjs +1 -1
  600. package/dist/components/NavigationMenu/NavigationMenuList.cjs.map +1 -1
  601. package/dist/components/NavigationMenu/NavigationMenuList.d.ts.map +1 -1
  602. package/dist/components/NavigationMenu/NavigationMenuList.js +1 -0
  603. package/dist/components/NavigationMenu/NavigationMenuList.js.map +1 -1
  604. package/dist/components/NavigationMenu/NavigationMenuTrigger.cjs +1 -1
  605. package/dist/components/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
  606. package/dist/components/NavigationMenu/NavigationMenuTrigger.d.ts.map +1 -1
  607. package/dist/components/NavigationMenu/NavigationMenuTrigger.js +2 -1
  608. package/dist/components/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
  609. package/dist/components/NumberInput/NumberInput.cjs +1 -1
  610. package/dist/components/NumberInput/NumberInput.cjs.map +1 -1
  611. package/dist/components/NumberInput/NumberInput.d.ts.map +1 -1
  612. package/dist/components/NumberInput/NumberInput.js +3 -0
  613. package/dist/components/NumberInput/NumberInput.js.map +1 -1
  614. package/dist/components/Pagination/Pagination.cjs +1 -1
  615. package/dist/components/Pagination/Pagination.cjs.map +1 -1
  616. package/dist/components/Pagination/Pagination.d.ts.map +1 -1
  617. package/dist/components/Pagination/Pagination.js +1 -0
  618. package/dist/components/Pagination/Pagination.js.map +1 -1
  619. package/dist/components/Pagination/PaginationContent.cjs +1 -1
  620. package/dist/components/Pagination/PaginationContent.cjs.map +1 -1
  621. package/dist/components/Pagination/PaginationContent.d.ts.map +1 -1
  622. package/dist/components/Pagination/PaginationContent.js +1 -0
  623. package/dist/components/Pagination/PaginationContent.js.map +1 -1
  624. package/dist/components/Pagination/PaginationEllipsis.cjs +1 -1
  625. package/dist/components/Pagination/PaginationEllipsis.cjs.map +1 -1
  626. package/dist/components/Pagination/PaginationEllipsis.d.ts.map +1 -1
  627. package/dist/components/Pagination/PaginationEllipsis.js +1 -0
  628. package/dist/components/Pagination/PaginationEllipsis.js.map +1 -1
  629. package/dist/components/Pagination/PaginationItem.cjs +1 -1
  630. package/dist/components/Pagination/PaginationItem.cjs.map +1 -1
  631. package/dist/components/Pagination/PaginationItem.js +1 -0
  632. package/dist/components/Pagination/PaginationItem.js.map +1 -1
  633. package/dist/components/Pagination/PaginationLink.cjs +1 -1
  634. package/dist/components/Pagination/PaginationLink.cjs.map +1 -1
  635. package/dist/components/Pagination/PaginationLink.d.ts.map +1 -1
  636. package/dist/components/Pagination/PaginationLink.js +1 -0
  637. package/dist/components/Pagination/PaginationLink.js.map +1 -1
  638. package/dist/components/Pagination/PaginationNext.cjs +1 -1
  639. package/dist/components/Pagination/PaginationNext.cjs.map +1 -1
  640. package/dist/components/Pagination/PaginationNext.d.ts.map +1 -1
  641. package/dist/components/Pagination/PaginationNext.js +3 -0
  642. package/dist/components/Pagination/PaginationNext.js.map +1 -1
  643. package/dist/components/Pagination/PaginationPrevious.cjs +1 -1
  644. package/dist/components/Pagination/PaginationPrevious.cjs.map +1 -1
  645. package/dist/components/Pagination/PaginationPrevious.d.ts.map +1 -1
  646. package/dist/components/Pagination/PaginationPrevious.js +3 -0
  647. package/dist/components/Pagination/PaginationPrevious.js.map +1 -1
  648. package/dist/components/Popover/Popover.cjs +1 -1
  649. package/dist/components/Popover/Popover.cjs.map +1 -1
  650. package/dist/components/Popover/Popover.context.cjs +1 -1
  651. package/dist/components/Popover/Popover.context.cjs.map +1 -1
  652. package/dist/components/Popover/Popover.context.js +1 -1
  653. package/dist/components/Popover/Popover.context.js.map +1 -1
  654. package/dist/components/Popover/Popover.js.map +1 -1
  655. package/dist/components/Popover/PopoverContent.cjs +1 -1
  656. package/dist/components/Popover/PopoverContent.cjs.map +1 -1
  657. package/dist/components/Popover/PopoverContent.d.ts.map +1 -1
  658. package/dist/components/Popover/PopoverContent.js +1 -0
  659. package/dist/components/Popover/PopoverContent.js.map +1 -1
  660. package/dist/components/Popover/PopoverTrigger.cjs +1 -1
  661. package/dist/components/Popover/PopoverTrigger.cjs.map +1 -1
  662. package/dist/components/Popover/PopoverTrigger.d.ts.map +1 -1
  663. package/dist/components/Popover/PopoverTrigger.js +1 -0
  664. package/dist/components/Popover/PopoverTrigger.js.map +1 -1
  665. package/dist/components/Progress/Progress.cjs +1 -1
  666. package/dist/components/Progress/Progress.cjs.map +1 -1
  667. package/dist/components/Progress/Progress.js.map +1 -1
  668. package/dist/components/Progress/Progress.variants.cjs +1 -1
  669. package/dist/components/Progress/Progress.variants.cjs.map +1 -1
  670. package/dist/components/Progress/Progress.variants.d.ts.map +1 -1
  671. package/dist/components/Progress/Progress.variants.js.map +1 -1
  672. package/dist/components/RadioGroup/Radio.cjs +1 -1
  673. package/dist/components/RadioGroup/Radio.cjs.map +1 -1
  674. package/dist/components/RadioGroup/Radio.d.ts.map +1 -1
  675. package/dist/components/RadioGroup/Radio.js +4 -0
  676. package/dist/components/RadioGroup/Radio.js.map +1 -1
  677. package/dist/components/RadioGroup/Radio.variants.cjs +1 -1
  678. package/dist/components/RadioGroup/Radio.variants.cjs.map +1 -1
  679. package/dist/components/RadioGroup/Radio.variants.d.ts.map +1 -1
  680. package/dist/components/RadioGroup/Radio.variants.js.map +1 -1
  681. package/dist/components/RadioGroup/RadioGroup.cjs +1 -1
  682. package/dist/components/RadioGroup/RadioGroup.cjs.map +1 -1
  683. package/dist/components/RadioGroup/RadioGroup.context.cjs +1 -1
  684. package/dist/components/RadioGroup/RadioGroup.context.cjs.map +1 -1
  685. package/dist/components/RadioGroup/RadioGroup.context.js +1 -1
  686. package/dist/components/RadioGroup/RadioGroup.context.js.map +1 -1
  687. package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
  688. package/dist/components/RadioGroup/RadioGroup.js +15 -23
  689. package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
  690. package/dist/components/ScrollArea/ScrollArea.cjs +1 -1
  691. package/dist/components/ScrollArea/ScrollArea.cjs.map +1 -1
  692. package/dist/components/ScrollArea/ScrollArea.d.ts.map +1 -1
  693. package/dist/components/ScrollArea/ScrollArea.js +1 -0
  694. package/dist/components/ScrollArea/ScrollArea.js.map +1 -1
  695. package/dist/components/Section/Section.cjs +1 -1
  696. package/dist/components/Section/Section.cjs.map +1 -1
  697. package/dist/components/Section/Section.d.ts.map +1 -1
  698. package/dist/components/Section/Section.js +1 -0
  699. package/dist/components/Section/Section.js.map +1 -1
  700. package/dist/components/Section/Section.variants.cjs +1 -1
  701. package/dist/components/Section/Section.variants.cjs.map +1 -1
  702. package/dist/components/Section/Section.variants.js.map +1 -1
  703. package/dist/components/Select/Select.cjs +1 -1
  704. package/dist/components/Select/Select.cjs.map +1 -1
  705. package/dist/components/Select/Select.context.cjs +1 -1
  706. package/dist/components/Select/Select.context.cjs.map +1 -1
  707. package/dist/components/Select/Select.context.js +1 -1
  708. package/dist/components/Select/Select.context.js.map +1 -1
  709. package/dist/components/Select/Select.d.ts.map +1 -1
  710. package/dist/components/Select/Select.js +1 -0
  711. package/dist/components/Select/Select.js.map +1 -1
  712. package/dist/components/Select/SelectContent.cjs +1 -1
  713. package/dist/components/Select/SelectContent.cjs.map +1 -1
  714. package/dist/components/Select/SelectContent.d.ts.map +1 -1
  715. package/dist/components/Select/SelectContent.js +1 -0
  716. package/dist/components/Select/SelectContent.js.map +1 -1
  717. package/dist/components/Select/SelectItem.cjs +1 -1
  718. package/dist/components/Select/SelectItem.cjs.map +1 -1
  719. package/dist/components/Select/SelectItem.d.ts.map +1 -1
  720. package/dist/components/Select/SelectItem.js +1 -0
  721. package/dist/components/Select/SelectItem.js.map +1 -1
  722. package/dist/components/Select/SelectSeparator.cjs +1 -1
  723. package/dist/components/Select/SelectSeparator.cjs.map +1 -1
  724. package/dist/components/Select/SelectSeparator.d.ts.map +1 -1
  725. package/dist/components/Select/SelectSeparator.js +1 -0
  726. package/dist/components/Select/SelectSeparator.js.map +1 -1
  727. package/dist/components/Select/SelectTrigger.cjs +1 -1
  728. package/dist/components/Select/SelectTrigger.cjs.map +1 -1
  729. package/dist/components/Select/SelectTrigger.d.ts.map +1 -1
  730. package/dist/components/Select/SelectTrigger.js +1 -0
  731. package/dist/components/Select/SelectTrigger.js.map +1 -1
  732. package/dist/components/Select/SelectTrigger.utils.cjs +1 -1
  733. package/dist/components/Select/SelectTrigger.utils.cjs.map +1 -1
  734. package/dist/components/Select/SelectTrigger.utils.js.map +1 -1
  735. package/dist/components/Select/SelectTrigger.variants.cjs +1 -1
  736. package/dist/components/Select/SelectTrigger.variants.cjs.map +1 -1
  737. package/dist/components/Select/SelectTrigger.variants.js.map +1 -1
  738. package/dist/components/Sheet/Sheet.cjs +1 -1
  739. package/dist/components/Sheet/Sheet.cjs.map +1 -1
  740. package/dist/components/Sheet/Sheet.context.cjs +1 -1
  741. package/dist/components/Sheet/Sheet.context.cjs.map +1 -1
  742. package/dist/components/Sheet/Sheet.context.js +1 -1
  743. package/dist/components/Sheet/Sheet.context.js.map +1 -1
  744. package/dist/components/Sheet/Sheet.d.ts.map +1 -1
  745. package/dist/components/Sheet/Sheet.js +2 -0
  746. package/dist/components/Sheet/Sheet.js.map +1 -1
  747. package/dist/components/Sidebar/Sidebar.cjs +1 -1
  748. package/dist/components/Sidebar/Sidebar.cjs.map +1 -1
  749. package/dist/components/Sidebar/Sidebar.context.cjs +1 -1
  750. package/dist/components/Sidebar/Sidebar.context.cjs.map +1 -1
  751. package/dist/components/Sidebar/Sidebar.context.js +1 -1
  752. package/dist/components/Sidebar/Sidebar.context.js.map +1 -1
  753. package/dist/components/Sidebar/Sidebar.d.ts.map +1 -1
  754. package/dist/components/Sidebar/Sidebar.js +2 -0
  755. package/dist/components/Sidebar/Sidebar.js.map +1 -1
  756. package/dist/components/Sidebar/SidebarContent.cjs +1 -1
  757. package/dist/components/Sidebar/SidebarContent.cjs.map +1 -1
  758. package/dist/components/Sidebar/SidebarContent.d.ts.map +1 -1
  759. package/dist/components/Sidebar/SidebarContent.js +1 -0
  760. package/dist/components/Sidebar/SidebarContent.js.map +1 -1
  761. package/dist/components/Sidebar/SidebarFooter.cjs +1 -1
  762. package/dist/components/Sidebar/SidebarFooter.cjs.map +1 -1
  763. package/dist/components/Sidebar/SidebarFooter.d.ts.map +1 -1
  764. package/dist/components/Sidebar/SidebarFooter.js +1 -0
  765. package/dist/components/Sidebar/SidebarFooter.js.map +1 -1
  766. package/dist/components/Sidebar/SidebarGroup.cjs +1 -1
  767. package/dist/components/Sidebar/SidebarGroup.cjs.map +1 -1
  768. package/dist/components/Sidebar/SidebarGroup.d.ts.map +1 -1
  769. package/dist/components/Sidebar/SidebarGroup.js +1 -0
  770. package/dist/components/Sidebar/SidebarGroup.js.map +1 -1
  771. package/dist/components/Sidebar/SidebarGroupLabel.cjs +1 -1
  772. package/dist/components/Sidebar/SidebarGroupLabel.cjs.map +1 -1
  773. package/dist/components/Sidebar/SidebarGroupLabel.d.ts.map +1 -1
  774. package/dist/components/Sidebar/SidebarGroupLabel.js +1 -0
  775. package/dist/components/Sidebar/SidebarGroupLabel.js.map +1 -1
  776. package/dist/components/Sidebar/SidebarHeader.cjs +1 -1
  777. package/dist/components/Sidebar/SidebarHeader.cjs.map +1 -1
  778. package/dist/components/Sidebar/SidebarHeader.d.ts.map +1 -1
  779. package/dist/components/Sidebar/SidebarHeader.js +1 -0
  780. package/dist/components/Sidebar/SidebarHeader.js.map +1 -1
  781. package/dist/components/Sidebar/SidebarInset.cjs +1 -1
  782. package/dist/components/Sidebar/SidebarInset.cjs.map +1 -1
  783. package/dist/components/Sidebar/SidebarInset.d.ts.map +1 -1
  784. package/dist/components/Sidebar/SidebarInset.js +1 -0
  785. package/dist/components/Sidebar/SidebarInset.js.map +1 -1
  786. package/dist/components/Sidebar/SidebarMenu.cjs +1 -1
  787. package/dist/components/Sidebar/SidebarMenu.cjs.map +1 -1
  788. package/dist/components/Sidebar/SidebarMenu.d.ts.map +1 -1
  789. package/dist/components/Sidebar/SidebarMenu.js +1 -0
  790. package/dist/components/Sidebar/SidebarMenu.js.map +1 -1
  791. package/dist/components/Sidebar/SidebarMenuButton.cjs +1 -1
  792. package/dist/components/Sidebar/SidebarMenuButton.cjs.map +1 -1
  793. package/dist/components/Sidebar/SidebarMenuButton.d.ts.map +1 -1
  794. package/dist/components/Sidebar/SidebarMenuButton.js +1 -0
  795. package/dist/components/Sidebar/SidebarMenuButton.js.map +1 -1
  796. package/dist/components/Sidebar/SidebarMenuItem.cjs +1 -1
  797. package/dist/components/Sidebar/SidebarMenuItem.cjs.map +1 -1
  798. package/dist/components/Sidebar/SidebarMenuItem.d.ts.map +1 -1
  799. package/dist/components/Sidebar/SidebarMenuItem.js +1 -0
  800. package/dist/components/Sidebar/SidebarMenuItem.js.map +1 -1
  801. package/dist/components/Sidebar/SidebarProvider.cjs +1 -1
  802. package/dist/components/Sidebar/SidebarProvider.cjs.map +1 -1
  803. package/dist/components/Sidebar/SidebarProvider.d.ts.map +1 -1
  804. package/dist/components/Sidebar/SidebarProvider.js +1 -0
  805. package/dist/components/Sidebar/SidebarProvider.js.map +1 -1
  806. package/dist/components/Sidebar/SidebarTrigger.cjs +1 -1
  807. package/dist/components/Sidebar/SidebarTrigger.cjs.map +1 -1
  808. package/dist/components/Sidebar/SidebarTrigger.d.ts.map +1 -1
  809. package/dist/components/Sidebar/SidebarTrigger.js +1 -0
  810. package/dist/components/Sidebar/SidebarTrigger.js.map +1 -1
  811. package/dist/components/Skeleton/Skeleton.cjs +1 -1
  812. package/dist/components/Skeleton/Skeleton.cjs.map +1 -1
  813. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  814. package/dist/components/Skeleton/Skeleton.variants.cjs +1 -1
  815. package/dist/components/Skeleton/Skeleton.variants.cjs.map +1 -1
  816. package/dist/components/Skeleton/Skeleton.variants.js.map +1 -1
  817. package/dist/components/SkipLink/SkipLink.cjs +1 -1
  818. package/dist/components/SkipLink/SkipLink.cjs.map +1 -1
  819. package/dist/components/SkipLink/SkipLink.js +1 -1
  820. package/dist/components/SkipLink/SkipLink.js.map +1 -1
  821. package/dist/components/Slider/Slider.cjs +1 -1
  822. package/dist/components/Slider/Slider.cjs.map +1 -1
  823. package/dist/components/Slider/Slider.d.ts.map +1 -1
  824. package/dist/components/Slider/Slider.js +6 -0
  825. package/dist/components/Slider/Slider.js.map +1 -1
  826. package/dist/components/Slider/Slider.variants.cjs +1 -1
  827. package/dist/components/Slider/Slider.variants.cjs.map +1 -1
  828. package/dist/components/Slider/Slider.variants.d.ts.map +1 -1
  829. package/dist/components/Slider/Slider.variants.js.map +1 -1
  830. package/dist/components/Spinner/Spinner.cjs +1 -1
  831. package/dist/components/Spinner/Spinner.cjs.map +1 -1
  832. package/dist/components/Spinner/Spinner.js.map +1 -1
  833. package/dist/components/Spinner/Spinner.variants.cjs +1 -1
  834. package/dist/components/Spinner/Spinner.variants.cjs.map +1 -1
  835. package/dist/components/Spinner/Spinner.variants.d.ts.map +1 -1
  836. package/dist/components/Spinner/Spinner.variants.js.map +1 -1
  837. package/dist/components/SplitLayout/SplitLayout.cjs +1 -1
  838. package/dist/components/SplitLayout/SplitLayout.cjs.map +1 -1
  839. package/dist/components/SplitLayout/SplitLayout.d.ts.map +1 -1
  840. package/dist/components/SplitLayout/SplitLayout.js +2 -1
  841. package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
  842. package/dist/components/Stack/Stack.cjs +1 -1
  843. package/dist/components/Stack/Stack.cjs.map +1 -1
  844. package/dist/components/Stack/Stack.d.ts +11 -3
  845. package/dist/components/Stack/Stack.d.ts.map +1 -1
  846. package/dist/components/Stack/Stack.js +4 -4
  847. package/dist/components/Stack/Stack.js.map +1 -1
  848. package/dist/components/Stepper/Stepper.cjs +1 -1
  849. package/dist/components/Stepper/Stepper.cjs.map +1 -1
  850. package/dist/components/Stepper/Stepper.context.cjs +1 -1
  851. package/dist/components/Stepper/Stepper.context.cjs.map +1 -1
  852. package/dist/components/Stepper/Stepper.context.js +1 -1
  853. package/dist/components/Stepper/Stepper.context.js.map +1 -1
  854. package/dist/components/Stepper/Stepper.d.ts.map +1 -1
  855. package/dist/components/Stepper/Stepper.js +4 -1
  856. package/dist/components/Stepper/Stepper.js.map +1 -1
  857. package/dist/components/Stepper/StepperContent.cjs +1 -1
  858. package/dist/components/Stepper/StepperContent.cjs.map +1 -1
  859. package/dist/components/Stepper/StepperContent.d.ts.map +1 -1
  860. package/dist/components/Stepper/StepperContent.js +1 -0
  861. package/dist/components/Stepper/StepperContent.js.map +1 -1
  862. package/dist/components/Stepper/StepperDescription.cjs +1 -1
  863. package/dist/components/Stepper/StepperDescription.cjs.map +1 -1
  864. package/dist/components/Stepper/StepperDescription.d.ts.map +1 -1
  865. package/dist/components/Stepper/StepperDescription.js +1 -0
  866. package/dist/components/Stepper/StepperDescription.js.map +1 -1
  867. package/dist/components/Stepper/StepperIndicator.cjs +1 -1
  868. package/dist/components/Stepper/StepperIndicator.cjs.map +1 -1
  869. package/dist/components/Stepper/StepperIndicator.d.ts.map +1 -1
  870. package/dist/components/Stepper/StepperIndicator.js +2 -1
  871. package/dist/components/Stepper/StepperIndicator.js.map +1 -1
  872. package/dist/components/Stepper/StepperItem.cjs +1 -1
  873. package/dist/components/Stepper/StepperItem.cjs.map +1 -1
  874. package/dist/components/Stepper/StepperItem.d.ts.map +1 -1
  875. package/dist/components/Stepper/StepperItem.js +1 -0
  876. package/dist/components/Stepper/StepperItem.js.map +1 -1
  877. package/dist/components/Stepper/StepperTitle.cjs +1 -1
  878. package/dist/components/Stepper/StepperTitle.cjs.map +1 -1
  879. package/dist/components/Stepper/StepperTitle.d.ts.map +1 -1
  880. package/dist/components/Stepper/StepperTitle.js +1 -0
  881. package/dist/components/Stepper/StepperTitle.js.map +1 -1
  882. package/dist/components/Switch/Switch.cjs +1 -1
  883. package/dist/components/Switch/Switch.cjs.map +1 -1
  884. package/dist/components/Switch/Switch.d.ts.map +1 -1
  885. package/dist/components/Switch/Switch.js +6 -3
  886. package/dist/components/Switch/Switch.js.map +1 -1
  887. package/dist/components/Switch/Switch.variants.cjs +1 -1
  888. package/dist/components/Switch/Switch.variants.cjs.map +1 -1
  889. package/dist/components/Switch/Switch.variants.d.ts.map +1 -1
  890. package/dist/components/Switch/Switch.variants.js +4 -4
  891. package/dist/components/Switch/Switch.variants.js.map +1 -1
  892. package/dist/components/Table/Table.cjs +1 -1
  893. package/dist/components/Table/Table.cjs.map +1 -1
  894. package/dist/components/Table/Table.context.cjs +1 -1
  895. package/dist/components/Table/Table.context.cjs.map +1 -1
  896. package/dist/components/Table/Table.context.js +1 -1
  897. package/dist/components/Table/Table.context.js.map +1 -1
  898. package/dist/components/Table/Table.d.ts.map +1 -1
  899. package/dist/components/Table/Table.js +3 -0
  900. package/dist/components/Table/Table.js.map +1 -1
  901. package/dist/components/Table/Table.variants.cjs +1 -1
  902. package/dist/components/Table/Table.variants.cjs.map +1 -1
  903. package/dist/components/Table/Table.variants.js.map +1 -1
  904. package/dist/components/Table/TableBody.cjs +1 -1
  905. package/dist/components/Table/TableBody.cjs.map +1 -1
  906. package/dist/components/Table/TableBody.d.ts.map +1 -1
  907. package/dist/components/Table/TableBody.js +1 -0
  908. package/dist/components/Table/TableBody.js.map +1 -1
  909. package/dist/components/Table/TableCell.cjs +1 -1
  910. package/dist/components/Table/TableCell.cjs.map +1 -1
  911. package/dist/components/Table/TableCell.d.ts.map +1 -1
  912. package/dist/components/Table/TableCell.js +1 -0
  913. package/dist/components/Table/TableCell.js.map +1 -1
  914. package/dist/components/Table/TableFooter.cjs +1 -1
  915. package/dist/components/Table/TableFooter.cjs.map +1 -1
  916. package/dist/components/Table/TableFooter.d.ts.map +1 -1
  917. package/dist/components/Table/TableFooter.js +2 -1
  918. package/dist/components/Table/TableFooter.js.map +1 -1
  919. package/dist/components/Table/TableHead.cjs +1 -1
  920. package/dist/components/Table/TableHead.cjs.map +1 -1
  921. package/dist/components/Table/TableHead.d.ts.map +1 -1
  922. package/dist/components/Table/TableHead.js +2 -1
  923. package/dist/components/Table/TableHead.js.map +1 -1
  924. package/dist/components/Table/TableHeader.cjs +1 -1
  925. package/dist/components/Table/TableHeader.cjs.map +1 -1
  926. package/dist/components/Table/TableHeader.d.ts.map +1 -1
  927. package/dist/components/Table/TableHeader.js +1 -0
  928. package/dist/components/Table/TableHeader.js.map +1 -1
  929. package/dist/components/Table/TableRow.cjs +1 -1
  930. package/dist/components/Table/TableRow.cjs.map +1 -1
  931. package/dist/components/Table/TableRow.d.ts.map +1 -1
  932. package/dist/components/Table/TableRow.js +1 -0
  933. package/dist/components/Table/TableRow.js.map +1 -1
  934. package/dist/components/Tabs/Tabs.cjs +1 -1
  935. package/dist/components/Tabs/Tabs.cjs.map +1 -1
  936. package/dist/components/Tabs/Tabs.context.cjs +1 -1
  937. package/dist/components/Tabs/Tabs.context.cjs.map +1 -1
  938. package/dist/components/Tabs/Tabs.context.js +1 -1
  939. package/dist/components/Tabs/Tabs.context.js.map +1 -1
  940. package/dist/components/Tabs/Tabs.d.ts.map +1 -1
  941. package/dist/components/Tabs/Tabs.js +1 -0
  942. package/dist/components/Tabs/Tabs.js.map +1 -1
  943. package/dist/components/Tabs/Tabs.variants.cjs +1 -1
  944. package/dist/components/Tabs/Tabs.variants.cjs.map +1 -1
  945. package/dist/components/Tabs/Tabs.variants.js.map +1 -1
  946. package/dist/components/Tabs/TabsContent.cjs +1 -1
  947. package/dist/components/Tabs/TabsContent.cjs.map +1 -1
  948. package/dist/components/Tabs/TabsContent.d.ts.map +1 -1
  949. package/dist/components/Tabs/TabsContent.js +1 -0
  950. package/dist/components/Tabs/TabsContent.js.map +1 -1
  951. package/dist/components/Tabs/TabsList.cjs +1 -1
  952. package/dist/components/Tabs/TabsList.cjs.map +1 -1
  953. package/dist/components/Tabs/TabsList.d.ts.map +1 -1
  954. package/dist/components/Tabs/TabsList.js +1 -0
  955. package/dist/components/Tabs/TabsList.js.map +1 -1
  956. package/dist/components/Tabs/TabsTrigger.cjs +1 -1
  957. package/dist/components/Tabs/TabsTrigger.cjs.map +1 -1
  958. package/dist/components/Tabs/TabsTrigger.d.ts.map +1 -1
  959. package/dist/components/Tabs/TabsTrigger.js +1 -0
  960. package/dist/components/Tabs/TabsTrigger.js.map +1 -1
  961. package/dist/components/Tag/Tag.cjs +1 -1
  962. package/dist/components/Tag/Tag.cjs.map +1 -1
  963. package/dist/components/Tag/Tag.js.map +1 -1
  964. package/dist/components/Tag/Tag.variants.cjs +1 -1
  965. package/dist/components/Tag/Tag.variants.cjs.map +1 -1
  966. package/dist/components/Tag/Tag.variants.js +1 -1
  967. package/dist/components/Tag/Tag.variants.js.map +1 -1
  968. package/dist/components/Text/Text.cjs +1 -1
  969. package/dist/components/Text/Text.cjs.map +1 -1
  970. package/dist/components/Text/Text.d.ts +1 -1
  971. package/dist/components/Text/Text.d.ts.map +1 -1
  972. package/dist/components/Text/Text.js.map +1 -1
  973. package/dist/components/Text/Text.variants.cjs +1 -1
  974. package/dist/components/Text/Text.variants.cjs.map +1 -1
  975. package/dist/components/Text/Text.variants.d.ts +1 -1
  976. package/dist/components/Text/Text.variants.d.ts.map +1 -1
  977. package/dist/components/Text/Text.variants.js +6 -1
  978. package/dist/components/Text/Text.variants.js.map +1 -1
  979. package/dist/components/Textarea/Textarea.cjs +1 -1
  980. package/dist/components/Textarea/Textarea.cjs.map +1 -1
  981. package/dist/components/Textarea/Textarea.js.map +1 -1
  982. package/dist/components/Textarea/Textarea.variants.cjs +1 -1
  983. package/dist/components/Textarea/Textarea.variants.cjs.map +1 -1
  984. package/dist/components/Textarea/Textarea.variants.js.map +1 -1
  985. package/dist/components/Timeline/Timeline.cjs +1 -1
  986. package/dist/components/Timeline/Timeline.cjs.map +1 -1
  987. package/dist/components/Timeline/Timeline.d.ts.map +1 -1
  988. package/dist/components/Timeline/Timeline.js +1 -0
  989. package/dist/components/Timeline/Timeline.js.map +1 -1
  990. package/dist/components/Timeline/Timeline.variants.cjs +1 -1
  991. package/dist/components/Timeline/Timeline.variants.cjs.map +1 -1
  992. package/dist/components/Timeline/Timeline.variants.js.map +1 -1
  993. package/dist/components/Timeline/TimelineItem.cjs +1 -1
  994. package/dist/components/Timeline/TimelineItem.cjs.map +1 -1
  995. package/dist/components/Timeline/TimelineItem.d.ts +2 -1
  996. package/dist/components/Timeline/TimelineItem.d.ts.map +1 -1
  997. package/dist/components/Timeline/TimelineItem.js +48 -28
  998. package/dist/components/Timeline/TimelineItem.js.map +1 -1
  999. package/dist/components/Toast/Toast.cjs +1 -1
  1000. package/dist/components/Toast/Toast.cjs.map +1 -1
  1001. package/dist/components/Toast/Toast.d.ts.map +1 -1
  1002. package/dist/components/Toast/Toast.js +4 -0
  1003. package/dist/components/Toast/Toast.js.map +1 -1
  1004. package/dist/components/Toast/Toast.variants.cjs +1 -1
  1005. package/dist/components/Toast/Toast.variants.cjs.map +1 -1
  1006. package/dist/components/Toast/Toast.variants.js.map +1 -1
  1007. package/dist/components/Toast/Toaster.cjs +1 -1
  1008. package/dist/components/Toast/Toaster.cjs.map +1 -1
  1009. package/dist/components/Toast/Toaster.d.ts.map +1 -1
  1010. package/dist/components/Toast/Toaster.js +1 -0
  1011. package/dist/components/Toast/Toaster.js.map +1 -1
  1012. package/dist/components/Toast/toastStore.cjs.map +1 -1
  1013. package/dist/components/Toast/toastStore.js.map +1 -1
  1014. package/dist/components/Tooltip/Tooltip.cjs +1 -1
  1015. package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
  1016. package/dist/components/Tooltip/Tooltip.context.cjs +1 -1
  1017. package/dist/components/Tooltip/Tooltip.context.cjs.map +1 -1
  1018. package/dist/components/Tooltip/Tooltip.context.js +1 -1
  1019. package/dist/components/Tooltip/Tooltip.context.js.map +1 -1
  1020. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  1021. package/dist/components/Tooltip/TooltipContent.cjs +1 -1
  1022. package/dist/components/Tooltip/TooltipContent.cjs.map +1 -1
  1023. package/dist/components/Tooltip/TooltipContent.d.ts.map +1 -1
  1024. package/dist/components/Tooltip/TooltipContent.js +1 -0
  1025. package/dist/components/Tooltip/TooltipContent.js.map +1 -1
  1026. package/dist/components/Tooltip/TooltipTrigger.cjs +1 -1
  1027. package/dist/components/Tooltip/TooltipTrigger.cjs.map +1 -1
  1028. package/dist/components/Tooltip/TooltipTrigger.d.ts.map +1 -1
  1029. package/dist/components/Tooltip/TooltipTrigger.js +1 -0
  1030. package/dist/components/Tooltip/TooltipTrigger.js.map +1 -1
  1031. package/dist/components/VisuallyHidden/VisuallyHidden.cjs +1 -1
  1032. package/dist/components/VisuallyHidden/VisuallyHidden.cjs.map +1 -1
  1033. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  1034. package/dist/hooks/use-controllable-state.cjs +1 -1
  1035. package/dist/hooks/use-controllable-state.cjs.map +1 -1
  1036. package/dist/hooks/use-controllable-state.js.map +1 -1
  1037. package/dist/hooks/use-escape-key.cjs +1 -1
  1038. package/dist/hooks/use-escape-key.cjs.map +1 -1
  1039. package/dist/hooks/use-escape-key.js.map +1 -1
  1040. package/dist/hooks/use-focus-first-interactive.cjs +1 -1
  1041. package/dist/hooks/use-focus-first-interactive.cjs.map +1 -1
  1042. package/dist/hooks/use-focus-first-interactive.js.map +1 -1
  1043. package/dist/hooks/use-focus-trap.cjs +1 -1
  1044. package/dist/hooks/use-focus-trap.cjs.map +1 -1
  1045. package/dist/hooks/use-focus-trap.js.map +1 -1
  1046. package/dist/hooks/use-form-field-props.cjs +1 -1
  1047. package/dist/hooks/use-form-field-props.cjs.map +1 -1
  1048. package/dist/hooks/use-form-field-props.js.map +1 -1
  1049. package/dist/hooks/use-media-query.cjs +1 -1
  1050. package/dist/hooks/use-media-query.cjs.map +1 -1
  1051. package/dist/hooks/use-media-query.d.ts.map +1 -1
  1052. package/dist/hooks/use-media-query.js +5 -10
  1053. package/dist/hooks/use-media-query.js.map +1 -1
  1054. package/dist/hooks/use-menu-navigation.cjs +1 -1
  1055. package/dist/hooks/use-menu-navigation.cjs.map +1 -1
  1056. package/dist/hooks/use-menu-navigation.js.map +1 -1
  1057. package/dist/hooks/use-modal-title-warning.cjs +1 -1
  1058. package/dist/hooks/use-modal-title-warning.cjs.map +1 -1
  1059. package/dist/hooks/use-modal-title-warning.js.map +1 -1
  1060. package/dist/hooks/use-option-registry.cjs +1 -1
  1061. package/dist/hooks/use-option-registry.cjs.map +1 -1
  1062. package/dist/hooks/use-option-registry.js.map +1 -1
  1063. package/dist/hooks/use-scroll-lock.cjs +1 -1
  1064. package/dist/hooks/use-scroll-lock.cjs.map +1 -1
  1065. package/dist/hooks/use-scroll-lock.js.map +1 -1
  1066. package/dist/index.cjs +1 -1
  1067. package/dist/index.d.ts +3 -1
  1068. package/dist/index.d.ts.map +1 -1
  1069. package/dist/index.js +190 -188
  1070. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.cjs +1 -1
  1071. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.cjs.map +1 -1
  1072. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +1 -1
  1073. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -1
  1074. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs +1 -1
  1075. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs.map +1 -1
  1076. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +1 -1
  1077. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -1
  1078. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.cjs +1 -1
  1079. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.cjs.map +1 -1
  1080. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.js +4 -4
  1081. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.js.map +1 -1
  1082. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.cjs +1 -1
  1083. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.cjs.map +1 -1
  1084. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js +1 -1
  1085. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js.map +1 -1
  1086. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs +1 -1
  1087. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs.map +1 -1
  1088. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +1 -1
  1089. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.cjs.map +1 -1
  1090. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.cjs.map +1 -1
  1091. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -1
  1092. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -1
  1093. package/dist/node_modules/class-variance-authority/dist/index.cjs +1 -1
  1094. package/dist/node_modules/class-variance-authority/dist/index.cjs.map +1 -1
  1095. package/dist/node_modules/class-variance-authority/dist/index.js.map +1 -1
  1096. package/dist/node_modules/clsx/dist/clsx.cjs.map +1 -1
  1097. package/dist/node_modules/clsx/dist/clsx.js.map +1 -1
  1098. package/dist/node_modules/tabbable/dist/index.esm.cjs.map +1 -1
  1099. package/dist/node_modules/tabbable/dist/index.esm.js +1 -1
  1100. package/dist/node_modules/tabbable/dist/index.esm.js.map +1 -1
  1101. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs +1 -1
  1102. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs.map +1 -1
  1103. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +211 -169
  1104. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -1
  1105. package/dist/styles-root.css +13 -2
  1106. package/dist/styles.css +23 -2
  1107. package/dist/utils/_tailwind-safelist.d.ts +2 -0
  1108. package/dist/utils/_tailwind-safelist.d.ts.map +1 -0
  1109. package/dist/utils/cn.cjs +1 -1
  1110. package/dist/utils/cn.cjs.map +1 -1
  1111. package/dist/utils/cn.js.map +1 -1
  1112. package/dist/utils/dismiss-button.cjs +1 -1
  1113. package/dist/utils/dismiss-button.cjs.map +1 -1
  1114. package/dist/utils/dismiss-button.js.map +1 -1
  1115. package/dist/utils/field-base.cjs.map +1 -1
  1116. package/dist/utils/field-base.js.map +1 -1
  1117. package/dist/utils/get-active-element.cjs.map +1 -1
  1118. package/dist/utils/get-active-element.js.map +1 -1
  1119. package/dist/utils/modal-primitive.cjs +1 -1
  1120. package/dist/utils/modal-primitive.cjs.map +1 -1
  1121. package/dist/utils/modal-primitive.d.ts.map +1 -1
  1122. package/dist/utils/modal-primitive.js +5 -0
  1123. package/dist/utils/modal-primitive.js.map +1 -1
  1124. package/dist/utils/polymorphic.d.ts +11 -0
  1125. package/dist/utils/polymorphic.d.ts.map +1 -0
  1126. package/dist/utils/portal.cjs +1 -1
  1127. package/dist/utils/portal.cjs.map +1 -1
  1128. package/dist/utils/portal.js.map +1 -1
  1129. package/dist/utils/responsive-maps.cjs +2 -0
  1130. package/dist/utils/responsive-maps.cjs.map +1 -0
  1131. package/dist/utils/responsive-maps.d.ts +50 -0
  1132. package/dist/utils/responsive-maps.d.ts.map +1 -0
  1133. package/dist/utils/responsive-maps.js +103 -0
  1134. package/dist/utils/responsive-maps.js.map +1 -0
  1135. package/dist/utils/responsive.cjs +1 -1
  1136. package/dist/utils/responsive.cjs.map +1 -1
  1137. package/dist/utils/responsive.d.ts +2 -19
  1138. package/dist/utils/responsive.d.ts.map +1 -1
  1139. package/dist/utils/responsive.js +23 -113
  1140. package/dist/utils/responsive.js.map +1 -1
  1141. package/dist/utils/roving-index.cjs.map +1 -1
  1142. package/dist/utils/roving-index.js.map +1 -1
  1143. package/dist/utils/scroll-into-view-safe.cjs.map +1 -1
  1144. package/dist/utils/scroll-into-view-safe.js.map +1 -1
  1145. package/dist/utils/slot.cjs +1 -1
  1146. package/dist/utils/slot.cjs.map +1 -1
  1147. package/dist/utils/slot.d.ts.map +1 -1
  1148. package/dist/utils/slot.js.map +1 -1
  1149. package/dist/utils/variants.cjs +1 -1
  1150. package/dist/utils/variants.cjs.map +1 -1
  1151. package/dist/utils/variants.js.map +1 -1
  1152. package/package.json +19 -9
@@ -1,2 +1,2 @@
1
- const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`./DatePicker.utils.cjs`);let n=require(`react`);n=e.__toESM(n,1);function r(e){let[r,i]=n.useState(e.focusedDate.getFullYear()),[a,o]=n.useState(e.focusedDate.getMonth());n.useEffect(()=>{e.open&&(i(e.focusedDate.getFullYear()),o(e.focusedDate.getMonth()))},[e.open,e.focusedDate]);let s=n.useMemo(()=>{let n=a-1;return t.monthHasSelectableDays(n<0?r-1:r,(n%12+12)%12,e.min,e.max)},[r,a,e.min,e.max]),c=n.useMemo(()=>{let n=a+1;return t.monthHasSelectableDays(n>11?r+1:r,n%12,e.min,e.max)},[r,a,e.min,e.max]);return{displayedYear:r,setDisplayedYear:i,displayedMonth:a,setDisplayedMonth:o,canGoPrev:s,canGoNext:c,goToPrevMonth:n.useCallback(()=>{if(!s)return;let n=new Date(r,a-1,1);i(n.getFullYear()),o(n.getMonth());let c=new Date(n.getFullYear(),n.getMonth(),Math.min(e.focusedDate.getDate(),new Date(n.getFullYear(),n.getMonth()+1,0).getDate()));e.setFocusedDate(t.clampDate(c,e.min,e.max))},[s,r,a,e]),goToNextMonth:n.useCallback(()=>{if(!c)return;let n=new Date(r,a+1,1);i(n.getFullYear()),o(n.getMonth());let s=new Date(n.getFullYear(),n.getMonth(),Math.min(e.focusedDate.getDate(),new Date(n.getFullYear(),n.getMonth()+1,0).getDate()));e.setFocusedDate(t.clampDate(s,e.min,e.max))},[c,r,a,e])}}function i(e,t,r){let i=n.useRef(null),a=n.useRef(!0);return n.useEffect(()=>{if(!e.open){a.current=!0;return}i.current&&(a.current?(a.current=!1,e.focusCalendarOnOpen.current&&requestAnimationFrame(()=>{i.current?.focus()})):requestAnimationFrame(()=>{i.current?.focus()}))},[e.open,e.focusedDate,e.focusCalendarOnOpen,t,r]),{focusedDayRef:i}}function a(e,t,r){return{handleKeyDown:n.useCallback(n=>{let i=e.focusedDate,a=!0;switch(n.key){case`ArrowLeft`:t(new Date(i.getFullYear(),i.getMonth(),i.getDate()-1),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()-1));break;case`ArrowRight`:t(new Date(i.getFullYear(),i.getMonth(),i.getDate()+1),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()+1));break;case`ArrowUp`:t(new Date(i.getFullYear(),i.getMonth(),i.getDate()-7),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()-7));break;case`ArrowDown`:t(new Date(i.getFullYear(),i.getMonth(),i.getDate()+7),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()+7));break;case`PageUp`:{let e=new Date(i.getFullYear(),i.getMonth()-1,1),n=new Date(e.getFullYear(),e.getMonth()+1,0).getDate();t(new Date(e.getFullYear(),e.getMonth(),Math.min(i.getDate(),n)),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()-1));break}case`PageDown`:{let e=new Date(i.getFullYear(),i.getMonth()+1,1),n=new Date(e.getFullYear(),e.getMonth()+1,0).getDate();t(new Date(e.getFullYear(),e.getMonth(),Math.min(i.getDate(),n)),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()+1));break}case`Home`:{let e=(i.getDay()+6)%7;t(new Date(i.getFullYear(),i.getMonth(),i.getDate()-e),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()+1));break}case`End`:{let e=(7-i.getDay())%7;t(new Date(i.getFullYear(),i.getMonth(),i.getDate()+e),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()-1));break}case`Enter`:case` `:n.preventDefault(),r(i);break;case`Escape`:e.onOpenChange(!1),requestAnimationFrame(()=>{e.triggerButtonRef.current?.focus()});break;case`Tab`:n.preventDefault(),e.onOpenChange(!1),requestAnimationFrame(()=>{e.triggerButtonRef.current?.focus()});break;default:a=!1}a&&n.preventDefault()},[e,t,r])}}exports.useCalendarFocus=i,exports.useCalendarKeyboard=a,exports.useCalendarNavigation=r;
1
+ const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("./DatePicker.utils.cjs");let n=require("react");n=e.__toESM(n,1);function r(e){let[r,i]=n.useState(e.focusedDate.getFullYear()),[a,o]=n.useState(e.focusedDate.getMonth()),[s,c]=n.useState(e.open),[l,u]=n.useState(e.focusedDate);(s!==e.open||l!==e.focusedDate)&&(c(e.open),u(e.focusedDate),e.open&&(i(e.focusedDate.getFullYear()),o(e.focusedDate.getMonth())));let d=n.useMemo(()=>{let n=a-1;return t.monthHasSelectableDays(n<0?r-1:r,(n%12+12)%12,e.min,e.max)},[r,a,e.min,e.max]),f=n.useMemo(()=>{let n=a+1;return t.monthHasSelectableDays(n>11?r+1:r,n%12,e.min,e.max)},[r,a,e.min,e.max]);return{displayedYear:r,setDisplayedYear:i,displayedMonth:a,setDisplayedMonth:o,canGoPrev:d,canGoNext:f,goToPrevMonth:n.useCallback(()=>{if(!d)return;let n=new Date(r,a-1,1);i(n.getFullYear()),o(n.getMonth());let s=new Date(n.getFullYear(),n.getMonth(),Math.min(e.focusedDate.getDate(),new Date(n.getFullYear(),n.getMonth()+1,0).getDate()));e.setFocusedDate(t.clampDate(s,e.min,e.max))},[d,r,a,e]),goToNextMonth:n.useCallback(()=>{if(!f)return;let n=new Date(r,a+1,1);i(n.getFullYear()),o(n.getMonth());let s=new Date(n.getFullYear(),n.getMonth(),Math.min(e.focusedDate.getDate(),new Date(n.getFullYear(),n.getMonth()+1,0).getDate()));e.setFocusedDate(t.clampDate(s,e.min,e.max))},[f,r,a,e])}}function i(e,t,r){let i=n.useRef(null),a=n.useRef(!0);return n.useEffect(()=>{if(!e.open){a.current=!0;return}i.current&&(a.current?(a.current=!1,e.focusCalendarOnOpen.current&&requestAnimationFrame(()=>{i.current?.focus()})):requestAnimationFrame(()=>{i.current?.focus()}))},[e.open,e.focusedDate,e.focusCalendarOnOpen,t,r]),{focusedDayRef:i}}function a(e,t,r){return{handleKeyDown:n.useCallback(n=>{let i=e.focusedDate,a=!0;switch(n.key){case`ArrowLeft`:t(new Date(i.getFullYear(),i.getMonth(),i.getDate()-1),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()-1));break;case`ArrowRight`:t(new Date(i.getFullYear(),i.getMonth(),i.getDate()+1),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()+1));break;case`ArrowUp`:t(new Date(i.getFullYear(),i.getMonth(),i.getDate()-7),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()-7));break;case`ArrowDown`:t(new Date(i.getFullYear(),i.getMonth(),i.getDate()+7),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()+7));break;case`PageUp`:{let e=new Date(i.getFullYear(),i.getMonth()-1,1),n=new Date(e.getFullYear(),e.getMonth()+1,0).getDate();t(new Date(e.getFullYear(),e.getMonth(),Math.min(i.getDate(),n)),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()-1));break}case`PageDown`:{let e=new Date(i.getFullYear(),i.getMonth()+1,1),n=new Date(e.getFullYear(),e.getMonth()+1,0).getDate();t(new Date(e.getFullYear(),e.getMonth(),Math.min(i.getDate(),n)),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()+1));break}case`Home`:{let e=(i.getDay()+6)%7;t(new Date(i.getFullYear(),i.getMonth(),i.getDate()-e),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()+1));break}case`End`:{let e=(7-i.getDay())%7;t(new Date(i.getFullYear(),i.getMonth(),i.getDate()+e),e=>new Date(e.getFullYear(),e.getMonth(),e.getDate()-1));break}case`Enter`:case` `:n.preventDefault(),r(i);break;case`Escape`:e.onOpenChange(!1),requestAnimationFrame(()=>{e.triggerButtonRef.current?.focus()});break;case`Tab`:n.preventDefault(),e.onOpenChange(!1),requestAnimationFrame(()=>{e.triggerButtonRef.current?.focus()});break;default:a=!1}a&&n.preventDefault()},[e,t,r])}}exports.useCalendarFocus=i,exports.useCalendarKeyboard=a,exports.useCalendarNavigation=r;
2
2
  //# sourceMappingURL=DatePicker.hooks.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.hooks.cjs","names":[],"sources":["../../../src/components/DatePicker/DatePicker.hooks.ts"],"sourcesContent":["// Exceeds 200 lines: three tightly related calendar hooks in one file by design.\n// useCalendarKeyboard accounts for ~165 lines due to the full ARIA grid keyboard\n// contract (12 key cases). Splitting into separate files would scatter one concern.\nimport * as React from \"react\";\nimport type { DatePickerContextValue } from \"@nuka/components/DatePicker/DatePicker.context\";\nimport {\n clampDate,\n monthHasSelectableDays,\n} from \"@nuka/components/DatePicker/DatePicker.utils\";\n\nexport function useCalendarNavigation(ctx: DatePickerContextValue) {\n const [displayedYear, setDisplayedYear] = React.useState(\n ctx.focusedDate.getFullYear(),\n );\n const [displayedMonth, setDisplayedMonth] = React.useState(\n ctx.focusedDate.getMonth(),\n );\n\n React.useEffect(() => {\n if (ctx.open) {\n setDisplayedYear(ctx.focusedDate.getFullYear());\n setDisplayedMonth(ctx.focusedDate.getMonth());\n }\n }, [ctx.open, ctx.focusedDate]);\n\n const canGoPrev = React.useMemo(() => {\n const prevMonth = displayedMonth - 1;\n const prevYear = prevMonth < 0 ? displayedYear - 1 : displayedYear;\n const normalizedMonth = ((prevMonth % 12) + 12) % 12;\n return monthHasSelectableDays(prevYear, normalizedMonth, ctx.min, ctx.max);\n }, [displayedYear, displayedMonth, ctx.min, ctx.max]);\n\n const canGoNext = React.useMemo(() => {\n const nextMonth = displayedMonth + 1;\n const nextYear = nextMonth > 11 ? displayedYear + 1 : displayedYear;\n const normalizedMonth = nextMonth % 12;\n return monthHasSelectableDays(nextYear, normalizedMonth, ctx.min, ctx.max);\n }, [displayedYear, displayedMonth, ctx.min, ctx.max]);\n\n const goToPrevMonth = React.useCallback(() => {\n if (!canGoPrev) return;\n const d = new Date(displayedYear, displayedMonth - 1, 1);\n setDisplayedYear(d.getFullYear());\n setDisplayedMonth(d.getMonth());\n const newFocused = new Date(\n d.getFullYear(),\n d.getMonth(),\n Math.min(\n ctx.focusedDate.getDate(),\n new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate(),\n ),\n );\n ctx.setFocusedDate(clampDate(newFocused, ctx.min, ctx.max));\n }, [canGoPrev, displayedYear, displayedMonth, ctx]);\n\n const goToNextMonth = React.useCallback(() => {\n if (!canGoNext) return;\n const d = new Date(displayedYear, displayedMonth + 1, 1);\n setDisplayedYear(d.getFullYear());\n setDisplayedMonth(d.getMonth());\n const newFocused = new Date(\n d.getFullYear(),\n d.getMonth(),\n Math.min(\n ctx.focusedDate.getDate(),\n new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate(),\n ),\n );\n ctx.setFocusedDate(clampDate(newFocused, ctx.min, ctx.max));\n }, [canGoNext, displayedYear, displayedMonth, ctx]);\n\n return {\n displayedYear,\n setDisplayedYear,\n displayedMonth,\n setDisplayedMonth,\n canGoPrev,\n canGoNext,\n goToPrevMonth,\n goToNextMonth,\n };\n}\n\nexport function useCalendarFocus(\n ctx: DatePickerContextValue,\n displayedYear: number,\n displayedMonth: number,\n) {\n const focusedDayRef = React.useRef<HTMLButtonElement>(null);\n const isFirstRenderRef = React.useRef(true);\n\n React.useEffect(() => {\n if (!ctx.open) {\n isFirstRenderRef.current = true;\n return;\n }\n\n if (focusedDayRef.current) {\n if (isFirstRenderRef.current) {\n isFirstRenderRef.current = false;\n if (ctx.focusCalendarOnOpen.current) {\n requestAnimationFrame(() => {\n focusedDayRef.current?.focus();\n });\n }\n } else {\n requestAnimationFrame(() => {\n focusedDayRef.current?.focus();\n });\n }\n }\n }, [\n ctx.open,\n ctx.focusedDate,\n ctx.focusCalendarOnOpen,\n displayedYear,\n displayedMonth,\n ]);\n\n return { focusedDayRef };\n}\n\nexport function useCalendarKeyboard(\n ctx: DatePickerContextValue,\n navigateToDate: (candidate: Date, stepFn: (d: Date) => Date) => void,\n selectDay: (date: Date) => void,\n) {\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n const focused = ctx.focusedDate;\n let handled = true;\n\n switch (e.key) {\n case \"ArrowLeft\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() - 1,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 1),\n );\n break;\n }\n case \"ArrowRight\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() + 1,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 1),\n );\n break;\n }\n case \"ArrowUp\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() - 7,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 7),\n );\n break;\n }\n case \"ArrowDown\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() + 7,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 7),\n );\n break;\n }\n case \"PageUp\": {\n const prevMonthDate = new Date(\n focused.getFullYear(),\n focused.getMonth() - 1,\n 1,\n );\n const maxDayInPrev = new Date(\n prevMonthDate.getFullYear(),\n prevMonthDate.getMonth() + 1,\n 0,\n ).getDate();\n const candidate = new Date(\n prevMonthDate.getFullYear(),\n prevMonthDate.getMonth(),\n Math.min(focused.getDate(), maxDayInPrev),\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 1),\n );\n break;\n }\n case \"PageDown\": {\n const nextMonthDate = new Date(\n focused.getFullYear(),\n focused.getMonth() + 1,\n 1,\n );\n const maxDayInNext = new Date(\n nextMonthDate.getFullYear(),\n nextMonthDate.getMonth() + 1,\n 0,\n ).getDate();\n const candidate = new Date(\n nextMonthDate.getFullYear(),\n nextMonthDate.getMonth(),\n Math.min(focused.getDate(), maxDayInNext),\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 1),\n );\n break;\n }\n case \"Home\": {\n const dayOfWeek = focused.getDay();\n const mondayOffset = (dayOfWeek + 6) % 7;\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() - mondayOffset,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 1),\n );\n break;\n }\n case \"End\": {\n const dayOfWeek = focused.getDay();\n const sundayOffset = (7 - dayOfWeek) % 7;\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() + sundayOffset,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 1),\n );\n break;\n }\n case \"Enter\":\n case \" \": {\n e.preventDefault();\n selectDay(focused);\n break;\n }\n case \"Escape\": {\n ctx.onOpenChange(false);\n requestAnimationFrame(() => {\n ctx.triggerButtonRef.current?.focus();\n });\n break;\n }\n case \"Tab\": {\n e.preventDefault();\n ctx.onOpenChange(false);\n requestAnimationFrame(() => {\n ctx.triggerButtonRef.current?.focus();\n });\n break;\n }\n default:\n handled = false;\n }\n\n if (handled) {\n e.preventDefault();\n }\n },\n [ctx, navigateToDate, selectDay],\n );\n\n return { handleKeyDown };\n}\n"],"mappings":"oIAUA,SAAgB,EAAsB,EAA6B,CACjE,GAAM,CAAC,EAAe,GAAoB,EAAM,SAC9C,EAAI,YAAY,aAAa,CAC9B,CACK,CAAC,EAAgB,GAAqB,EAAM,SAChD,EAAI,YAAY,UAAU,CAC3B,CAED,EAAM,cAAgB,CAChB,EAAI,OACN,EAAiB,EAAI,YAAY,aAAa,CAAC,CAC/C,EAAkB,EAAI,YAAY,UAAU,CAAC,GAE9C,CAAC,EAAI,KAAM,EAAI,YAAY,CAAC,CAE/B,IAAM,EAAY,EAAM,YAAc,CACpC,IAAM,EAAY,EAAiB,EAGnC,OAAO,EAAA,uBAFU,EAAY,EAAI,EAAgB,EAAI,GAC3B,EAAY,GAAM,IAAM,GACO,EAAI,IAAK,EAAI,IAAI,EACzE,CAAC,EAAe,EAAgB,EAAI,IAAK,EAAI,IAAI,CAAC,CAE/C,EAAY,EAAM,YAAc,CACpC,IAAM,EAAY,EAAiB,EAGnC,OAAO,EAAA,uBAFU,EAAY,GAAK,EAAgB,EAAI,EAC9B,EAAY,GACqB,EAAI,IAAK,EAAI,IAAI,EACzE,CAAC,EAAe,EAAgB,EAAI,IAAK,EAAI,IAAI,CAAC,CAkCrD,MAAO,CACL,gBACA,mBACA,iBACA,oBACA,YACA,YACA,cAvCoB,EAAM,gBAAkB,CAC5C,GAAI,CAAC,EAAW,OAChB,IAAM,EAAI,IAAI,KAAK,EAAe,EAAiB,EAAG,EAAE,CACxD,EAAiB,EAAE,aAAa,CAAC,CACjC,EAAkB,EAAE,UAAU,CAAC,CAC/B,IAAM,EAAa,IAAI,KACrB,EAAE,aAAa,CACf,EAAE,UAAU,CACZ,KAAK,IACH,EAAI,YAAY,SAAS,CACzB,IAAI,KAAK,EAAE,aAAa,CAAE,EAAE,UAAU,CAAG,EAAG,EAAE,CAAC,SAAS,CACzD,CACF,CACD,EAAI,eAAe,EAAA,UAAU,EAAY,EAAI,IAAK,EAAI,IAAI,CAAC,EAC1D,CAAC,EAAW,EAAe,EAAgB,EAAI,CAAC,CA0BjD,cAxBoB,EAAM,gBAAkB,CAC5C,GAAI,CAAC,EAAW,OAChB,IAAM,EAAI,IAAI,KAAK,EAAe,EAAiB,EAAG,EAAE,CACxD,EAAiB,EAAE,aAAa,CAAC,CACjC,EAAkB,EAAE,UAAU,CAAC,CAC/B,IAAM,EAAa,IAAI,KACrB,EAAE,aAAa,CACf,EAAE,UAAU,CACZ,KAAK,IACH,EAAI,YAAY,SAAS,CACzB,IAAI,KAAK,EAAE,aAAa,CAAE,EAAE,UAAU,CAAG,EAAG,EAAE,CAAC,SAAS,CACzD,CACF,CACD,EAAI,eAAe,EAAA,UAAU,EAAY,EAAI,IAAK,EAAI,IAAI,CAAC,EAC1D,CAAC,EAAW,EAAe,EAAgB,EAAI,CAAC,CAWlD,CAGH,SAAgB,EACd,EACA,EACA,EACA,CACA,IAAM,EAAgB,EAAM,OAA0B,KAAK,CACrD,EAAmB,EAAM,OAAO,GAAK,CA8B3C,OA5BA,EAAM,cAAgB,CACpB,GAAI,CAAC,EAAI,KAAM,CACb,EAAiB,QAAU,GAC3B,OAGE,EAAc,UACZ,EAAiB,SACnB,EAAiB,QAAU,GACvB,EAAI,oBAAoB,SAC1B,0BAA4B,CAC1B,EAAc,SAAS,OAAO,EAC9B,EAGJ,0BAA4B,CAC1B,EAAc,SAAS,OAAO,EAC9B,GAGL,CACD,EAAI,KACJ,EAAI,YACJ,EAAI,oBACJ,EACA,EACD,CAAC,CAEK,CAAE,gBAAe,CAG1B,SAAgB,EACd,EACA,EACA,EACA,CA+JA,MAAO,CAAE,cA9Ja,EAAM,YACzB,GAA2B,CAC1B,IAAM,EAAU,EAAI,YAChB,EAAU,GAEd,OAAQ,EAAE,IAAV,CACE,IAAK,YAMH,EALkB,IAAI,KACpB,EAAQ,aAAa,CACrB,EAAQ,UAAU,CAClB,EAAQ,SAAS,CAAG,EACrB,CAGE,GAAM,IAAI,KAAK,EAAE,aAAa,CAAE,EAAE,UAAU,CAAE,EAAE,SAAS,CAAG,EAAE,CAChE,CACD,MAEF,IAAK,aAMH,EALkB,IAAI,KACpB,EAAQ,aAAa,CACrB,EAAQ,UAAU,CAClB,EAAQ,SAAS,CAAG,EACrB,CAGE,GAAM,IAAI,KAAK,EAAE,aAAa,CAAE,EAAE,UAAU,CAAE,EAAE,SAAS,CAAG,EAAE,CAChE,CACD,MAEF,IAAK,UAMH,EALkB,IAAI,KACpB,EAAQ,aAAa,CACrB,EAAQ,UAAU,CAClB,EAAQ,SAAS,CAAG,EACrB,CAGE,GAAM,IAAI,KAAK,EAAE,aAAa,CAAE,EAAE,UAAU,CAAE,EAAE,SAAS,CAAG,EAAE,CAChE,CACD,MAEF,IAAK,YAMH,EALkB,IAAI,KACpB,EAAQ,aAAa,CACrB,EAAQ,UAAU,CAClB,EAAQ,SAAS,CAAG,EACrB,CAGE,GAAM,IAAI,KAAK,EAAE,aAAa,CAAE,EAAE,UAAU,CAAE,EAAE,SAAS,CAAG,EAAE,CAChE,CACD,MAEF,IAAK,SAAU,CACb,IAAM,EAAgB,IAAI,KACxB,EAAQ,aAAa,CACrB,EAAQ,UAAU,CAAG,EACrB,EACD,CACK,EAAe,IAAI,KACvB,EAAc,aAAa,CAC3B,EAAc,UAAU,CAAG,EAC3B,EACD,CAAC,SAAS,CAMX,EALkB,IAAI,KACpB,EAAc,aAAa,CAC3B,EAAc,UAAU,CACxB,KAAK,IAAI,EAAQ,SAAS,CAAE,EAAa,CAC1C,CAGE,GAAM,IAAI,KAAK,EAAE,aAAa,CAAE,EAAE,UAAU,CAAE,EAAE,SAAS,CAAG,EAAE,CAChE,CACD,MAEF,IAAK,WAAY,CACf,IAAM,EAAgB,IAAI,KACxB,EAAQ,aAAa,CACrB,EAAQ,UAAU,CAAG,EACrB,EACD,CACK,EAAe,IAAI,KACvB,EAAc,aAAa,CAC3B,EAAc,UAAU,CAAG,EAC3B,EACD,CAAC,SAAS,CAMX,EALkB,IAAI,KACpB,EAAc,aAAa,CAC3B,EAAc,UAAU,CACxB,KAAK,IAAI,EAAQ,SAAS,CAAE,EAAa,CAC1C,CAGE,GAAM,IAAI,KAAK,EAAE,aAAa,CAAE,EAAE,UAAU,CAAE,EAAE,SAAS,CAAG,EAAE,CAChE,CACD,MAEF,IAAK,OAAQ,CAEX,IAAM,GADY,EAAQ,QAAQ,CACA,GAAK,EAMvC,EALkB,IAAI,KACpB,EAAQ,aAAa,CACrB,EAAQ,UAAU,CAClB,EAAQ,SAAS,CAAG,EACrB,CAGE,GAAM,IAAI,KAAK,EAAE,aAAa,CAAE,EAAE,UAAU,CAAE,EAAE,SAAS,CAAG,EAAE,CAChE,CACD,MAEF,IAAK,MAAO,CAEV,IAAM,GAAgB,EADJ,EAAQ,QAAQ,EACK,EAMvC,EALkB,IAAI,KACpB,EAAQ,aAAa,CACrB,EAAQ,UAAU,CAClB,EAAQ,SAAS,CAAG,EACrB,CAGE,GAAM,IAAI,KAAK,EAAE,aAAa,CAAE,EAAE,UAAU,CAAE,EAAE,SAAS,CAAG,EAAE,CAChE,CACD,MAEF,IAAK,QACL,IAAK,IACH,EAAE,gBAAgB,CAClB,EAAU,EAAQ,CAClB,MAEF,IAAK,SACH,EAAI,aAAa,GAAM,CACvB,0BAA4B,CAC1B,EAAI,iBAAiB,SAAS,OAAO,EACrC,CACF,MAEF,IAAK,MACH,EAAE,gBAAgB,CAClB,EAAI,aAAa,GAAM,CACvB,0BAA4B,CAC1B,EAAI,iBAAiB,SAAS,OAAO,EACrC,CACF,MAEF,QACE,EAAU,GAGV,GACF,EAAE,gBAAgB,EAGtB,CAAC,EAAK,EAAgB,EAAU,CACjC,CAEuB"}
1
+ {"version":3,"file":"DatePicker.hooks.cjs","names":[],"sources":["../../../src/components/DatePicker/DatePicker.hooks.ts"],"sourcesContent":["// Exceeds 200 lines: three tightly related calendar hooks in one file by design.\n// useCalendarKeyboard accounts for ~165 lines due to the full ARIA grid keyboard\n// contract (12 key cases). Splitting into separate files would scatter one concern.\nimport * as React from \"react\";\nimport type { DatePickerContextValue } from \"@nuka/components/DatePicker/DatePicker.context\";\nimport {\n clampDate,\n monthHasSelectableDays,\n} from \"@nuka/components/DatePicker/DatePicker.utils\";\n\nexport function useCalendarNavigation(ctx: DatePickerContextValue) {\n const [displayedYear, setDisplayedYear] = React.useState(\n ctx.focusedDate.getFullYear(),\n );\n const [displayedMonth, setDisplayedMonth] = React.useState(\n ctx.focusedDate.getMonth(),\n );\n\n // Sync displayed month/year when the calendar opens or the focused date\n // changes (e.g. user selects a date). Uses setState during render to avoid\n // the extra paint cycle that a useEffect would introduce.\n const [prevOpen, setPrevOpen] = React.useState(ctx.open);\n const [prevFocusedDate, setPrevFocusedDate] = React.useState(ctx.focusedDate);\n if (prevOpen !== ctx.open || prevFocusedDate !== ctx.focusedDate) {\n setPrevOpen(ctx.open);\n setPrevFocusedDate(ctx.focusedDate);\n if (ctx.open) {\n setDisplayedYear(ctx.focusedDate.getFullYear());\n setDisplayedMonth(ctx.focusedDate.getMonth());\n }\n }\n\n const canGoPrev = React.useMemo(() => {\n const prevMonth = displayedMonth - 1;\n const prevYear = prevMonth < 0 ? displayedYear - 1 : displayedYear;\n const normalizedMonth = ((prevMonth % 12) + 12) % 12;\n return monthHasSelectableDays(prevYear, normalizedMonth, ctx.min, ctx.max);\n }, [displayedYear, displayedMonth, ctx.min, ctx.max]);\n\n const canGoNext = React.useMemo(() => {\n const nextMonth = displayedMonth + 1;\n const nextYear = nextMonth > 11 ? displayedYear + 1 : displayedYear;\n const normalizedMonth = nextMonth % 12;\n return monthHasSelectableDays(nextYear, normalizedMonth, ctx.min, ctx.max);\n }, [displayedYear, displayedMonth, ctx.min, ctx.max]);\n\n const goToPrevMonth = React.useCallback(() => {\n if (!canGoPrev) return;\n const d = new Date(displayedYear, displayedMonth - 1, 1);\n setDisplayedYear(d.getFullYear());\n setDisplayedMonth(d.getMonth());\n const newFocused = new Date(\n d.getFullYear(),\n d.getMonth(),\n Math.min(\n ctx.focusedDate.getDate(),\n new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate(),\n ),\n );\n ctx.setFocusedDate(clampDate(newFocused, ctx.min, ctx.max));\n }, [canGoPrev, displayedYear, displayedMonth, ctx]);\n\n const goToNextMonth = React.useCallback(() => {\n if (!canGoNext) return;\n const d = new Date(displayedYear, displayedMonth + 1, 1);\n setDisplayedYear(d.getFullYear());\n setDisplayedMonth(d.getMonth());\n const newFocused = new Date(\n d.getFullYear(),\n d.getMonth(),\n Math.min(\n ctx.focusedDate.getDate(),\n new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate(),\n ),\n );\n ctx.setFocusedDate(clampDate(newFocused, ctx.min, ctx.max));\n }, [canGoNext, displayedYear, displayedMonth, ctx]);\n\n return {\n displayedYear,\n setDisplayedYear,\n displayedMonth,\n setDisplayedMonth,\n canGoPrev,\n canGoNext,\n goToPrevMonth,\n goToNextMonth,\n };\n}\n\nexport function useCalendarFocus(\n ctx: DatePickerContextValue,\n displayedYear: number,\n displayedMonth: number,\n) {\n const focusedDayRef = React.useRef<HTMLButtonElement>(null);\n const isFirstRenderRef = React.useRef(true);\n\n React.useEffect(() => {\n if (!ctx.open) {\n isFirstRenderRef.current = true;\n return;\n }\n\n if (focusedDayRef.current) {\n if (isFirstRenderRef.current) {\n isFirstRenderRef.current = false;\n if (ctx.focusCalendarOnOpen.current) {\n requestAnimationFrame(() => {\n focusedDayRef.current?.focus();\n });\n }\n } else {\n requestAnimationFrame(() => {\n focusedDayRef.current?.focus();\n });\n }\n }\n }, [\n ctx.open,\n ctx.focusedDate,\n ctx.focusCalendarOnOpen,\n displayedYear,\n displayedMonth,\n ]);\n\n return { focusedDayRef };\n}\n\nexport function useCalendarKeyboard(\n ctx: DatePickerContextValue,\n navigateToDate: (candidate: Date, stepFn: (d: Date) => Date) => void,\n selectDay: (date: Date) => void,\n) {\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n const focused = ctx.focusedDate;\n let handled = true;\n\n switch (e.key) {\n case \"ArrowLeft\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() - 1,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 1),\n );\n break;\n }\n case \"ArrowRight\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() + 1,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 1),\n );\n break;\n }\n case \"ArrowUp\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() - 7,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 7),\n );\n break;\n }\n case \"ArrowDown\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() + 7,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 7),\n );\n break;\n }\n case \"PageUp\": {\n const prevMonthDate = new Date(\n focused.getFullYear(),\n focused.getMonth() - 1,\n 1,\n );\n const maxDayInPrev = new Date(\n prevMonthDate.getFullYear(),\n prevMonthDate.getMonth() + 1,\n 0,\n ).getDate();\n const candidate = new Date(\n prevMonthDate.getFullYear(),\n prevMonthDate.getMonth(),\n Math.min(focused.getDate(), maxDayInPrev),\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 1),\n );\n break;\n }\n case \"PageDown\": {\n const nextMonthDate = new Date(\n focused.getFullYear(),\n focused.getMonth() + 1,\n 1,\n );\n const maxDayInNext = new Date(\n nextMonthDate.getFullYear(),\n nextMonthDate.getMonth() + 1,\n 0,\n ).getDate();\n const candidate = new Date(\n nextMonthDate.getFullYear(),\n nextMonthDate.getMonth(),\n Math.min(focused.getDate(), maxDayInNext),\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 1),\n );\n break;\n }\n case \"Home\": {\n const dayOfWeek = focused.getDay();\n const mondayOffset = (dayOfWeek + 6) % 7;\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() - mondayOffset,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 1),\n );\n break;\n }\n case \"End\": {\n const dayOfWeek = focused.getDay();\n const sundayOffset = (7 - dayOfWeek) % 7;\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() + sundayOffset,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 1),\n );\n break;\n }\n case \"Enter\":\n case \" \": {\n e.preventDefault();\n selectDay(focused);\n break;\n }\n case \"Escape\": {\n ctx.onOpenChange(false);\n requestAnimationFrame(() => {\n ctx.triggerButtonRef.current?.focus();\n });\n break;\n }\n case \"Tab\": {\n e.preventDefault();\n ctx.onOpenChange(false);\n requestAnimationFrame(() => {\n ctx.triggerButtonRef.current?.focus();\n });\n break;\n }\n default:\n handled = false;\n }\n\n if (handled) {\n e.preventDefault();\n }\n },\n [ctx, navigateToDate, selectDay],\n );\n\n return { handleKeyDown };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.hooks.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePicker.hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AAM7F,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,sBAAsB;;;;;;;;;EAuEhE;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,sBAAsB,EAC3B,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM;;EAkCvB;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,sBAAsB,EAC3B,cAAc,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,EACpE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI;uBAGzB,KAAK,CAAC,aAAa;EA8J1B"}
1
+ {"version":3,"file":"DatePicker.hooks.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePicker.hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AAM7F,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,sBAAsB;;;;;;;;;EA8EhE;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,sBAAsB,EAC3B,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM;;EAkCvB;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,sBAAsB,EAC3B,cAAc,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,IAAI,KAAK,IAAI,EACpE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI;uBAGzB,KAAK,CAAC,aAAa;EA8J1B"}
@@ -2,11 +2,9 @@ import { clampDate as e, monthHasSelectableDays as t } from "./DatePicker.utils.
2
2
  import * as n from "react";
3
3
  //#region src/components/DatePicker/DatePicker.hooks.ts
4
4
  function r(r) {
5
- let [i, a] = n.useState(r.focusedDate.getFullYear()), [o, s] = n.useState(r.focusedDate.getMonth());
6
- n.useEffect(() => {
7
- r.open && (a(r.focusedDate.getFullYear()), s(r.focusedDate.getMonth()));
8
- }, [r.open, r.focusedDate]);
9
- let c = n.useMemo(() => {
5
+ let [i, a] = n.useState(r.focusedDate.getFullYear()), [o, s] = n.useState(r.focusedDate.getMonth()), [c, l] = n.useState(r.open), [u, d] = n.useState(r.focusedDate);
6
+ (c !== r.open || u !== r.focusedDate) && (l(r.open), d(r.focusedDate), r.open && (a(r.focusedDate.getFullYear()), s(r.focusedDate.getMonth())));
7
+ let f = n.useMemo(() => {
10
8
  let e = o - 1;
11
9
  return t(e < 0 ? i - 1 : i, (e % 12 + 12) % 12, r.min, r.max);
12
10
  }, [
@@ -14,7 +12,7 @@ function r(r) {
14
12
  o,
15
13
  r.min,
16
14
  r.max
17
- ]), l = n.useMemo(() => {
15
+ ]), p = n.useMemo(() => {
18
16
  let e = o + 1;
19
17
  return t(e > 11 ? i + 1 : i, e % 12, r.min, r.max);
20
18
  }, [
@@ -28,28 +26,28 @@ function r(r) {
28
26
  setDisplayedYear: a,
29
27
  displayedMonth: o,
30
28
  setDisplayedMonth: s,
31
- canGoPrev: c,
32
- canGoNext: l,
29
+ canGoPrev: f,
30
+ canGoNext: p,
33
31
  goToPrevMonth: n.useCallback(() => {
34
- if (!c) return;
32
+ if (!f) return;
35
33
  let t = new Date(i, o - 1, 1);
36
34
  a(t.getFullYear()), s(t.getMonth());
37
35
  let n = new Date(t.getFullYear(), t.getMonth(), Math.min(r.focusedDate.getDate(), new Date(t.getFullYear(), t.getMonth() + 1, 0).getDate()));
38
36
  r.setFocusedDate(e(n, r.min, r.max));
39
37
  }, [
40
- c,
38
+ f,
41
39
  i,
42
40
  o,
43
41
  r
44
42
  ]),
45
43
  goToNextMonth: n.useCallback(() => {
46
- if (!l) return;
44
+ if (!p) return;
47
45
  let t = new Date(i, o + 1, 1);
48
46
  a(t.getFullYear()), s(t.getMonth());
49
47
  let n = new Date(t.getFullYear(), t.getMonth(), Math.min(r.focusedDate.getDate(), new Date(t.getFullYear(), t.getMonth() + 1, 0).getDate()));
50
48
  r.setFocusedDate(e(n, r.min, r.max));
51
49
  }, [
52
- l,
50
+ p,
53
51
  i,
54
52
  o,
55
53
  r
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.hooks.js","names":[],"sources":["../../../src/components/DatePicker/DatePicker.hooks.ts"],"sourcesContent":["// Exceeds 200 lines: three tightly related calendar hooks in one file by design.\n// useCalendarKeyboard accounts for ~165 lines due to the full ARIA grid keyboard\n// contract (12 key cases). Splitting into separate files would scatter one concern.\nimport * as React from \"react\";\nimport type { DatePickerContextValue } from \"@nuka/components/DatePicker/DatePicker.context\";\nimport {\n clampDate,\n monthHasSelectableDays,\n} from \"@nuka/components/DatePicker/DatePicker.utils\";\n\nexport function useCalendarNavigation(ctx: DatePickerContextValue) {\n const [displayedYear, setDisplayedYear] = React.useState(\n ctx.focusedDate.getFullYear(),\n );\n const [displayedMonth, setDisplayedMonth] = React.useState(\n ctx.focusedDate.getMonth(),\n );\n\n React.useEffect(() => {\n if (ctx.open) {\n setDisplayedYear(ctx.focusedDate.getFullYear());\n setDisplayedMonth(ctx.focusedDate.getMonth());\n }\n }, [ctx.open, ctx.focusedDate]);\n\n const canGoPrev = React.useMemo(() => {\n const prevMonth = displayedMonth - 1;\n const prevYear = prevMonth < 0 ? displayedYear - 1 : displayedYear;\n const normalizedMonth = ((prevMonth % 12) + 12) % 12;\n return monthHasSelectableDays(prevYear, normalizedMonth, ctx.min, ctx.max);\n }, [displayedYear, displayedMonth, ctx.min, ctx.max]);\n\n const canGoNext = React.useMemo(() => {\n const nextMonth = displayedMonth + 1;\n const nextYear = nextMonth > 11 ? displayedYear + 1 : displayedYear;\n const normalizedMonth = nextMonth % 12;\n return monthHasSelectableDays(nextYear, normalizedMonth, ctx.min, ctx.max);\n }, [displayedYear, displayedMonth, ctx.min, ctx.max]);\n\n const goToPrevMonth = React.useCallback(() => {\n if (!canGoPrev) return;\n const d = new Date(displayedYear, displayedMonth - 1, 1);\n setDisplayedYear(d.getFullYear());\n setDisplayedMonth(d.getMonth());\n const newFocused = new Date(\n d.getFullYear(),\n d.getMonth(),\n Math.min(\n ctx.focusedDate.getDate(),\n new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate(),\n ),\n );\n ctx.setFocusedDate(clampDate(newFocused, ctx.min, ctx.max));\n }, [canGoPrev, displayedYear, displayedMonth, ctx]);\n\n const goToNextMonth = React.useCallback(() => {\n if (!canGoNext) return;\n const d = new Date(displayedYear, displayedMonth + 1, 1);\n setDisplayedYear(d.getFullYear());\n setDisplayedMonth(d.getMonth());\n const newFocused = new Date(\n d.getFullYear(),\n d.getMonth(),\n Math.min(\n ctx.focusedDate.getDate(),\n new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate(),\n ),\n );\n ctx.setFocusedDate(clampDate(newFocused, ctx.min, ctx.max));\n }, [canGoNext, displayedYear, displayedMonth, ctx]);\n\n return {\n displayedYear,\n setDisplayedYear,\n displayedMonth,\n setDisplayedMonth,\n canGoPrev,\n canGoNext,\n goToPrevMonth,\n goToNextMonth,\n };\n}\n\nexport function useCalendarFocus(\n ctx: DatePickerContextValue,\n displayedYear: number,\n displayedMonth: number,\n) {\n const focusedDayRef = React.useRef<HTMLButtonElement>(null);\n const isFirstRenderRef = React.useRef(true);\n\n React.useEffect(() => {\n if (!ctx.open) {\n isFirstRenderRef.current = true;\n return;\n }\n\n if (focusedDayRef.current) {\n if (isFirstRenderRef.current) {\n isFirstRenderRef.current = false;\n if (ctx.focusCalendarOnOpen.current) {\n requestAnimationFrame(() => {\n focusedDayRef.current?.focus();\n });\n }\n } else {\n requestAnimationFrame(() => {\n focusedDayRef.current?.focus();\n });\n }\n }\n }, [\n ctx.open,\n ctx.focusedDate,\n ctx.focusCalendarOnOpen,\n displayedYear,\n displayedMonth,\n ]);\n\n return { focusedDayRef };\n}\n\nexport function useCalendarKeyboard(\n ctx: DatePickerContextValue,\n navigateToDate: (candidate: Date, stepFn: (d: Date) => Date) => void,\n selectDay: (date: Date) => void,\n) {\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n const focused = ctx.focusedDate;\n let handled = true;\n\n switch (e.key) {\n case \"ArrowLeft\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() - 1,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 1),\n );\n break;\n }\n case \"ArrowRight\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() + 1,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 1),\n );\n break;\n }\n case \"ArrowUp\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() - 7,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 7),\n );\n break;\n }\n case \"ArrowDown\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() + 7,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 7),\n );\n break;\n }\n case \"PageUp\": {\n const prevMonthDate = new Date(\n focused.getFullYear(),\n focused.getMonth() - 1,\n 1,\n );\n const maxDayInPrev = new Date(\n prevMonthDate.getFullYear(),\n prevMonthDate.getMonth() + 1,\n 0,\n ).getDate();\n const candidate = new Date(\n prevMonthDate.getFullYear(),\n prevMonthDate.getMonth(),\n Math.min(focused.getDate(), maxDayInPrev),\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 1),\n );\n break;\n }\n case \"PageDown\": {\n const nextMonthDate = new Date(\n focused.getFullYear(),\n focused.getMonth() + 1,\n 1,\n );\n const maxDayInNext = new Date(\n nextMonthDate.getFullYear(),\n nextMonthDate.getMonth() + 1,\n 0,\n ).getDate();\n const candidate = new Date(\n nextMonthDate.getFullYear(),\n nextMonthDate.getMonth(),\n Math.min(focused.getDate(), maxDayInNext),\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 1),\n );\n break;\n }\n case \"Home\": {\n const dayOfWeek = focused.getDay();\n const mondayOffset = (dayOfWeek + 6) % 7;\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() - mondayOffset,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 1),\n );\n break;\n }\n case \"End\": {\n const dayOfWeek = focused.getDay();\n const sundayOffset = (7 - dayOfWeek) % 7;\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() + sundayOffset,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 1),\n );\n break;\n }\n case \"Enter\":\n case \" \": {\n e.preventDefault();\n selectDay(focused);\n break;\n }\n case \"Escape\": {\n ctx.onOpenChange(false);\n requestAnimationFrame(() => {\n ctx.triggerButtonRef.current?.focus();\n });\n break;\n }\n case \"Tab\": {\n e.preventDefault();\n ctx.onOpenChange(false);\n requestAnimationFrame(() => {\n ctx.triggerButtonRef.current?.focus();\n });\n break;\n }\n default:\n handled = false;\n }\n\n if (handled) {\n e.preventDefault();\n }\n },\n [ctx, navigateToDate, selectDay],\n );\n\n return { handleKeyDown };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"DatePicker.hooks.js","names":[],"sources":["../../../src/components/DatePicker/DatePicker.hooks.ts"],"sourcesContent":["// Exceeds 200 lines: three tightly related calendar hooks in one file by design.\n// useCalendarKeyboard accounts for ~165 lines due to the full ARIA grid keyboard\n// contract (12 key cases). Splitting into separate files would scatter one concern.\nimport * as React from \"react\";\nimport type { DatePickerContextValue } from \"@nuka/components/DatePicker/DatePicker.context\";\nimport {\n clampDate,\n monthHasSelectableDays,\n} from \"@nuka/components/DatePicker/DatePicker.utils\";\n\nexport function useCalendarNavigation(ctx: DatePickerContextValue) {\n const [displayedYear, setDisplayedYear] = React.useState(\n ctx.focusedDate.getFullYear(),\n );\n const [displayedMonth, setDisplayedMonth] = React.useState(\n ctx.focusedDate.getMonth(),\n );\n\n // Sync displayed month/year when the calendar opens or the focused date\n // changes (e.g. user selects a date). Uses setState during render to avoid\n // the extra paint cycle that a useEffect would introduce.\n const [prevOpen, setPrevOpen] = React.useState(ctx.open);\n const [prevFocusedDate, setPrevFocusedDate] = React.useState(ctx.focusedDate);\n if (prevOpen !== ctx.open || prevFocusedDate !== ctx.focusedDate) {\n setPrevOpen(ctx.open);\n setPrevFocusedDate(ctx.focusedDate);\n if (ctx.open) {\n setDisplayedYear(ctx.focusedDate.getFullYear());\n setDisplayedMonth(ctx.focusedDate.getMonth());\n }\n }\n\n const canGoPrev = React.useMemo(() => {\n const prevMonth = displayedMonth - 1;\n const prevYear = prevMonth < 0 ? displayedYear - 1 : displayedYear;\n const normalizedMonth = ((prevMonth % 12) + 12) % 12;\n return monthHasSelectableDays(prevYear, normalizedMonth, ctx.min, ctx.max);\n }, [displayedYear, displayedMonth, ctx.min, ctx.max]);\n\n const canGoNext = React.useMemo(() => {\n const nextMonth = displayedMonth + 1;\n const nextYear = nextMonth > 11 ? displayedYear + 1 : displayedYear;\n const normalizedMonth = nextMonth % 12;\n return monthHasSelectableDays(nextYear, normalizedMonth, ctx.min, ctx.max);\n }, [displayedYear, displayedMonth, ctx.min, ctx.max]);\n\n const goToPrevMonth = React.useCallback(() => {\n if (!canGoPrev) return;\n const d = new Date(displayedYear, displayedMonth - 1, 1);\n setDisplayedYear(d.getFullYear());\n setDisplayedMonth(d.getMonth());\n const newFocused = new Date(\n d.getFullYear(),\n d.getMonth(),\n Math.min(\n ctx.focusedDate.getDate(),\n new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate(),\n ),\n );\n ctx.setFocusedDate(clampDate(newFocused, ctx.min, ctx.max));\n }, [canGoPrev, displayedYear, displayedMonth, ctx]);\n\n const goToNextMonth = React.useCallback(() => {\n if (!canGoNext) return;\n const d = new Date(displayedYear, displayedMonth + 1, 1);\n setDisplayedYear(d.getFullYear());\n setDisplayedMonth(d.getMonth());\n const newFocused = new Date(\n d.getFullYear(),\n d.getMonth(),\n Math.min(\n ctx.focusedDate.getDate(),\n new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate(),\n ),\n );\n ctx.setFocusedDate(clampDate(newFocused, ctx.min, ctx.max));\n }, [canGoNext, displayedYear, displayedMonth, ctx]);\n\n return {\n displayedYear,\n setDisplayedYear,\n displayedMonth,\n setDisplayedMonth,\n canGoPrev,\n canGoNext,\n goToPrevMonth,\n goToNextMonth,\n };\n}\n\nexport function useCalendarFocus(\n ctx: DatePickerContextValue,\n displayedYear: number,\n displayedMonth: number,\n) {\n const focusedDayRef = React.useRef<HTMLButtonElement>(null);\n const isFirstRenderRef = React.useRef(true);\n\n React.useEffect(() => {\n if (!ctx.open) {\n isFirstRenderRef.current = true;\n return;\n }\n\n if (focusedDayRef.current) {\n if (isFirstRenderRef.current) {\n isFirstRenderRef.current = false;\n if (ctx.focusCalendarOnOpen.current) {\n requestAnimationFrame(() => {\n focusedDayRef.current?.focus();\n });\n }\n } else {\n requestAnimationFrame(() => {\n focusedDayRef.current?.focus();\n });\n }\n }\n }, [\n ctx.open,\n ctx.focusedDate,\n ctx.focusCalendarOnOpen,\n displayedYear,\n displayedMonth,\n ]);\n\n return { focusedDayRef };\n}\n\nexport function useCalendarKeyboard(\n ctx: DatePickerContextValue,\n navigateToDate: (candidate: Date, stepFn: (d: Date) => Date) => void,\n selectDay: (date: Date) => void,\n) {\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n const focused = ctx.focusedDate;\n let handled = true;\n\n switch (e.key) {\n case \"ArrowLeft\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() - 1,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 1),\n );\n break;\n }\n case \"ArrowRight\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() + 1,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 1),\n );\n break;\n }\n case \"ArrowUp\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() - 7,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 7),\n );\n break;\n }\n case \"ArrowDown\": {\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() + 7,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 7),\n );\n break;\n }\n case \"PageUp\": {\n const prevMonthDate = new Date(\n focused.getFullYear(),\n focused.getMonth() - 1,\n 1,\n );\n const maxDayInPrev = new Date(\n prevMonthDate.getFullYear(),\n prevMonthDate.getMonth() + 1,\n 0,\n ).getDate();\n const candidate = new Date(\n prevMonthDate.getFullYear(),\n prevMonthDate.getMonth(),\n Math.min(focused.getDate(), maxDayInPrev),\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 1),\n );\n break;\n }\n case \"PageDown\": {\n const nextMonthDate = new Date(\n focused.getFullYear(),\n focused.getMonth() + 1,\n 1,\n );\n const maxDayInNext = new Date(\n nextMonthDate.getFullYear(),\n nextMonthDate.getMonth() + 1,\n 0,\n ).getDate();\n const candidate = new Date(\n nextMonthDate.getFullYear(),\n nextMonthDate.getMonth(),\n Math.min(focused.getDate(), maxDayInNext),\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 1),\n );\n break;\n }\n case \"Home\": {\n const dayOfWeek = focused.getDay();\n const mondayOffset = (dayOfWeek + 6) % 7;\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() - mondayOffset,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() + 1),\n );\n break;\n }\n case \"End\": {\n const dayOfWeek = focused.getDay();\n const sundayOffset = (7 - dayOfWeek) % 7;\n const candidate = new Date(\n focused.getFullYear(),\n focused.getMonth(),\n focused.getDate() + sundayOffset,\n );\n navigateToDate(\n candidate,\n (d) => new Date(d.getFullYear(), d.getMonth(), d.getDate() - 1),\n );\n break;\n }\n case \"Enter\":\n case \" \": {\n e.preventDefault();\n selectDay(focused);\n break;\n }\n case \"Escape\": {\n ctx.onOpenChange(false);\n requestAnimationFrame(() => {\n ctx.triggerButtonRef.current?.focus();\n });\n break;\n }\n case \"Tab\": {\n e.preventDefault();\n ctx.onOpenChange(false);\n requestAnimationFrame(() => {\n ctx.triggerButtonRef.current?.focus();\n });\n break;\n }\n default:\n handled = false;\n }\n\n if (handled) {\n e.preventDefault();\n }\n },\n [ctx, navigateToDate, selectDay],\n );\n\n return { handleKeyDown };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","names":[],"sources":["../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport {\n useFloating,\n useDismiss,\n useRole,\n useInteractions,\n offset,\n flip,\n shift,\n autoUpdate,\n} from \"@floating-ui/react\";\nimport { useControllableState } from \"@nuka/hooks/use-controllable-state\";\nimport { DatePickerContext } from \"@nuka/components/DatePicker/DatePicker.context\";\nimport type { DatePickerContextValue } from \"@nuka/components/DatePicker/DatePicker.context\";\nimport {\n defaultFormatDate,\n defaultParseDate,\n clampDate,\n} from \"@nuka/components/DatePicker/DatePicker.utils\";\n\nexport interface DatePickerProps {\n children: React.ReactNode;\n value?: Date | undefined;\n defaultValue?: Date | undefined;\n onValueChange?: (date: Date | undefined) => void;\n disabled?: boolean | undefined;\n min?: Date | undefined;\n max?: Date | undefined;\n formatDate?: ((date: Date) => string) | undefined;\n parseDate?: ((input: string) => Date | null) | undefined;\n locale?: string | undefined;\n}\n\nfunction DatePicker({\n children,\n value: controlledValue,\n defaultValue,\n onValueChange,\n disabled = false,\n min,\n max,\n formatDate,\n parseDate,\n locale,\n}: DatePickerProps) {\n const effectiveFormatDate = formatDate ?? defaultFormatDate;\n const effectiveParseDate = parseDate ?? defaultParseDate;\n const [selectedDate, setSelectedDate] = useControllableState(\n controlledValue,\n defaultValue,\n onValueChange,\n );\n\n const [open, setOpen] = React.useState(false);\n\n const today = React.useMemo(() => {\n const now = new Date();\n return new Date(now.getFullYear(), now.getMonth(), now.getDate());\n }, []);\n\n const initialFocusDate = React.useMemo(() => {\n if (selectedDate !== undefined) return selectedDate;\n return clampDate(today, min, max);\n }, [selectedDate, today, min, max]);\n\n const [focusedDate, setFocusedDate] = React.useState(initialFocusDate);\n\n const handleOpenChange = React.useCallback(\n (nextOpen: boolean) => {\n setOpen(nextOpen);\n if (nextOpen) {\n const target = selectedDate ?? clampDate(today, min, max);\n setFocusedDate(target);\n }\n },\n [selectedDate, today, min, max],\n );\n\n const { refs, floatingStyles, context } = useFloating({\n open,\n onOpenChange: handleOpenChange,\n placement: \"bottom-start\",\n middleware: [offset(8), flip(), shift({ padding: 8 })],\n whileElementsMounted: autoUpdate,\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: \"dialog\" });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n dismiss,\n role,\n ]);\n\n const baseId = React.useId();\n const triggerButtonRef = React.useRef<HTMLButtonElement>(null);\n const focusCalendarOnOpen = React.useRef(false);\n\n const contextValue: DatePickerContextValue = React.useMemo(\n () => ({\n open,\n onOpenChange: handleOpenChange,\n selectedDate,\n onSelectedDateChange: setSelectedDate,\n focusedDate,\n setFocusedDate,\n disabled,\n min,\n max,\n refs,\n floatingStyles,\n getReferenceProps,\n getFloatingProps,\n baseId,\n triggerButtonRef,\n focusCalendarOnOpen,\n formatDate: effectiveFormatDate,\n parseDate: effectiveParseDate,\n locale,\n }),\n [\n open,\n handleOpenChange,\n selectedDate,\n setSelectedDate,\n focusedDate,\n setFocusedDate,\n disabled,\n min,\n max,\n refs,\n floatingStyles,\n getReferenceProps,\n getFloatingProps,\n baseId,\n triggerButtonRef,\n focusCalendarOnOpen,\n effectiveFormatDate,\n effectiveParseDate,\n locale,\n ],\n );\n\n return <DatePickerContext value={contextValue}>{children}</DatePickerContext>;\n}\n\nDatePicker.displayName = \"DatePicker\";\n\nexport { DatePicker };\nexport {\n DatePickerInput,\n type DatePickerInputProps,\n} from \"@nuka/components/DatePicker/DatePickerInput\";\nexport {\n DatePickerCalendar,\n type DatePickerCalendarProps,\n} from \"@nuka/components/DatePicker/DatePickerCalendar\";\n"],"mappings":";;;;;;;;;;;;AAkCA,SAAS,EAAW,EAClB,aACA,OAAO,GACP,iBACA,kBACA,cAAW,IACX,QACA,QACA,eACA,cACA,aACkB;CAClB,IAAM,IAAsB,KAAc,GACpC,IAAqB,KAAa,GAClC,CAAC,GAAc,KAAmB,EACtC,GACA,GACA,EACD,EAEK,CAAC,GAAM,KAAW,EAAM,SAAS,GAAM,EAEvC,IAAQ,EAAM,cAAc;EAChC,IAAM,oBAAM,IAAI,MAAM;AACtB,SAAO,IAAI,KAAK,EAAI,aAAa,EAAE,EAAI,UAAU,EAAE,EAAI,SAAS,CAAC;IAChE,EAAE,CAAC,EAEA,IAAmB,EAAM,cACzB,MAAiB,KAAA,IACd,EAAU,GAAO,GAAK,EAAI,GADM,GAEtC;EAAC;EAAc;EAAO;EAAK;EAAI,CAAC,EAE7B,CAAC,GAAa,KAAkB,EAAM,SAAS,EAAiB,EAEhE,IAAmB,EAAM,aAC5B,MAAsB;AAErB,EADA,EAAQ,EAAS,EACb,KAEF,EADe,KAAgB,EAAU,GAAO,GAAK,EAAI,CACnC;IAG1B;EAAC;EAAc;EAAO;EAAK;EAAI,CAChC,EAEK,EAAE,SAAM,mBAAgB,eAAY,EAAY;EACpD;EACA,cAAc;EACd,WAAW;EACX,YAAY;GAAC,EAAO,EAAE;GAAE,GAAM;GAAE,EAAM,EAAE,SAAS,GAAG,CAAC;GAAC;EACtD,sBAAsB;EACvB,CAAC,EAKI,EAAE,sBAAmB,wBAAqB,EAAgB,CAHhD,EAAW,EAAQ,EACtB,EAAQ,GAAS,EAAE,MAAM,UAAU,CAAC,CAKhD,CAAC,EAEI,IAAS,EAAM,OAAO,EACtB,IAAmB,EAAM,OAA0B,KAAK,EACxD,IAAsB,EAAM,OAAO,GAAM;AA+C/C,QAAO,kBAAC,GAAD;EAAmB,OA7CmB,EAAM,eAC1C;GACL;GACA,cAAc;GACd;GACA,sBAAsB;GACtB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,YAAY;GACZ,WAAW;GACX;GACD,GACD;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,CACF;EAE+C;EAA6B,CAAA;;AAG/E,EAAW,cAAc"}
1
+ {"version":3,"file":"DatePicker.js","names":[],"sources":["../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["\"use client\";\nimport * as React from \"react\";\nimport {\n useFloating,\n useDismiss,\n useRole,\n useInteractions,\n offset,\n flip,\n shift,\n autoUpdate,\n} from \"@floating-ui/react\";\nimport { useControllableState } from \"@nuka/hooks/use-controllable-state\";\nimport { DatePickerContext } from \"@nuka/components/DatePicker/DatePicker.context\";\nimport type { DatePickerContextValue } from \"@nuka/components/DatePicker/DatePicker.context\";\nimport {\n defaultFormatDate,\n defaultParseDate,\n clampDate,\n} from \"@nuka/components/DatePicker/DatePicker.utils\";\n\nexport interface DatePickerProps {\n children: React.ReactNode;\n value?: Date | undefined;\n defaultValue?: Date | undefined;\n onValueChange?: (date: Date | undefined) => void;\n disabled?: boolean | undefined;\n min?: Date | undefined;\n max?: Date | undefined;\n formatDate?: ((date: Date) => string) | undefined;\n parseDate?: ((input: string) => Date | null) | undefined;\n locale?: string | undefined;\n}\n\nfunction DatePicker({\n children,\n value: controlledValue,\n defaultValue,\n onValueChange,\n disabled = false,\n min,\n max,\n formatDate,\n parseDate,\n locale,\n}: DatePickerProps) {\n const effectiveFormatDate = formatDate ?? defaultFormatDate;\n const effectiveParseDate = parseDate ?? defaultParseDate;\n const [selectedDate, setSelectedDate] = useControllableState(\n controlledValue,\n defaultValue,\n onValueChange,\n );\n\n const [open, setOpen] = React.useState(false);\n\n const today = React.useMemo(() => {\n const now = new Date();\n return new Date(now.getFullYear(), now.getMonth(), now.getDate());\n }, []);\n\n const initialFocusDate = React.useMemo(() => {\n if (selectedDate !== undefined) return selectedDate;\n return clampDate(today, min, max);\n }, [selectedDate, today, min, max]);\n\n const [focusedDate, setFocusedDate] = React.useState(initialFocusDate);\n\n const handleOpenChange = React.useCallback(\n (nextOpen: boolean) => {\n setOpen(nextOpen);\n if (nextOpen) {\n const target = selectedDate ?? clampDate(today, min, max);\n setFocusedDate(target);\n }\n },\n [selectedDate, today, min, max],\n );\n\n const { refs, floatingStyles, context } = useFloating({\n open,\n onOpenChange: handleOpenChange,\n placement: \"bottom-start\",\n middleware: [offset(8), flip(), shift({ padding: 8 })],\n whileElementsMounted: autoUpdate,\n });\n\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: \"dialog\" });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([\n dismiss,\n role,\n ]);\n\n const baseId = React.useId();\n const triggerButtonRef = React.useRef<HTMLButtonElement>(null);\n const focusCalendarOnOpenRef = React.useRef(false);\n\n const contextValue: DatePickerContextValue = React.useMemo(\n () => ({\n open,\n onOpenChange: handleOpenChange,\n selectedDate,\n onSelectedDateChange: setSelectedDate,\n focusedDate,\n setFocusedDate,\n disabled,\n min,\n max,\n refs,\n floatingStyles,\n getReferenceProps,\n getFloatingProps,\n baseId,\n triggerButtonRef,\n focusCalendarOnOpen: focusCalendarOnOpenRef,\n formatDate: effectiveFormatDate,\n parseDate: effectiveParseDate,\n locale,\n }),\n [\n open,\n handleOpenChange,\n selectedDate,\n setSelectedDate,\n focusedDate,\n setFocusedDate,\n disabled,\n min,\n max,\n refs,\n floatingStyles,\n getReferenceProps,\n getFloatingProps,\n baseId,\n triggerButtonRef,\n focusCalendarOnOpenRef,\n effectiveFormatDate,\n effectiveParseDate,\n locale,\n ],\n );\n\n return <DatePickerContext value={contextValue}>{children}</DatePickerContext>;\n}\n\nDatePicker.displayName = \"DatePicker\";\n\nexport { DatePicker };\nexport {\n DatePickerInput,\n type DatePickerInputProps,\n} from \"@nuka/components/DatePicker/DatePickerInput\";\nexport {\n DatePickerCalendar,\n type DatePickerCalendarProps,\n} from \"@nuka/components/DatePicker/DatePickerCalendar\";\n"],"mappings":";;;;;;;;;;;;AAkCA,SAAS,EAAW,EAClB,aACA,OAAO,GACP,iBACA,kBACA,cAAW,IACX,QACA,QACA,eACA,cACA,aACkB;CAClB,IAAM,IAAsB,KAAc,GACpC,IAAqB,KAAa,GAClC,CAAC,GAAc,KAAmB,EACtC,GACA,GACA,CACF,GAEM,CAAC,GAAM,KAAW,EAAM,SAAS,EAAK,GAEtC,IAAQ,EAAM,cAAc;EAChC,IAAM,oBAAM,IAAI,KAAK;EACrB,OAAO,IAAI,KAAK,EAAI,YAAY,GAAG,EAAI,SAAS,GAAG,EAAI,QAAQ,CAAC;CAClE,GAAG,CAAC,CAAC,GAEC,IAAmB,EAAM,cACzB,MAAiB,KAAA,IACd,EAAU,GAAO,GAAK,CAAG,IADO,GAEtC;EAAC;EAAc;EAAO;EAAK;CAAG,CAAC,GAE5B,CAAC,GAAa,KAAkB,EAAM,SAAS,CAAgB,GAE/D,IAAmB,EAAM,aAC5B,MAAsB;EAErB,AADA,EAAQ,CAAQ,GACZ,KAEF,EADe,KAAgB,EAAU,GAAO,GAAK,CAAG,CACnC;CAEzB,GACA;EAAC;EAAc;EAAO;EAAK;CAAG,CAChC,GAEM,EAAE,SAAM,mBAAgB,eAAY,EAAY;EACpD;EACA,cAAc;EACd,WAAW;EACX,YAAY;GAAC,EAAO,CAAC;GAAG,EAAK;GAAG,EAAM,EAAE,SAAS,EAAE,CAAC;EAAC;EACrD,sBAAsB;CACxB,CAAC,GAKK,EAAE,sBAAmB,wBAAqB,EAAgB,CAHhD,EAAW,CAIzB,GAHW,EAAQ,GAAS,EAAE,MAAM,SAAS,CAI7C,CACF,CAAC,GAEK,IAAS,EAAM,MAAM,GACrB,IAAmB,EAAM,OAA0B,IAAI,GACvD,IAAyB,EAAM,OAAO,EAAK;CA+CjD,OAAO,kBAAC,GAAD;EAAmB,OA7CmB,EAAM,eAC1C;GACL;GACA,cAAc;GACd;GACA,sBAAsB;GACtB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,qBAAqB;GACrB,YAAY;GACZ,WAAW;GACX;EACF,IACA;GACE;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAG+B;EAAe;CAA4B,CAAA;AAC9E;AAEA,EAAW,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.utils.cjs","names":[],"sources":["../../../src/components/DatePicker/DatePicker.utils.ts"],"sourcesContent":["export function isSameDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nexport function isDateDisabled(\n date: Date,\n min: Date | undefined,\n max: Date | undefined,\n): boolean {\n const dateStart = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n );\n if (min !== undefined) {\n const minStart = new Date(min.getFullYear(), min.getMonth(), min.getDate());\n if (dateStart < minStart) return true;\n }\n if (max !== undefined) {\n const maxEnd = new Date(max.getFullYear(), max.getMonth(), max.getDate());\n if (dateStart > maxEnd) return true;\n }\n return false;\n}\n\nexport function defaultFormatDate(date: Date): string {\n const y = date.getFullYear();\n const m = String(date.getMonth() + 1).padStart(2, \"0\");\n const d = String(date.getDate()).padStart(2, \"0\");\n return `${String(y)}-${m}-${d}`;\n}\n\nexport function defaultParseDate(input: string): Date | null {\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(input);\n if (!match) return null;\n const year = Number(match[1]);\n const month = Number(match[2]);\n const day = Number(match[3]);\n if (month < 1 || month > 12) return null;\n const maxDay = new Date(year, month, 0).getDate();\n if (day < 1 || day > maxDay) return null;\n return new Date(year, month - 1, day);\n}\n\nexport function buildMonthGrid(\n year: number,\n month: number,\n): (number | null)[][] {\n const firstDay = new Date(year, month, 1).getDay();\n const leadingEmpties = (firstDay + 6) % 7;\n const totalDays = new Date(year, month + 1, 0).getDate();\n\n const cells: (number | null)[] = [];\n for (let i = 0; i < leadingEmpties; i++) cells.push(null);\n for (let d = 1; d <= totalDays; d++) cells.push(d);\n while (cells.length % 7 !== 0) cells.push(null);\n\n const weeks: (number | null)[][] = [];\n for (let i = 0; i < cells.length; i += 7) {\n weeks.push(cells.slice(i, i + 7));\n }\n return weeks;\n}\n\nexport function clampDate(\n date: Date,\n min: Date | undefined,\n max: Date | undefined,\n): Date {\n if (min !== undefined && date < min)\n return new Date(min.getFullYear(), min.getMonth(), min.getDate());\n if (max !== undefined && date > max)\n return new Date(max.getFullYear(), max.getMonth(), max.getDate());\n return date;\n}\n\nexport function monthHasSelectableDays(\n year: number,\n month: number,\n min: Date | undefined,\n max: Date | undefined,\n): boolean {\n const totalDays = new Date(year, month + 1, 0).getDate();\n const firstOfMonth = new Date(year, month, 1);\n const lastOfMonth = new Date(year, month, totalDays);\n if (\n min !== undefined &&\n lastOfMonth < new Date(min.getFullYear(), min.getMonth(), min.getDate())\n )\n return false;\n if (\n max !== undefined &&\n firstOfMonth > new Date(max.getFullYear(), max.getMonth(), max.getDate())\n )\n return false;\n return true;\n}\n"],"mappings":"AAAA,SAAgB,EAAU,EAAS,EAAkB,CACnD,OACE,EAAE,aAAa,GAAK,EAAE,aAAa,EACnC,EAAE,UAAU,GAAK,EAAE,UAAU,EAC7B,EAAE,SAAS,GAAK,EAAE,SAAS,CAI/B,SAAgB,EACd,EACA,EACA,EACS,CACT,IAAM,EAAY,IAAI,KACpB,EAAK,aAAa,CAClB,EAAK,UAAU,CACf,EAAK,SAAS,CACf,CASD,OARI,IAAQ,IAAA,IAEN,EADa,IAAI,KAAK,EAAI,aAAa,CAAE,EAAI,UAAU,CAAE,EAAI,SAAS,CAAC,EAGzE,IAAQ,IAAA,IAEN,EADW,IAAI,KAAK,EAAI,aAAa,CAAE,EAAI,UAAU,CAAE,EAAI,SAAS,CAAC,CAM7E,SAAgB,EAAkB,EAAoB,CACpD,IAAM,EAAI,EAAK,aAAa,CACtB,EAAI,OAAO,EAAK,UAAU,CAAG,EAAE,CAAC,SAAS,EAAG,IAAI,CAChD,EAAI,OAAO,EAAK,SAAS,CAAC,CAAC,SAAS,EAAG,IAAI,CACjD,MAAO,GAAG,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,IAG9B,SAAgB,EAAiB,EAA4B,CAC3D,IAAM,EAAQ,4BAA4B,KAAK,EAAM,CACrD,GAAI,CAAC,EAAO,OAAO,KACnB,IAAM,EAAO,OAAO,EAAM,GAAG,CACvB,EAAQ,OAAO,EAAM,GAAG,CACxB,EAAM,OAAO,EAAM,GAAG,CAC5B,GAAI,EAAQ,GAAK,EAAQ,GAAI,OAAO,KACpC,IAAM,EAAS,IAAI,KAAK,EAAM,EAAO,EAAE,CAAC,SAAS,CAEjD,OADI,EAAM,GAAK,EAAM,EAAe,KAC7B,IAAI,KAAK,EAAM,EAAQ,EAAG,EAAI,CAGvC,SAAgB,EACd,EACA,EACqB,CAErB,IAAM,GADW,IAAI,KAAK,EAAM,EAAO,EAAE,CAAC,QAAQ,CACf,GAAK,EAClC,EAAY,IAAI,KAAK,EAAM,EAAQ,EAAG,EAAE,CAAC,SAAS,CAElD,EAA2B,EAAE,CACnC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAgB,IAAK,EAAM,KAAK,KAAK,CACzD,IAAK,IAAI,EAAI,EAAG,GAAK,EAAW,IAAK,EAAM,KAAK,EAAE,CAClD,KAAO,EAAM,OAAS,GAAM,GAAG,EAAM,KAAK,KAAK,CAE/C,IAAM,EAA6B,EAAE,CACrC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,GAAK,EACrC,EAAM,KAAK,EAAM,MAAM,EAAG,EAAI,EAAE,CAAC,CAEnC,OAAO,EAGT,SAAgB,EACd,EACA,EACA,EACM,CAKN,OAJI,IAAQ,IAAA,IAAa,EAAO,EACvB,IAAI,KAAK,EAAI,aAAa,CAAE,EAAI,UAAU,CAAE,EAAI,SAAS,CAAC,CAC/D,IAAQ,IAAA,IAAa,EAAO,EACvB,IAAI,KAAK,EAAI,aAAa,CAAE,EAAI,UAAU,CAAE,EAAI,SAAS,CAAC,CAC5D,EAGT,SAAgB,EACd,EACA,EACA,EACA,EACS,CACT,IAAM,EAAY,IAAI,KAAK,EAAM,EAAQ,EAAG,EAAE,CAAC,SAAS,CAClD,EAAe,IAAI,KAAK,EAAM,EAAO,EAAE,CACvC,EAAc,IAAI,KAAK,EAAM,EAAO,EAAU,CAWpD,MALA,EAJE,IAAQ,IAAA,IACR,EAAc,IAAI,KAAK,EAAI,aAAa,CAAE,EAAI,UAAU,CAAE,EAAI,SAAS,CAAC,EAIxE,IAAQ,IAAA,IACR,EAAe,IAAI,KAAK,EAAI,aAAa,CAAE,EAAI,UAAU,CAAE,EAAI,SAAS,CAAC"}
1
+ {"version":3,"file":"DatePicker.utils.cjs","names":[],"sources":["../../../src/components/DatePicker/DatePicker.utils.ts"],"sourcesContent":["export function isSameDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nexport function isDateDisabled(\n date: Date,\n min: Date | undefined,\n max: Date | undefined,\n): boolean {\n const dateStart = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n );\n if (min !== undefined) {\n const minStart = new Date(min.getFullYear(), min.getMonth(), min.getDate());\n if (dateStart < minStart) return true;\n }\n if (max !== undefined) {\n const maxEnd = new Date(max.getFullYear(), max.getMonth(), max.getDate());\n if (dateStart > maxEnd) return true;\n }\n return false;\n}\n\nexport function defaultFormatDate(date: Date): string {\n const y = date.getFullYear();\n const m = String(date.getMonth() + 1).padStart(2, \"0\");\n const d = String(date.getDate()).padStart(2, \"0\");\n return `${String(y)}-${m}-${d}`;\n}\n\nexport function defaultParseDate(input: string): Date | null {\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(input);\n if (!match) return null;\n const year = Number(match[1]);\n const month = Number(match[2]);\n const day = Number(match[3]);\n if (month < 1 || month > 12) return null;\n const maxDay = new Date(year, month, 0).getDate();\n if (day < 1 || day > maxDay) return null;\n return new Date(year, month - 1, day);\n}\n\nexport function buildMonthGrid(\n year: number,\n month: number,\n): (number | null)[][] {\n const firstDay = new Date(year, month, 1).getDay();\n const leadingEmpties = (firstDay + 6) % 7;\n const totalDays = new Date(year, month + 1, 0).getDate();\n\n const cells: (number | null)[] = [];\n for (let i = 0; i < leadingEmpties; i++) cells.push(null);\n for (let d = 1; d <= totalDays; d++) cells.push(d);\n while (cells.length % 7 !== 0) cells.push(null);\n\n const weeks: (number | null)[][] = [];\n for (let i = 0; i < cells.length; i += 7) {\n weeks.push(cells.slice(i, i + 7));\n }\n return weeks;\n}\n\nexport function clampDate(\n date: Date,\n min: Date | undefined,\n max: Date | undefined,\n): Date {\n if (min !== undefined && date < min)\n return new Date(min.getFullYear(), min.getMonth(), min.getDate());\n if (max !== undefined && date > max)\n return new Date(max.getFullYear(), max.getMonth(), max.getDate());\n return date;\n}\n\nexport function monthHasSelectableDays(\n year: number,\n month: number,\n min: Date | undefined,\n max: Date | undefined,\n): boolean {\n const totalDays = new Date(year, month + 1, 0).getDate();\n const firstOfMonth = new Date(year, month, 1);\n const lastOfMonth = new Date(year, month, totalDays);\n if (\n min !== undefined &&\n lastOfMonth < new Date(min.getFullYear(), min.getMonth(), min.getDate())\n )\n return false;\n if (\n max !== undefined &&\n firstOfMonth > new Date(max.getFullYear(), max.getMonth(), max.getDate())\n )\n return false;\n return true;\n}\n"],"mappings":"AAAA,SAAgB,EAAU,EAAS,EAAkB,CACnD,OACE,EAAE,YAAY,IAAM,EAAE,YAAY,GAClC,EAAE,SAAS,IAAM,EAAE,SAAS,GAC5B,EAAE,QAAQ,IAAM,EAAE,QAAQ,CAE9B,CAEA,SAAgB,EACd,EACA,EACA,EACS,CACT,IAAM,EAAY,IAAI,KACpB,EAAK,YAAY,EACjB,EAAK,SAAS,EACd,EAAK,QAAQ,CACf,EASA,OARI,IAAQ,IAAA,IAEN,EAAY,IADK,KAAK,EAAI,YAAY,EAAG,EAAI,SAAS,EAAG,EAAI,QAAQ,CACzD,GAEd,IAAQ,IAAA,IAEN,EAAY,IADG,KAAK,EAAI,YAAY,EAAG,EAAI,SAAS,EAAG,EAAI,QAAQ,CACvD,CAGpB,CAEA,SAAgB,EAAkB,EAAoB,CACpD,IAAM,EAAI,EAAK,YAAY,EACrB,EAAI,OAAO,EAAK,SAAS,EAAI,CAAC,EAAE,SAAS,EAAG,GAAG,EAC/C,EAAI,OAAO,EAAK,QAAQ,CAAC,EAAE,SAAS,EAAG,GAAG,EAChD,MAAO,GAAG,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,GAC9B,CAEA,SAAgB,EAAiB,EAA4B,CAC3D,IAAM,EAAQ,4BAA4B,KAAK,CAAK,EACpD,GAAI,CAAC,EAAO,OAAO,KACnB,IAAM,EAAO,OAAO,EAAM,EAAE,EACtB,EAAQ,OAAO,EAAM,EAAE,EACvB,EAAM,OAAO,EAAM,EAAE,EAC3B,GAAI,EAAQ,GAAK,EAAQ,GAAI,OAAO,KACpC,IAAM,EAAS,IAAI,KAAK,EAAM,EAAO,CAAC,EAAE,QAAQ,EAEhD,OADI,EAAM,GAAK,EAAM,EAAe,KAC7B,IAAI,KAAK,EAAM,EAAQ,EAAG,CAAG,CACtC,CAEA,SAAgB,EACd,EACA,EACqB,CAErB,IAAM,GADW,IAAI,KAAK,EAAM,EAAO,CAAC,EAAE,OAClB,EAAW,GAAK,EAClC,EAAY,IAAI,KAAK,EAAM,EAAQ,EAAG,CAAC,EAAE,QAAQ,EAEjD,EAA2B,CAAC,EAClC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAgB,IAAK,EAAM,KAAK,IAAI,EACxD,IAAK,IAAI,EAAI,EAAG,GAAK,EAAW,IAAK,EAAM,KAAK,CAAC,EACjD,KAAO,EAAM,OAAS,GAAM,GAAG,EAAM,KAAK,IAAI,EAE9C,IAAM,EAA6B,CAAC,EACpC,IAAK,IAAI,EAAI,EAAG,EAAI,EAAM,OAAQ,GAAK,EACrC,EAAM,KAAK,EAAM,MAAM,EAAG,EAAI,CAAC,CAAC,EAElC,OAAO,CACT,CAEA,SAAgB,EACd,EACA,EACA,EACM,CAKN,OAJI,IAAQ,IAAA,IAAa,EAAO,EACvB,IAAI,KAAK,EAAI,YAAY,EAAG,EAAI,SAAS,EAAG,EAAI,QAAQ,CAAC,EAC9D,IAAQ,IAAA,IAAa,EAAO,EACvB,IAAI,KAAK,EAAI,YAAY,EAAG,EAAI,SAAS,EAAG,EAAI,QAAQ,CAAC,EAC3D,CACT,CAEA,SAAgB,EACd,EACA,EACA,EACA,EACS,CACT,IAAM,EAAY,IAAI,KAAK,EAAM,EAAQ,EAAG,CAAC,EAAE,QAAQ,EACjD,EAAe,IAAI,KAAK,EAAM,EAAO,CAAC,EACtC,EAAc,IAAI,KAAK,EAAM,EAAO,CAAS,EAWnD,MALA,EAJE,IAAQ,IAAA,IACR,EAAc,IAAI,KAAK,EAAI,YAAY,EAAG,EAAI,SAAS,EAAG,EAAI,QAAQ,CAAC,GAIvE,IAAQ,IAAA,IACR,EAAe,IAAI,KAAK,EAAI,YAAY,EAAG,EAAI,SAAS,EAAG,EAAI,QAAQ,CAAC,EAI5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.utils.js","names":[],"sources":["../../../src/components/DatePicker/DatePicker.utils.ts"],"sourcesContent":["export function isSameDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nexport function isDateDisabled(\n date: Date,\n min: Date | undefined,\n max: Date | undefined,\n): boolean {\n const dateStart = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n );\n if (min !== undefined) {\n const minStart = new Date(min.getFullYear(), min.getMonth(), min.getDate());\n if (dateStart < minStart) return true;\n }\n if (max !== undefined) {\n const maxEnd = new Date(max.getFullYear(), max.getMonth(), max.getDate());\n if (dateStart > maxEnd) return true;\n }\n return false;\n}\n\nexport function defaultFormatDate(date: Date): string {\n const y = date.getFullYear();\n const m = String(date.getMonth() + 1).padStart(2, \"0\");\n const d = String(date.getDate()).padStart(2, \"0\");\n return `${String(y)}-${m}-${d}`;\n}\n\nexport function defaultParseDate(input: string): Date | null {\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(input);\n if (!match) return null;\n const year = Number(match[1]);\n const month = Number(match[2]);\n const day = Number(match[3]);\n if (month < 1 || month > 12) return null;\n const maxDay = new Date(year, month, 0).getDate();\n if (day < 1 || day > maxDay) return null;\n return new Date(year, month - 1, day);\n}\n\nexport function buildMonthGrid(\n year: number,\n month: number,\n): (number | null)[][] {\n const firstDay = new Date(year, month, 1).getDay();\n const leadingEmpties = (firstDay + 6) % 7;\n const totalDays = new Date(year, month + 1, 0).getDate();\n\n const cells: (number | null)[] = [];\n for (let i = 0; i < leadingEmpties; i++) cells.push(null);\n for (let d = 1; d <= totalDays; d++) cells.push(d);\n while (cells.length % 7 !== 0) cells.push(null);\n\n const weeks: (number | null)[][] = [];\n for (let i = 0; i < cells.length; i += 7) {\n weeks.push(cells.slice(i, i + 7));\n }\n return weeks;\n}\n\nexport function clampDate(\n date: Date,\n min: Date | undefined,\n max: Date | undefined,\n): Date {\n if (min !== undefined && date < min)\n return new Date(min.getFullYear(), min.getMonth(), min.getDate());\n if (max !== undefined && date > max)\n return new Date(max.getFullYear(), max.getMonth(), max.getDate());\n return date;\n}\n\nexport function monthHasSelectableDays(\n year: number,\n month: number,\n min: Date | undefined,\n max: Date | undefined,\n): boolean {\n const totalDays = new Date(year, month + 1, 0).getDate();\n const firstOfMonth = new Date(year, month, 1);\n const lastOfMonth = new Date(year, month, totalDays);\n if (\n min !== undefined &&\n lastOfMonth < new Date(min.getFullYear(), min.getMonth(), min.getDate())\n )\n return false;\n if (\n max !== undefined &&\n firstOfMonth > new Date(max.getFullYear(), max.getMonth(), max.getDate())\n )\n return false;\n return true;\n}\n"],"mappings":";AAAA,SAAgB,EAAU,GAAS,GAAkB;AACnD,QACE,EAAE,aAAa,KAAK,EAAE,aAAa,IACnC,EAAE,UAAU,KAAK,EAAE,UAAU,IAC7B,EAAE,SAAS,KAAK,EAAE,SAAS;;AAI/B,SAAgB,EACd,GACA,GACA,GACS;CACT,IAAM,IAAY,IAAI,KACpB,EAAK,aAAa,EAClB,EAAK,UAAU,EACf,EAAK,SAAS,CACf;AASD,QARI,MAAQ,KAAA,KAEN,IADa,IAAI,KAAK,EAAI,aAAa,EAAE,EAAI,UAAU,EAAE,EAAI,SAAS,CAAC,IAGzE,MAAQ,KAAA,KAEN,IADW,IAAI,KAAK,EAAI,aAAa,EAAE,EAAI,UAAU,EAAE,EAAI,SAAS,CAAC;;AAM7E,SAAgB,EAAkB,GAAoB;CACpD,IAAM,IAAI,EAAK,aAAa,EACtB,IAAI,OAAO,EAAK,UAAU,GAAG,EAAE,CAAC,SAAS,GAAG,IAAI,EAChD,IAAI,OAAO,EAAK,SAAS,CAAC,CAAC,SAAS,GAAG,IAAI;AACjD,QAAO,GAAG,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG;;AAG9B,SAAgB,EAAiB,GAA4B;CAC3D,IAAM,IAAQ,4BAA4B,KAAK,EAAM;AACrD,KAAI,CAAC,EAAO,QAAO;CACnB,IAAM,IAAO,OAAO,EAAM,GAAG,EACvB,IAAQ,OAAO,EAAM,GAAG,EACxB,IAAM,OAAO,EAAM,GAAG;AAC5B,KAAI,IAAQ,KAAK,IAAQ,GAAI,QAAO;CACpC,IAAM,IAAS,IAAI,KAAK,GAAM,GAAO,EAAE,CAAC,SAAS;AAEjD,QADI,IAAM,KAAK,IAAM,IAAe,OAC7B,IAAI,KAAK,GAAM,IAAQ,GAAG,EAAI;;AAGvC,SAAgB,EACd,GACA,GACqB;CAErB,IAAM,KADW,IAAI,KAAK,GAAM,GAAO,EAAE,CAAC,QAAQ,GACf,KAAK,GAClC,IAAY,IAAI,KAAK,GAAM,IAAQ,GAAG,EAAE,CAAC,SAAS,EAElD,IAA2B,EAAE;AACnC,MAAK,IAAI,IAAI,GAAG,IAAI,GAAgB,IAAK,GAAM,KAAK,KAAK;AACzD,MAAK,IAAI,IAAI,GAAG,KAAK,GAAW,IAAK,GAAM,KAAK,EAAE;AAClD,QAAO,EAAM,SAAS,KAAM,GAAG,GAAM,KAAK,KAAK;CAE/C,IAAM,IAA6B,EAAE;AACrC,MAAK,IAAI,IAAI,GAAG,IAAI,EAAM,QAAQ,KAAK,EACrC,GAAM,KAAK,EAAM,MAAM,GAAG,IAAI,EAAE,CAAC;AAEnC,QAAO;;AAGT,SAAgB,EACd,GACA,GACA,GACM;AAKN,QAJI,MAAQ,KAAA,KAAa,IAAO,IACvB,IAAI,KAAK,EAAI,aAAa,EAAE,EAAI,UAAU,EAAE,EAAI,SAAS,CAAC,GAC/D,MAAQ,KAAA,KAAa,IAAO,IACvB,IAAI,KAAK,EAAI,aAAa,EAAE,EAAI,UAAU,EAAE,EAAI,SAAS,CAAC,GAC5D;;AAGT,SAAgB,EACd,GACA,GACA,GACA,GACS;CACT,IAAM,IAAY,IAAI,KAAK,GAAM,IAAQ,GAAG,EAAE,CAAC,SAAS,EAClD,IAAe,IAAI,KAAK,GAAM,GAAO,EAAE,EACvC,IAAc,IAAI,KAAK,GAAM,GAAO,EAAU;AAWpD,QALA,EAJE,MAAQ,KAAA,KACR,IAAc,IAAI,KAAK,EAAI,aAAa,EAAE,EAAI,UAAU,EAAE,EAAI,SAAS,CAAC,IAIxE,MAAQ,KAAA,KACR,IAAe,IAAI,KAAK,EAAI,aAAa,EAAE,EAAI,UAAU,EAAE,EAAI,SAAS,CAAC"}
1
+ {"version":3,"file":"DatePicker.utils.js","names":[],"sources":["../../../src/components/DatePicker/DatePicker.utils.ts"],"sourcesContent":["export function isSameDay(a: Date, b: Date): boolean {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nexport function isDateDisabled(\n date: Date,\n min: Date | undefined,\n max: Date | undefined,\n): boolean {\n const dateStart = new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n );\n if (min !== undefined) {\n const minStart = new Date(min.getFullYear(), min.getMonth(), min.getDate());\n if (dateStart < minStart) return true;\n }\n if (max !== undefined) {\n const maxEnd = new Date(max.getFullYear(), max.getMonth(), max.getDate());\n if (dateStart > maxEnd) return true;\n }\n return false;\n}\n\nexport function defaultFormatDate(date: Date): string {\n const y = date.getFullYear();\n const m = String(date.getMonth() + 1).padStart(2, \"0\");\n const d = String(date.getDate()).padStart(2, \"0\");\n return `${String(y)}-${m}-${d}`;\n}\n\nexport function defaultParseDate(input: string): Date | null {\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(input);\n if (!match) return null;\n const year = Number(match[1]);\n const month = Number(match[2]);\n const day = Number(match[3]);\n if (month < 1 || month > 12) return null;\n const maxDay = new Date(year, month, 0).getDate();\n if (day < 1 || day > maxDay) return null;\n return new Date(year, month - 1, day);\n}\n\nexport function buildMonthGrid(\n year: number,\n month: number,\n): (number | null)[][] {\n const firstDay = new Date(year, month, 1).getDay();\n const leadingEmpties = (firstDay + 6) % 7;\n const totalDays = new Date(year, month + 1, 0).getDate();\n\n const cells: (number | null)[] = [];\n for (let i = 0; i < leadingEmpties; i++) cells.push(null);\n for (let d = 1; d <= totalDays; d++) cells.push(d);\n while (cells.length % 7 !== 0) cells.push(null);\n\n const weeks: (number | null)[][] = [];\n for (let i = 0; i < cells.length; i += 7) {\n weeks.push(cells.slice(i, i + 7));\n }\n return weeks;\n}\n\nexport function clampDate(\n date: Date,\n min: Date | undefined,\n max: Date | undefined,\n): Date {\n if (min !== undefined && date < min)\n return new Date(min.getFullYear(), min.getMonth(), min.getDate());\n if (max !== undefined && date > max)\n return new Date(max.getFullYear(), max.getMonth(), max.getDate());\n return date;\n}\n\nexport function monthHasSelectableDays(\n year: number,\n month: number,\n min: Date | undefined,\n max: Date | undefined,\n): boolean {\n const totalDays = new Date(year, month + 1, 0).getDate();\n const firstOfMonth = new Date(year, month, 1);\n const lastOfMonth = new Date(year, month, totalDays);\n if (\n min !== undefined &&\n lastOfMonth < new Date(min.getFullYear(), min.getMonth(), min.getDate())\n )\n return false;\n if (\n max !== undefined &&\n firstOfMonth > new Date(max.getFullYear(), max.getMonth(), max.getDate())\n )\n return false;\n return true;\n}\n"],"mappings":";AAAA,SAAgB,EAAU,GAAS,GAAkB;CACnD,OACE,EAAE,YAAY,MAAM,EAAE,YAAY,KAClC,EAAE,SAAS,MAAM,EAAE,SAAS,KAC5B,EAAE,QAAQ,MAAM,EAAE,QAAQ;AAE9B;AAEA,SAAgB,EACd,GACA,GACA,GACS;CACT,IAAM,IAAY,IAAI,KACpB,EAAK,YAAY,GACjB,EAAK,SAAS,GACd,EAAK,QAAQ,CACf;CASA,OARI,MAAQ,KAAA,KAEN,IAAY,IADK,KAAK,EAAI,YAAY,GAAG,EAAI,SAAS,GAAG,EAAI,QAAQ,CACzD,KAEd,MAAQ,KAAA,KAEN,IAAY,IADG,KAAK,EAAI,YAAY,GAAG,EAAI,SAAS,GAAG,EAAI,QAAQ,CACvD;AAGpB;AAEA,SAAgB,EAAkB,GAAoB;CACpD,IAAM,IAAI,EAAK,YAAY,GACrB,IAAI,OAAO,EAAK,SAAS,IAAI,CAAC,EAAE,SAAS,GAAG,GAAG,GAC/C,IAAI,OAAO,EAAK,QAAQ,CAAC,EAAE,SAAS,GAAG,GAAG;CAChD,OAAO,GAAG,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG;AAC9B;AAEA,SAAgB,EAAiB,GAA4B;CAC3D,IAAM,IAAQ,4BAA4B,KAAK,CAAK;CACpD,IAAI,CAAC,GAAO,OAAO;CACnB,IAAM,IAAO,OAAO,EAAM,EAAE,GACtB,IAAQ,OAAO,EAAM,EAAE,GACvB,IAAM,OAAO,EAAM,EAAE;CAC3B,IAAI,IAAQ,KAAK,IAAQ,IAAI,OAAO;CACpC,IAAM,IAAS,IAAI,KAAK,GAAM,GAAO,CAAC,EAAE,QAAQ;CAEhD,OADI,IAAM,KAAK,IAAM,IAAe,OAC7B,IAAI,KAAK,GAAM,IAAQ,GAAG,CAAG;AACtC;AAEA,SAAgB,EACd,GACA,GACqB;CAErB,IAAM,KADW,IAAI,KAAK,GAAM,GAAO,CAAC,EAAE,OAClB,IAAW,KAAK,GAClC,IAAY,IAAI,KAAK,GAAM,IAAQ,GAAG,CAAC,EAAE,QAAQ,GAEjD,IAA2B,CAAC;CAClC,KAAK,IAAI,IAAI,GAAG,IAAI,GAAgB,KAAK,EAAM,KAAK,IAAI;CACxD,KAAK,IAAI,IAAI,GAAG,KAAK,GAAW,KAAK,EAAM,KAAK,CAAC;CACjD,OAAO,EAAM,SAAS,KAAM,IAAG,EAAM,KAAK,IAAI;CAE9C,IAAM,IAA6B,CAAC;CACpC,KAAK,IAAI,IAAI,GAAG,IAAI,EAAM,QAAQ,KAAK,GACrC,EAAM,KAAK,EAAM,MAAM,GAAG,IAAI,CAAC,CAAC;CAElC,OAAO;AACT;AAEA,SAAgB,EACd,GACA,GACA,GACM;CAKN,OAJI,MAAQ,KAAA,KAAa,IAAO,IACvB,IAAI,KAAK,EAAI,YAAY,GAAG,EAAI,SAAS,GAAG,EAAI,QAAQ,CAAC,IAC9D,MAAQ,KAAA,KAAa,IAAO,IACvB,IAAI,KAAK,EAAI,YAAY,GAAG,EAAI,SAAS,GAAG,EAAI,QAAQ,CAAC,IAC3D;AACT;AAEA,SAAgB,EACd,GACA,GACA,GACA,GACS;CACT,IAAM,IAAY,IAAI,KAAK,GAAM,IAAQ,GAAG,CAAC,EAAE,QAAQ,GACjD,IAAe,IAAI,KAAK,GAAM,GAAO,CAAC,GACtC,IAAc,IAAI,KAAK,GAAM,GAAO,CAAS;CAWnD,OALA,EAJE,MAAQ,KAAA,KACR,IAAc,IAAI,KAAK,EAAI,YAAY,GAAG,EAAI,SAAS,GAAG,EAAI,QAAQ,CAAC,KAIvE,MAAQ,KAAA,KACR,IAAe,IAAI,KAAK,EAAI,YAAY,GAAG,EAAI,SAAS,GAAG,EAAI,QAAQ,CAAC;AAI5E"}
@@ -1,2 +1,2 @@
1
- "use client";const e=require(`../../_virtual/_rolldown/runtime.cjs`),t=require(`../../utils/cn.cjs`),n=require(`../../utils/slot.cjs`),r=require(`../Icon/Icon.cjs`),i=require(`../Button/Button.cjs`),a=require(`../Text/Text.cjs`),o=require(`../../utils/portal.cjs`),s=require(`./DatePicker.context.cjs`),c=require(`./DatePicker.utils.cjs`),l=require(`./DatePicker.hooks.cjs`);let u=require(`react`);u=e.__toESM(u,1);let d=require(`react/jsx-runtime`);function f({ref:e,className:f,...p}){let m=s.useDatePickerContext(),h=n.composeRefs(e,u.useRef(null),m.refs.setFloating),{displayedYear:g,setDisplayedYear:_,displayedMonth:v,setDisplayedMonth:y,canGoPrev:b,canGoNext:x,goToPrevMonth:S,goToNextMonth:C}=l.useCalendarNavigation(m),{focusedDayRef:w}=l.useCalendarFocus(m,g,v),T=u.useMemo(()=>new Intl.DateTimeFormat(m.locale,{weekday:`long`,year:`numeric`,month:`long`,day:`numeric`}),[m.locale]),E=u.useMemo(()=>new Intl.DateTimeFormat(m.locale,{month:`long`,year:`numeric`}),[m.locale]),D=u.useMemo(()=>{let e=new Intl.DateTimeFormat(m.locale,{weekday:`short`}),t=new Intl.DateTimeFormat(m.locale,{weekday:`long`});return Array.from({length:7},(n,r)=>{let i=new Date(2026,0,5+r);return{short:e.format(i),long:t.format(i)}})},[m.locale]),O=u.useMemo(()=>c.buildMonthGrid(g,v),[g,v]),k=u.useMemo(()=>E.format(new Date(g,v,1)),[g,v,E]),A=u.useCallback(e=>{c.isDateDisabled(e,m.min,m.max)||(m.onSelectedDateChange(e),m.onOpenChange(!1),requestAnimationFrame(()=>{m.triggerButtonRef.current?.focus()}))},[m]),{handleKeyDown:j}=l.useCalendarKeyboard(m,u.useCallback((e,t)=>{let n=e,r=0;for(;c.isDateDisabled(n,m.min,m.max)&&r<366;)n=t(n),r++;c.isDateDisabled(n,m.min,m.max)||(m.setFocusedDate(n),(n.getMonth()!==v||n.getFullYear()!==g)&&(_(n.getFullYear()),y(n.getMonth())))},[m,v,g,_,y]),A);if(!m.open)return null;let M=m.getFloatingProps(p),N=new Date;return(0,d.jsx)(o.Portal,{children:(0,d.jsxs)(`div`,{ref:h,style:m.floatingStyles,role:`dialog`,"aria-label":`Date picker`,...M,className:t.cn(`z-(--nuka-z-dropdown) rounded-(--radius-md) border border-(--nuka-border-base)`,`bg-(--nuka-bg-base) shadow-md p-(--space-3)`,`focus-visible:outline-none`,f),children:[(0,d.jsxs)(`div`,{className:`flex items-center justify-between mb-(--space-2)`,children:[(0,d.jsx)(i.Button,{variant:`ghost`,size:`sm`,onClick:S,disabled:!b,"aria-label":`Previous month`,children:(0,d.jsx)(r.Icon,{size:`sm`,children:(0,d.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,d.jsx)(`polyline`,{points:`15 18 9 12 15 6`})})})}),(0,d.jsx)(a.Text,{as:`span`,size:`sm`,weight:`medium`,children:k}),(0,d.jsx)(i.Button,{variant:`ghost`,size:`sm`,onClick:C,disabled:!x,"aria-label":`Next month`,children:(0,d.jsx)(r.Icon,{size:`sm`,children:(0,d.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,d.jsx)(`polyline`,{points:`9 18 15 12 9 6`})})})})]}),(0,d.jsxs)(`div`,{role:`grid`,"aria-label":k,id:`${m.baseId}-grid`,onKeyDown:j,children:[(0,d.jsx)(`div`,{role:`row`,"aria-hidden":`true`,className:`grid grid-cols-7 mb-(--space-1)`,children:D.map(e=>(0,d.jsx)(`abbr`,{title:e.long,className:`flex items-center justify-center text-xs text-(--nuka-text-muted) no-underline py-(--space-1)`,children:e.short},e.short))}),O.map((e,n)=>(0,d.jsx)(`div`,{role:`row`,className:`grid grid-cols-7`,children:e.map((e,n)=>{if(e===null)return(0,d.jsx)(`div`,{role:`gridcell`,"aria-hidden":`true`,children:(0,d.jsx)(`span`,{className:`block size-9`})},`empty-${String(n)}`);let r=new Date(g,v,e),i=c.isDateDisabled(r,m.min,m.max),a=m.selectedDate!==void 0&&c.isSameDay(r,m.selectedDate),o=c.isSameDay(r,m.focusedDate),s=c.isSameDay(r,N),l=T.format(r);return(0,d.jsx)(`div`,{role:`gridcell`,children:(0,d.jsx)(`button`,{ref:o?w:void 0,type:`button`,tabIndex:o?0:-1,"aria-label":l,"aria-selected":a,"aria-disabled":i||void 0,disabled:i,onClick:()=>A(r),className:t.cn(`flex items-center justify-center size-9 rounded-(--radius-md) text-sm`,`focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--nuka-border-focus)`,`cursor-pointer`,a&&`bg-(--nuka-accent-bg) text-(--nuka-accent-fg)`,!a&&!i&&`hover:bg-(--nuka-bg-muted)`,s&&!a&&`ring-1 ring-(--nuka-border-strong)`,i&&`opacity-50 cursor-default`),children:e})},e)})},n))]})]})})}f.displayName=`DatePickerCalendar`,exports.DatePickerCalendar=f;
1
+ "use client";const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../utils/cn.cjs"),n=require("../../utils/slot.cjs"),r=require("../Icon/Icon.cjs"),i=require("../Button/Button.cjs"),a=require("../Text/Text.cjs"),o=require("../../utils/portal.cjs"),s=require("./DatePicker.context.cjs"),c=require("./DatePicker.utils.cjs"),l=require("./DatePicker.hooks.cjs");let u=require("react");u=e.__toESM(u,1);let d=require("react/jsx-runtime");function f({ref:e,className:f,...p}){let m=s.useDatePickerContext(),h=n.composeRefs(e,u.useRef(null),m.refs.setFloating),{displayedYear:g,setDisplayedYear:_,displayedMonth:v,setDisplayedMonth:y,canGoPrev:b,canGoNext:x,goToPrevMonth:S,goToNextMonth:C}=l.useCalendarNavigation(m),{focusedDayRef:w}=l.useCalendarFocus(m,g,v),T=u.useMemo(()=>new Intl.DateTimeFormat(m.locale,{weekday:`long`,year:`numeric`,month:`long`,day:`numeric`}),[m.locale]),E=u.useMemo(()=>new Intl.DateTimeFormat(m.locale,{month:`long`,year:`numeric`}),[m.locale]),D=u.useMemo(()=>{let e=new Intl.DateTimeFormat(m.locale,{weekday:`short`}),t=new Intl.DateTimeFormat(m.locale,{weekday:`long`});return Array.from({length:7},(n,r)=>{let i=new Date(2026,0,5+r);return{short:e.format(i),long:t.format(i)}})},[m.locale]),O=u.useMemo(()=>c.buildMonthGrid(g,v),[g,v]),k=u.useMemo(()=>E.format(new Date(g,v,1)),[g,v,E]),A=u.useCallback(e=>{c.isDateDisabled(e,m.min,m.max)||(m.onSelectedDateChange(e),m.onOpenChange(!1),requestAnimationFrame(()=>{m.triggerButtonRef.current?.focus()}))},[m]),{handleKeyDown:j}=l.useCalendarKeyboard(m,u.useCallback((e,t)=>{let n=e,r=0;for(;c.isDateDisabled(n,m.min,m.max)&&r<366;)n=t(n),r++;c.isDateDisabled(n,m.min,m.max)||(m.setFocusedDate(n),(n.getMonth()!==v||n.getFullYear()!==g)&&(_(n.getFullYear()),y(n.getMonth())))},[m,v,g,_,y]),A),M=u.useMemo(()=>new Date,[]);if(!m.open)return null;let N=m.getFloatingProps(p);return(0,d.jsx)(o.Portal,{children:(0,d.jsxs)(`div`,{ref:h,style:m.floatingStyles,role:`dialog`,"aria-label":`Date picker`,"data-slot":`calendar`,...N,className:t.cn(`z-(--nuka-z-dropdown) rounded-(--radius-md) border border-(--nuka-border-base)`,`bg-(--nuka-bg-base) shadow-md p-(--space-3)`,`focus-visible:outline-none`,f),children:[(0,d.jsxs)(`div`,{className:`flex items-center justify-between mb-(--space-2)`,"data-slot":`calendar-header`,children:[(0,d.jsx)(i.Button,{variant:`ghost`,size:`sm`,onClick:S,disabled:!b,"aria-label":`Previous month`,"data-slot":`prev-button`,children:(0,d.jsx)(r.Icon,{size:`sm`,children:(0,d.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,d.jsx)(`polyline`,{points:`15 18 9 12 15 6`})})})}),(0,d.jsx)(a.Text,{as:`span`,size:`sm`,weight:`medium`,"data-slot":`month-year-label`,children:k}),(0,d.jsx)(i.Button,{variant:`ghost`,size:`sm`,onClick:C,disabled:!x,"aria-label":`Next month`,"data-slot":`next-button`,children:(0,d.jsx)(r.Icon,{size:`sm`,children:(0,d.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:(0,d.jsx)(`polyline`,{points:`9 18 15 12 9 6`})})})})]}),(0,d.jsxs)(`div`,{role:`grid`,"aria-label":k,id:`${m.baseId}-grid`,"data-slot":`grid`,onKeyDown:j,children:[(0,d.jsx)(`div`,{role:`row`,"aria-hidden":`true`,className:`grid grid-cols-7 mb-(--space-1)`,"data-slot":`weekday-row`,children:D.map(e=>(0,d.jsx)(`abbr`,{title:e.long,className:`flex items-center justify-center text-xs text-(--nuka-text-muted) no-underline py-(--space-1)`,"data-slot":`weekday`,children:e.short},e.short))}),O.map(e=>(0,d.jsx)(`div`,{role:`row`,className:`grid grid-cols-7`,"data-slot":`week-row`,children:e.map((e,n)=>{if(e===null)return(0,d.jsx)(`div`,{role:`gridcell`,"aria-hidden":`true`,"data-slot":`day-cell`,children:(0,d.jsx)(`span`,{className:`block size-9`})},`empty-${String(n)}`);let r=new Date(g,v,e),i=c.isDateDisabled(r,m.min,m.max),a=m.selectedDate!==void 0&&c.isSameDay(r,m.selectedDate),o=c.isSameDay(r,m.focusedDate),s=c.isSameDay(r,M),l=T.format(r);return(0,d.jsx)(`div`,{role:`gridcell`,"data-slot":`day-cell`,children:(0,d.jsx)(`button`,{ref:o?w:void 0,type:`button`,tabIndex:o?0:-1,"aria-label":l,"aria-selected":a,"aria-disabled":i||void 0,disabled:i,onClick:()=>A(r),"data-slot":`day-button`,className:t.cn(`flex items-center justify-center size-9 rounded-(--radius-md) text-sm`,`focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--nuka-border-focus)`,`cursor-pointer`,a&&`bg-(--nuka-accent-bg) text-(--nuka-accent-fg)`,!a&&!i&&`hover:bg-(--nuka-bg-muted)`,s&&!a&&`ring-1 ring-(--nuka-border-strong)`,i&&`opacity-50 cursor-default`),children:e})},e)})},`${String(g)}-${String(v)}-${String(e.find(e=>e!==null)??0)}`))]})]})})}f.displayName=`DatePickerCalendar`,exports.DatePickerCalendar=f;
2
2
  //# sourceMappingURL=DatePickerCalendar.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerCalendar.cjs","names":[],"sources":["../../../src/components/DatePicker/DatePickerCalendar.tsx"],"sourcesContent":["\"use client\";\n// Exceeds 200 lines: calendar grid JSX is inseparable from the hooks that feed it.\n// Hook calls, Intl formatters, memos, and selectDay/navigateToDate callbacks all\n// close over the same display state and cannot be moved to a sibling file.\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { Portal } from \"@nuka/utils/portal\";\nimport { Button } from \"@nuka/components/Button\";\nimport { Icon } from \"@nuka/components/Icon\";\nimport { Text } from \"@nuka/components/Text\";\nimport { useDatePickerContext } from \"@nuka/components/DatePicker/DatePicker.context\";\nimport {\n isSameDay,\n isDateDisabled,\n buildMonthGrid,\n} from \"@nuka/components/DatePicker/DatePicker.utils\";\nimport {\n useCalendarNavigation,\n useCalendarFocus,\n useCalendarKeyboard,\n} from \"@nuka/components/DatePicker/DatePicker.hooks\";\n\nexport interface DatePickerCalendarProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement> | undefined;\n}\n\nfunction DatePickerCalendar({\n ref,\n className,\n ...props\n}: DatePickerCalendarProps) {\n const ctx = useDatePickerContext();\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(\n ref,\n contentRef,\n ctx.refs.setFloating as React.Ref<HTMLDivElement>,\n );\n\n const {\n displayedYear,\n setDisplayedYear,\n displayedMonth,\n setDisplayedMonth,\n canGoPrev,\n canGoNext,\n goToPrevMonth,\n goToNextMonth,\n } = useCalendarNavigation(ctx);\n\n const { focusedDayRef } = useCalendarFocus(\n ctx,\n displayedYear,\n displayedMonth,\n );\n\n const labelFormatter = React.useMemo(\n () =>\n new Intl.DateTimeFormat(ctx.locale, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n }),\n [ctx.locale],\n );\n\n const headerFormatter = React.useMemo(\n () =>\n new Intl.DateTimeFormat(ctx.locale, {\n month: \"long\",\n year: \"numeric\",\n }),\n [ctx.locale],\n );\n\n const weekdayLabels = React.useMemo(() => {\n const shortFmt = new Intl.DateTimeFormat(ctx.locale, { weekday: \"short\" });\n const longFmt = new Intl.DateTimeFormat(ctx.locale, { weekday: \"long\" });\n return Array.from({ length: 7 }, (_, i) => {\n const date = new Date(2026, 0, 5 + i);\n return {\n short: shortFmt.format(date),\n long: longFmt.format(date),\n };\n });\n }, [ctx.locale]);\n\n const weeks = React.useMemo(\n () => buildMonthGrid(displayedYear, displayedMonth),\n [displayedYear, displayedMonth],\n );\n\n const headerLabel = React.useMemo(\n () => headerFormatter.format(new Date(displayedYear, displayedMonth, 1)),\n [displayedYear, displayedMonth, headerFormatter],\n );\n\n const selectDay = React.useCallback(\n (date: Date) => {\n if (isDateDisabled(date, ctx.min, ctx.max)) return;\n ctx.onSelectedDateChange(date);\n ctx.onOpenChange(false);\n requestAnimationFrame(() => {\n ctx.triggerButtonRef.current?.focus();\n });\n },\n [ctx],\n );\n\n const navigateToDate = React.useCallback(\n (candidate: Date, stepFn: (d: Date) => Date) => {\n let current = candidate;\n let attempts = 0;\n while (isDateDisabled(current, ctx.min, ctx.max) && attempts < 366) {\n current = stepFn(current);\n attempts++;\n }\n if (isDateDisabled(current, ctx.min, ctx.max)) return;\n\n ctx.setFocusedDate(current);\n if (\n current.getMonth() !== displayedMonth ||\n current.getFullYear() !== displayedYear\n ) {\n setDisplayedYear(current.getFullYear());\n setDisplayedMonth(current.getMonth());\n }\n },\n [ctx, displayedMonth, displayedYear, setDisplayedYear, setDisplayedMonth],\n );\n\n const { handleKeyDown } = useCalendarKeyboard(ctx, navigateToDate, selectDay);\n\n if (!ctx.open) return null;\n\n const floatingProps = ctx.getFloatingProps(props);\n const today = new Date();\n\n return (\n <Portal>\n <div\n ref={composedRef}\n style={ctx.floatingStyles}\n role=\"dialog\"\n aria-label=\"Date picker\"\n {...(floatingProps as React.HTMLAttributes<HTMLDivElement>)}\n className={cn(\n \"z-(--nuka-z-dropdown) rounded-(--radius-md) border border-(--nuka-border-base)\",\n \"bg-(--nuka-bg-base) shadow-md p-(--space-3)\",\n \"focus-visible:outline-none\",\n className,\n )}\n >\n <div className=\"flex items-center justify-between mb-(--space-2)\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToPrevMonth}\n disabled={!canGoPrev}\n aria-label=\"Previous month\"\n >\n <Icon size=\"sm\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n </Icon>\n </Button>\n <Text as=\"span\" size=\"sm\" weight=\"medium\">\n {headerLabel}\n </Text>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToNextMonth}\n disabled={!canGoNext}\n aria-label=\"Next month\"\n >\n <Icon size=\"sm\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </Icon>\n </Button>\n </div>\n\n <div\n role=\"grid\"\n aria-label={headerLabel}\n id={`${ctx.baseId}-grid`}\n onKeyDown={handleKeyDown}\n >\n <div\n role=\"row\"\n aria-hidden=\"true\"\n className=\"grid grid-cols-7 mb-(--space-1)\"\n >\n {weekdayLabels.map((day) => (\n <abbr\n key={day.short}\n title={day.long}\n className=\"flex items-center justify-center text-xs text-(--nuka-text-muted) no-underline py-(--space-1)\"\n >\n {day.short}\n </abbr>\n ))}\n </div>\n\n {weeks.map((week, weekIndex) => (\n <div role=\"row\" key={weekIndex} className=\"grid grid-cols-7\">\n {week.map((day, dayIndex) => {\n if (day === null) {\n return (\n <div\n role=\"gridcell\"\n key={`empty-${String(dayIndex)}`}\n aria-hidden=\"true\"\n >\n <span className=\"block size-9\" />\n </div>\n );\n }\n\n const date = new Date(displayedYear, displayedMonth, day);\n const disabled = isDateDisabled(date, ctx.min, ctx.max);\n const isSelected =\n ctx.selectedDate !== undefined &&\n isSameDay(date, ctx.selectedDate);\n const isFocused = isSameDay(date, ctx.focusedDate);\n const isToday = isSameDay(date, today);\n const dayLabel = labelFormatter.format(date);\n\n return (\n <div role=\"gridcell\" key={day}>\n <button\n ref={isFocused ? focusedDayRef : undefined}\n type=\"button\"\n tabIndex={isFocused ? 0 : -1}\n aria-label={dayLabel}\n aria-selected={isSelected}\n aria-disabled={disabled || undefined}\n disabled={disabled}\n onClick={() => selectDay(date)}\n className={cn(\n \"flex items-center justify-center size-9 rounded-(--radius-md) text-sm\",\n \"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--nuka-border-focus)\",\n \"cursor-pointer\",\n isSelected &&\n \"bg-(--nuka-accent-bg) text-(--nuka-accent-fg)\",\n !isSelected &&\n !disabled &&\n \"hover:bg-(--nuka-bg-muted)\",\n isToday &&\n !isSelected &&\n \"ring-1 ring-(--nuka-border-strong)\",\n disabled && \"opacity-50 cursor-default\",\n )}\n >\n {day}\n </button>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n </Portal>\n );\n}\n\nDatePickerCalendar.displayName = \"DatePickerCalendar\";\n\nexport { DatePickerCalendar };\n"],"mappings":"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"}
1
+ {"version":3,"file":"DatePickerCalendar.cjs","names":[],"sources":["../../../src/components/DatePicker/DatePickerCalendar.tsx"],"sourcesContent":["\"use client\";\n// Exceeds 200 lines: calendar grid JSX is inseparable from the hooks that feed it.\n// Hook calls, Intl formatters, memos, and selectDay/navigateToDate callbacks all\n// close over the same display state and cannot be moved to a sibling file.\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { Portal } from \"@nuka/utils/portal\";\nimport { Button } from \"@nuka/components/Button\";\nimport { Icon } from \"@nuka/components/Icon\";\nimport { Text } from \"@nuka/components/Text\";\nimport { useDatePickerContext } from \"@nuka/components/DatePicker/DatePicker.context\";\nimport {\n isSameDay,\n isDateDisabled,\n buildMonthGrid,\n} from \"@nuka/components/DatePicker/DatePicker.utils\";\nimport {\n useCalendarNavigation,\n useCalendarFocus,\n useCalendarKeyboard,\n} from \"@nuka/components/DatePicker/DatePicker.hooks\";\n\nexport interface DatePickerCalendarProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement> | undefined;\n}\n\nfunction DatePickerCalendar({\n ref,\n className,\n ...props\n}: DatePickerCalendarProps) {\n const ctx = useDatePickerContext();\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(\n ref,\n contentRef,\n ctx.refs.setFloating as React.Ref<HTMLDivElement>,\n );\n\n const {\n displayedYear,\n setDisplayedYear,\n displayedMonth,\n setDisplayedMonth,\n canGoPrev,\n canGoNext,\n goToPrevMonth,\n goToNextMonth,\n } = useCalendarNavigation(ctx);\n\n const { focusedDayRef } = useCalendarFocus(\n ctx,\n displayedYear,\n displayedMonth,\n );\n\n const labelFormatter = React.useMemo(\n () =>\n new Intl.DateTimeFormat(ctx.locale, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n }),\n [ctx.locale],\n );\n\n const headerFormatter = React.useMemo(\n () =>\n new Intl.DateTimeFormat(ctx.locale, {\n month: \"long\",\n year: \"numeric\",\n }),\n [ctx.locale],\n );\n\n const weekdayLabels = React.useMemo(() => {\n const shortFmt = new Intl.DateTimeFormat(ctx.locale, { weekday: \"short\" });\n const longFmt = new Intl.DateTimeFormat(ctx.locale, { weekday: \"long\" });\n return Array.from({ length: 7 }, (_, i) => {\n const date = new Date(2026, 0, 5 + i);\n return {\n short: shortFmt.format(date),\n long: longFmt.format(date),\n };\n });\n }, [ctx.locale]);\n\n const weeks = React.useMemo(\n () => buildMonthGrid(displayedYear, displayedMonth),\n [displayedYear, displayedMonth],\n );\n\n const headerLabel = React.useMemo(\n () => headerFormatter.format(new Date(displayedYear, displayedMonth, 1)),\n [displayedYear, displayedMonth, headerFormatter],\n );\n\n const selectDay = React.useCallback(\n (date: Date) => {\n if (isDateDisabled(date, ctx.min, ctx.max)) return;\n ctx.onSelectedDateChange(date);\n ctx.onOpenChange(false);\n requestAnimationFrame(() => {\n ctx.triggerButtonRef.current?.focus();\n });\n },\n [ctx],\n );\n\n const navigateToDate = React.useCallback(\n (candidate: Date, stepFn: (d: Date) => Date) => {\n let current = candidate;\n let attempts = 0;\n while (isDateDisabled(current, ctx.min, ctx.max) && attempts < 366) {\n current = stepFn(current);\n attempts++;\n }\n if (isDateDisabled(current, ctx.min, ctx.max)) return;\n\n ctx.setFocusedDate(current);\n if (\n current.getMonth() !== displayedMonth ||\n current.getFullYear() !== displayedYear\n ) {\n setDisplayedYear(current.getFullYear());\n setDisplayedMonth(current.getMonth());\n }\n },\n [ctx, displayedMonth, displayedYear, setDisplayedYear, setDisplayedMonth],\n );\n\n const { handleKeyDown } = useCalendarKeyboard(ctx, navigateToDate, selectDay);\n const today = React.useMemo(() => new Date(), []);\n\n if (!ctx.open) return null;\n\n const floatingProps = ctx.getFloatingProps(props);\n\n return (\n <Portal>\n <div\n ref={composedRef}\n style={ctx.floatingStyles}\n role=\"dialog\"\n aria-label=\"Date picker\"\n data-slot=\"calendar\"\n {...floatingProps}\n className={cn(\n \"z-(--nuka-z-dropdown) rounded-(--radius-md) border border-(--nuka-border-base)\",\n \"bg-(--nuka-bg-base) shadow-md p-(--space-3)\",\n \"focus-visible:outline-none\",\n className,\n )}\n >\n <div\n className=\"flex items-center justify-between mb-(--space-2)\"\n data-slot=\"calendar-header\"\n >\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToPrevMonth}\n disabled={!canGoPrev}\n aria-label=\"Previous month\"\n data-slot=\"prev-button\"\n >\n <Icon size=\"sm\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n </Icon>\n </Button>\n <Text\n as=\"span\"\n size=\"sm\"\n weight=\"medium\"\n data-slot=\"month-year-label\"\n >\n {headerLabel}\n </Text>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToNextMonth}\n disabled={!canGoNext}\n aria-label=\"Next month\"\n data-slot=\"next-button\"\n >\n <Icon size=\"sm\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </Icon>\n </Button>\n </div>\n\n <div\n role=\"grid\"\n aria-label={headerLabel}\n id={`${ctx.baseId}-grid`}\n data-slot=\"grid\"\n onKeyDown={handleKeyDown}\n >\n <div\n role=\"row\"\n aria-hidden=\"true\"\n className=\"grid grid-cols-7 mb-(--space-1)\"\n data-slot=\"weekday-row\"\n >\n {weekdayLabels.map((day) => (\n <abbr\n key={day.short}\n title={day.long}\n className=\"flex items-center justify-center text-xs text-(--nuka-text-muted) no-underline py-(--space-1)\"\n data-slot=\"weekday\"\n >\n {day.short}\n </abbr>\n ))}\n </div>\n\n {weeks.map((week) => (\n <div\n role=\"row\"\n key={`${String(displayedYear)}-${String(displayedMonth)}-${String(week.find((d) => d !== null) ?? 0)}`}\n className=\"grid grid-cols-7\"\n data-slot=\"week-row\"\n >\n {week.map((day, dayIndex) => {\n if (day === null) {\n return (\n <div\n role=\"gridcell\"\n key={`empty-${String(dayIndex)}`}\n aria-hidden=\"true\"\n data-slot=\"day-cell\"\n >\n <span className=\"block size-9\" />\n </div>\n );\n }\n\n const date = new Date(displayedYear, displayedMonth, day);\n const disabled = isDateDisabled(date, ctx.min, ctx.max);\n const isSelected =\n ctx.selectedDate !== undefined &&\n isSameDay(date, ctx.selectedDate);\n const isFocused = isSameDay(date, ctx.focusedDate);\n const isToday = isSameDay(date, today);\n const dayLabel = labelFormatter.format(date);\n\n return (\n <div role=\"gridcell\" key={day} data-slot=\"day-cell\">\n <button\n ref={isFocused ? focusedDayRef : undefined}\n type=\"button\"\n tabIndex={isFocused ? 0 : -1}\n aria-label={dayLabel}\n aria-selected={isSelected}\n aria-disabled={disabled || undefined}\n disabled={disabled}\n onClick={() => selectDay(date)}\n data-slot=\"day-button\"\n className={cn(\n \"flex items-center justify-center size-9 rounded-(--radius-md) text-sm\",\n \"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--nuka-border-focus)\",\n \"cursor-pointer\",\n isSelected &&\n \"bg-(--nuka-accent-bg) text-(--nuka-accent-fg)\",\n !isSelected &&\n !disabled &&\n \"hover:bg-(--nuka-bg-muted)\",\n isToday &&\n !isSelected &&\n \"ring-1 ring-(--nuka-border-strong)\",\n disabled && \"opacity-50 cursor-default\",\n )}\n >\n {day}\n </button>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n </Portal>\n );\n}\n\nDatePickerCalendar.displayName = \"DatePickerCalendar\";\n\nexport { DatePickerCalendar };\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerCalendar.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePickerCalendar.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAmB/B,MAAM,WAAW,uBAAwB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACnF,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;CAC7C;AAED,iBAAS,kBAAkB,CAAC,EAC1B,GAAG,EACH,SAAS,EACT,GAAG,KAAK,EACT,EAAE,uBAAuB,kDA+PzB;kBAnQQ,kBAAkB;;;AAuQ3B,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"DatePickerCalendar.d.ts","sourceRoot":"","sources":["../../../src/components/DatePicker/DatePickerCalendar.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAmB/B,MAAM,WAAW,uBAAwB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACnF,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;CAC7C;AAED,iBAAS,kBAAkB,CAAC,EAC1B,GAAG,EACH,SAAS,EACT,GAAG,KAAK,EACT,EAAE,uBAAuB,kDAoRzB;kBAxRQ,kBAAkB;;;AA4R3B,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -47,18 +47,20 @@ function g({ ref: g, className: _, ...v }) {
47
47
  x,
48
48
  S,
49
49
  w
50
- ]), F);
50
+ ]), F), L = p.useMemo(() => /* @__PURE__ */ new Date(), []);
51
51
  if (!y.open) return null;
52
- let L = y.getFloatingProps(v), R = /* @__PURE__ */ new Date();
52
+ let R = y.getFloatingProps(v);
53
53
  return /* @__PURE__ */ m(a, { children: /* @__PURE__ */ h("div", {
54
54
  ref: b,
55
55
  style: y.floatingStyles,
56
56
  role: "dialog",
57
57
  "aria-label": "Date picker",
58
- ...L,
58
+ "data-slot": "calendar",
59
+ ...R,
59
60
  className: e("z-(--nuka-z-dropdown) rounded-(--radius-md) border border-(--nuka-border-base)", "bg-(--nuka-bg-base) shadow-md p-(--space-3)", "focus-visible:outline-none", _),
60
61
  children: [/* @__PURE__ */ h("div", {
61
62
  className: "flex items-center justify-between mb-(--space-2)",
63
+ "data-slot": "calendar-header",
62
64
  children: [
63
65
  /* @__PURE__ */ m(r, {
64
66
  variant: "ghost",
@@ -66,6 +68,7 @@ function g({ ref: g, className: _, ...v }) {
66
68
  onClick: D,
67
69
  disabled: !T,
68
70
  "aria-label": "Previous month",
71
+ "data-slot": "prev-button",
69
72
  children: /* @__PURE__ */ m(n, {
70
73
  size: "sm",
71
74
  children: /* @__PURE__ */ m("svg", {
@@ -84,6 +87,7 @@ function g({ ref: g, className: _, ...v }) {
84
87
  as: "span",
85
88
  size: "sm",
86
89
  weight: "medium",
90
+ "data-slot": "month-year-label",
87
91
  children: P
88
92
  }),
89
93
  /* @__PURE__ */ m(r, {
@@ -92,6 +96,7 @@ function g({ ref: g, className: _, ...v }) {
92
96
  onClick: O,
93
97
  disabled: !E,
94
98
  "aria-label": "Next month",
99
+ "data-slot": "next-button",
95
100
  children: /* @__PURE__ */ m(n, {
96
101
  size: "sm",
97
102
  children: /* @__PURE__ */ m("svg", {
@@ -111,28 +116,34 @@ function g({ ref: g, className: _, ...v }) {
111
116
  role: "grid",
112
117
  "aria-label": P,
113
118
  id: `${y.baseId}-grid`,
119
+ "data-slot": "grid",
114
120
  onKeyDown: I,
115
121
  children: [/* @__PURE__ */ m("div", {
116
122
  role: "row",
117
123
  "aria-hidden": "true",
118
124
  className: "grid grid-cols-7 mb-(--space-1)",
125
+ "data-slot": "weekday-row",
119
126
  children: M.map((e) => /* @__PURE__ */ m("abbr", {
120
127
  title: e.long,
121
128
  className: "flex items-center justify-center text-xs text-(--nuka-text-muted) no-underline py-(--space-1)",
129
+ "data-slot": "weekday",
122
130
  children: e.short
123
131
  }, e.short))
124
- }), N.map((t, n) => /* @__PURE__ */ m("div", {
132
+ }), N.map((t) => /* @__PURE__ */ m("div", {
125
133
  role: "row",
126
134
  className: "grid grid-cols-7",
135
+ "data-slot": "week-row",
127
136
  children: t.map((t, n) => {
128
137
  if (t === null) return /* @__PURE__ */ m("div", {
129
138
  role: "gridcell",
130
139
  "aria-hidden": "true",
140
+ "data-slot": "day-cell",
131
141
  children: /* @__PURE__ */ m("span", { className: "block size-9" })
132
142
  }, `empty-${String(n)}`);
133
- let r = new Date(x, C, t), i = c(r, y.min, y.max), a = y.selectedDate !== void 0 && l(r, y.selectedDate), o = l(r, y.focusedDate), s = l(r, R), u = A.format(r);
143
+ let r = new Date(x, C, t), i = c(r, y.min, y.max), a = y.selectedDate !== void 0 && l(r, y.selectedDate), o = l(r, y.focusedDate), s = l(r, L), u = A.format(r);
134
144
  return /* @__PURE__ */ m("div", {
135
145
  role: "gridcell",
146
+ "data-slot": "day-cell",
136
147
  children: /* @__PURE__ */ m("button", {
137
148
  ref: o ? k : void 0,
138
149
  type: "button",
@@ -142,12 +153,13 @@ function g({ ref: g, className: _, ...v }) {
142
153
  "aria-disabled": i || void 0,
143
154
  disabled: i,
144
155
  onClick: () => F(r),
156
+ "data-slot": "day-button",
145
157
  className: e("flex items-center justify-center size-9 rounded-(--radius-md) text-sm", "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--nuka-border-focus)", "cursor-pointer", a && "bg-(--nuka-accent-bg) text-(--nuka-accent-fg)", !a && !i && "hover:bg-(--nuka-bg-muted)", s && !a && "ring-1 ring-(--nuka-border-strong)", i && "opacity-50 cursor-default"),
146
158
  children: t
147
159
  })
148
160
  }, t);
149
161
  })
150
- }, n))]
162
+ }, `${String(x)}-${String(C)}-${String(t.find((e) => e !== null) ?? 0)}`))]
151
163
  })]
152
164
  }) });
153
165
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerCalendar.js","names":[],"sources":["../../../src/components/DatePicker/DatePickerCalendar.tsx"],"sourcesContent":["\"use client\";\n// Exceeds 200 lines: calendar grid JSX is inseparable from the hooks that feed it.\n// Hook calls, Intl formatters, memos, and selectDay/navigateToDate callbacks all\n// close over the same display state and cannot be moved to a sibling file.\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { Portal } from \"@nuka/utils/portal\";\nimport { Button } from \"@nuka/components/Button\";\nimport { Icon } from \"@nuka/components/Icon\";\nimport { Text } from \"@nuka/components/Text\";\nimport { useDatePickerContext } from \"@nuka/components/DatePicker/DatePicker.context\";\nimport {\n isSameDay,\n isDateDisabled,\n buildMonthGrid,\n} from \"@nuka/components/DatePicker/DatePicker.utils\";\nimport {\n useCalendarNavigation,\n useCalendarFocus,\n useCalendarKeyboard,\n} from \"@nuka/components/DatePicker/DatePicker.hooks\";\n\nexport interface DatePickerCalendarProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement> | undefined;\n}\n\nfunction DatePickerCalendar({\n ref,\n className,\n ...props\n}: DatePickerCalendarProps) {\n const ctx = useDatePickerContext();\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(\n ref,\n contentRef,\n ctx.refs.setFloating as React.Ref<HTMLDivElement>,\n );\n\n const {\n displayedYear,\n setDisplayedYear,\n displayedMonth,\n setDisplayedMonth,\n canGoPrev,\n canGoNext,\n goToPrevMonth,\n goToNextMonth,\n } = useCalendarNavigation(ctx);\n\n const { focusedDayRef } = useCalendarFocus(\n ctx,\n displayedYear,\n displayedMonth,\n );\n\n const labelFormatter = React.useMemo(\n () =>\n new Intl.DateTimeFormat(ctx.locale, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n }),\n [ctx.locale],\n );\n\n const headerFormatter = React.useMemo(\n () =>\n new Intl.DateTimeFormat(ctx.locale, {\n month: \"long\",\n year: \"numeric\",\n }),\n [ctx.locale],\n );\n\n const weekdayLabels = React.useMemo(() => {\n const shortFmt = new Intl.DateTimeFormat(ctx.locale, { weekday: \"short\" });\n const longFmt = new Intl.DateTimeFormat(ctx.locale, { weekday: \"long\" });\n return Array.from({ length: 7 }, (_, i) => {\n const date = new Date(2026, 0, 5 + i);\n return {\n short: shortFmt.format(date),\n long: longFmt.format(date),\n };\n });\n }, [ctx.locale]);\n\n const weeks = React.useMemo(\n () => buildMonthGrid(displayedYear, displayedMonth),\n [displayedYear, displayedMonth],\n );\n\n const headerLabel = React.useMemo(\n () => headerFormatter.format(new Date(displayedYear, displayedMonth, 1)),\n [displayedYear, displayedMonth, headerFormatter],\n );\n\n const selectDay = React.useCallback(\n (date: Date) => {\n if (isDateDisabled(date, ctx.min, ctx.max)) return;\n ctx.onSelectedDateChange(date);\n ctx.onOpenChange(false);\n requestAnimationFrame(() => {\n ctx.triggerButtonRef.current?.focus();\n });\n },\n [ctx],\n );\n\n const navigateToDate = React.useCallback(\n (candidate: Date, stepFn: (d: Date) => Date) => {\n let current = candidate;\n let attempts = 0;\n while (isDateDisabled(current, ctx.min, ctx.max) && attempts < 366) {\n current = stepFn(current);\n attempts++;\n }\n if (isDateDisabled(current, ctx.min, ctx.max)) return;\n\n ctx.setFocusedDate(current);\n if (\n current.getMonth() !== displayedMonth ||\n current.getFullYear() !== displayedYear\n ) {\n setDisplayedYear(current.getFullYear());\n setDisplayedMonth(current.getMonth());\n }\n },\n [ctx, displayedMonth, displayedYear, setDisplayedYear, setDisplayedMonth],\n );\n\n const { handleKeyDown } = useCalendarKeyboard(ctx, navigateToDate, selectDay);\n\n if (!ctx.open) return null;\n\n const floatingProps = ctx.getFloatingProps(props);\n const today = new Date();\n\n return (\n <Portal>\n <div\n ref={composedRef}\n style={ctx.floatingStyles}\n role=\"dialog\"\n aria-label=\"Date picker\"\n {...(floatingProps as React.HTMLAttributes<HTMLDivElement>)}\n className={cn(\n \"z-(--nuka-z-dropdown) rounded-(--radius-md) border border-(--nuka-border-base)\",\n \"bg-(--nuka-bg-base) shadow-md p-(--space-3)\",\n \"focus-visible:outline-none\",\n className,\n )}\n >\n <div className=\"flex items-center justify-between mb-(--space-2)\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToPrevMonth}\n disabled={!canGoPrev}\n aria-label=\"Previous month\"\n >\n <Icon size=\"sm\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n </Icon>\n </Button>\n <Text as=\"span\" size=\"sm\" weight=\"medium\">\n {headerLabel}\n </Text>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToNextMonth}\n disabled={!canGoNext}\n aria-label=\"Next month\"\n >\n <Icon size=\"sm\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </Icon>\n </Button>\n </div>\n\n <div\n role=\"grid\"\n aria-label={headerLabel}\n id={`${ctx.baseId}-grid`}\n onKeyDown={handleKeyDown}\n >\n <div\n role=\"row\"\n aria-hidden=\"true\"\n className=\"grid grid-cols-7 mb-(--space-1)\"\n >\n {weekdayLabels.map((day) => (\n <abbr\n key={day.short}\n title={day.long}\n className=\"flex items-center justify-center text-xs text-(--nuka-text-muted) no-underline py-(--space-1)\"\n >\n {day.short}\n </abbr>\n ))}\n </div>\n\n {weeks.map((week, weekIndex) => (\n <div role=\"row\" key={weekIndex} className=\"grid grid-cols-7\">\n {week.map((day, dayIndex) => {\n if (day === null) {\n return (\n <div\n role=\"gridcell\"\n key={`empty-${String(dayIndex)}`}\n aria-hidden=\"true\"\n >\n <span className=\"block size-9\" />\n </div>\n );\n }\n\n const date = new Date(displayedYear, displayedMonth, day);\n const disabled = isDateDisabled(date, ctx.min, ctx.max);\n const isSelected =\n ctx.selectedDate !== undefined &&\n isSameDay(date, ctx.selectedDate);\n const isFocused = isSameDay(date, ctx.focusedDate);\n const isToday = isSameDay(date, today);\n const dayLabel = labelFormatter.format(date);\n\n return (\n <div role=\"gridcell\" key={day}>\n <button\n ref={isFocused ? focusedDayRef : undefined}\n type=\"button\"\n tabIndex={isFocused ? 0 : -1}\n aria-label={dayLabel}\n aria-selected={isSelected}\n aria-disabled={disabled || undefined}\n disabled={disabled}\n onClick={() => selectDay(date)}\n className={cn(\n \"flex items-center justify-center size-9 rounded-(--radius-md) text-sm\",\n \"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--nuka-border-focus)\",\n \"cursor-pointer\",\n isSelected &&\n \"bg-(--nuka-accent-bg) text-(--nuka-accent-fg)\",\n !isSelected &&\n !disabled &&\n \"hover:bg-(--nuka-bg-muted)\",\n isToday &&\n !isSelected &&\n \"ring-1 ring-(--nuka-border-strong)\",\n disabled && \"opacity-50 cursor-default\",\n )}\n >\n {day}\n </button>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n </Portal>\n );\n}\n\nDatePickerCalendar.displayName = \"DatePickerCalendar\";\n\nexport { DatePickerCalendar };\n"],"mappings":"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"}
1
+ {"version":3,"file":"DatePickerCalendar.js","names":[],"sources":["../../../src/components/DatePicker/DatePickerCalendar.tsx"],"sourcesContent":["\"use client\";\n// Exceeds 200 lines: calendar grid JSX is inseparable from the hooks that feed it.\n// Hook calls, Intl formatters, memos, and selectDay/navigateToDate callbacks all\n// close over the same display state and cannot be moved to a sibling file.\nimport * as React from \"react\";\nimport { cn } from \"@nuka/utils/cn\";\nimport { composeRefs } from \"@nuka/utils/slot\";\nimport { Portal } from \"@nuka/utils/portal\";\nimport { Button } from \"@nuka/components/Button\";\nimport { Icon } from \"@nuka/components/Icon\";\nimport { Text } from \"@nuka/components/Text\";\nimport { useDatePickerContext } from \"@nuka/components/DatePicker/DatePicker.context\";\nimport {\n isSameDay,\n isDateDisabled,\n buildMonthGrid,\n} from \"@nuka/components/DatePicker/DatePicker.utils\";\nimport {\n useCalendarNavigation,\n useCalendarFocus,\n useCalendarKeyboard,\n} from \"@nuka/components/DatePicker/DatePicker.hooks\";\n\nexport interface DatePickerCalendarProps extends React.HTMLAttributes<HTMLDivElement> {\n ref?: React.Ref<HTMLDivElement> | undefined;\n}\n\nfunction DatePickerCalendar({\n ref,\n className,\n ...props\n}: DatePickerCalendarProps) {\n const ctx = useDatePickerContext();\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRef = composeRefs(\n ref,\n contentRef,\n ctx.refs.setFloating as React.Ref<HTMLDivElement>,\n );\n\n const {\n displayedYear,\n setDisplayedYear,\n displayedMonth,\n setDisplayedMonth,\n canGoPrev,\n canGoNext,\n goToPrevMonth,\n goToNextMonth,\n } = useCalendarNavigation(ctx);\n\n const { focusedDayRef } = useCalendarFocus(\n ctx,\n displayedYear,\n displayedMonth,\n );\n\n const labelFormatter = React.useMemo(\n () =>\n new Intl.DateTimeFormat(ctx.locale, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n }),\n [ctx.locale],\n );\n\n const headerFormatter = React.useMemo(\n () =>\n new Intl.DateTimeFormat(ctx.locale, {\n month: \"long\",\n year: \"numeric\",\n }),\n [ctx.locale],\n );\n\n const weekdayLabels = React.useMemo(() => {\n const shortFmt = new Intl.DateTimeFormat(ctx.locale, { weekday: \"short\" });\n const longFmt = new Intl.DateTimeFormat(ctx.locale, { weekday: \"long\" });\n return Array.from({ length: 7 }, (_, i) => {\n const date = new Date(2026, 0, 5 + i);\n return {\n short: shortFmt.format(date),\n long: longFmt.format(date),\n };\n });\n }, [ctx.locale]);\n\n const weeks = React.useMemo(\n () => buildMonthGrid(displayedYear, displayedMonth),\n [displayedYear, displayedMonth],\n );\n\n const headerLabel = React.useMemo(\n () => headerFormatter.format(new Date(displayedYear, displayedMonth, 1)),\n [displayedYear, displayedMonth, headerFormatter],\n );\n\n const selectDay = React.useCallback(\n (date: Date) => {\n if (isDateDisabled(date, ctx.min, ctx.max)) return;\n ctx.onSelectedDateChange(date);\n ctx.onOpenChange(false);\n requestAnimationFrame(() => {\n ctx.triggerButtonRef.current?.focus();\n });\n },\n [ctx],\n );\n\n const navigateToDate = React.useCallback(\n (candidate: Date, stepFn: (d: Date) => Date) => {\n let current = candidate;\n let attempts = 0;\n while (isDateDisabled(current, ctx.min, ctx.max) && attempts < 366) {\n current = stepFn(current);\n attempts++;\n }\n if (isDateDisabled(current, ctx.min, ctx.max)) return;\n\n ctx.setFocusedDate(current);\n if (\n current.getMonth() !== displayedMonth ||\n current.getFullYear() !== displayedYear\n ) {\n setDisplayedYear(current.getFullYear());\n setDisplayedMonth(current.getMonth());\n }\n },\n [ctx, displayedMonth, displayedYear, setDisplayedYear, setDisplayedMonth],\n );\n\n const { handleKeyDown } = useCalendarKeyboard(ctx, navigateToDate, selectDay);\n const today = React.useMemo(() => new Date(), []);\n\n if (!ctx.open) return null;\n\n const floatingProps = ctx.getFloatingProps(props);\n\n return (\n <Portal>\n <div\n ref={composedRef}\n style={ctx.floatingStyles}\n role=\"dialog\"\n aria-label=\"Date picker\"\n data-slot=\"calendar\"\n {...floatingProps}\n className={cn(\n \"z-(--nuka-z-dropdown) rounded-(--radius-md) border border-(--nuka-border-base)\",\n \"bg-(--nuka-bg-base) shadow-md p-(--space-3)\",\n \"focus-visible:outline-none\",\n className,\n )}\n >\n <div\n className=\"flex items-center justify-between mb-(--space-2)\"\n data-slot=\"calendar-header\"\n >\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToPrevMonth}\n disabled={!canGoPrev}\n aria-label=\"Previous month\"\n data-slot=\"prev-button\"\n >\n <Icon size=\"sm\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n </Icon>\n </Button>\n <Text\n as=\"span\"\n size=\"sm\"\n weight=\"medium\"\n data-slot=\"month-year-label\"\n >\n {headerLabel}\n </Text>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={goToNextMonth}\n disabled={!canGoNext}\n aria-label=\"Next month\"\n data-slot=\"next-button\"\n >\n <Icon size=\"sm\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </Icon>\n </Button>\n </div>\n\n <div\n role=\"grid\"\n aria-label={headerLabel}\n id={`${ctx.baseId}-grid`}\n data-slot=\"grid\"\n onKeyDown={handleKeyDown}\n >\n <div\n role=\"row\"\n aria-hidden=\"true\"\n className=\"grid grid-cols-7 mb-(--space-1)\"\n data-slot=\"weekday-row\"\n >\n {weekdayLabels.map((day) => (\n <abbr\n key={day.short}\n title={day.long}\n className=\"flex items-center justify-center text-xs text-(--nuka-text-muted) no-underline py-(--space-1)\"\n data-slot=\"weekday\"\n >\n {day.short}\n </abbr>\n ))}\n </div>\n\n {weeks.map((week) => (\n <div\n role=\"row\"\n key={`${String(displayedYear)}-${String(displayedMonth)}-${String(week.find((d) => d !== null) ?? 0)}`}\n className=\"grid grid-cols-7\"\n data-slot=\"week-row\"\n >\n {week.map((day, dayIndex) => {\n if (day === null) {\n return (\n <div\n role=\"gridcell\"\n key={`empty-${String(dayIndex)}`}\n aria-hidden=\"true\"\n data-slot=\"day-cell\"\n >\n <span className=\"block size-9\" />\n </div>\n );\n }\n\n const date = new Date(displayedYear, displayedMonth, day);\n const disabled = isDateDisabled(date, ctx.min, ctx.max);\n const isSelected =\n ctx.selectedDate !== undefined &&\n isSameDay(date, ctx.selectedDate);\n const isFocused = isSameDay(date, ctx.focusedDate);\n const isToday = isSameDay(date, today);\n const dayLabel = labelFormatter.format(date);\n\n return (\n <div role=\"gridcell\" key={day} data-slot=\"day-cell\">\n <button\n ref={isFocused ? focusedDayRef : undefined}\n type=\"button\"\n tabIndex={isFocused ? 0 : -1}\n aria-label={dayLabel}\n aria-selected={isSelected}\n aria-disabled={disabled || undefined}\n disabled={disabled}\n onClick={() => selectDay(date)}\n data-slot=\"day-button\"\n className={cn(\n \"flex items-center justify-center size-9 rounded-(--radius-md) text-sm\",\n \"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-(--nuka-border-focus)\",\n \"cursor-pointer\",\n isSelected &&\n \"bg-(--nuka-accent-bg) text-(--nuka-accent-fg)\",\n !isSelected &&\n !disabled &&\n \"hover:bg-(--nuka-bg-muted)\",\n isToday &&\n !isSelected &&\n \"ring-1 ring-(--nuka-border-strong)\",\n disabled && \"opacity-50 cursor-default\",\n )}\n >\n {day}\n </button>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n </Portal>\n );\n}\n\nDatePickerCalendar.displayName = \"DatePickerCalendar\";\n\nexport { DatePickerCalendar };\n"],"mappings":"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"}