@servicetitan/anvil2 3.7.1 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (418) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/{AiMark-DKAIkwNU.js → AiMark-2_O4tKv_.js} +5 -5
  3. package/dist/AiMark-2_O4tKv_.js.map +1 -0
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-tsu15fCc.js → Alert-DtM7NDN9.js} +3 -3
  6. package/dist/Alert-DtM7NDN9.js.map +1 -0
  7. package/dist/Alert.js +1 -1
  8. package/dist/{Announcement-DU0J4111.js → Announcement-CGglhMfd.js} +3 -3
  9. package/dist/Announcement-CGglhMfd.js.map +1 -0
  10. package/dist/Announcement.js +1 -1
  11. package/dist/AnvilProvider-b3gvW6Md.js.map +1 -1
  12. package/dist/Avatar-CoQcOHWU.js.map +1 -1
  13. package/dist/Avatar-DX96Mxe7.js.map +1 -1
  14. package/dist/Badge-BNrYBFiU.js.map +1 -1
  15. package/dist/Badge.css +2 -3
  16. package/dist/{Breadcrumbs-CoqJO7Ca.js → Breadcrumbs-Bmqmw5F5.js} +4 -4
  17. package/dist/Breadcrumbs-Bmqmw5F5.js.map +1 -0
  18. package/dist/Breadcrumbs.js +1 -1
  19. package/dist/{Button-BNzCI47m.js → Button-Dwh_Nd4l.js} +6 -8
  20. package/dist/Button-Dwh_Nd4l.js.map +1 -0
  21. package/dist/Button.js +1 -1
  22. package/dist/ButtonCompound-D7kA0qXr.js.map +1 -1
  23. package/dist/{ButtonLink-PlW08u41.js → ButtonLink-DOFAxNvC.js} +2 -2
  24. package/dist/ButtonLink-DOFAxNvC.js.map +1 -0
  25. package/dist/ButtonLink.js +1 -1
  26. package/dist/{ButtonToggle-DBGc7dIn.js → ButtonToggle-DKDBD1g3.js} +2 -2
  27. package/dist/ButtonToggle-DKDBD1g3.js.map +1 -0
  28. package/dist/ButtonToggle.js +1 -1
  29. package/dist/{Calendar-Csw2CkqE.js → Calendar-CUgFbnKj.js} +2 -2
  30. package/dist/Calendar-CUgFbnKj.js.map +1 -0
  31. package/dist/{Calendar-DnwCL7gm.js → Calendar-D_fqe0-J.js} +11 -4
  32. package/dist/Calendar-D_fqe0-J.js.map +1 -0
  33. package/dist/Calendar.js +2 -2
  34. package/dist/Card-Bt0F6RTq.js.map +1 -1
  35. package/dist/{Checkbox-DGU3JwZA.js → Checkbox-4wRmrann.js} +2 -2
  36. package/dist/Checkbox-4wRmrann.js.map +1 -0
  37. package/dist/{Checkbox-Cmn1o3Ta.js → Checkbox-DoxWcbfv.js} +5 -5
  38. package/dist/Checkbox-DoxWcbfv.js.map +1 -0
  39. package/dist/Checkbox.js +1 -1
  40. package/dist/{Chip-BsGckplA.js → Chip-D6Q0J0Xe.js} +3 -3
  41. package/dist/Chip-D6Q0J0Xe.js.map +1 -0
  42. package/dist/Chip.js +1 -1
  43. package/dist/Combobox.js +1 -1
  44. package/dist/{DataTable-BLK4-7QQ.js → DataTable-CRzQKN_P.js} +11 -11
  45. package/dist/DataTable-CRzQKN_P.js.map +1 -0
  46. package/dist/DataTable.css +2 -3
  47. package/dist/{DateFieldRange-BnNrQvuG.js → DateFieldRange-CHbrYgsD.js} +12 -5
  48. package/dist/DateFieldRange-CHbrYgsD.js.map +1 -0
  49. package/dist/DateFieldRange.js +1 -1
  50. package/dist/{DateFieldSingle-CwcV_AOp.js → DateFieldSingle-D-KZ3NL0.js} +12 -5
  51. package/dist/DateFieldSingle-D-KZ3NL0.js.map +1 -0
  52. package/dist/DateFieldSingle.js +1 -1
  53. package/dist/{DateFieldYearless-HntvaWSJ.js → DateFieldYearless-DouEX24o.js} +5 -5
  54. package/dist/DateFieldYearless-DouEX24o.js.map +1 -0
  55. package/dist/DateFieldYearless.js +1 -1
  56. package/dist/{DateFieldYearlessRange-BPvJvBob.js → DateFieldYearlessRange-B_bImgyn.js} +5 -5
  57. package/dist/DateFieldYearlessRange-B_bImgyn.js.map +1 -0
  58. package/dist/DateFieldYearlessRange.js +1 -1
  59. package/dist/{DaysOfTheWeek-4Cd2WK7u.js → DaysOfTheWeek--FBi44iw.js} +5 -5
  60. package/dist/DaysOfTheWeek--FBi44iw.js.map +1 -0
  61. package/dist/DaysOfTheWeek.js +1 -1
  62. package/dist/{Details-DkteVZbk.js → Details-CVA5zbrR.js} +2 -2
  63. package/dist/Details-CVA5zbrR.js.map +1 -0
  64. package/dist/Details.js +1 -1
  65. package/dist/{Dialog-CE2fxzJR.js → Dialog-Clh3jaX8.js} +5 -5
  66. package/dist/Dialog-Clh3jaX8.js.map +1 -0
  67. package/dist/Dialog.js +1 -1
  68. package/dist/{DialogCancelButton-DmSUPuCR.js → DialogCancelButton-DBL0aKTK.js} +2 -2
  69. package/dist/DialogCancelButton-DBL0aKTK.js.map +1 -0
  70. package/dist/DialogContext-DBgtApl9.js.map +1 -1
  71. package/dist/Divider-C7fp5Xb6.js.map +1 -1
  72. package/dist/Dnd.js +2 -2
  73. package/dist/{DndHandleButton-Ck5nc8w2.js → DndHandleButton-BRlodkDO.js} +2 -2
  74. package/dist/{DndHandleButton-Ck5nc8w2.js.map → DndHandleButton-BRlodkDO.js.map} +1 -1
  75. package/dist/DndSort.js +4 -4
  76. package/dist/DndSort.js.map +1 -1
  77. package/dist/{Drawer-CWLwXp1D.js → Drawer-h2Mut1lB.js} +61 -34
  78. package/dist/Drawer-h2Mut1lB.js.map +1 -0
  79. package/dist/Drawer.css +34 -28
  80. package/dist/Drawer.js +1 -1
  81. package/dist/DrawerContext-BSpnzXVZ.js.map +1 -1
  82. package/dist/DrillDown.js +1 -1
  83. package/dist/DrillDown.module-D1Bf9_yP.js.map +1 -1
  84. package/dist/{EditCard-DqFAx5cl.js → EditCard-QohYSylF.js} +4 -4
  85. package/dist/EditCard-QohYSylF.js.map +1 -0
  86. package/dist/EditCard.js +1 -1
  87. package/dist/{FieldLabel-v6vMVVWB.js → FieldLabel-SzH61hCb.js} +3 -3
  88. package/dist/FieldLabel-SzH61hCb.js.map +1 -0
  89. package/dist/FieldLabel.js +1 -1
  90. package/dist/{FilterBar-Ce22r7lY.js → FilterBar-CBTAkEri.js} +8 -8
  91. package/dist/FilterBar-CBTAkEri.js.map +1 -0
  92. package/dist/FilterBar.js +1 -1
  93. package/dist/{Flex-Bb3iHExM.js → Flex-CRF7gj0_.js} +3 -3
  94. package/dist/Flex-CRF7gj0_.js.map +1 -0
  95. package/dist/Flex.css +2 -4
  96. package/dist/Flex.js +1 -1
  97. package/dist/{Grid-ho1pGJ5L.js → Grid-CvGQrIhE.js} +4 -4
  98. package/dist/Grid-CvGQrIhE.js.map +1 -0
  99. package/dist/Grid.css +3 -5
  100. package/dist/Grid.js +1 -1
  101. package/dist/{Helper-B_VAFgGd.js → Helper-Bq6Npkgh.js} +2 -2
  102. package/dist/Helper-Bq6Npkgh.js.map +1 -0
  103. package/dist/{Icon-B4uCvMU9.js → Icon-B5zwN7GD.js} +4 -4
  104. package/dist/Icon-B5zwN7GD.js.map +1 -0
  105. package/dist/Icon.js +1 -1
  106. package/dist/{InputMask-DnbZnynw.js → InputMask-CQONHcTq.js} +3 -3
  107. package/dist/InputMask-CQONHcTq.js.map +1 -0
  108. package/dist/InputMask.js +1 -1
  109. package/dist/InteractiveCard-C0g5PxB6.js.map +1 -1
  110. package/dist/Layout-C2Q2hyLG.js.map +1 -1
  111. package/dist/{Link-C7dtI5K6.js → Link-D7ycmfQ_.js} +2 -2
  112. package/dist/Link-D7ycmfQ_.js.map +1 -0
  113. package/dist/Link.css +2 -4
  114. package/dist/Link.js +1 -1
  115. package/dist/LinkButton-C0wps8r1.js.map +1 -1
  116. package/dist/List-BvzfZ9TW.js.map +1 -1
  117. package/dist/{ListView-Dy4m0aQb.js → ListView-BgGEwal3.js} +3 -3
  118. package/dist/ListView-BgGEwal3.js.map +1 -0
  119. package/dist/ListView.js +1 -1
  120. package/dist/{Listbox-By-gyw1j.js → Listbox-Cw_2W62S.js} +4 -4
  121. package/dist/Listbox-Cw_2W62S.js.map +1 -0
  122. package/dist/Listbox.js +1 -1
  123. package/dist/LocalizationContext-UsmB5mnR.js.map +1 -1
  124. package/dist/LocalizationProvider-BPcOU7YX.js.map +1 -1
  125. package/dist/{Menu-DmEXQLXt.js → Menu-DNOOmDQC.js} +3 -3
  126. package/dist/Menu-DNOOmDQC.js.map +1 -0
  127. package/dist/Menu.js +1 -1
  128. package/dist/{MenuFooter-Ck9L599M.js → MenuFooter-BXcNxNnX.js} +2 -2
  129. package/dist/MenuFooter-BXcNxNnX.js.map +1 -0
  130. package/dist/MultiSelectField.js +1 -1
  131. package/dist/{MultiSelectFieldSync-CGOAko_r.js → MultiSelectFieldSync-CpfsWecG.js} +18 -8
  132. package/dist/MultiSelectFieldSync-CpfsWecG.js.map +1 -0
  133. package/dist/MultiSelectMenu.js +1 -1
  134. package/dist/{MultiSelectMenuSync-DTRWdqGg.js → MultiSelectMenuSync-CtyLYyDE.js} +10 -8
  135. package/dist/MultiSelectMenuSync-CtyLYyDE.js.map +1 -0
  136. package/dist/{NumberField-BuAlvtg_.js → NumberField-B1761jkf.js} +7 -7
  137. package/dist/NumberField-B1761jkf.js.map +1 -0
  138. package/dist/NumberField.css +2 -3
  139. package/dist/NumberField.js +1 -1
  140. package/dist/Overflow.js +1 -1
  141. package/dist/Overflow.js.map +1 -1
  142. package/dist/{Page-DBKu3XYh.js → Page-B6E3Gbji.js} +13 -13
  143. package/dist/Page-B6E3Gbji.js.map +1 -0
  144. package/dist/Page.js +1 -1
  145. package/dist/{Pagination-Ceh0uZhU.js → Pagination-DF7iMeJe.js} +6 -6
  146. package/dist/Pagination-DF7iMeJe.js.map +1 -0
  147. package/dist/Pagination.js +1 -1
  148. package/dist/{Popover-hQKMGTiJ.js → Popover-CjsE5FG0.js} +3 -3
  149. package/dist/Popover-CjsE5FG0.js.map +1 -0
  150. package/dist/Popover.js +1 -1
  151. package/dist/PortalProvider-Cj_y3gbC.js.map +1 -1
  152. package/dist/{ProgressBar-CFdDZFV9.js → ProgressBar-Coh2nTJ1.js} +6 -6
  153. package/dist/ProgressBar-Coh2nTJ1.js.map +1 -0
  154. package/dist/ProgressBar.js +1 -1
  155. package/dist/{Radio-Dey7KUCQ.js → Radio-BxSL1PoP.js} +2 -2
  156. package/dist/Radio-BxSL1PoP.js.map +1 -0
  157. package/dist/{Radio-ARjSflvI.js → Radio-J4Iv3wbJ.js} +5 -5
  158. package/dist/Radio-J4Iv3wbJ.js.map +1 -0
  159. package/dist/Radio.js +1 -1
  160. package/dist/{RichTextEditor-B4ZPAevY.js → RichTextEditor-CLo8yoUP.js} +13 -13
  161. package/dist/RichTextEditor-CLo8yoUP.js.map +1 -0
  162. package/dist/RichTextEditor.css +1 -2
  163. package/dist/RichTextEditor.js +1 -1
  164. package/dist/{SavedFiltersButton-DPISXV2b.js → SavedFiltersButton-FcYVncxU.js} +12 -12
  165. package/dist/SavedFiltersButton-FcYVncxU.js.map +1 -0
  166. package/dist/SavedFiltersButton.js +1 -1
  167. package/dist/{SearchField-B7fIOJf-.js → SearchField-ChoNtw8w.js} +2 -2
  168. package/dist/SearchField-ChoNtw8w.js.map +1 -0
  169. package/dist/{SearchField-X4B7f23E.js → SearchField-DX8hZyo2.js} +2 -2
  170. package/dist/SearchField-DX8hZyo2.js.map +1 -0
  171. package/dist/SearchField.js +1 -1
  172. package/dist/{SegmentedControl-Be6jCglV.js → SegmentedControl-CQ6DrbDc.js} +2 -2
  173. package/dist/SegmentedControl-CQ6DrbDc.js.map +1 -0
  174. package/dist/SegmentedControl.css +2 -3
  175. package/dist/SegmentedControl.js +1 -1
  176. package/dist/{SelectCard-DtEUPxgj.js → SelectCard-BTfhPyHH.js} +4 -4
  177. package/dist/SelectCard-BTfhPyHH.js.map +1 -0
  178. package/dist/SelectCard.js +1 -1
  179. package/dist/SelectField.js +1 -1
  180. package/dist/{SelectFieldLabel-DB3o9bDD.js → SelectFieldLabel-CjY6zFJA.js} +2 -2
  181. package/dist/SelectFieldLabel-CjY6zFJA.js.map +1 -0
  182. package/dist/{SelectFieldSync-B5r-wl1D.js → SelectFieldSync-Bi8HsMYP.js} +23 -8
  183. package/dist/SelectFieldSync-Bi8HsMYP.js.map +1 -0
  184. package/dist/SelectMenu.js +1 -1
  185. package/dist/{SelectMenuSync-CqKMKaWt.js → SelectMenuSync-DKg4g5nN.js} +7 -7
  186. package/dist/SelectMenuSync-DKg4g5nN.js.map +1 -0
  187. package/dist/{SelectOptions-VVJ4D-0C.js → SelectOptions-DszNAjxB.js} +2 -2
  188. package/dist/SelectOptions-DszNAjxB.js.map +1 -0
  189. package/dist/{SelectTrigger-TRI2LhJR.js → SelectTrigger-DNIc5ttg.js} +4 -4
  190. package/dist/SelectTrigger-DNIc5ttg.js.map +1 -0
  191. package/dist/SelectTrigger.js +1 -1
  192. package/dist/{SelectTriggerBase-D1nOad4B.js → SelectTriggerBase-1Cc6EUBw.js} +10 -14
  193. package/dist/SelectTriggerBase-1Cc6EUBw.js.map +1 -0
  194. package/dist/SelectTriggerBase.css +2 -3
  195. package/dist/{SideNav-DoxX8Vi-.js → SideNav-DZRXOYHs.js} +2 -2
  196. package/dist/SideNav-DZRXOYHs.js.map +1 -0
  197. package/dist/SideNav.js +1 -1
  198. package/dist/Skeleton.js.map +1 -1
  199. package/dist/Spinner-B7tTWcP6.js.map +1 -1
  200. package/dist/SrOnly-pnf8ajnh.js.map +1 -1
  201. package/dist/{Stepper-CvaR7OoT.js → Stepper-BX_gDWLE.js} +4 -4
  202. package/dist/Stepper-BX_gDWLE.js.map +1 -0
  203. package/dist/Stepper.css +1 -2
  204. package/dist/Stepper.js +1 -1
  205. package/dist/{Switch-ClbHJvDU.js → Switch-BpjBYm-U.js} +5 -5
  206. package/dist/Switch-BpjBYm-U.js.map +1 -0
  207. package/dist/Switch.js +1 -1
  208. package/dist/{Tab-Cy4G562A.js → Tab-Bqfvg8Ce.js} +53 -23
  209. package/dist/Tab-Bqfvg8Ce.js.map +1 -0
  210. package/dist/Tab.css +35 -31
  211. package/dist/Tab.js +1 -1
  212. package/dist/Table.js +1 -1
  213. package/dist/{Text-BjYHzUGW.js → Text-CIoD_RK4.js} +2 -2
  214. package/dist/Text-CIoD_RK4.js.map +1 -0
  215. package/dist/Text.js +1 -1
  216. package/dist/{TextField-DX6-K3jO.js → TextField-CzzvLI5_.js} +4 -4
  217. package/dist/TextField-CzzvLI5_.js.map +1 -0
  218. package/dist/{TextField-BsVxym0-.js → TextField-D3sRS5q1.js} +2 -2
  219. package/dist/TextField-D3sRS5q1.js.map +1 -0
  220. package/dist/TextField.js +1 -1
  221. package/dist/{Textarea-B3z6Y7VU.js → Textarea-B3C7AkPj.js} +4 -4
  222. package/dist/Textarea-B3C7AkPj.js.map +1 -0
  223. package/dist/Textarea.js +1 -1
  224. package/dist/ThemeProvider-Sd8LK0A9.js.map +1 -1
  225. package/dist/ThemeProviderContext-l52GohYT.js.map +1 -1
  226. package/dist/{TimeField-Bmcwic3C.js → TimeField-L9B_X6-H.js} +31 -9
  227. package/dist/TimeField-L9B_X6-H.js.map +1 -0
  228. package/dist/TimeField.js +1 -1
  229. package/dist/TimezoneMessage-BrKB_psP.js.map +1 -1
  230. package/dist/Toast.js +2 -2
  231. package/dist/{Toaster-CvY-A7zY.js → Toaster-CAI7tX8q.js} +4 -4
  232. package/dist/Toaster-CAI7tX8q.js.map +1 -0
  233. package/dist/{Toaster-CTjkTMie.js → Toaster-DZxf0N9g.js} +2 -2
  234. package/dist/Toaster-DZxf0N9g.js.map +1 -0
  235. package/dist/{Toolbar-BpCO-4zj.js → Toolbar-2VQIjU5b.js} +9 -9
  236. package/dist/Toolbar-2VQIjU5b.js.map +1 -0
  237. package/dist/{Toolbar-pdJXcqY0.js → Toolbar-BbImThIu.js} +7 -7
  238. package/dist/Toolbar-BbImThIu.js.map +1 -0
  239. package/dist/Toolbar.js +2 -2
  240. package/dist/{ToolbarButtonToggle-3xbnm1Qr.js → ToolbarButtonToggle-Bc0XvCM9.js} +2 -2
  241. package/dist/ToolbarButtonToggle-Bc0XvCM9.js.map +1 -0
  242. package/dist/Tooltip-BC8lnFhe.js.map +1 -1
  243. package/dist/TrackingProvider-Co4lyoI9.js.map +1 -1
  244. package/dist/TrackingProviderContext-CrVA7KHv.js.map +1 -1
  245. package/dist/TreeSelectField.js +1 -1
  246. package/dist/{TreeSelectFieldSync-Cz8uOdpT.js → TreeSelectFieldSync-DUHVmOQa.js} +19 -8
  247. package/dist/TreeSelectFieldSync-DUHVmOQa.js.map +1 -0
  248. package/dist/TreeSelectMenu.js +1 -1
  249. package/dist/{TreeSelectMenuSync-Bk8BN6_B.js → TreeSelectMenuSync-DVoYUG7F.js} +8 -8
  250. package/dist/TreeSelectMenuSync-DVoYUG7F.js.map +1 -0
  251. package/dist/{TypeaheadTextField-Dg7O5Yu5.js → TypeaheadTextField-9Nkkd4c4.js} +3 -3
  252. package/dist/TypeaheadTextField-9Nkkd4c4.js.map +1 -0
  253. package/dist/TypeaheadTextField.js +1 -1
  254. package/dist/{YearlessDateInputWithPicker-CpnLg01W.js → YearlessDateInputWithPicker-CM9mmz8s.js} +16 -6
  255. package/dist/YearlessDateInputWithPicker-CM9mmz8s.js.map +1 -0
  256. package/dist/beta.js +16 -16
  257. package/dist/{bulkActionTypes-B20IInUD.js → bulkActionTypes-BnZNAru6.js} +2 -2
  258. package/dist/bulkActionTypes-BnZNAru6.js.map +1 -0
  259. package/dist/childrenToString-Bz9MqbHb.js.map +1 -1
  260. package/dist/{filter-state-CuiHPC94.js → filter-state-XmqhkURU.js} +37 -33
  261. package/dist/filter-state-XmqhkURU.js.map +1 -0
  262. package/dist/{index-B12T0Vxa.js → index-BwNeldDw.js} +2 -2
  263. package/dist/{index-B12T0Vxa.js.map → index-BwNeldDw.js.map} +1 -1
  264. package/dist/{index-SZMmvI3D.js → index-BwV_Pz7v.js} +2 -2
  265. package/dist/index-BwV_Pz7v.js.map +1 -0
  266. package/dist/index.js +56 -56
  267. package/dist/makeZeroShortcutPreprocessor-CxsiGTRW.js.map +1 -1
  268. package/dist/src/beta/components/FilterBar/index.d.ts +1 -1
  269. package/dist/src/beta/components/Toolbar/index.d.ts +1 -1
  270. package/dist/src/components/Alert/Alert.d.ts +2 -4
  271. package/dist/src/components/Announcement/Announcement.d.ts +2 -4
  272. package/dist/src/components/Breadcrumbs/index.d.ts +1 -1
  273. package/dist/src/components/ButtonCompound/ButtonCompound.d.ts +2 -4
  274. package/dist/src/components/ButtonLink/ButtonLink.d.ts +2 -4
  275. package/dist/src/components/ButtonToggle/ButtonToggle.d.ts +2 -4
  276. package/dist/src/components/Calendar/Calendar.d.ts +3 -1
  277. package/dist/src/components/Calendar/index.d.ts +1 -1
  278. package/dist/src/components/Checkbox/index.d.ts +2 -2
  279. package/dist/src/components/Combobox/Combobox.d.ts +2 -2
  280. package/dist/src/components/Combobox/ComboboxEmpty.d.ts +1 -1
  281. package/dist/src/components/Combobox/index.d.ts +2 -2
  282. package/dist/src/components/DateFieldSingle/index.d.ts +1 -1
  283. package/dist/src/components/DateFieldYearless/index.d.ts +1 -1
  284. package/dist/src/components/Details/index.d.ts +2 -2
  285. package/dist/src/components/Dialog/index.d.ts +4 -4
  286. package/dist/src/components/DndSort/index.d.ts +3 -3
  287. package/dist/src/components/Drawer/Drawer.d.ts +3 -1
  288. package/dist/src/components/Drawer/DrawerHeader.d.ts +35 -3
  289. package/dist/src/components/Drawer/index.d.ts +4 -4
  290. package/dist/src/components/Grid/index.d.ts +1 -1
  291. package/dist/src/components/List/index.d.ts +1 -1
  292. package/dist/src/components/Listbox/index.d.ts +2 -2
  293. package/dist/src/components/Menu/index.d.ts +1 -1
  294. package/dist/src/components/Overflow/index.d.ts +1 -1
  295. package/dist/src/components/Popover/index.d.ts +4 -4
  296. package/dist/src/components/Radio/index.d.ts +2 -2
  297. package/dist/src/components/SelectCard/index.d.ts +1 -1
  298. package/dist/src/components/SelectMenu/internal/useMenuInteraction.d.ts +7 -1
  299. package/dist/src/components/SideNav/index.d.ts +3 -3
  300. package/dist/src/components/Stepper/index.d.ts +6 -6
  301. package/dist/src/components/Tab/index.d.ts +3 -3
  302. package/dist/src/components/TimeField/index.d.ts +1 -1
  303. package/dist/src/components/Toolbar/index.d.ts +5 -5
  304. package/dist/src/components/Tooltip/index.d.ts +2 -2
  305. package/dist/src/internal/components/Popover/index.d.ts +4 -4
  306. package/dist/src/providers/ThemeProvider/index.d.ts +2 -2
  307. package/dist/src/providers/TrackingProvider/index.d.ts +1 -1
  308. package/dist/src/types/index.d.ts +3 -3
  309. package/dist/{stripInlineMarkdown-C-3FEh_E.js → stripInlineMarkdown-BfNNOWPk.js} +2 -2
  310. package/dist/{stripInlineMarkdown-C-3FEh_E.js.map → stripInlineMarkdown-BfNNOWPk.js.map} +1 -1
  311. package/dist/{syncFilterUtils-CU5iJQSC.js → syncFilterUtils-UVNoFsDr.js} +5 -5
  312. package/dist/syncFilterUtils-UVNoFsDr.js.map +1 -0
  313. package/dist/{treeSync-CUf4vwDm.js → treeSync-CiU5d6rF.js} +4 -4
  314. package/dist/{treeSync-CUf4vwDm.js.map → treeSync-CiU5d6rF.js.map} +1 -1
  315. package/dist/{useAdaptiveView-C0F7qnLD.js → useAdaptiveView-C_WvM4-P.js} +7 -7
  316. package/dist/useAdaptiveView-C_WvM4-P.js.map +1 -0
  317. package/dist/useChipLayout-BWZfKDgd.js.map +1 -1
  318. package/dist/{useDrilldown-CCsr0_3L.js → useDrilldown-D7DKSs7E.js} +5 -5
  319. package/dist/{useDrilldown-CCsr0_3L.js.map → useDrilldown-D7DKSs7E.js.map} +1 -1
  320. package/dist/useFocusWithin-hi77jsrB.js.map +1 -1
  321. package/dist/{useInfiniteCombobox-HSttRaX5.js → useInfiniteCombobox-COJTJxCZ.js} +70 -68
  322. package/dist/useInfiniteCombobox-COJTJxCZ.js.map +1 -0
  323. package/dist/{useInitialFocus-BIvXK1Rp.js → useInitialFocus-BUxEDMEG.js} +2 -2
  324. package/dist/useInitialFocus-BUxEDMEG.js.map +1 -0
  325. package/dist/useLayoutPropsUtil-DjqeAJZ9.js.map +1 -1
  326. package/dist/{useMenuInteraction-NEJXUD4I.js → useMenuInteraction-AgrXU8kv.js} +8 -2
  327. package/dist/useMenuInteraction-AgrXU8kv.js.map +1 -0
  328. package/dist/{useNumberField-D_ic9i2q.js → useNumberField-CXFYUZ_n.js} +4 -2
  329. package/dist/useNumberField-CXFYUZ_n.js.map +1 -0
  330. package/dist/useOptionallyControlledState-DbDuos5L.js.map +1 -1
  331. package/dist/{usePopoverTransitionStates-B1opfxxn.js → usePopoverTransitionStates-CDXCdyKa.js} +2 -1
  332. package/dist/{usePopoverTransitionStates-B1opfxxn.js.map → usePopoverTransitionStates-CDXCdyKa.js.map} +1 -1
  333. package/dist/useSize.js.map +1 -1
  334. package/dist/useSwipe-Cp-CJxLU.js.map +1 -1
  335. package/package.json +6 -4
  336. package/dist/AiMark-DKAIkwNU.js.map +0 -1
  337. package/dist/Alert-tsu15fCc.js.map +0 -1
  338. package/dist/Announcement-DU0J4111.js.map +0 -1
  339. package/dist/Breadcrumbs-CoqJO7Ca.js.map +0 -1
  340. package/dist/Button-BNzCI47m.js.map +0 -1
  341. package/dist/ButtonLink-PlW08u41.js.map +0 -1
  342. package/dist/ButtonToggle-DBGc7dIn.js.map +0 -1
  343. package/dist/Calendar-Csw2CkqE.js.map +0 -1
  344. package/dist/Calendar-DnwCL7gm.js.map +0 -1
  345. package/dist/Checkbox-Cmn1o3Ta.js.map +0 -1
  346. package/dist/Checkbox-DGU3JwZA.js.map +0 -1
  347. package/dist/Chip-BsGckplA.js.map +0 -1
  348. package/dist/DataTable-BLK4-7QQ.js.map +0 -1
  349. package/dist/DateFieldRange-BnNrQvuG.js.map +0 -1
  350. package/dist/DateFieldSingle-CwcV_AOp.js.map +0 -1
  351. package/dist/DateFieldYearless-HntvaWSJ.js.map +0 -1
  352. package/dist/DateFieldYearlessRange-BPvJvBob.js.map +0 -1
  353. package/dist/DaysOfTheWeek-4Cd2WK7u.js.map +0 -1
  354. package/dist/Details-DkteVZbk.js.map +0 -1
  355. package/dist/Dialog-CE2fxzJR.js.map +0 -1
  356. package/dist/DialogCancelButton-DmSUPuCR.js.map +0 -1
  357. package/dist/Drawer-CWLwXp1D.js.map +0 -1
  358. package/dist/EditCard-DqFAx5cl.js.map +0 -1
  359. package/dist/FieldLabel-v6vMVVWB.js.map +0 -1
  360. package/dist/FilterBar-Ce22r7lY.js.map +0 -1
  361. package/dist/Flex-Bb3iHExM.js.map +0 -1
  362. package/dist/Grid-ho1pGJ5L.js.map +0 -1
  363. package/dist/Helper-B_VAFgGd.js.map +0 -1
  364. package/dist/Icon-B4uCvMU9.js.map +0 -1
  365. package/dist/InputMask-DnbZnynw.js.map +0 -1
  366. package/dist/Link-C7dtI5K6.js.map +0 -1
  367. package/dist/ListView-Dy4m0aQb.js.map +0 -1
  368. package/dist/Listbox-By-gyw1j.js.map +0 -1
  369. package/dist/Menu-DmEXQLXt.js.map +0 -1
  370. package/dist/MenuFooter-Ck9L599M.js.map +0 -1
  371. package/dist/MultiSelectFieldSync-CGOAko_r.js.map +0 -1
  372. package/dist/MultiSelectMenuSync-DTRWdqGg.js.map +0 -1
  373. package/dist/NumberField-BuAlvtg_.js.map +0 -1
  374. package/dist/Page-DBKu3XYh.js.map +0 -1
  375. package/dist/Pagination-Ceh0uZhU.js.map +0 -1
  376. package/dist/Popover-hQKMGTiJ.js.map +0 -1
  377. package/dist/ProgressBar-CFdDZFV9.js.map +0 -1
  378. package/dist/Radio-ARjSflvI.js.map +0 -1
  379. package/dist/Radio-Dey7KUCQ.js.map +0 -1
  380. package/dist/RichTextEditor-B4ZPAevY.js.map +0 -1
  381. package/dist/SavedFiltersButton-DPISXV2b.js.map +0 -1
  382. package/dist/SearchField-B7fIOJf-.js.map +0 -1
  383. package/dist/SearchField-X4B7f23E.js.map +0 -1
  384. package/dist/SegmentedControl-Be6jCglV.js.map +0 -1
  385. package/dist/SelectCard-DtEUPxgj.js.map +0 -1
  386. package/dist/SelectFieldLabel-DB3o9bDD.js.map +0 -1
  387. package/dist/SelectFieldSync-B5r-wl1D.js.map +0 -1
  388. package/dist/SelectMenuSync-CqKMKaWt.js.map +0 -1
  389. package/dist/SelectOptions-VVJ4D-0C.js.map +0 -1
  390. package/dist/SelectTrigger-TRI2LhJR.js.map +0 -1
  391. package/dist/SelectTriggerBase-D1nOad4B.js.map +0 -1
  392. package/dist/SideNav-DoxX8Vi-.js.map +0 -1
  393. package/dist/Stepper-CvaR7OoT.js.map +0 -1
  394. package/dist/Switch-ClbHJvDU.js.map +0 -1
  395. package/dist/Tab-Cy4G562A.js.map +0 -1
  396. package/dist/Text-BjYHzUGW.js.map +0 -1
  397. package/dist/TextField-BsVxym0-.js.map +0 -1
  398. package/dist/TextField-DX6-K3jO.js.map +0 -1
  399. package/dist/Textarea-B3z6Y7VU.js.map +0 -1
  400. package/dist/TimeField-Bmcwic3C.js.map +0 -1
  401. package/dist/Toaster-CTjkTMie.js.map +0 -1
  402. package/dist/Toaster-CvY-A7zY.js.map +0 -1
  403. package/dist/Toolbar-BpCO-4zj.js.map +0 -1
  404. package/dist/Toolbar-pdJXcqY0.js.map +0 -1
  405. package/dist/ToolbarButtonToggle-3xbnm1Qr.js.map +0 -1
  406. package/dist/TreeSelectFieldSync-Cz8uOdpT.js.map +0 -1
  407. package/dist/TreeSelectMenuSync-Bk8BN6_B.js.map +0 -1
  408. package/dist/TypeaheadTextField-Dg7O5Yu5.js.map +0 -1
  409. package/dist/YearlessDateInputWithPicker-CpnLg01W.js.map +0 -1
  410. package/dist/bulkActionTypes-B20IInUD.js.map +0 -1
  411. package/dist/filter-state-CuiHPC94.js.map +0 -1
  412. package/dist/index-SZMmvI3D.js.map +0 -1
  413. package/dist/syncFilterUtils-CU5iJQSC.js.map +0 -1
  414. package/dist/useAdaptiveView-C0F7qnLD.js.map +0 -1
  415. package/dist/useInfiniteCombobox-HSttRaX5.js.map +0 -1
  416. package/dist/useInitialFocus-BIvXK1Rp.js.map +0 -1
  417. package/dist/useMenuInteraction-NEJXUD4I.js.map +0 -1
  418. package/dist/useNumberField-D_ic9i2q.js.map +0 -1
@@ -732,9 +732,8 @@
732
732
  opacity: var(--a2-table-resize-handle-opacity, 1);
733
733
  position: absolute;
734
734
  touch-action: none;
735
- -webkit-user-select: none;
736
- -moz-user-select: none;
737
- user-select: none;
735
+ -moz-user-select: none;
736
+ user-select: none;
738
737
  width: var(--a2-size-3);
739
738
  }th:hover ._resize-handle_18cik_4, div[role=columnheader]:hover ._resize-handle_18cik_4 {
740
739
  --a2-table-resize-handle-bg: var(--a2-overlay-color-hover);
@@ -1,14 +1,14 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { c as maskitoDateRangeOptionsGenerator, a as maskitoWithPlaceholder, u as useMaskito, b as maskitoParseDate } from './index.esm-C2ZhC_8d.js';
3
- import { T as TextField } from './TextField-DX6-K3jO.js';
3
+ import { T as TextField } from './TextField-CzzvLI5_.js';
4
4
  import { forwardRef, useState, useRef, useEffect, useMemo, useImperativeHandle, useCallback } from 'react';
5
- import { u as useMergeRefs, P as Popover } from './AiMark-DKAIkwNU.js';
6
- import { I as Icon } from './Icon-B4uCvMU9.js';
5
+ import { u as useMergeRefs, P as Popover } from './AiMark-2_O4tKv_.js';
6
+ import { I as Icon } from './Icon-B5zwN7GD.js';
7
7
  import { D as DateModeToPlaceholderMap, a as DateModeToFormatMap, S as SvgEvent, j as jsDateToUtcDateTime, c as convertStringToDate, T as TimezoneMessage, i as isoToUtcDate, v as validateDate } from './TimezoneMessage-BrKB_psP.js';
8
8
  import { m as makeZeroShortcutPreprocessor } from './makeZeroShortcutPreprocessor-CxsiGTRW.js';
9
9
  import { u as usePrevious } from './usePrevious-Bvq-5auG.js';
10
10
  import { D as DateTime } from './luxon-wpz4A-OQ.js';
11
- import { a as Calendar } from './Calendar-DnwCL7gm.js';
11
+ import { a as Calendar } from './Calendar-D_fqe0-J.js';
12
12
  import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
13
13
  import { m as mergeRefs } from './useMergeRefs-Dfmtq9cI.js';
14
14
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
@@ -455,9 +455,15 @@ const DateFieldRange = (props) => {
455
455
  unavailable: unavailableProp,
456
456
  onChange: onChangeProp,
457
457
  timezone,
458
+ disabled,
458
459
  ...rest
459
460
  } = props;
460
461
  const popoverRef = useRef(null);
462
+ useEffect(() => {
463
+ if (disabled) {
464
+ popoverRef.current?.closePopover();
465
+ }
466
+ }, [disabled]);
461
467
  const handleInputKeyDown = (ev) => {
462
468
  if (ev.key === "ArrowDown") {
463
469
  ev.preventDefault();
@@ -528,6 +534,7 @@ const DateFieldRange = (props) => {
528
534
  }, [required, startDate, endDate, minDate, maxDate, unavailable]);
529
535
  const commonFieldProps = {
530
536
  ...rest,
537
+ disabled,
531
538
  mode,
532
539
  label,
533
540
  onChange: handleInputChange,
@@ -587,4 +594,4 @@ const DateFieldRange = (props) => {
587
594
  DateFieldRange.displayName = "DateFieldRange";
588
595
 
589
596
  export { DateFieldRange as D, MaskedDateRangeInput as M, useDateFieldRangeState as a, DateFieldRangeCalendar as b, useDateFieldRangeConversion as u };
590
- //# sourceMappingURL=DateFieldRange-BnNrQvuG.js.map
597
+ //# sourceMappingURL=DateFieldRange-CHbrYgsD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateFieldRange-CHbrYgsD.js","sources":["../src/components/DateFieldRange/internal/maskito/dateRangePlaceholderMask.ts","../src/components/DateFieldRange/internal/MaskedDateRangeInput.tsx","../src/components/DateFieldRange/internal/useDateFieldRangeConversion.ts","../src/components/DateFieldRange/internal/useDateFieldRangeState.ts","../src/components/DateFieldRange/internal/DateFieldRangeCalendar.tsx","../src/components/DateFieldRange/internal/utils.ts","../src/components/DateFieldRange/DateFieldRange.tsx"],"sourcesContent":["import type { MaskitoOptions } from \"@maskito/core\";\nimport {\n type MaskitoDateMode,\n maskitoDateRangeOptionsGenerator,\n maskitoWithPlaceholder,\n} from \"@maskito/kit\";\nimport { makeZeroShortcutPreprocessor } from \"../../../DateFieldSingle/internal/maskito/makeZeroShortcutPreprocessor\";\n\nexport type DateMode = Extract<\n MaskitoDateMode,\n \"dd/mm/yyyy\" | \"mm/dd/yyyy\" | \"yyyy/mm/dd\"\n>;\n\nconst datePlaceholderMask = ({\n mode,\n dateSeparator = \"/\",\n rangeSeparator = \" - \",\n placeholder,\n}: {\n mode: DateMode;\n dateSeparator?: string;\n rangeSeparator?: string;\n placeholder: string;\n}) => {\n const dateRangeOptions = maskitoDateRangeOptionsGenerator({\n mode,\n dateSeparator,\n rangeSeparator,\n });\n\n const { plugins, removePlaceholder, ...placeholderOptions } =\n maskitoWithPlaceholder(placeholder);\n\n const datePlaceholderMask = {\n ...dateRangeOptions,\n plugins: plugins.concat(dateRangeOptions.plugins || []),\n preprocessors: [\n ...placeholderOptions.preprocessors,\n ...dateRangeOptions.preprocessors,\n makeZeroShortcutPreprocessor(placeholder, dateSeparator),\n ],\n postprocessors: [\n // NOTE this is super fragile. If Maskito maintainers change the order of the post-processors, this will break.\n // The last postprocessor is the date swap postprocessor, which we don't want to run.\n // A unit test is added to ensure this doesn't break on a dependency update.\n ...dateRangeOptions.postprocessors.slice(0, -1),\n ...placeholderOptions.postprocessors,\n ],\n } satisfies Required<MaskitoOptions>;\n\n return { options: datePlaceholderMask, removePlaceholder };\n};\n\nexport default datePlaceholderMask;\n","import { maskitoParseDate } from \"@maskito/kit\";\nimport { useMaskito } from \"@maskito/react\";\nimport {\n TextField,\n type TextFieldProps,\n} from \"../../TextField/internal/TextField\";\nimport {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useMergeRefs } from \"@floating-ui/react\";\nimport type { DateTime } from \"luxon\";\nimport { Icon } from \"../../Icon\";\nimport Event from \"@servicetitan/hammer-icon/mdi/round/event.svg\";\nimport dateRangePlaceholderMask from \"./maskito/dateRangePlaceholderMask\";\nimport {\n DateModeToFormatMap,\n DateModeToPlaceholderMap,\n} from \"../../DateFieldSingle/internal/constants\";\nimport type { DateMode } from \"../../DateFieldSingle/types\";\nimport { usePrevious } from \"../../../internal/hooks\";\nimport { jsDateToUtcDateTime } from \"../../DateFieldSingle/internal/utils\";\n\nconst RANGE_SEPARATOR = \" - \";\n\nexport type MaskedDateRangeInputChange = {\n startDate: DateTime | null;\n endDate: DateTime | null;\n isInputValid: boolean;\n isInputEmpty: boolean;\n};\n\nexport type MaskedDateRangeInputChangeHandler = (\n change: MaskedDateRangeInputChange,\n) => void;\n\nexport type MaskedDateRangeInputProps = Omit<\n TextFieldProps,\n \"onChange\" | \"value\" | \"ref\" | \"showCounter\" | \"hint\" | \"prefix\"\n> & {\n onChange: MaskedDateRangeInputChangeHandler;\n mode?: DateMode;\n startDate: DateTime | null;\n endDate: DateTime | null;\n disableHint?: boolean;\n};\n\nexport type MaskedDateRangeInputRef = HTMLInputElement & {\n setDateRange: (startDate: DateTime | null, endDate: DateTime | null) => void;\n};\n\n/**\n * A masked date input component that allows for the input of a date in a specific format.\n *\n * Provides a `setDates` method that can be used to set the date from outside the component (e.g from a calendar).\n *\n * @internal This component is not intended to be used directly in consumer code.\n *\n * @param props - The props for the MaskedDateRangeInput component.\n * @param props.onChange - The function to call when the date changes.\n * @param props.mode - The mode of the date input.\n * @param props.startDate - The start date.\n * @param props.endDate - The end date.\n * @param props.disableHint - Whether to disable the hint.\n */\nexport const MaskedDateRangeInput = forwardRef<\n MaskedDateRangeInputRef,\n MaskedDateRangeInputProps\n>(\n (\n {\n onChange,\n mode = \"mm/dd/yyyy\",\n startDate,\n endDate,\n disableHint = false,\n ...props\n },\n ref,\n ) => {\n const halfPlaceholder = DateModeToPlaceholderMap[mode];\n const fullPlaceholder = `${halfPlaceholder}${RANGE_SEPARATOR}${halfPlaceholder}`;\n\n // Tracks the value of the input as it is being typed.\n const [inputValue, setInputValue] = useState(fullPlaceholder);\n\n const { options, removePlaceholder } = dateRangePlaceholderMask({\n mode,\n placeholder: fullPlaceholder,\n dateSeparator: \"/\",\n rangeSeparator: RANGE_SEPARATOR,\n });\n const maskedInputRef = useMaskito({ options });\n const inputRef = useRef<HTMLInputElement>(null);\n const combinedRef = useMergeRefs([maskedInputRef, inputRef, ref]);\n const previousStartDate = usePrevious(startDate);\n const previousEndDate = usePrevious(endDate);\n const previousMode = usePrevious(mode);\n\n // Update the input value when the mode changes.\n useEffect(() => {\n if (mode !== previousMode) {\n setInputValue((previousInputValue) =>\n swapMode(previousInputValue, previousMode ?? mode, mode),\n );\n }\n }, [mode, fullPlaceholder, previousMode]);\n\n // Update the input value when the parent's start date or end date changes.\n useEffect(() => {\n if (startDate === undefined || endDate === undefined) return;\n // Return early if the values haven't actually changed.\n if (startDate === previousStartDate && endDate === previousEndDate)\n return;\n if (\n // plus one just represents a date that is guaranteed to be different.\n startDate?.equals(previousStartDate ?? startDate?.plus({ days: 1 })) &&\n (endDate?.equals(previousEndDate ?? endDate?.plus({ days: 1 })) ||\n endDate === previousEndDate)\n )\n return;\n const startDateString =\n startDate?.toFormat(DateModeToFormatMap[mode]) ?? halfPlaceholder;\n const endDateString =\n endDate?.toFormat(DateModeToFormatMap[mode]) ?? halfPlaceholder;\n const newInputValue = `${startDateString}${RANGE_SEPARATOR}${endDateString}`;\n setInputValue(newInputValue);\n }, [\n startDate,\n endDate,\n mode,\n halfPlaceholder,\n previousStartDate,\n previousEndDate,\n ]);\n\n const currentParsedData = useMemo(() => {\n return parseRangeInputValue(inputValue, mode, removePlaceholder);\n }, [inputValue, mode, removePlaceholder]);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(event.target.value);\n const {\n startDate: newlyParsedStartDate,\n endDate: newlyParsedEndDate,\n isInputValid,\n isInputEmpty,\n isHalfEmpty,\n } = parseRangeInputValue(event.target.value, mode, removePlaceholder);\n\n // We only want to call onChange for substantive changes.\n // This is to avoid unnecessary re-renders of upstream components.\n const isValueDifferent =\n isInputValid !== currentParsedData.isInputValid || // The input has changed validity\n isInputEmpty !== currentParsedData.isInputEmpty || // The input has changed emptiness\n (newlyParsedStartDate === null) !==\n (currentParsedData.startDate === null) || // The start date has changed from empty to non-empty or vice versa\n (newlyParsedEndDate === null) !==\n (currentParsedData.endDate === null) || // The end date has changed from empty to non-empty or vice versa\n isHalfEmpty !== currentParsedData.isHalfEmpty || // The half has changed from empty to non-empty or vice versa\n (newlyParsedStartDate !== null &&\n currentParsedData.startDate !== null &&\n !newlyParsedStartDate.equals(currentParsedData.startDate)) || // The start date has changed\n (newlyParsedEndDate !== null &&\n currentParsedData.endDate !== null &&\n !newlyParsedEndDate.equals(currentParsedData.endDate)); // The end date has changed\n\n // If the value has not changed, we do not need to call onChange.\n if (!isValueDifferent) return;\n onChange?.({\n startDate: isInputEmpty\n ? null\n : (newlyParsedStartDate ?? startDate ?? null),\n endDate:\n isInputEmpty || isHalfEmpty\n ? null\n : (newlyParsedEndDate ?? endDate ?? null),\n isInputValid,\n isInputEmpty,\n });\n };\n\n // Extend the input ref with additional methods.\n // This provides a way to set the input value from outside the component.\n useImperativeHandle(ref, () => {\n const input = inputRef.current;\n if (!input) return null as unknown as MaskedDateRangeInputRef;\n return Object.assign(input, {\n setDateRange: (\n startDate: DateTime | null,\n endDate: DateTime | null,\n ) => {\n const startDateString = startDate?.toFormat(\n DateModeToFormatMap[mode],\n );\n const endDateString = endDate?.toFormat(DateModeToFormatMap[mode]);\n const newInputValue = `${startDateString ?? halfPlaceholder}${RANGE_SEPARATOR}${endDateString ?? halfPlaceholder}`;\n setInputValue(newInputValue);\n },\n });\n }, [mode, halfPlaceholder]);\n\n return (\n <TextField\n ref={combinedRef}\n data-start-date={startDate?.toISODate() ?? \"\"}\n data-end-date={endDate?.toISODate() ?? \"\"}\n data-input-valid={currentParsedData.isInputValid}\n data-input-empty={currentParsedData.isInputEmpty}\n {...props}\n showCounter={false}\n value={inputValue}\n onChange={handleChange}\n prefix={<Icon svg={Event} />}\n hint={disableHint ? undefined : `Format: ${mode}`}\n />\n );\n },\n);\n\nMaskedDateRangeInput.displayName = \"MaskedDateRangeInput\";\n\nfunction parseRangeInputValue(\n value: string,\n mode: DateMode,\n removePlaceholder: (value: string) => string,\n) {\n const valueMinusPlaceholder = removePlaceholder(value);\n const [startDate, endDate] = valueMinusPlaceholder.split(RANGE_SEPARATOR);\n const startJsDate = maskitoParseDate(startDate, { mode });\n const endJsDate = endDate ? maskitoParseDate(endDate, { mode }) : null;\n const startLuxonDate = startJsDate ? jsDateToUtcDateTime(startJsDate) : null;\n const endLuxonDate = endJsDate ? jsDateToUtcDateTime(endJsDate) : null;\n return {\n startDate: startLuxonDate,\n endDate: endLuxonDate,\n isInputValid: !!(startLuxonDate && endLuxonDate), // input valid if both dates are filled\n isInputEmpty: valueMinusPlaceholder === \"\", // input empty if nothing is typed\n isHalfEmpty: endDate === undefined,\n };\n}\n\nfunction swapMode(inputString: string, previousMode: DateMode, mode: DateMode) {\n const halves = inputString.split(RANGE_SEPARATOR);\n const segments = halves.map((half) => half.split(\"/\"));\n\n let startDay, startMonth, startYear, endDay, endMonth, endYear;\n if (previousMode === \"mm/dd/yyyy\") {\n startDay = segments[0][1];\n startMonth = segments[0][0];\n startYear = segments[0][2];\n endDay = segments[1][1];\n endMonth = segments[1][0];\n endYear = segments[1][2];\n }\n if (previousMode === \"dd/mm/yyyy\") {\n startDay = segments[0][0];\n startMonth = segments[0][1];\n startYear = segments[0][2];\n endDay = segments[1][0];\n endMonth = segments[1][1];\n endYear = segments[1][2];\n }\n if (previousMode === \"yyyy/mm/dd\") {\n startDay = segments[0][2];\n startMonth = segments[0][1];\n startYear = segments[0][0];\n endDay = segments[1][2];\n endMonth = segments[1][1];\n endYear = segments[1][0];\n }\n\n if (mode === \"mm/dd/yyyy\") {\n return `${startMonth}/${startDay}/${startYear}${RANGE_SEPARATOR}${endMonth}/${endDay}/${endYear}`;\n }\n if (mode === \"dd/mm/yyyy\") {\n return `${startDay}/${startMonth}/${startYear}${RANGE_SEPARATOR}${endDay}/${endMonth}/${endYear}`;\n }\n if (mode === \"yyyy/mm/dd\") {\n return `${startYear}/${startMonth}/${startDay}${RANGE_SEPARATOR}${endYear}/${endMonth}/${endDay}`;\n }\n\n return inputString;\n}\n","import { useCallback, useMemo } from \"react\";\nimport type {\n DateFieldRangeChange,\n DateFieldRangeProps,\n} from \"../DateFieldRange\";\nimport { convertStringToDate } from \"../../DateFieldSingle/internal/utils\";\nimport type { DateTime } from \"luxon\";\n\n/**\n * This hook is used to convert the string props of a DateFieldRange component to a DateTime format.\n *\n * @param props - The props of the DateFieldRange component.\n * @returns The normalized value, defaultValue, minDate, maxDate, and unavailable dates in DateTime format.\n * @internal This hook is not intended to be used directly in consumer code.\n */\nexport const useDateFieldRangeConversion = (props: DateFieldRangeProps) => {\n const { value, defaultValue, minDate, maxDate, unavailable, onChange } =\n props;\n\n const normalizedValue = useMemo(() => {\n if (value === null || value === undefined) return value;\n return {\n startDate: convertStringToDate(value.startDate) ?? null,\n endDate: convertStringToDate(value.endDate) ?? null,\n };\n }, [value]);\n\n const normalizedDefaultValue = useMemo(() => {\n if (defaultValue === null || defaultValue === undefined)\n return defaultValue;\n return {\n startDate: convertStringToDate(defaultValue.startDate) ?? null,\n endDate: convertStringToDate(defaultValue.endDate) ?? null,\n };\n }, [defaultValue]);\n\n const normalizedMinDate = useMemo(\n () => convertStringToDate(minDate),\n [minDate],\n );\n const normalizedMaxDate = useMemo(\n () => convertStringToDate(maxDate),\n [maxDate],\n );\n\n const normalizedUnavailableDates = useMemo(() => {\n return unavailable?.dates\n ?.map((date) => convertStringToDate(date))\n .filter((date) => date !== null && date !== undefined);\n }, [unavailable?.dates]);\n\n const handleChange = useCallback(\n (\n change: Omit<DateFieldRangeChange, \"startDate\" | \"endDate\"> & {\n startDate: DateTime | null;\n endDate: DateTime | null;\n },\n ) => {\n onChange?.({\n ...change,\n startDate: change.startDate?.toISODate() ?? null,\n endDate: change.endDate?.toISODate() ?? null,\n });\n },\n [onChange],\n );\n\n return {\n value: normalizedValue,\n defaultValue: normalizedDefaultValue,\n minDate: normalizedMinDate,\n maxDate: normalizedMaxDate,\n unavailable: {\n dates: normalizedUnavailableDates,\n daysOfWeek: unavailable?.daysOfWeek,\n },\n onChange: handleChange,\n };\n};\n","import type { DateTime } from \"luxon\";\nimport { useOptionallyControlledState } from \"../../../internal/hooks\";\nimport type { MaskedDateRangeInputChange } from \"./MaskedDateRangeInput\";\n\nexport type DateFieldRangeStateChange = {\n startDate: DateTime | null;\n endDate: DateTime | null;\n isInputValid: boolean;\n isInputEmpty: boolean;\n};\n\nexport type DateFieldRangeStateChangeHandler = (\n change: DateFieldRangeStateChange,\n) => void;\n\nexport type DateFieldRangeStateParam = {\n /**\n * The controlled value of the start date.\n */\n valueProp?: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n } | null;\n /**\n * The default value of the start date.\n */\n defaultValueProp?: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n } | null;\n /**\n * The function to call when the state changes.\n */\n onChange: DateFieldRangeStateChangeHandler;\n};\n\n/**\n * This hook is used to keep the state of a DateFieldRange component in sync with the input and calendar.\n */\nexport type DateFieldRangeState = {\n /**\n * The start date.\n */\n startDate: DateTime | null;\n /**\n * The end date.\n */\n endDate: DateTime | null;\n /**\n * The function to set the start date.\n */\n setStartDate: (date: DateTime | null) => void;\n /**\n * The function to set the end date.\n */\n setEndDate: (date: DateTime | null) => void;\n /**\n * The function to handle the input change.\n */\n handleInputChange: (change: MaskedDateRangeInputChange) => void;\n /**\n * The function to handle the calendar selection.\n */\n handleCalendarSelection: ({\n startDate,\n endDate,\n }: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n }) => void;\n};\n\n/**\n * This is a hook for keeping state in sync between a date input and calendar.\n */\nexport function useDateFieldRangeState({\n valueProp,\n defaultValueProp,\n onChange,\n}: DateFieldRangeStateParam): DateFieldRangeState {\n const [startDate, setStartDate] =\n useOptionallyControlledState<DateTime | null>({\n controlledValue:\n valueProp !== undefined ? valueProp?.startDate : undefined,\n defaultValue:\n defaultValueProp !== undefined\n ? defaultValueProp?.startDate\n : undefined,\n });\n const [endDate, setEndDate] = useOptionallyControlledState<DateTime | null>({\n controlledValue: valueProp !== undefined ? valueProp?.endDate : undefined,\n defaultValue:\n defaultValueProp !== undefined ? defaultValueProp?.endDate : undefined,\n });\n\n const setSharedValue = (value: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n }) => {\n setStartDate(value.startDate);\n setEndDate(value.endDate);\n };\n\n const handleInputChange = (change: MaskedDateRangeInputChange) => {\n const range = change.isInputEmpty\n ? null\n : {\n startDate: change.startDate?.startOf(\"day\") ?? null,\n endDate: change.endDate?.startOf(\"day\") ?? null,\n };\n\n onChange?.({\n startDate: range?.startDate ?? null,\n endDate: range?.endDate ?? null,\n isInputValid: change.isInputValid,\n isInputEmpty: change.isInputEmpty,\n });\n\n setStartDate(range?.startDate ?? null);\n setEndDate(range?.endDate ?? null);\n };\n\n const handleCalendarSelection = ({\n startDate,\n endDate,\n }: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n }) => {\n setSharedValue({ startDate, endDate });\n onChange?.({\n startDate,\n endDate,\n isInputValid: true,\n isInputEmpty: false,\n });\n };\n\n return {\n startDate,\n endDate,\n setStartDate,\n setEndDate,\n handleInputChange,\n handleCalendarSelection,\n };\n}\n","import { DateTime, type WeekdayNumbers } from \"luxon\";\nimport { Calendar, type CalendarRangeValue } from \"../../Calendar/Calendar\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport { usePrevious } from \"../../../internal/hooks\";\nimport type { IanaZone } from \"../../../types\";\nimport { TimezoneMessage } from \"../../DateFieldSingle/internal/TimezoneMessage\";\nimport { isoToUtcDate } from \"../../DateFieldSingle/internal/utils\";\n\nexport type DateFieldRangeCalendarProps = {\n startDate: DateTime | null;\n endDate: DateTime | null;\n onKeyDown?: (event: React.KeyboardEvent<HTMLDivElement>) => void;\n onSelection: ({\n startDate,\n endDate,\n }: {\n startDate: DateTime | null;\n endDate: DateTime | null;\n }) => void;\n minDate?: DateTime | null;\n maxDate?: DateTime | null;\n unavailable?: {\n dates?: DateTime[];\n daysOfWeek?: WeekdayNumbers[];\n };\n timezone?: IanaZone;\n};\n\nexport const DateFieldRangeCalendar = ({\n startDate,\n endDate,\n onKeyDown,\n onSelection,\n minDate,\n maxDate,\n unavailable,\n timezone: timezoneProp,\n}: DateFieldRangeCalendarProps) => {\n const previousStartDate = usePrevious(startDate);\n const previousEndDate = usePrevious(endDate);\n\n const calendarRef = useRef<HTMLDivElement>(null);\n const focusSentinelRef = useRef<HTMLDivElement>(null);\n\n const timezone: IanaZone = useMemo(() => {\n return (\n timezoneProp ??\n (Intl.DateTimeFormat().resolvedOptions().timeZone as IanaZone)\n );\n }, [timezoneProp]);\n\n // After the user selects a date, the Calendar remounts (due to the key hack\n // below) and focus falls to body. Restore focus to the just-picked date button\n // so consumers that keep the calendar mounted (e.g. FilterDateRange's popover)\n // don't get their focus-out handlers triggered, and keyboard users don't lose\n // their place. Two cases:\n // - start picked, no end yet → focus the start button so the user can\n // continue navigating to pick an end.\n // - end just picked → focus the end button. Consumers that close the popover\n // synchronously on end-pick (legacy DateFieldRange) have already moved\n // focus to their input by rAF time, and the INPUT guard skips us out.\n // Guard: if focus is already on an INPUT (typing) or no longer inside the\n // calendar (consumer moved it elsewhere), skip — the user owns focus.\n useEffect(() => {\n const targetDateId =\n startDate && startDate !== previousStartDate && endDate === null\n ? startDate.toISODate()\n : endDate && endDate !== previousEndDate\n ? endDate.toISODate()\n : null;\n if (!targetDateId) return;\n\n // When typing, the input retains focus. When selecting via calendar keyboard\n // or mouse, the Calendar remounts and focus falls to body. Only restore in\n // the latter case. In Shadow DOM, document.activeElement is the host —\n // traverse into the shadow root to find the actual focused element.\n const root = (calendarRef.current?.getRootNode() ?? document) as\n | Document\n | ShadowRoot;\n const deepActiveEl =\n root.activeElement?.shadowRoot?.activeElement ?? root.activeElement;\n if (deepActiveEl?.tagName === \"INPUT\") return;\n requestAnimationFrame(() => {\n // Re-check the input guard inside rAF: a consumer that closes the popover\n // synchronously on end-pick (legacy DateFieldRange) will have moved focus\n // to its input by now, and we should leave it there.\n const rootNow = (calendarRef.current?.getRootNode() ?? document) as\n | Document\n | ShadowRoot;\n const activeNow =\n rootNow.activeElement?.shadowRoot?.activeElement ??\n rootNow.activeElement;\n if (activeNow?.tagName === \"INPUT\") return;\n calendarRef.current\n ?.querySelector<HTMLButtonElement>(`button[id$=\"${targetDateId}\"]`)\n ?.focus();\n });\n }, [startDate, endDate, previousStartDate, previousEndDate]);\n\n const handleCalendarSelection = (data: { value: CalendarRangeValue }) => {\n if (!data.value) return;\n const calStartDate = data.value.start\n ? isoToUtcDate(data.value.start)\n : null;\n const calEndDate = data.value.end ? isoToUtcDate(data.value.end) : null;\n // Park focus on a stable sentinel inside this component *before* the state\n // update so the Calendar's key-remount doesn't drop focus to body. Without\n // this, host containers that listen for focus-out (e.g. OptionsPopover)\n // close prematurely on end-date pick. The post-remount effect below then\n // restores focus to the just-picked date button via rAF.\n focusSentinelRef.current?.focus();\n onSelection({\n startDate: calStartDate,\n endDate: calEndDate,\n });\n };\n\n const defaultFocusedDate = useMemo(() => {\n const todayISODate = DateTime.now().setZone(timezone).toISODate();\n // Nothing selected, focus today\n if (!startDate && !endDate) return todayISODate;\n if (!startDate) return endDate?.toISODate();\n if (!endDate) return startDate?.toISODate();\n if (endDate && !previousEndDate?.equals(endDate)) {\n return endDate.toISODate();\n } else if (startDate && !previousStartDate?.equals(startDate)) {\n return startDate.toISODate();\n }\n\n if (endDate) return endDate.toISODate();\n if (startDate) return startDate.toISODate();\n return todayISODate;\n }, [previousStartDate, previousEndDate, startDate, endDate, timezone]);\n\n return (\n <>\n <div\n ref={focusSentinelRef}\n tabIndex={-1}\n aria-hidden=\"true\"\n style={{ outline: \"none\", position: \"absolute\", width: 0, height: 0 }}\n />\n <Calendar\n ref={calendarRef}\n // Crappy hack because the Calendar does not update when the value changes.\n key={`${startDate?.toISODate()}-${endDate?.toISODate()}`}\n range={true}\n onKeyDown={onKeyDown}\n defaultFocusedDate={defaultFocusedDate}\n value={{\n start: startDate?.toISODate() || undefined,\n end: endDate?.toISODate() || undefined,\n }}\n onSelection={handleCalendarSelection}\n defaultTimeZone={timezone ?? \"UTC\"}\n minDate={minDate?.toISODate() ?? undefined}\n maxDate={maxDate?.toISODate() ?? undefined}\n unavailable={\n unavailable\n ? {\n dates: unavailable.dates?.map((d) => d.toISODate() ?? \"\"),\n daysOfWeek: unavailable.daysOfWeek,\n }\n : undefined\n }\n _disableAutofocus\n _disableFocus\n />\n <TimezoneMessage timezone={timezone} />\n </>\n );\n};\n","import type { DateTime } from \"luxon\";\nimport { validateDate } from \"../../DateFieldSingle/internal/utils\";\n\ntype DateConstraints = {\n unavailable?: {\n dates?: DateTime[];\n daysOfWeek?: number[];\n };\n minDate?: DateTime;\n maxDate?: DateTime;\n};\n\nexport function validateDateRange({\n required,\n startDate,\n endDate,\n startDateConstraints,\n endDateConstraints,\n}: {\n required?: boolean;\n startDate: DateTime | null;\n endDate: DateTime | null;\n startDateConstraints: DateConstraints;\n endDateConstraints: DateConstraints;\n}) {\n if (!required && !startDate && !endDate) return true;\n return (\n validateDate({\n date: startDate,\n constraints: { ...startDateConstraints, required: true },\n }) &&\n validateDate({\n date: endDate,\n constraints: { ...endDateConstraints, required: true },\n }) &&\n (!startDate || !endDate || startDate <= endDate)\n );\n}\n","import { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\nimport type { DataTrackingId, IanaZone } from \"../../types\";\nimport {\n MaskedDateRangeInput,\n type MaskedDateRangeInputProps,\n type MaskedDateRangeInputRef,\n} from \"./internal/MaskedDateRangeInput\";\nimport type { DateMode } from \"../DateFieldSingle/types\";\nimport { DateFieldRangeCalendar } from \"./internal/DateFieldRangeCalendar\";\nimport { type Ref, useEffect, useMemo, useRef } from \"react\";\nimport { useDateFieldRangeConversion } from \"./internal/useDateFieldRangeConversion\";\nimport {\n type DateFieldRangeStateChange,\n useDateFieldRangeState,\n} from \"./internal/useDateFieldRangeState\";\nimport { useFocusWithin } from \"../../internal/hooks\";\nimport { validateDateRange } from \"./internal/utils\";\nimport Popover from \"../../internal/components/Popover\";\nimport { mergeRefs } from \"../../hooks/useMergeRefs/useMergeRefs\";\n\nexport type DateFieldRangeChange = {\n /**\n * The start date in ISO 8601 format.\n * @example \"2025-03-22\"\n */\n startDate: string | null;\n /**\n * The end date in ISO 8601 format.\n * @example \"2025-07-02\"\n */\n endDate: string | null;\n /**\n * Whether the input field contains two parsable dates.\n * This is not the same as the date range being valid.\n *\n */\n isInputValid: boolean;\n /**\n * Whether the input field is empty.\n */\n isInputEmpty: boolean;\n /**\n * Whether the start and end dates are valid according to the constraints.\n * Constraints include:\n * - Required\n * - Unavailable dates\n * - Unavailable days of the week\n * - Min date\n * - Max date\n */\n isDateRangeValid: boolean;\n};\n\nexport type DateFieldRangeChangeHandler = (\n change: DateFieldRangeChange,\n) => void;\n\nexport type DateFieldRangeValue = {\n startDate: string | null;\n endDate: string | null;\n} | null;\n\nexport type DateFieldRangeProps = Omit<\n MaskedDateRangeInputProps,\n | \"onChange\"\n | \"value\"\n | \"autoComplete\"\n | \"onClick\"\n | \"onKeyDown\"\n | \"ref\"\n | \"required\"\n | \"startDate\"\n | \"endDate\"\n | \"defaultValue\"\n | \"onFocus\"\n | \"onBlur\"\n> & {\n value?: DateFieldRangeValue;\n defaultValue?: DateFieldRangeValue;\n onChange?: DateFieldRangeChangeHandler;\n mode?: Extract<DateMode, \"mm/dd/yyyy\" | \"dd/mm/yyyy\">;\n disableHint?: boolean;\n disableCalendar?: boolean;\n unavailable?: {\n dates?: string[];\n daysOfWeek?: (1 | 2 | 3 | 4 | 5 | 6 | 7)[];\n };\n minDate?: string;\n maxDate?: string;\n required?: boolean;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n /**\n * The IANA timezone to use for the calendar. Controls the meaning of the \"Today\"\n * button and which month/year is initially displayed. When the timezone differs\n * from the user's locale timezone, a disambiguation message is shown below the calendar.\n * @example \"America/Los_Angeles\"\n */\n timezone?: IanaZone;\n} & DataTrackingId;\n\n/**\n * DateFieldRange component for entering a start and end date via a masked\n * text input, with an optional popover calendar for picking the range\n * visually.\n *\n * Features:\n * - Masked start/end date input with configurable mm/dd/yyyy or dd/mm/yyyy mode\n * - Optional popover range calendar\n * - Min/max date and unavailable-date/day-of-week constraints applied to both ends\n * - Reports input validity and range validity separately via `onChange`\n * - Full keyboard support (arrow-down opens the calendar from the input)\n *\n * @example\n * <DateFieldRange\n * label=\"Trip dates\"\n * value={{ startDate: \"2025-07-02\", endDate: \"2025-07-10\" }}\n * onChange={({ startDate, endDate, isDateRangeValid }) =>\n * console.log(startDate, endDate, isDateRangeValid)\n * }\n * />\n */\nexport const DateFieldRange = (props: DateFieldRangeProps) => {\n const { aiMark, ...labelPropsWithoutAiMark } = props.labelProps || {};\n\n const data = {\n label: childrenToString(props.label),\n labelProps: labelPropsWithoutAiMark,\n description: childrenToString(props.description),\n };\n\n const trackingId = useTrackingId({\n name: \"DateFieldRange\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const {\n onFocus,\n onBlur,\n disableCalendar,\n required,\n mode,\n label,\n value: valueProp,\n defaultValue: defaultValueProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp,\n onChange: onChangeProp,\n timezone,\n disabled,\n ...rest\n } = props;\n\n const popoverRef = useRef<{\n openPopover: () => void;\n closePopover: () => void;\n }>(null);\n\n useEffect(() => {\n if (disabled) {\n popoverRef.current?.closePopover();\n }\n }, [disabled]);\n\n const handleInputKeyDown = (ev: React.KeyboardEvent<HTMLInputElement>) => {\n if (ev.key === \"ArrowDown\") {\n ev.preventDefault();\n popoverRef.current?.openPopover();\n requestAnimationFrame(() => {\n popoverContentRef.current?.querySelector(\"button\")?.focus();\n });\n }\n };\n\n const { props: wrapperProps } = useFocusWithin({\n onBlur: (e) => {\n onBlur?.(e);\n popoverRef.current?.closePopover();\n },\n onFocus: onFocus,\n });\n\n const { value, defaultValue, minDate, maxDate, unavailable, onChange } =\n useDateFieldRangeConversion({\n value: valueProp,\n defaultValue: defaultValueProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp,\n onChange: onChangeProp,\n });\n\n const inputRef = useRef<MaskedDateRangeInputRef>(null);\n const popoverContentRef = useRef<HTMLDivElement>(null);\n\n const handleChange = (change: DateFieldRangeStateChange) => {\n const sharedConstraints = {\n unavailable,\n minDate: minDate ?? undefined,\n maxDate: maxDate ?? undefined,\n };\n\n onChange?.({\n startDate: change.startDate?.startOf(\"day\") ?? null,\n endDate: change.endDate?.startOf(\"day\") ?? null,\n isInputValid: change.isInputValid,\n isInputEmpty: change.isInputEmpty,\n isDateRangeValid: validateDateRange({\n required: required,\n startDate: change.startDate?.startOf(\"day\") ?? null,\n endDate: change.endDate?.startOf(\"day\") ?? null,\n startDateConstraints: sharedConstraints,\n endDateConstraints: sharedConstraints,\n }),\n });\n };\n\n const { startDate, endDate, handleInputChange, handleCalendarSelection } =\n useDateFieldRangeState({\n valueProp: value,\n defaultValueProp: defaultValue,\n onChange: handleChange,\n });\n\n const currentValidity = useMemo(() => {\n return validateDateRange({\n required,\n startDate,\n endDate,\n startDateConstraints: {\n unavailable,\n minDate: minDate ?? undefined,\n maxDate: maxDate ?? undefined,\n },\n endDateConstraints: {\n unavailable,\n minDate: minDate ?? undefined,\n maxDate: maxDate ?? undefined,\n },\n });\n }, [required, startDate, endDate, minDate, maxDate, unavailable]);\n\n const commonFieldProps = {\n ...rest,\n disabled,\n mode,\n label,\n onChange: handleInputChange,\n startDate: startDate ?? null,\n endDate: endDate ?? null,\n required,\n autoComplete: \"off\",\n \"data-date-range-valid\": currentValidity,\n \"data-tracking-id\": trackingId,\n \"aria-label\": label ? undefined : \"Select a date range\",\n };\n\n const justTheField = (\n <MaskedDateRangeInput {...commonFieldProps} ref={inputRef} />\n );\n\n if (disableCalendar) {\n return justTheField;\n }\n\n return (\n <div {...wrapperProps}>\n <Popover ref={popoverRef} placement=\"bottom-start\" role=\"grid\">\n <Popover.Trigger>\n {({ ref: iRef, onKeyDown }) => {\n const mergedRef = mergeRefs([\n inputRef,\n iRef as Ref<HTMLInputElement>,\n ]);\n return (\n <MaskedDateRangeInput\n {...commonFieldProps}\n ref={mergedRef}\n onKeyDown={(ev) => {\n onKeyDown?.(ev);\n handleInputKeyDown(ev);\n }}\n onClick={() => popoverRef.current?.openPopover()}\n onFocus={onFocus}\n onBlur={onBlur}\n />\n );\n }}\n </Popover.Trigger>\n <Popover.Content ref={popoverContentRef} data-testid=\"calendar-popover\">\n <DateFieldRangeCalendar\n startDate={startDate}\n endDate={endDate}\n onSelection={(v) => {\n if (v.endDate) {\n inputRef.current?.focus();\n popoverRef.current?.closePopover();\n }\n handleCalendarSelection(v);\n }}\n minDate={minDate}\n maxDate={maxDate}\n unavailable={unavailable}\n timezone={timezone}\n />\n </Popover.Content>\n </Popover>\n </div>\n );\n};\n\nDateFieldRange.displayName = \"DateFieldRange\";\n"],"names":["datePlaceholderMask","dateRangePlaceholderMask","startDate","endDate","Event"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { D as DateFieldRange } from './DateFieldRange-BnNrQvuG.js';
1
+ export { D as DateFieldRange } from './DateFieldRange-CHbrYgsD.js';
2
2
  //# sourceMappingURL=DateFieldRange.js.map
@@ -1,15 +1,15 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { forwardRef, useState, useRef, useEffect, useMemo, useImperativeHandle, useCallback } from 'react';
3
3
  import { m as maskitoDateOptionsGenerator, a as maskitoWithPlaceholder, u as useMaskito, b as maskitoParseDate } from './index.esm-C2ZhC_8d.js';
4
- import { T as TextField } from './TextField-DX6-K3jO.js';
5
- import { u as useMergeRefs, P as Popover } from './AiMark-DKAIkwNU.js';
4
+ import { T as TextField } from './TextField-CzzvLI5_.js';
5
+ import { u as useMergeRefs, P as Popover } from './AiMark-2_O4tKv_.js';
6
6
  import { D as DateTime } from './luxon-wpz4A-OQ.js';
7
7
  import { m as makeZeroShortcutPreprocessor } from './makeZeroShortcutPreprocessor-CxsiGTRW.js';
8
- import { I as Icon } from './Icon-B4uCvMU9.js';
8
+ import { I as Icon } from './Icon-B5zwN7GD.js';
9
9
  import { D as DateModeToPlaceholderMap, a as DateModeToFormatMap, S as SvgEvent, j as jsDateToUtcDateTime, c as convertStringToDate, T as TimezoneMessage, i as isoToUtcDate, v as validateDate } from './TimezoneMessage-BrKB_psP.js';
10
10
  import { u as usePrevious } from './usePrevious-Bvq-5auG.js';
11
11
  import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
12
- import { a as Calendar } from './Calendar-DnwCL7gm.js';
12
+ import { a as Calendar } from './Calendar-D_fqe0-J.js';
13
13
  import { m as mergeRefs } from './useMergeRefs-Dfmtq9cI.js';
14
14
  import { u as useFocusWithin } from './useFocusWithin-hi77jsrB.js';
15
15
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
@@ -324,9 +324,15 @@ const DateFieldSingle = (props) => {
324
324
  onChange: onChangeProp,
325
325
  label,
326
326
  timezone,
327
+ disabled,
327
328
  ...rest
328
329
  } = props;
329
330
  const popoverRef = useRef(null);
331
+ useEffect(() => {
332
+ if (disabled) {
333
+ popoverRef.current?.closePopover();
334
+ }
335
+ }, [disabled]);
330
336
  const inputRef = useRef(null);
331
337
  const {
332
338
  value: normalizedValue,
@@ -392,6 +398,7 @@ const DateFieldSingle = (props) => {
392
398
  };
393
399
  const commonFieldProps = {
394
400
  ...rest,
401
+ disabled,
395
402
  label,
396
403
  mode,
397
404
  onChange: handleInputChange,
@@ -446,4 +453,4 @@ const DateFieldSingle = (props) => {
446
453
  DateFieldSingle.displayName = "DateFieldSingle";
447
454
 
448
455
  export { DateFieldSingle as D, MaskedDateInput as M, useDateFieldSingleState as a, DateFieldSingleCalendar as b, useDateFieldSingleConversion as u };
449
- //# sourceMappingURL=DateFieldSingle-CwcV_AOp.js.map
456
+ //# sourceMappingURL=DateFieldSingle-D-KZ3NL0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateFieldSingle-D-KZ3NL0.js","sources":["../src/components/DateFieldSingle/internal/maskito/datePlaceholderMask.ts","../src/components/DateFieldSingle/internal/MaskedDateInput.tsx","../src/components/DateFieldSingle/internal/useDateFieldSingleConversion.ts","../src/components/DateFieldSingle/internal/useDateFieldSingleState.ts","../src/components/DateFieldSingle/internal/DateFieldSingleCalendar.tsx","../src/components/DateFieldSingle/DateFieldSingle.tsx"],"sourcesContent":["import type { MaskitoOptions } from \"@maskito/core\";\nimport {\n maskitoDateOptionsGenerator,\n maskitoWithPlaceholder,\n} from \"@maskito/kit\";\nimport { makeZeroShortcutPreprocessor } from \"./makeZeroShortcutPreprocessor\";\nimport type { DateMode } from \"../../types\";\n\nconst datePlaceholderMask = ({\n mode,\n separator = \"/\",\n placeholder,\n}: {\n mode: DateMode;\n separator?: string;\n placeholder: string;\n}) => {\n const dateOptions = maskitoDateOptionsGenerator({\n mode,\n separator,\n });\n\n const { plugins, removePlaceholder, ...placeholderOptions } =\n maskitoWithPlaceholder(placeholder);\n\n const datePlaceholderMask = {\n ...dateOptions,\n plugins: plugins.concat(dateOptions.plugins || []),\n preprocessors: [\n ...placeholderOptions.preprocessors,\n ...dateOptions.preprocessors,\n makeZeroShortcutPreprocessor(mode, separator),\n ],\n postprocessors: [\n ...dateOptions.postprocessors,\n ...placeholderOptions.postprocessors,\n ],\n } satisfies Required<MaskitoOptions>;\n\n return { options: datePlaceholderMask, removePlaceholder };\n};\n\nexport default datePlaceholderMask;\n","import { maskitoParseDate } from \"@maskito/kit\";\nimport { useMaskito } from \"@maskito/react\";\nimport {\n TextField,\n type TextFieldProps,\n} from \"../../TextField/internal/TextField\";\nimport {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useMergeRefs } from \"@floating-ui/react\";\nimport { DateTime } from \"luxon\";\nimport datePlaceholderMask from \"./maskito/datePlaceholderMask\";\nimport { Icon } from \"../../Icon\";\nimport Event from \"@servicetitan/hammer-icon/mdi/round/event.svg\";\nimport { DateModeToFormatMap, DateModeToPlaceholderMap } from \"./constants\";\nimport type { DateMode } from \"../types\";\nimport { usePrevious } from \"../../../internal/hooks\";\nimport { jsDateToUtcDateTime } from \"./utils\";\n\nexport type MaskedDateInputChange = {\n date: DateTime | null;\n isInputValid: boolean;\n isInputEmpty: boolean;\n};\n\nexport type MaskedDateInputChangeHandler = (\n change: MaskedDateInputChange,\n) => void;\n\nexport type MaskedDateInputProps = Omit<\n TextFieldProps,\n \"onChange\" | \"value\" | \"ref\" | \"showCounter\" | \"hint\" | \"prefix\"\n> & {\n onChange: MaskedDateInputChangeHandler;\n mode?: DateMode;\n lastValidDate: DateTime | null;\n disableHint?: boolean;\n};\n\nexport type MaskedDateInputRef = HTMLInputElement & {\n setDate: (date: DateTime | null) => void;\n};\n\n/**\n * A masked date input component that allows for the input of a date in a specific format.\n *\n * Provides a `setDate` method that can be used to set the date from outside the component (e.g from a calendar).\n *\n * @internal This component is not intended to be used directly in consumer code.\n *\n * @param props - The props for the MaskedDateInput component.\n * @param props.onChange - The function to call when the date changes.\n * @param props.mode - The mode of the date input.\n */\nexport const MaskedDateInput = forwardRef<\n MaskedDateInputRef,\n MaskedDateInputProps\n>(\n (\n {\n onChange,\n mode = \"mm/dd/yyyy\",\n lastValidDate,\n disableHint = false,\n ...props\n },\n ref,\n ) => {\n const placeholder = DateModeToPlaceholderMap[mode];\n const [inputValue, setInputValue] = useState(placeholder);\n const { options, removePlaceholder } = datePlaceholderMask({\n mode,\n placeholder,\n });\n const maskedInputRef = useMaskito({ options });\n const inputRef = useRef<HTMLInputElement>(null);\n const combinedRef = useMergeRefs([maskedInputRef, inputRef, ref]);\n const previousDateRef = useRef<DateTime | null>(null);\n const previousMode = usePrevious(mode);\n\n // Update the input value when the mode changes.\n useEffect(() => {\n if (mode !== previousMode) {\n setInputValue((oldInputValue) =>\n swapMode(oldInputValue, previousMode ?? mode, mode),\n );\n }\n }, [mode, previousMode]);\n\n // Update the input value when the parent's date changes.\n useEffect(() => {\n if (lastValidDate === undefined) return;\n if (lastValidDate === previousDateRef.current) return; // Note: Reference equality is intentional here\n if (!lastValidDate?.equals(previousDateRef.current ?? DateTime.now())) {\n setInputValue(\n lastValidDate?.toFormat(DateModeToFormatMap[mode]) ?? placeholder,\n );\n previousDateRef.current = lastValidDate;\n }\n }, [lastValidDate, mode, placeholder]);\n\n const currentParsedData = useMemo(() => {\n return parseInputValue(inputValue, mode, removePlaceholder);\n }, [inputValue, mode, removePlaceholder]);\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setInputValue(event.target.value);\n const { date, isInputValid, isInputEmpty } = parseInputValue(\n event.target.value,\n mode,\n removePlaceholder,\n );\n\n // We only want to call onChange for substantive changes.\n // This is to avoid unnecessary re-renders of upstream components.\n const isValueDifferent =\n isInputValid !== currentParsedData.isInputValid || // The input has changed validity\n isInputEmpty !== currentParsedData.isInputEmpty || // The input has changed emptiness\n (date === null) !== (currentParsedData.date === null) || // The input has changed from empty to non-empty or vice versa\n (date !== null &&\n lastValidDate !== null &&\n !date.equals(lastValidDate)); // The date has changed\n\n // If the value has not changed, we do not need to call onChange.\n if (!isValueDifferent) return;\n onChange?.({\n date: date ?? lastValidDate ?? null,\n isInputValid,\n isInputEmpty,\n });\n };\n\n // Extend the input ref with additional methods.\n // This provides a way to set the input value from outside the component.\n useImperativeHandle(ref, () => {\n const input = inputRef.current;\n if (!input) return null as unknown as MaskedDateInputRef;\n return Object.assign(input, {\n setDate: (date: DateTime | null) => {\n setInputValue(\n date?.toFormat(DateModeToFormatMap[mode]) ?? placeholder,\n );\n },\n });\n }, [mode, placeholder]);\n\n return (\n <TextField\n ref={combinedRef}\n data-date={lastValidDate?.toISODate() ?? \"\"}\n data-input-valid={currentParsedData.isInputValid}\n data-input-empty={currentParsedData.isInputEmpty}\n {...props}\n showCounter={false}\n value={inputValue}\n onChange={handleChange}\n prefix={<Icon svg={Event} />}\n hint={disableHint ? undefined : `Format: ${mode}`}\n />\n );\n },\n);\n\nMaskedDateInput.displayName = \"MaskedDateInput\";\n\nfunction parseInputValue(\n value: string,\n mode: DateMode,\n removePlaceholder: (value: string) => string,\n) {\n const valueMinusPlaceholder = removePlaceholder(value);\n const jsDate = maskitoParseDate(valueMinusPlaceholder, { mode });\n const luxonDate = jsDate ? jsDateToUtcDateTime(jsDate) : null;\n return {\n date: luxonDate,\n isInputValid: !!luxonDate,\n isInputEmpty: valueMinusPlaceholder === \"\",\n };\n}\n\nfunction swapMode(inputString: string, previousMode: DateMode, mode: DateMode) {\n const { day, month, year } = divideSegments(inputString, previousMode);\n return orderSegmentsByMode(day, month, year, mode);\n}\n\nfunction divideSegments(\n value: string,\n mode: DateMode,\n): {\n day: string;\n month: string;\n year: string;\n} {\n const [segment1, segment2, segment3] = value.split(\"/\");\n if (mode === \"dd/mm/yyyy\") {\n return { day: segment1, month: segment2, year: segment3 };\n } else if (mode === \"mm/dd/yyyy\") {\n return { day: segment2, month: segment1, year: segment3 };\n } else if (mode === \"yyyy/mm/dd\") {\n return { day: segment3, month: segment2, year: segment1 };\n }\n return { day: \"__\", month: \"__\", year: \"____\" };\n}\n\nfunction orderSegmentsByMode(\n day: string,\n month: string,\n year: string,\n mode: DateMode,\n) {\n if (mode === \"dd/mm/yyyy\") {\n return `${day}/${month}/${year}`;\n } else if (mode === \"mm/dd/yyyy\") {\n return `${month}/${day}/${year}`;\n } else if (mode === \"yyyy/mm/dd\") {\n return `${year}/${month}/${day}`;\n } else {\n return \"\";\n }\n}\n","import { useCallback, useMemo } from \"react\";\nimport { convertStringToDate } from \"./utils\";\nimport type {\n DateFieldSingleChange,\n DateFieldSingleProps,\n} from \"../DateFieldSingle\";\nimport type { DateTime, WeekdayNumbers } from \"luxon\";\n\nexport type DateFieldSingleConversion = {\n /**\n * The current value of the date field.\n */\n value?: DateTime | null;\n /**\n * The default (uncontrolled) value of the date field.\n */\n defaultValue?: DateTime | null;\n /**\n * The minimum date of the date field.\n */\n minDate?: DateTime | null;\n /**\n * The maximum date of the date field.\n */\n maxDate?: DateTime | null;\n /**\n * The unavailable dates of the date field.\n */\n unavailable: {\n /**\n * The unavailable dates of the date field.\n */\n dates?: DateTime[];\n /**\n * The unavailable days of the week of the date field.\n */\n daysOfWeek?: WeekdayNumbers[];\n };\n /**\n * The callback for when the date changes.\n */\n onChange: (\n change: Omit<DateFieldSingleChange, \"date\"> & { date: DateTime | null },\n ) => void;\n};\n\n/**\n * Converts the props of the DateFieldSingle component to Luxon DateTime objects for easier internal use.\n * @param props - The props of the DateFieldSingle component using ISO 8601 strings.\n * @returns The converted props using Luxon DateTime objects.\n */\nexport function useDateFieldSingleConversion({\n value,\n defaultValue,\n minDate,\n maxDate,\n unavailable,\n onChange,\n}: DateFieldSingleProps): DateFieldSingleConversion {\n const normalizedValue = useMemo(() => convertStringToDate(value), [value]);\n const normalizedDefaultValue = useMemo(\n () => convertStringToDate(defaultValue),\n [defaultValue],\n );\n const normalizedMinDate = useMemo(\n () => convertStringToDate(minDate),\n [minDate],\n );\n const normalizedMaxDate = useMemo(\n () => convertStringToDate(maxDate),\n [maxDate],\n );\n const normalizedUnavailableDates = useMemo(\n () =>\n unavailable?.dates\n ?.map((d) => convertStringToDate(d))\n .filter((d) => d !== null && d !== undefined),\n [unavailable?.dates],\n );\n\n const handleChange = useCallback(\n (\n change: Omit<DateFieldSingleChange, \"date\"> & { date: DateTime | null },\n ) => {\n onChange?.({\n ...change,\n date: change.date?.toISODate() ?? null,\n });\n },\n [onChange],\n );\n\n return {\n value: normalizedValue,\n defaultValue: normalizedDefaultValue,\n minDate: normalizedMinDate,\n maxDate: normalizedMaxDate,\n unavailable: {\n dates: normalizedUnavailableDates,\n daysOfWeek: unavailable?.daysOfWeek,\n },\n onChange: handleChange,\n };\n}\n","import type { DateTime } from \"luxon\";\nimport { useOptionallyControlledState } from \"../../../internal/hooks\";\nimport type { MaskedDateInputChange } from \"./MaskedDateInput\";\n\nexport type DateFieldSingleStateChange = {\n date: DateTime | null;\n isInputValid: boolean;\n isInputEmpty: boolean;\n};\n\nexport type DateFieldSingleStateChangeHandler = (\n change: DateFieldSingleStateChange,\n) => void;\n\nexport type DateFieldSingleStateParam = {\n /**\n * The controlled value of the date field.\n */\n valueProp?: DateTime | null;\n /**\n * The default (uncontrolled) value of the date field.\n */\n defaultValueProp?: DateTime | null;\n /**\n * Callback for when the date changes.\n */\n onChange: DateFieldSingleStateChangeHandler;\n};\n\nexport type DateFieldSingleState = {\n /**\n * The current value (DateTime) of the date field.\n */\n value: DateTime | null;\n /**\n * Sets the value of the date field.\n */\n setValue: (value: DateTime | null) => void;\n /**\n * Handles the change of the input field.\n */\n handleInputChange: (change: MaskedDateInputChange) => void;\n /**\n * Handles the selection of a date in the calendar.\n */\n handleCalendarSelection: (date: DateTime) => void;\n};\n\n/**\n * This is a hook for keeping state in sync between a date input and calendar.\n */\nexport function useDateFieldSingleState({\n valueProp,\n defaultValueProp,\n onChange,\n}: DateFieldSingleStateParam): DateFieldSingleState {\n const [value, setValue] = useOptionallyControlledState<DateTime | null>({\n controlledValue: valueProp,\n defaultValue: defaultValueProp,\n });\n\n const handleInputChange = (change: MaskedDateInputChange) => {\n const date = change.isInputEmpty\n ? null\n : (change.date?.startOf(\"day\") ?? null);\n onChange?.({\n date,\n isInputValid: change.isInputValid,\n isInputEmpty: change.isInputEmpty,\n });\n if (change.isInputValid) {\n setValue(change.isInputEmpty ? null : change.date);\n }\n if (change.isInputEmpty) {\n setValue(null);\n return;\n }\n if (change.date) {\n setValue(change.date);\n }\n };\n\n const handleCalendarSelection = (date: DateTime) => {\n setValue(date);\n onChange?.({\n date,\n isInputValid: true,\n isInputEmpty: false,\n });\n };\n\n return {\n value,\n setValue,\n handleInputChange,\n handleCalendarSelection,\n };\n}\n","import { DateTime, type WeekdayNumbers } from \"luxon\";\nimport {\n Calendar,\n type CalendarProps,\n type CalendarValue,\n} from \"../../Calendar\";\nimport type { IanaZone } from \"../../../types\";\nimport { TimezoneMessage } from \"./TimezoneMessage\";\nimport { isoToUtcDate } from \"./utils\";\nimport { useMemo } from \"react\";\n\ntype DateFieldSingleCalendarProps = Omit<\n CalendarProps,\n | \"onSelection\"\n | \"value\"\n | \"onKeyDown\"\n | \"defaultFocusedDate\"\n | \"range\"\n | \"defaultTimeZone\"\n | \"unavailable\"\n | \"minDate\"\n | \"maxDate\"\n | \"defaultValue\"\n | \"_disableAutofocus\"\n> & {\n onKeyDown?: (event: React.KeyboardEvent<HTMLDivElement>) => void;\n value: DateTime | null;\n onSelection: (date: DateTime) => void;\n minDate?: DateTime | null;\n maxDate?: DateTime | null;\n unavailable?: { dates?: DateTime[]; daysOfWeek?: WeekdayNumbers[] };\n timezone?: IanaZone;\n};\n\nexport function DateFieldSingleCalendar({\n onKeyDown,\n value,\n onSelection,\n minDate,\n maxDate,\n unavailable,\n timezone: timezoneProp,\n ...rest\n}: DateFieldSingleCalendarProps) {\n const timezone: IanaZone = useMemo(() => {\n return (\n timezoneProp ??\n (Intl.DateTimeFormat().resolvedOptions().timeZone as IanaZone)\n );\n }, [timezoneProp]);\n\n const handleCalendarSelection = (data: { value: CalendarValue }) => {\n if (data.value) {\n const date = isoToUtcDate(data.value);\n onSelection(date);\n }\n };\n\n return (\n <>\n <Calendar\n {...rest}\n range={false}\n onKeyDown={onKeyDown}\n defaultFocusedDate={\n value?.toISODate() || DateTime.now().setZone(timezone).toISODate()\n }\n value={value?.toISODate() || undefined}\n onSelection={handleCalendarSelection}\n defaultTimeZone={timezone}\n minDate={minDate?.toISODate() ?? undefined}\n maxDate={maxDate?.toISODate() ?? undefined}\n unavailable={\n unavailable\n ? {\n dates: unavailable.dates?.map((d) => d.toISODate() ?? \"\"),\n daysOfWeek: unavailable.daysOfWeek,\n }\n : undefined\n }\n _disableAutofocus\n _disableFocus\n />\n <TimezoneMessage timezone={timezone} />\n </>\n );\n}\n","import { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\nimport type { DataTrackingId, IanaZone } from \"../../types\";\nimport Popover from \"../../internal/components/Popover\";\nimport { type Ref, useEffect, useMemo, useRef } from \"react\";\nimport {\n MaskedDateInput,\n type MaskedDateInputProps,\n type MaskedDateInputRef,\n} from \"./internal/MaskedDateInput\";\nimport type { DateMode } from \"./types\";\nimport { useDateFieldSingleConversion } from \"./internal/useDateFieldSingleConversion\";\nimport {\n type DateFieldSingleStateChangeHandler,\n useDateFieldSingleState,\n} from \"./internal/useDateFieldSingleState\";\nimport { validateDate } from \"./internal/utils\";\nimport { useFocusWithin } from \"../../internal/hooks\";\nimport { DateFieldSingleCalendar } from \"./internal/DateFieldSingleCalendar\";\nimport { mergeRefs } from \"../../hooks/useMergeRefs/useMergeRefs\";\n\nexport type DateFieldSingleProps = Omit<\n MaskedDateInputProps,\n | \"onChange\"\n | \"value\"\n | \"autoComplete\"\n | \"onClick\"\n | \"onKeyDown\"\n | \"ref\"\n | \"lastValidDate\"\n | \"setLastValidDate\"\n | \"required\"\n | \"onFocus\"\n | \"onBlur\"\n> & {\n value?: string | null;\n defaultValue?: string | null;\n onChange?: DateFieldSingleChangeHandler;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n mode?: Extract<DateMode, \"mm/dd/yyyy\" | \"dd/mm/yyyy\">;\n disableHint?: boolean;\n disableCalendar?: boolean;\n unavailable?: {\n /**\n * The specific dates that are unavailable. ISO 8601 format.\n * @example [\"2025-07-02\"]\n */\n dates?: string[];\n /**\n * The days of the week that are unavailable.\n * (1-7, where 1 is Monday and 7 is Sunday)\n */\n daysOfWeek?: (1 | 2 | 3 | 4 | 5 | 6 | 7)[];\n };\n minDate?: string;\n maxDate?: string;\n required?: boolean;\n /**\n * The IANA timezone to use for the calendar. Controls the meaning of the \"Today\"\n * button and which month/year is initially displayed. When the timezone differs\n * from the user's locale timezone, a disambiguation message is shown below the calendar.\n * @example \"America/Los_Angeles\"\n */\n timezone?: IanaZone;\n} & DataTrackingId;\n\nexport type DateFieldSingleChange = {\n /**\n * The date in ISO 8601 format.\n * @example \"2025-07-02\"\n */\n date: string | null;\n /**\n * Whether the input is valid. That is, it matches the format and is not empty.\n * This does not mean that the date is valid according to the constraints.\n */\n isInputValid: boolean;\n /**\n * Whether the input is empty.\n */\n isInputEmpty: boolean;\n /**\n * Whether the date is valid according to the constraints.\n * Constraints include:\n * - Required\n * - Unavailable dates\n * - Unavailable days of the week\n * - Min date\n * - Max date\n */\n isDateValid: boolean;\n};\n\nexport type DateFieldSingleChangeHandler = (\n change: DateFieldSingleChange,\n) => void;\n\n/**\n * DateFieldSingle component for entering a single date via a masked text\n * input, with an optional popover calendar for picking the date visually.\n *\n * Features:\n * - Masked date input with configurable mm/dd/yyyy or dd/mm/yyyy mode\n * - Optional popover calendar (disable with `disableCalendar`)\n * - Min/max date and unavailable-date/day-of-week constraints\n * - Timezone-aware \"Today\" navigation via `timezone`\n * - Reports input validity and constraint validity separately via `onChange`\n * - Full keyboard support (arrow-down opens the calendar from the input)\n *\n * @example\n * <DateFieldSingle\n * label=\"Appointment date\"\n * value=\"2025-07-02\"\n * onChange={({ date, isDateValid }) => console.log(date, isDateValid)}\n * minDate=\"2025-01-01\"\n * />\n */\nexport const DateFieldSingle = (props: DateFieldSingleProps) => {\n const { aiMark, ...labelPropsWithoutAiMark } = props.labelProps || {};\n\n const data = {\n label: childrenToString(props.label),\n labelProps: labelPropsWithoutAiMark,\n description: childrenToString(props.description),\n };\n\n const trackingId = useTrackingId({\n name: \"DateFieldSingle\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const {\n onFocus,\n onBlur,\n disableCalendar,\n required,\n mode,\n value: valueProp,\n defaultValue: defaultValueProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp,\n onChange: onChangeProp,\n label,\n timezone,\n disabled,\n ...rest\n } = props;\n\n const popoverRef = useRef<{\n openPopover: () => void;\n closePopover: () => void;\n }>(null);\n\n useEffect(() => {\n if (disabled) {\n popoverRef.current?.closePopover();\n }\n }, [disabled]);\n const inputRef = useRef<MaskedDateInputRef>(null);\n // We convert any props that deal in ISO 8601 strings to Luxon DateTime objects for easier internal use.\n const {\n value: normalizedValue,\n defaultValue: normalizedDefaultValue,\n minDate,\n maxDate,\n unavailable,\n onChange,\n } = useDateFieldSingleConversion({\n value: valueProp,\n defaultValue: defaultValueProp,\n onChange: onChangeProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp,\n });\n\n const handleChange: DateFieldSingleStateChangeHandler = (change) => {\n onChange?.({\n ...change,\n isDateValid: validateDate({\n date: change.date,\n constraints: {\n required,\n unavailable,\n minDate: minDate ?? undefined,\n maxDate: maxDate ?? undefined,\n },\n }),\n });\n };\n\n // We use a hook to keep the value of input and the calendar in sync.\n const { value, handleInputChange, handleCalendarSelection } =\n useDateFieldSingleState({\n valueProp: normalizedValue,\n defaultValueProp: normalizedDefaultValue,\n onChange: handleChange,\n });\n\n const { props: wrapperProps } = useFocusWithin({\n onBlur: (e) => {\n onBlur?.(e);\n popoverRef.current?.closePopover();\n },\n onFocus,\n });\n\n const popoverContentRef = useRef<HTMLDivElement>(null);\n\n const currentValidity = useMemo(\n () =>\n validateDate({\n date: value,\n constraints: {\n required,\n unavailable,\n minDate: minDate ?? undefined,\n maxDate: maxDate ?? undefined,\n },\n }),\n [value, required, unavailable, minDate, maxDate],\n );\n\n const handleInputKeyDown = (ev: React.KeyboardEvent<HTMLInputElement>) => {\n if (ev.key === \"ArrowDown\") {\n popoverRef.current?.openPopover();\n requestAnimationFrame(() => {\n popoverContentRef.current?.querySelector(\"button\")?.focus();\n });\n }\n };\n\n const commonFieldProps = {\n ...rest,\n disabled,\n label,\n mode,\n onChange: handleInputChange,\n lastValidDate: value,\n required,\n autoComplete: \"off\",\n \"data-date-valid\": currentValidity,\n \"data-tracking-id\": trackingId,\n \"aria-label\": label ? undefined : \"Select a Date\",\n };\n if (disableCalendar) {\n return <MaskedDateInput ref={inputRef} {...commonFieldProps} />;\n }\n\n return (\n <div {...wrapperProps}>\n <Popover ref={popoverRef} placement=\"bottom-start\" role=\"grid\">\n <Popover.Trigger>\n {({ ref: iRef, onKeyDown }) => {\n const mergedRef = mergeRefs([\n iRef as Ref<HTMLInputElement>,\n inputRef,\n ]);\n return (\n <MaskedDateInput\n {...commonFieldProps}\n ref={mergedRef}\n onKeyDown={(ev) => {\n onKeyDown?.(ev);\n handleInputKeyDown(ev);\n }}\n onClick={() => popoverRef.current?.openPopover()}\n onFocus={onFocus}\n onBlur={onBlur}\n />\n );\n }}\n </Popover.Trigger>\n <Popover.Content ref={popoverContentRef} data-testid=\"calendar-popover\">\n <DateFieldSingleCalendar\n value={value}\n onSelection={(v) => {\n inputRef.current?.focus();\n handleCalendarSelection(v);\n popoverRef.current?.closePopover();\n }}\n minDate={minDate}\n maxDate={maxDate}\n unavailable={unavailable}\n timezone={timezone}\n />\n </Popover.Content>\n </Popover>\n </div>\n );\n};\n\nDateFieldSingle.displayName = \"DateFieldSingle\";\n"],"names":["datePlaceholderMask","Event"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { D as DateFieldSingle } from './DateFieldSingle-CwcV_AOp.js';
1
+ export { D as DateFieldSingle } from './DateFieldSingle-D-KZ3NL0.js';
2
2
  //# sourceMappingURL=DateFieldSingle.js.map
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { Y as YearlessDateInputWithPicker } from './YearlessDateInputWithPicker-CpnLg01W.js';
2
+ import { Y as YearlessDateInputWithPicker } from './YearlessDateInputWithPicker-CM9mmz8s.js';
3
3
  import { useRef, useId, isValidElement } from 'react';
4
- import { F as FieldLabel } from './FieldLabel-v6vMVVWB.js';
4
+ import { F as FieldLabel } from './FieldLabel-SzH61hCb.js';
5
5
  import { w as warnDeprecatedErrorUsage } from './utils-CM48ODEJ.js';
6
6
  import { t as textFieldStyles } from './TextField.module-DklyLNKz.js';
7
7
  import { c as cx } from './index-De1g9FRV.js';
@@ -9,8 +9,8 @@ import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
9
9
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
10
10
  import { useTrackingId } from './useTrackingId.js';
11
11
  import { w as warnOnce } from './warnOnce-Y9PRHcU4.js';
12
- import { s as stripInlineMarkdown } from './stripInlineMarkdown-C-3FEh_E.js';
13
- import { H as Helper } from './Helper-B_VAFgGd.js';
12
+ import { s as stripInlineMarkdown } from './stripInlineMarkdown-BfNNOWPk.js';
13
+ import { H as Helper } from './Helper-Bq6Npkgh.js';
14
14
 
15
15
  const DateFieldYearless = (props) => {
16
16
  const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
@@ -139,4 +139,4 @@ const DateFieldYearless = (props) => {
139
139
  DateFieldYearless.displayName = "DateFieldYearless";
140
140
 
141
141
  export { DateFieldYearless as D };
142
- //# sourceMappingURL=DateFieldYearless-HntvaWSJ.js.map
142
+ //# sourceMappingURL=DateFieldYearless-DouEX24o.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateFieldYearless-DouEX24o.js","sources":["../src/components/DateFieldYearless/DateFieldYearless.tsx"],"sourcesContent":["import {\n childrenToString,\n stripInlineMarkdown,\n warnOnce,\n} from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\nimport type { DataTrackingId, LayoutUtilProps, Size } from \"../../types\";\nimport type { YearlessDate, YearlessDateMode } from \"./types\";\nimport {\n YearlessDateInputWithPicker,\n type YearlessDateInputWithPickerRef,\n} from \"./internal/YearlessDateInputWithPicker\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport {\n useId,\n useRef,\n isValidElement,\n type ReactElement,\n type ReactNode,\n type ComponentPropsWithoutRef,\n} from \"react\";\nimport { FieldLabel, type FieldLabelProps } from \"../FieldLabel\";\nimport { Helper, type HelperProps } from \"../../internal/components\";\nimport { warnDeprecatedErrorUsage } from \"../FieldMessage\";\nimport styles from \"../TextField/TextField.module.scss\";\nimport cx from \"classnames\";\n\nexport type DateFieldYearlessProps = Omit<\n ComponentPropsWithoutRef<\"input\">,\n | \"onChange\"\n | \"value\"\n | \"defaultValue\"\n | \"ref\"\n | \"size\"\n | \"type\"\n | \"onFocus\"\n | \"onBlur\"\n> &\n LayoutUtilProps & {\n /**\n * The controlled value of the date field\n */\n value?: YearlessDate | null;\n /**\n * The default value for uncontrolled usage\n */\n defaultValue?: YearlessDate | null;\n /**\n * The function to call when the date value changes\n */\n onChange?: DateFieldYearlessChangeHandler;\n /**\n * The date format mode (mm/dd or dd/mm)\n */\n mode?: YearlessDateMode;\n /**\n * Whether the field is required\n */\n required?: boolean;\n /**\n * The minimum allowed date\n */\n minDate?: YearlessDate | null;\n /**\n * The maximum allowed date\n */\n maxDate?: YearlessDate | null;\n /**\n * Configuration for unavailable dates\n */\n unavailable?: {\n /**\n * Array of dates that are not selectable\n */\n dates?: YearlessDate[];\n };\n /**\n * Whether the picker is disabled\n */\n disablePicker?: boolean;\n /**\n * Error state for the field. Pass `true` to indicate error styling without a message.\n * Pass a string, string[], or ReactElement (deprecated) for error messages.\n */\n error?: boolean | string | ReactElement | string[];\n // TODO(v4.0.0): make label required and type string\n /**\n * Label for the field.\n * Omitting `label` is deprecated — it will be required in v4.0.0. Use `hideLabel` to visually hide it.\n * Passing `ReactNode` is deprecated — use a plain string with inline markdown instead.\n */\n label?: FieldLabelProps[\"children\"];\n /**\n * Props for the label component\n */\n labelProps?: FieldLabelProps;\n /**\n * Description text for the field\n */\n description?: HelperProps[\"description\"];\n /**\n * @deprecated No longer used. Error messages always use `aria-live=\"assertive\"`.\n */\n errorAriaLive?: HelperProps[\"errorAriaLive\"];\n /**\n * Warning message(s) to display. Supports a single string or an array of strings.\n */\n warning?: string | string[];\n /**\n * Size of the input\n */\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n /**\n * Whether the field is disabled\n */\n disabled?: boolean;\n /**\n * Whether the field is in loading state\n */\n loading?: boolean;\n /**\n * Additional info content\n */\n moreInfo?: ReactNode;\n /**\n * Whether to disable the format hint\n */\n disableHint?: boolean;\n /**\n * When `true`, hides the visible label and moves it to `aria-label` on the input.\n * @default false\n */\n hideLabel?: boolean;\n /**\n * Function to call when the field is focused\n */\n onFocus?: (event: React.FocusEvent) => void;\n /**\n * Function to call when the field is blurred\n */\n onBlur?: (event: React.FocusEvent) => void;\n } & DataTrackingId;\n\n/**\n * Represents a change event for the DateFieldYearless component\n */\nexport type DateFieldYearlessChange = {\n /**\n * The current date value\n */\n value: YearlessDate | null;\n /**\n * Whether the input is valid\n */\n isInputValid: boolean;\n /**\n * Whether the input is empty\n */\n isInputEmpty: boolean;\n /**\n * Whether the overall value is valid\n */\n isValid: boolean;\n};\n\n/**\n * Handler function for DateFieldYearless change events\n */\nexport type DateFieldYearlessChangeHandler = (\n change: DateFieldYearlessChange,\n) => void;\n\n/**\n * DateFieldYearless component for inputting dates without year information.\n *\n * Features:\n * - Supports both controlled and uncontrolled usage\n * - Supports different date formats (mm/dd or dd/mm)\n * - Supports layout utilities for positioning and spacing\n *\n * @example\n * <DateFieldYearless\n * label=\"Birthday\"\n * mode=\"mm/dd\"\n * required\n * onChange={(change) => console.log('Date changed:', change.value)}\n * />\n */\nexport const DateFieldYearless = (props: DateFieldYearlessProps) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n value,\n defaultValue,\n minDate,\n maxDate,\n unavailable,\n required,\n disablePicker = false,\n mode = \"mm/dd\",\n error,\n errorAriaLive: _errorAriaLive,\n label,\n moreInfo,\n size,\n disabled,\n loading,\n labelProps,\n warning,\n description,\n id: idProp,\n style,\n disableHint = false,\n hideLabel = false,\n onFocus,\n onBlur,\n className,\n onChange,\n ...restProps\n } = componentProps;\n\n const inputRef = useRef<YearlessDateInputWithPickerRef>(null);\n\n const { aiMark, ...labelPropsWithoutAiMark } = labelProps || {};\n\n const data = {\n label: childrenToString(props.label),\n labelProps: labelPropsWithoutAiMark,\n description: childrenToString(props.description),\n };\n\n const trackingId = useTrackingId({\n name: \"DateFieldYearless\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const labelUid = useId();\n const id = idProp ?? labelUid;\n const helperUid = useId();\n const moreInfoUid = useId();\n\n warnDeprecatedErrorUsage(\"DateFieldYearless\", error);\n\n // TODO(v4.0.0): remove these warnings once label is required string\n if (label === undefined) {\n warnOnce(\n \"DateFieldYearless: label will be required in v4.0.0. Use hideLabel to visually hide the label.\",\n );\n } else if (typeof label !== \"string\") {\n warnOnce(\n \"DateFieldYearless: Passing ReactNode to label is deprecated. Use a plain string with inline markdown instead.\",\n );\n }\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n\n const styleCombined = { ...style, ...layoutStyles };\n\n const ariaDescribedBy = [helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <div\n className={cx(styles[\"textfield\"], className)}\n data-anv=\"datefield-yearless\"\n style={styleCombined}\n >\n {/* TODO(v4.0.0): simplify to !hideLabel once label is required */}\n {label && !hideLabel && (\n <FieldLabel\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n required={required}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </FieldLabel>\n )}\n <YearlessDateInputWithPicker\n {...restProps}\n ref={inputRef}\n mode={mode}\n required={required}\n minDate={minDate}\n maxDate={maxDate}\n unavailable={unavailable}\n disablePicker={disablePicker}\n size={size}\n error={!!error}\n disabled={disabled}\n loading={loading}\n id={id}\n data-tracking-id={trackingId}\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? !!error : undefined}\n aria-label={\n // TODO(v4.0.0): remove typeof check — label will always be string\n hideLabel && typeof label === \"string\"\n ? stripInlineMarkdown(label)\n : label\n ? undefined\n : \"Select a date\"\n }\n value={value}\n defaultValue={defaultValue}\n onChange={onChange}\n onFocus={onFocus}\n onBlur={onBlur}\n />\n {errorMessages || warning || description || (!disableHint && mode) ? (\n <Helper\n id={helperUid}\n hint={disableHint ? undefined : `Format: ${mode}`}\n showCounter={false}\n error={\n typeof errorMessages === \"string\" || Array.isArray(errorMessages)\n ? errorMessages\n : undefined\n }\n warning={warning}\n errorMessage={\n isValidElement(errorMessages) ? errorMessages : undefined\n }\n description={description}\n />\n ) : null}\n </div>\n );\n};\n\nDateFieldYearless.displayName = \"DateFieldYearless\";\n"],"names":["styles"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { D as DateFieldYearless } from './DateFieldYearless-HntvaWSJ.js';
1
+ export { D as DateFieldYearless } from './DateFieldYearless-DouEX24o.js';
2
2
  //# sourceMappingURL=DateFieldYearless.js.map
@@ -4,12 +4,12 @@ import { useId, isValidElement } from 'react';
4
4
  import { c as cx } from './index-De1g9FRV.js';
5
5
  import { t as textFieldStyles } from './TextField.module-DklyLNKz.js';
6
6
  import { w as warnDeprecatedErrorUsage } from './utils-CM48ODEJ.js';
7
- import { F as FieldLabel } from './FieldLabel-v6vMVVWB.js';
8
- import { I as Icon } from './Icon-B4uCvMU9.js';
9
- import { Y as YearlessDateInputWithPicker } from './YearlessDateInputWithPicker-CpnLg01W.js';
7
+ import { F as FieldLabel } from './FieldLabel-SzH61hCb.js';
8
+ import { I as Icon } from './Icon-B5zwN7GD.js';
9
+ import { Y as YearlessDateInputWithPicker } from './YearlessDateInputWithPicker-CM9mmz8s.js';
10
10
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
11
11
  import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
12
- import { H as Helper } from './Helper-B_VAFgGd.js';
12
+ import { H as Helper } from './Helper-Bq6Npkgh.js';
13
13
 
14
14
  import './DateFieldYearlessRange.css';const dateFieldYearlessRangeStyles = {
15
15
  "range-row": "_range-row_vmodf_1",
@@ -169,4 +169,4 @@ const DateFieldYearlessRange = (props) => {
169
169
  };
170
170
 
171
171
  export { DateFieldYearlessRange as D };
172
- //# sourceMappingURL=DateFieldYearlessRange-BPvJvBob.js.map
172
+ //# sourceMappingURL=DateFieldYearlessRange-B_bImgyn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateFieldYearlessRange-B_bImgyn.js","sources":["../../hammer-icon/mdi/filled/arrow_forward.svg","../src/components/DateFieldYearlessRange/DateFieldYearlessRange.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgArrowForward = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"m12 4-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\" }));\nexport default SvgArrowForward;\n","import { type ReactElement, isValidElement, useId } from \"react\";\nimport cx from \"classnames\";\nimport textFieldStyles from \"../TextField/TextField.module.scss\";\nimport dateFieldYearlessRangeStyles from \"./DateFieldYearlessRange.module.scss\";\nimport { Helper, type HelperProps } from \"../../internal/components\";\nimport { warnDeprecatedErrorUsage } from \"../FieldMessage\";\nimport type { LayoutUtilProps, Size } from \"../../types\";\nimport {\n useLayoutPropsUtil,\n useOptionallyControlledState,\n} from \"../../internal/hooks\";\nimport FieldLabel, { type FieldLabelProps } from \"../FieldLabel\";\nimport type {\n YearlessDate,\n YearlessDateMode,\n} from \"../DateFieldYearless/types\";\nimport Icon from \"../Icon\";\nimport ArrowForward from \"@servicetitan/hammer-icon/mdi/filled/arrow_forward.svg\";\nimport { YearlessDateInputWithPicker } from \"../DateFieldYearless/internal/YearlessDateInputWithPicker\";\n\nexport type DateFieldYearlessRangeValue = {\n startDate: YearlessDate | null;\n endDate: YearlessDate | null;\n};\n\nexport type DateFieldYearlessRangeChange = {\n startDate: YearlessDate | null;\n endDate: YearlessDate | null;\n};\n\nexport type DateFieldYearlessRangeChangeHandler = (\n change: DateFieldYearlessRangeChange,\n) => void;\n\nexport type DateFieldYearlessRangeProps = {\n /**\n * The controlled value of the date field\n */\n value?: DateFieldYearlessRangeValue;\n /**\n * The default value for uncontrolled usage\n */\n defaultValue?: DateFieldYearlessRangeValue;\n /**\n * The function to call when the date value changes\n */\n onChange?: DateFieldYearlessRangeChangeHandler;\n /**\n * The date format mode (mm/dd or dd/mm)\n */\n mode?: YearlessDateMode;\n /**\n * Whether the field is required\n */\n required?: boolean;\n /**\n * Whether the picker is disabled\n */\n disablePicker?: boolean;\n /**\n * Whether to disable the hint\n */\n disableHint?: boolean;\n /**\n * Error state for the field. Pass `true` to indicate error styling without a message.\n * Pass a string, string[], or ReactElement (deprecated) for error messages.\n */\n error?: boolean | string | ReactElement | string[];\n /**\n * Label for the field group. Always required for accessibility.\n */\n label: string;\n /**\n * When `true`, hides the visible legend while keeping it accessible to screen readers.\n * @default false\n */\n hideLabel?: boolean;\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n description?: HelperProps[\"description\"];\n /**\n * @deprecated No longer used. Error messages always use `aria-live=\"assertive\"`.\n */\n errorAriaLive?: HelperProps[\"errorAriaLive\"];\n /**\n * Warning message(s) to display. Supports a single string or an array of strings.\n */\n warning?: string | string[];\n disabled?: boolean;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n id?: string;\n startLabel?: string;\n endLabel?: string;\n legendProps?: Omit<FieldLabelProps, \"el\">;\n moreInfo?: FieldLabelProps[\"moreInfo\"];\n} & LayoutUtilProps;\n\n/**\n * DateFieldYearlessRange component for entering a start and end month/day\n * pair — a date range with no year, e.g. recurring events or anniversaries.\n *\n * Features:\n * - Two masked month/day inputs (mm/dd or dd/mm mode) with a picker toggle\n * - Separate `startLabel`/`endLabel` under a shared field-group `label`\n * - Optional error, warning, hint, and description messaging\n * - `disablePicker` and `disableHint` to trim the UI down when not needed\n *\n * @example\n * <DateFieldYearlessRange\n * label=\"Recurring event\"\n * startLabel=\"Start\"\n * endLabel=\"End\"\n * value={{ startDate: { month: 7, day: 2 }, endDate: { month: 7, day: 10 } }}\n * onChange={(change) => console.log(change)}\n * />\n */\nexport const DateFieldYearlessRange = (props: DateFieldYearlessRangeProps) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n label,\n moreInfo,\n size,\n hideLabel = false,\n required,\n id: idProp,\n legendProps,\n errorAriaLive: _errorAriaLive,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n error,\n warning,\n disabled,\n disableHint,\n description,\n mode = \"mm/dd\",\n startLabel = \"Start date\",\n endLabel = \"End date\",\n disablePicker,\n } = componentProps;\n\n const [value, setValue] =\n useOptionallyControlledState<DateFieldYearlessRangeValue>({\n controlledValue: props.value,\n defaultValue: props.defaultValue,\n onChange: props.onChange,\n });\n\n const labelUid = useId();\n const id = idProp ?? labelUid;\n const helperUid = useId();\n const moreInfoUid = useId();\n\n warnDeprecatedErrorUsage(\"DateFieldYearlessRange\", error);\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n\n const handleStartDateChange = (startDate: YearlessDate | null) => {\n setValue({\n ...value,\n startDate,\n });\n };\n\n const handleEndDateChange = (endDate: YearlessDate | null) => {\n setValue({\n ...value,\n endDate,\n });\n };\n\n const ariaDescribedBy = [helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <fieldset\n className={cx(\n textFieldStyles[\"textfield\"],\n dateFieldYearlessRangeStyles[\"range-root\"],\n )}\n data-anv=\"date-field-yearless-range\"\n style={layoutStyles}\n >\n <FieldLabel\n el=\"legend\"\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n required={required}\n {...legendProps}\n className={cx(\n legendProps?.className,\n hideLabel ? dateFieldYearlessRangeStyles[\"sr-only\"] : undefined,\n )}\n >\n {label}\n </FieldLabel>\n <div className={dateFieldYearlessRangeStyles[\"range-row\"]}>\n <FieldLabel\n htmlFor={id + \"-\" + \"start\"}\n className={dateFieldYearlessRangeStyles[\"sr-only\"]}\n >\n {startLabel}\n </FieldLabel>\n <YearlessDateInputWithPicker\n id={id + \"-\" + \"start\"}\n size={size}\n error={!!error}\n required={required}\n disabled={disabled}\n mode={mode}\n value={value?.startDate}\n onChange={(change) => handleStartDateChange(change.value)}\n aria-describedby={ariaDescribedBy}\n disablePicker={disablePicker}\n onFocus={onFocusProp}\n onBlur={onBlurProp}\n />\n <Icon\n svg={ArrowForward}\n className={dateFieldYearlessRangeStyles[\"range-arrow\"]}\n />\n <FieldLabel\n htmlFor={id + \"-\" + \"end\"}\n className={dateFieldYearlessRangeStyles[\"sr-only\"]}\n >\n {endLabel}\n </FieldLabel>\n <YearlessDateInputWithPicker\n id={id + \"-\" + \"end\"}\n size={size}\n error={!!error}\n required={required}\n disabled={disabled}\n mode={mode}\n value={value?.endDate}\n onChange={(change) => handleEndDateChange(change.value)}\n aria-labelledby={labelUid}\n aria-describedby={ariaDescribedBy}\n disablePicker={disablePicker}\n onFocus={onFocusProp}\n onBlur={onBlurProp}\n />\n </div>\n {!disableHint || errorMessages || warning || description ? (\n <Helper\n id={helperUid}\n hint={disableHint ? undefined : `Format: ${mode}`}\n showCounter={false}\n error={\n typeof errorMessages === \"string\" || Array.isArray(errorMessages)\n ? errorMessages\n : undefined\n }\n warning={warning}\n errorMessage={\n isValidElement(errorMessages) ? errorMessages : undefined\n }\n description={description}\n />\n ) : null}\n </fieldset>\n );\n};\n"],"names":["ArrowForward"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { D as DateFieldYearlessRange } from './DateFieldYearlessRange-BPvJvBob.js';
1
+ export { D as DateFieldYearlessRange } from './DateFieldYearlessRange-B_bImgyn.js';
2
2
  //# sourceMappingURL=DateFieldYearlessRange.js.map
@@ -1,10 +1,10 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef, useId, useMemo } from 'react';
3
- import { F as FieldLabel } from './FieldLabel-v6vMVVWB.js';
4
- import { B as ButtonToggle } from './ButtonToggle-DBGc7dIn.js';
3
+ import { F as FieldLabel } from './FieldLabel-SzH61hCb.js';
4
+ import { B as ButtonToggle } from './ButtonToggle-DKDBD1g3.js';
5
5
  import { T as Tooltip } from './Tooltip-BC8lnFhe.js';
6
- import { F as Flex } from './Flex-Bb3iHExM.js';
7
- import { H as Helper } from './Helper-B_VAFgGd.js';
6
+ import { F as Flex } from './Flex-CRF7gj0_.js';
7
+ import { H as Helper } from './Helper-Bq6Npkgh.js';
8
8
 
9
9
  import './DaysOfTheWeek.css';const styles = {
10
10
  "days-of-the-week-container": "_days-of-the-week-container_10v8m_1",
@@ -113,4 +113,4 @@ const DaysOfTheWeek = forwardRef(
113
113
  DaysOfTheWeek.displayName = "DaysOfTheWeek";
114
114
 
115
115
  export { DaysOfTheWeek as D };
116
- //# sourceMappingURL=DaysOfTheWeek-4Cd2WK7u.js.map
116
+ //# sourceMappingURL=DaysOfTheWeek--FBi44iw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DaysOfTheWeek--FBi44iw.js","sources":["../src/components/DaysOfTheWeek/DaysOfTheWeek.tsx"],"sourcesContent":["import {\n type AriaAttributes,\n type ReactElement,\n type Ref,\n forwardRef,\n useId,\n useMemo,\n} from \"react\";\nimport type { DataTrackingId } from \"../../types\";\nimport styles from \"./DaysOfTheWeek.module.scss\";\nimport { FieldLabel, type FieldLabelProps } from \"../FieldLabel\";\n\nimport ButtonToggle from \"../ButtonToggle\";\nimport Tooltip from \"../Tooltip\";\nimport { Helper } from \"../../internal/components\";\nimport Flex from \"../Flex\";\n\n/**\n * Props for the DaysOfTheWeek component\n */\nexport type DaysOfTheWeekProps = {\n /**\n * The selected days (1-7, where 1 is Monday and 7 is Sunday)\n */\n selectedDays?: number[];\n /**\n * Callback fired when the selection changes\n */\n onChange?: (selectedDays: number[]) => void;\n /**\n * Whether the component is disabled\n * Can be a boolean to disable all days, or an array of day numbers (1-7) to disable specific days\n */\n disabled?: boolean | number[];\n /**\n * The first day of the week (1-7, where 1 is Monday and 7 is Sunday)\n * @default 1\n */\n firstDay?: number;\n /**\n * Hint text or element to display above the component\n */\n hint?: ReactElement | string;\n /**\n * ID for the component\n */\n id?: string;\n /**\n * Description text or element to display below the component\n */\n description?: ReactElement | string;\n /**\n * Error message(s) to display. Supports a single string or an array of strings.\n */\n error?: string | string[];\n /**\n * Warning message(s) to display. Supports a single string or an array of strings.\n */\n warning?: string | string[];\n /**\n * @deprecated Use the `error` prop instead.\n */\n errorMessage?: ReactElement | string;\n /**\n * @deprecated No longer used. Error messages always use `aria-live=\"assertive\"`.\n */\n errorAriaLive?: AriaAttributes[\"aria-live\"];\n /**\n * Label text or element\n */\n label?: FieldLabelProps[\"children\"];\n /**\n * Whether the field is required\n */\n required?: boolean;\n /**\n * Additional info to display in a tooltip next to the label\n */\n moreInfo?: FieldLabelProps[\"moreInfo\"];\n /**\n * Additional props to pass to the Label component\n */\n labelProps?: FieldLabelProps;\n} & DataTrackingId;\n\ninterface DayInfo {\n short: string;\n full: string;\n}\n\n// Days in order from Monday to Sunday\nconst DAYS: DayInfo[] = [\n { short: \"Mo\", full: \"Monday\" },\n { short: \"Tu\", full: \"Tuesday\" },\n { short: \"We\", full: \"Wednesday\" },\n { short: \"Th\", full: \"Thursday\" },\n { short: \"Fr\", full: \"Friday\" },\n { short: \"Sa\", full: \"Saturday\" },\n { short: \"Su\", full: \"Sunday\" },\n];\n\n/**\n * DaysOfTheWeek component for selecting multiple days of the week.\n *\n * Features:\n * - Displays days of the week as toggleable buttons\n * - Supports custom first day of the week (Monday-Sunday)\n * - Individual day selection and deselection\n * - Optional label, hint, description, and error messaging\n * - Full accessibility support with ARIA attributes\n * - Tooltips showing full day names on hover\n * - Responsive design with flexible layout\n * - Support for disabling specific days or the entire component\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <DaysOfTheWeek\n * selectedDays={[2, 4, 6]}\n * onChange={(days) => console.log('Selected days:', days)}\n * label=\"Working Days\"\n * firstDay={1}\n * />\n */\nexport const DaysOfTheWeek = forwardRef(\n (props: DaysOfTheWeekProps, ref: Ref<HTMLDivElement>) => {\n const {\n selectedDays = [],\n onChange,\n disabled,\n firstDay = 7,\n hint,\n id: idProp,\n description,\n error,\n warning,\n errorMessage,\n errorAriaLive,\n label,\n required,\n moreInfo,\n labelProps,\n } = props;\n\n const autoId = useId();\n const id = idProp ?? autoId;\n const labelUid = useId();\n const helperUid = useId();\n\n const hasHelperText =\n hint || error || warning || errorMessage || description;\n\n const orderedDays = useMemo(() => {\n const firstDayIndex = firstDay - 1;\n return [...DAYS.slice(firstDayIndex), ...DAYS.slice(0, firstDayIndex)];\n }, [firstDay]);\n\n const handleDayToggle = (index: number) => {\n // Convert from 0-based array index to 1-based day number, accounting for firstDay\n const dayNumber = ((index + firstDay - 1) % 7) + 1;\n const newSelectedDays = selectedDays.includes(dayNumber)\n ? selectedDays.filter((d) => d !== dayNumber)\n : [...selectedDays, dayNumber];\n\n onChange?.(newSelectedDays);\n };\n\n const isDayDisabled = (dayNumber: number) => {\n if (typeof disabled === \"boolean\") {\n return disabled;\n }\n if (Array.isArray(disabled)) {\n return disabled.includes(dayNumber);\n }\n return false;\n };\n\n return (\n <div className={styles[\"days-of-the-week-container\"]}>\n {label ? (\n <FieldLabel\n moreInfo={moreInfo}\n required={required}\n id={labelUid}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </FieldLabel>\n ) : null}\n <div ref={ref} className={styles[\"days-of-the-week\"]} id={id}>\n <Flex gap={2} className={styles[\"days-of-the-week-scroller\"]}>\n {orderedDays.map((day, index) => {\n // Convert from 0-based array index to 1-based day number, accounting for firstDay\n const dayNumber = ((index + firstDay - 1) % 7) + 1;\n return (\n <Tooltip key={day.short} placement=\"top\">\n <Tooltip.Trigger className={styles[\"button-toggle-wrapper\"]}>\n <ButtonToggle\n checked={selectedDays.includes(dayNumber)}\n onClick={() => handleDayToggle(index)}\n disabled={isDayDisabled(dayNumber)}\n className={styles[\"button-toggle\"]}\n id={label ? labelUid : undefined}\n aria-describedby={hasHelperText ? helperUid : undefined}\n >\n {day.short}\n </ButtonToggle>\n </Tooltip.Trigger>\n <Tooltip.Content>{day.full}</Tooltip.Content>\n </Tooltip>\n );\n })}\n </Flex>\n </div>\n {hasHelperText ? (\n <Helper\n id={helperUid}\n hint={hint}\n description={description}\n error={error}\n warning={warning}\n errorMessage={errorMessage}\n errorAriaLive={errorAriaLive}\n />\n ) : null}\n </div>\n );\n },\n);\nDaysOfTheWeek.displayName = \"DaysOfTheWeek\";\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA2FA,MAAM,IAAA,GAAkB;AAAA,EACtB,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC9B,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,SAAA,EAAU;AAAA,EAC/B,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,WAAA,EAAY;AAAA,EACjC,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAChC,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,QAAA,EAAS;AAAA,EAC9B,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,UAAA,EAAW;AAAA,EAChC,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,QAAA;AACvB,CAAA;AAwBO,MAAM,aAAA,GAAgB,UAAA;AAAA,EAC3B,CAAC,OAA2B,GAAA,KAA6B;AACvD,IAAA,MAAM;AAAA,MACJ,eAAe,EAAC;AAAA,MAChB,QAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA,GAAW,CAAA;AAAA,MACX,IAAA;AAAA,MACA,EAAA,EAAI,MAAA;AAAA,MACJ,WAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA;AAAA,MACA,YAAA;AAAA,MACA,aAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA;AAAA,KACF,GAAI,KAAA;AAEJ,IAAA,MAAM,SAAS,KAAA,EAAM;AACrB,IAAA,MAAM,KAAK,MAAA,IAAU,MAAA;AACrB,IAAA,MAAM,WAAW,KAAA,EAAM;AACvB,IAAA,MAAM,YAAY,KAAA,EAAM;AAExB,IAAA,MAAM,aAAA,GACJ,IAAA,IAAQ,KAAA,IAAS,OAAA,IAAW,YAAA,IAAgB,WAAA;AAE9C,IAAA,MAAM,WAAA,GAAc,QAAQ,MAAM;AAChC,MAAA,MAAM,gBAAgB,QAAA,GAAW,CAAA;AACjC,MAAA,OAAO,CAAC,GAAG,IAAA,CAAK,KAAA,CAAM,aAAa,CAAA,EAAG,GAAG,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,aAAa,CAAC,CAAA;AAAA,IACvE,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,IAAA,MAAM,eAAA,GAAkB,CAAC,KAAA,KAAkB;AAEzC,MAAA,MAAM,SAAA,GAAA,CAAc,KAAA,GAAQ,QAAA,GAAW,CAAA,IAAK,CAAA,GAAK,CAAA;AACjD,MAAA,MAAM,eAAA,GAAkB,YAAA,CAAa,QAAA,CAAS,SAAS,IACnD,YAAA,CAAa,MAAA,CAAO,CAAC,CAAA,KAAM,MAAM,SAAS,CAAA,GAC1C,CAAC,GAAG,cAAc,SAAS,CAAA;AAE/B,MAAA,QAAA,GAAW,eAAe,CAAA;AAAA,IAC5B,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,CAAC,SAAA,KAAsB;AAC3C,MAAA,IAAI,OAAO,aAAa,SAAA,EAAW;AACjC,QAAA,OAAO,QAAA;AAAA,MACT;AACA,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,EAAG;AAC3B,QAAA,OAAO,QAAA,CAAS,SAAS,SAAS,CAAA;AAAA,MACpC;AACA,MAAA,OAAO,KAAA;AAAA,IACT,CAAA;AAEA,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,4BAA4B,CAAA,EAChD,QAAA,EAAA;AAAA,MAAA,KAAA,mBACC,GAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,QAAA;AAAA,UACA,QAAA;AAAA,UACA,EAAA,EAAI,QAAA;AAAA,UACJ,OAAA,EAAS,EAAA;AAAA,UACR,GAAG,UAAA;AAAA,UAEH,QAAA,EAAA;AAAA;AAAA,OACH,GACE,IAAA;AAAA,sBACJ,GAAA,CAAC,SAAI,GAAA,EAAU,SAAA,EAAW,OAAO,kBAAkB,CAAA,EAAG,IACpD,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,KAAK,CAAA,EAAG,SAAA,EAAW,OAAO,2BAA2B,CAAA,EACxD,sBAAY,GAAA,CAAI,CAAC,KAAK,KAAA,KAAU;AAE/B,QAAA,MAAM,SAAA,GAAA,CAAc,KAAA,GAAQ,QAAA,GAAW,CAAA,IAAK,CAAA,GAAK,CAAA;AACjD,QAAA,uBACE,IAAA,CAAC,OAAA,EAAA,EAAwB,SAAA,EAAU,KAAA,EACjC,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAQ,OAAA,EAAR,EAAgB,SAAA,EAAW,MAAA,CAAO,uBAAuB,CAAA,EACxD,QAAA,kBAAA,GAAA;AAAA,YAAC,YAAA;AAAA,YAAA;AAAA,cACC,OAAA,EAAS,YAAA,CAAa,QAAA,CAAS,SAAS,CAAA;AAAA,cACxC,OAAA,EAAS,MAAM,eAAA,CAAgB,KAAK,CAAA;AAAA,cACpC,QAAA,EAAU,cAAc,SAAS,CAAA;AAAA,cACjC,SAAA,EAAW,OAAO,eAAe,CAAA;AAAA,cACjC,EAAA,EAAI,QAAQ,QAAA,GAAW,MAAA;AAAA,cACvB,kBAAA,EAAkB,gBAAgB,SAAA,GAAY,MAAA;AAAA,cAE7C,QAAA,EAAA,GAAA,CAAI;AAAA;AAAA,WACP,EACF,CAAA;AAAA,0BACA,GAAA,CAAC,OAAA,CAAQ,OAAA,EAAR,EAAiB,cAAI,IAAA,EAAK;AAAA,SAAA,EAAA,EAbf,IAAI,KAclB,CAAA;AAAA,MAEJ,CAAC,GACH,CAAA,EACF,CAAA;AAAA,MACC,aAAA,mBACC,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,SAAA;AAAA,UACJ,IAAA;AAAA,UACA,WAAA;AAAA,UACA,KAAA;AAAA,UACA,OAAA;AAAA,UACA,YAAA;AAAA,UACA;AAAA;AAAA,OACF,GACE;AAAA,KAAA,EACN,CAAA;AAAA,EAEJ;AACF;AACA,aAAA,CAAc,WAAA,GAAc,eAAA;;;;"}
@@ -1,2 +1,2 @@
1
- export { D as DaysOfTheWeek, D as default } from './DaysOfTheWeek-4Cd2WK7u.js';
1
+ export { D as DaysOfTheWeek, D as default } from './DaysOfTheWeek--FBi44iw.js';
2
2
  //# sourceMappingURL=DaysOfTheWeek.js.map
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { createContext, forwardRef, useContext, useId, useState, useMemo } from 'react';
3
3
  import { S as SvgChevronRight } from './chevron_right-BdpsxX7x.js';
4
- import { I as Icon } from './Icon-B4uCvMU9.js';
4
+ import { I as Icon } from './Icon-B5zwN7GD.js';
5
5
  import { c as cx } from './index-De1g9FRV.js';
6
6
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
7
7
  import { useTrackingId } from './useTrackingId.js';
@@ -164,4 +164,4 @@ const Details = Object.assign(
164
164
  Details.displayName = "Details";
165
165
 
166
166
  export { Details as D };
167
- //# sourceMappingURL=Details-DkteVZbk.js.map
167
+ //# sourceMappingURL=Details-CVA5zbrR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Details-CVA5zbrR.js","sources":["../src/components/Details/internal/DetailsContext.tsx","../src/components/Details/internal/DetailsArrow.tsx","../src/components/Details/DetailsSummary.tsx","../src/components/Details/DetailsContent.tsx","../src/components/Details/Details.tsx"],"sourcesContent":["import { createContext } from \"react\";\n\nexport type DetailsContextProps = {\n id: string;\n isExpanded: boolean;\n expanded: () => void;\n close: () => void;\n toggle: () => void;\n};\n\nexport const DetailsContext = createContext<DetailsContextProps>({\n id: \"\",\n isExpanded: false,\n expanded: () => undefined,\n close: () => undefined,\n toggle: () => undefined,\n});\n","import { forwardRef, useContext, type ComponentPropsWithoutRef } from \"react\";\nimport Arrow_right from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport { DetailsContext } from \"./DetailsContext\";\nimport Icon from \"../../Icon\";\n\nimport cx from \"classnames\";\nimport styles from \"../Details.module.scss\";\n\n/**\n * Props for the DetailsArrow component\n * @extends ComponentPropsWithoutRef<\"span\">\n */\nexport type DetailsArrowProps = ComponentPropsWithoutRef<\"span\">;\n\n/**\n * DetailsArrow component for the animated arrow indicator in DetailsSummary.\n *\n * Features:\n * - Animated chevron icon that rotates on expand/collapse\n * - Automatically reflects the current expanded state\n * - Uses consistent icon sizing and styling\n * - Smooth transition animations\n * - Accessible with proper ARIA context\n *\n * @example\n * <DetailsArrow className=\"custom-arrow\" />\n */\nexport const DetailsArrow = forwardRef<HTMLSpanElement, DetailsArrowProps>(\n function DetailsArrow({ className: classNameProp, ...rest }, ref) {\n const { isExpanded } = useContext(DetailsContext);\n\n const className = cx(\n styles.arrow,\n { [styles[\"is-expanded\"]]: isExpanded },\n classNameProp,\n );\n\n return (\n <span className={className} ref={ref} {...rest}>\n <Icon size=\"large\" svg={Arrow_right} />\n </span>\n );\n },\n);\n","import {\n forwardRef,\n useContext,\n type ComponentPropsWithoutRef,\n type MouseEventHandler,\n} from \"react\";\nimport type { DataTrackingId } from \"../../types\";\nimport { DetailsContext } from \"./internal/DetailsContext\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DetailsArrow } from \"./internal/DetailsArrow\";\n\nimport cx from \"classnames\";\nimport styles from \"./Details.module.scss\";\n\n/**\n * Props for the DetailsSummary component\n * @extends ComponentPropsWithoutRef<\"button\">\n */\nexport type DetailsSummaryProps = ComponentPropsWithoutRef<\"button\"> &\n DataTrackingId;\n\n/**\n * DetailsSummary component for the clickable header of a Details section.\n *\n * Features:\n * - Clickable button that toggles the Details expanded state\n * - Automatic ARIA attributes for accessibility\n * - Includes animated arrow indicator\n * - Supports custom onClick handlers\n * - Keyboard navigation support (Enter, Space)\n * - Styled with consistent typography and spacing\n *\n * @example\n * <Details.Summary onClick={() => console.log('Summary clicked')}>\n * Click to expand content\n * </Details.Summary>\n */\nexport const DetailsSummary = forwardRef<\n HTMLButtonElement,\n DetailsSummaryProps\n>(function DetailsSummary(\n { children, onClick: onClickProp, className: classNameProp, ...rest },\n ref,\n) {\n const { id, isExpanded, toggle } = useContext(DetailsContext);\n\n const handleClick: MouseEventHandler<HTMLButtonElement> = (...args) => {\n onClickProp?.(...args);\n toggle();\n };\n\n const data = {\n children: childrenToString(children),\n };\n\n const trackingId = useTrackingId({\n name: \"DetailsSummary\",\n data,\n hasOverride: !!rest[\"data-tracking-id\"],\n });\n\n const className = cx(styles.summary, classNameProp);\n\n return (\n <button\n data-tracking-id={trackingId}\n data-anv=\"details-summary\"\n aria-controls={id}\n aria-expanded={isExpanded}\n className={className}\n onClick={handleClick}\n ref={ref}\n {...rest}\n >\n <DetailsArrow />\n {children}\n </button>\n );\n});\n","import { forwardRef, useContext, type ComponentPropsWithoutRef } from \"react\";\nimport { DetailsContext } from \"./internal/DetailsContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Details.module.scss\";\n\n/**\n * Props for the DetailsContent component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type DetailsContentProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Fixed height for the content area\n */\n height?: string | number;\n /**\n * Maximum height for the content area\n */\n maxHeight?: string | number;\n};\n\n/**\n * DetailsContent component for the expandable content area of a Details section.\n *\n * Features:\n * - Expandable and collapsible content area\n * - Smooth animations for height transitions\n * - Configurable height and maxHeight constraints\n * - Automatic overflow handling when height is constrained\n * - Proper ARIA associations with the summary\n * - Responsive design with flexible layout\n *\n * @example\n * <Details.Content maxHeight={300}>\n * <p>This content will be constrained to 300px max height</p>\n * </Details.Content>\n */\nexport const DetailsContent = forwardRef<HTMLDivElement, DetailsContentProps>(\n function DetailsContent(\n {\n className: classNameProp,\n children,\n height,\n maxHeight,\n style: styleProp,\n ...rest\n },\n ref,\n ) {\n const { id, isExpanded } = useContext(DetailsContext);\n\n const style = {\n height,\n maxHeight,\n ...(height || maxHeight ? { overflow: \"auto\" } : {}),\n ...styleProp,\n };\n\n return (\n <div\n data-anv=\"details-content\"\n id={id}\n className={cx(styles[\"content-wrapper\"], {\n [styles.expanded]: isExpanded,\n })}\n ref={ref}\n >\n <div className={styles.content}>\n <div className={classNameProp} style={style} {...rest}>\n {children}\n </div>\n </div>\n </div>\n );\n },\n);\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n useId,\n useMemo,\n useState,\n} from \"react\";\nimport type { LayoutUtilProps } from \"../../types\";\nimport { DetailsSummary } from \"./DetailsSummary\";\nimport { DetailsContent } from \"./DetailsContent\";\nimport { DetailsContext } from \"./internal/DetailsContext\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\nimport cx from \"classnames\";\nimport styles from \"./Details.module.scss\";\n\n/**\n * Props for the Details component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type DetailsProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps & {\n /**\n * Determines the controlled expanded state of the details.\n * @remarks Use this to make the details expanded state controlled.\n * @default false\n */\n expanded?: boolean;\n /**\n * Determines the default expanded state of the details.\n * @remarks Use this to make the details expanded state uncontrolled.\n * @default false\n */\n defaultExpanded?: boolean;\n };\n\n/**\n * Details component for creating expandable/collapsible content sections.\n *\n * Features:\n * - Expandable and collapsible content sections\n * - Controlled and uncontrolled state management\n * - Accessible with proper ARIA attributes\n * - Smooth animations for expand/collapse\n * - Keyboard navigation support\n * - Layout utility props for positioning and spacing\n * - Compound component pattern with Summary, Content, and Arrow sub-components\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Details defaultExpanded>\n * <Details.Summary>Click to expand</Details.Summary>\n * <Details.Content>This content is now visible</Details.Content>\n * </Details>\n */\nexport const Details = Object.assign(\n forwardRef<HTMLDivElement, DetailsProps>(function DetailsInner(props, ref) {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n children,\n id: idProp,\n expanded: expandedControlled,\n defaultExpanded = false,\n style,\n className,\n ...rest\n } = componentProps;\n const id = useId();\n const [isExpanded, setIsOpen] = useState(defaultExpanded);\n\n function expanded() {\n setIsOpen(true);\n }\n\n function close() {\n setIsOpen(false);\n }\n\n function toggle() {\n setIsOpen((prevIsOpen: boolean) => !prevIsOpen);\n }\n\n const value = useMemo(\n () => ({\n id: idProp != null ? idProp : id,\n isExpanded:\n expandedControlled != null ? expandedControlled : isExpanded,\n expanded,\n close,\n toggle,\n }),\n [id, idProp, isExpanded, expandedControlled],\n );\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n return (\n <DetailsContext.Provider value={value}>\n <div\n data-anv=\"details\"\n ref={ref}\n className={cx(styles.details, className)}\n style={styleCombined}\n {...rest}\n >\n {children}\n </div>\n </DetailsContext.Provider>\n );\n }),\n {\n Summary: DetailsSummary,\n Content: DetailsContent,\n },\n);\nDetails.displayName = \"Details\";\n"],"names":["DetailsArrow","Arrow_right","DetailsSummary","DetailsContent"],"mappings":"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"}
package/dist/Details.js CHANGED
@@ -1,2 +1,2 @@
1
- export { D as Details, D as default } from './Details-DkteVZbk.js';
1
+ export { D as Details, D as default } from './Details-CVA5zbrR.js';
2
2
  //# sourceMappingURL=Details.js.map