@servicetitan/anvil2 1.48.1 → 1.49.1

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 (258) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/{Alert-Cz_w_cw0.js → Alert-aGBkujwE.js} +4 -4
  3. package/dist/{Alert-Cz_w_cw0.js.map → Alert-aGBkujwE.js.map} +1 -1
  4. package/dist/Alert.js +1 -1
  5. package/dist/{Announcement-C1xSJkl0.js → Announcement-BPwFNhYe.js} +4 -4
  6. package/dist/{Announcement-C1xSJkl0.js.map → Announcement-BPwFNhYe.js.map} +1 -1
  7. package/dist/Announcement.js +1 -1
  8. package/dist/{AnvilProvider-DDo8ZcIA.js → AnvilProvider-DBYMPYAO.js} +3 -3
  9. package/dist/{AnvilProvider-DDo8ZcIA.js.map → AnvilProvider-DBYMPYAO.js.map} +1 -1
  10. package/dist/AnvilProvider.js +1 -1
  11. package/dist/{Avatar-VQrimv28.js → Avatar-DeEV-v-b.js} +2 -2
  12. package/dist/{Avatar-VQrimv28.js.map → Avatar-DeEV-v-b.js.map} +1 -1
  13. package/dist/{Avatar-Bbwk2MCy.js → Avatar-gtxslf5v.js} +2 -2
  14. package/dist/{Avatar-Bbwk2MCy.js.map → Avatar-gtxslf5v.js.map} +1 -1
  15. package/dist/Avatar.js +2 -2
  16. package/dist/{Badge-DOnID5l5.js → Badge-DY5xJkqi.js} +2 -2
  17. package/dist/{Badge-DOnID5l5.js.map → Badge-DY5xJkqi.js.map} +1 -1
  18. package/dist/Badge.js +1 -1
  19. package/dist/{Breadcrumbs-DKqd8VRz.js → Breadcrumbs-DjR-2OEH.js} +5 -5
  20. package/dist/{Breadcrumbs-DKqd8VRz.js.map → Breadcrumbs-DjR-2OEH.js.map} +1 -1
  21. package/dist/Breadcrumbs.js +1 -1
  22. package/dist/{Button-DzcOa6iJ.js → Button-92_FKAyV.js} +3 -3
  23. package/dist/{Button-DzcOa6iJ.js.map → Button-92_FKAyV.js.map} +1 -1
  24. package/dist/Button.js +1 -1
  25. package/dist/{ButtonCompound-Dvr3Fres.js → ButtonCompound-COdSELhh.js} +2 -2
  26. package/dist/{ButtonCompound-Dvr3Fres.js.map → ButtonCompound-COdSELhh.js.map} +1 -1
  27. package/dist/ButtonCompound.js +1 -1
  28. package/dist/{ButtonLink-DGIRpyK6.js → ButtonLink-C0zR7Wnb.js} +3 -3
  29. package/dist/{ButtonLink-DGIRpyK6.js.map → ButtonLink-C0zR7Wnb.js.map} +1 -1
  30. package/dist/ButtonLink.js +1 -1
  31. package/dist/{ButtonToggle-Dv6VAm4W.js → ButtonToggle--sKvhBoA.js} +3 -3
  32. package/dist/{ButtonToggle-Dv6VAm4W.js.map → ButtonToggle--sKvhBoA.js.map} +1 -1
  33. package/dist/ButtonToggle.js +1 -1
  34. package/dist/{Calendar-NDOcurOz.js → Calendar-BkJs1qTF.js} +59 -69
  35. package/dist/Calendar-BkJs1qTF.js.map +1 -0
  36. package/dist/{Calendar-8bP4LsQV.js → Calendar-WHERvu2Y.js} +2 -2
  37. package/dist/{Calendar-8bP4LsQV.js.map → Calendar-WHERvu2Y.js.map} +1 -1
  38. package/dist/Calendar.css +52 -51
  39. package/dist/Calendar.js +2 -2
  40. package/dist/{Card-Cyoz-LaD.js → Card-Ch3sMUo5.js} +2 -2
  41. package/dist/{Card-Cyoz-LaD.js.map → Card-Ch3sMUo5.js.map} +1 -1
  42. package/dist/Card.js +1 -1
  43. package/dist/{Checkbox-Bsa1FgoI.js → Checkbox-Bhjj-jM4.js} +5 -5
  44. package/dist/{Checkbox-Bsa1FgoI.js.map → Checkbox-Bhjj-jM4.js.map} +1 -1
  45. package/dist/{Checkbox-BJnt8TFk.js → Checkbox-C5Qjq_tU.js} +2 -2
  46. package/dist/{Checkbox-BJnt8TFk.js.map → Checkbox-C5Qjq_tU.js.map} +1 -1
  47. package/dist/Checkbox.js +2 -2
  48. package/dist/{Chip-BGa1Inb8.js → Chip-X2EwdZ97.js} +4 -4
  49. package/dist/{Chip-BGa1Inb8.js.map → Chip-X2EwdZ97.js.map} +1 -1
  50. package/dist/Chip.js +1 -1
  51. package/dist/{Combobox-BfqKpX1v.js → Combobox-C4COM7BZ.js} +13 -13
  52. package/dist/{Combobox-BfqKpX1v.js.map → Combobox-C4COM7BZ.js.map} +1 -1
  53. package/dist/Combobox.js +1 -1
  54. package/dist/{DataTable-xUON92DR.js → DataTable-BkNCMaVu.js} +93 -89
  55. package/dist/DataTable-BkNCMaVu.js.map +1 -0
  56. package/dist/{DateField-Cm0FIG3Y.js → DateField-BNleIuS8.js} +6 -6
  57. package/dist/{DateField-Cm0FIG3Y.js.map → DateField-BNleIuS8.js.map} +1 -1
  58. package/dist/DateField.js +1 -1
  59. package/dist/{DateFieldRange-CGGqW_cg.js → DateFieldRange-BBgvno-_.js} +11 -8
  60. package/dist/{DateFieldRange-CGGqW_cg.js.map → DateFieldRange-BBgvno-_.js.map} +1 -1
  61. package/dist/DateFieldRange.js +1 -1
  62. package/dist/{DateFieldSingle-BYWuJ3IL.js → DateFieldSingle-Bcwkxogy.js} +11 -8
  63. package/dist/{DateFieldSingle-BYWuJ3IL.js.map → DateFieldSingle-Bcwkxogy.js.map} +1 -1
  64. package/dist/DateFieldSingle.js +1 -1
  65. package/dist/DateFieldYearless-DnVJaBBq.js +133 -0
  66. package/dist/DateFieldYearless-DnVJaBBq.js.map +1 -0
  67. package/dist/DateFieldYearless.js +1 -1
  68. package/dist/DateFieldYearlessRange-BivGidsU.js +178 -0
  69. package/dist/DateFieldYearlessRange-BivGidsU.js.map +1 -0
  70. package/dist/DateFieldYearlessRange.css +36 -0
  71. package/dist/DateFieldYearlessRange.d.ts +2 -0
  72. package/dist/DateFieldYearlessRange.js +2 -0
  73. package/dist/DateFieldYearlessRange.js.map +1 -0
  74. package/dist/{DaysOfTheWeek-BIi9dyJP.js → DaysOfTheWeek-Dn6zHxpt.js} +6 -6
  75. package/dist/{DaysOfTheWeek-BIi9dyJP.js.map → DaysOfTheWeek-Dn6zHxpt.js.map} +1 -1
  76. package/dist/DaysOfTheWeek.js +1 -1
  77. package/dist/{Details-Bg7QzlOm.js → Details-CkaKTRvc.js} +3 -3
  78. package/dist/{Details-Bg7QzlOm.js.map → Details-CkaKTRvc.js.map} +1 -1
  79. package/dist/Details.js +1 -1
  80. package/dist/{Dialog-fJClGTI6.js → Dialog-CxH4Vnbb.js} +4 -4
  81. package/dist/{Dialog-fJClGTI6.js.map → Dialog-CxH4Vnbb.js.map} +1 -1
  82. package/dist/Dialog.js +1 -1
  83. package/dist/{Divider-DYZFKug1.js → Divider-Olv8yWXD.js} +2 -2
  84. package/dist/{Divider-DYZFKug1.js.map → Divider-Olv8yWXD.js.map} +1 -1
  85. package/dist/Divider.js +1 -1
  86. package/dist/Dnd.js +1 -1
  87. package/dist/DndSort.js +7 -6
  88. package/dist/DndSort.js.map +1 -1
  89. package/dist/{Drawer-DyHDRTR-.js → Drawer-BLfDJU-e.js} +4 -4
  90. package/dist/{Drawer-DyHDRTR-.js.map → Drawer-BLfDJU-e.js.map} +1 -1
  91. package/dist/Drawer.js +1 -1
  92. package/dist/{EditCard-LdyduHqX.js → EditCard-Ds1UXJIS.js} +6 -6
  93. package/dist/{EditCard-LdyduHqX.js.map → EditCard-Ds1UXJIS.js.map} +1 -1
  94. package/dist/EditCard.js +1 -1
  95. package/dist/{FieldLabel-DIlzcPIQ.js → FieldLabel-CHMCV9wX.js} +38 -19
  96. package/dist/FieldLabel-CHMCV9wX.js.map +1 -0
  97. package/dist/FieldLabel.css +22 -7
  98. package/dist/FieldLabel.js +1 -1
  99. package/dist/{FieldMessage-BbARBii0.js → FieldMessage-DWONT3dr.js} +2 -2
  100. package/dist/{FieldMessage-BbARBii0.js.map → FieldMessage-DWONT3dr.js.map} +1 -1
  101. package/dist/FieldMessage.js +1 -1
  102. package/dist/{Flex-GLF5XRJg.js → Flex-CjPHUTeq.js} +2 -2
  103. package/dist/{Flex-GLF5XRJg.js.map → Flex-CjPHUTeq.js.map} +1 -1
  104. package/dist/Flex.js +1 -1
  105. package/dist/{Grid-BpAt2zA7.js → Grid-DW2cAuHi.js} +2 -2
  106. package/dist/{Grid-BpAt2zA7.js.map → Grid-DW2cAuHi.js.map} +1 -1
  107. package/dist/Grid.js +1 -1
  108. package/dist/{Helper-DHoKHqxV.js → Helper-DjWotFtO.js} +2 -2
  109. package/dist/{Helper-DHoKHqxV.js.map → Helper-DjWotFtO.js.map} +1 -1
  110. package/dist/{Icon-TcJbUdTz.js → Icon-BSuTVNaa.js} +2 -2
  111. package/dist/{Icon-TcJbUdTz.js.map → Icon-BSuTVNaa.js.map} +1 -1
  112. package/dist/Icon.js +1 -1
  113. package/dist/{InputMask-B6oJlChY.js → InputMask-Cd01c3Tj.js} +2 -2
  114. package/dist/{InputMask-B6oJlChY.js.map → InputMask-Cd01c3Tj.js.map} +1 -1
  115. package/dist/InputMask.js +1 -1
  116. package/dist/{Link-Br_AJ7Af.js → Link-DuYh7Xl2.js} +3 -3
  117. package/dist/{Link-Br_AJ7Af.js.map → Link-DuYh7Xl2.js.map} +1 -1
  118. package/dist/Link.js +1 -1
  119. package/dist/{LinkButton-CwiVzaro.js → LinkButton-pIUNATNE.js} +2 -2
  120. package/dist/{LinkButton-CwiVzaro.js.map → LinkButton-pIUNATNE.js.map} +1 -1
  121. package/dist/LinkButton.js +1 -1
  122. package/dist/{ListView-fBFSagWO.js → ListView-CZ5T8bR1.js} +3 -3
  123. package/dist/{ListView-fBFSagWO.js.map → ListView-CZ5T8bR1.js.map} +1 -1
  124. package/dist/ListView.js +1 -1
  125. package/dist/{Listbox-gtZ2Ao_I.js → Listbox-C-n4IVVj.js} +5 -5
  126. package/dist/{Listbox-gtZ2Ao_I.js.map → Listbox-C-n4IVVj.js.map} +1 -1
  127. package/dist/Listbox.js +1 -1
  128. package/dist/{LocalizationProvider-Cqattc3O.js → LocalizationProvider-u6xdKCBi.js} +2 -2
  129. package/dist/{LocalizationProvider-Cqattc3O.js.map → LocalizationProvider-u6xdKCBi.js.map} +1 -1
  130. package/dist/LocalizationProvider.js +1 -1
  131. package/dist/{Menu-CBbUK_sX.js → Menu-DUAfSImY.js} +4 -4
  132. package/dist/{Menu-CBbUK_sX.js.map → Menu-DUAfSImY.js.map} +1 -1
  133. package/dist/Menu.js +1 -1
  134. package/dist/{NumberField-CNskrtsN.js → NumberField-C62E56_v.js} +7 -7
  135. package/dist/{NumberField-CNskrtsN.js.map → NumberField-C62E56_v.js.map} +1 -1
  136. package/dist/NumberField.js +1 -1
  137. package/dist/Overflow.js +2 -3
  138. package/dist/Overflow.js.map +1 -1
  139. package/dist/{Page-4VdFrCjy.js → Page-CGZQ-nsg.js} +15 -15
  140. package/dist/Page-CGZQ-nsg.js.map +1 -0
  141. package/dist/Page.js +1 -1
  142. package/dist/{Pagination-CQjNN1yN.js → Pagination-BHEEnNas.js} +6 -6
  143. package/dist/{Pagination-CQjNN1yN.js.map → Pagination-BHEEnNas.js.map} +1 -1
  144. package/dist/Pagination.js +1 -1
  145. package/dist/{Popover--c9PXAVi.js → Popover-CIPg_ZgX.js} +5 -4
  146. package/dist/Popover-CIPg_ZgX.js.map +1 -0
  147. package/dist/Popover.js +1 -1
  148. package/dist/{ProgressBar-CXMuhBQV.js → ProgressBar-CUpF9fFW.js} +6 -6
  149. package/dist/{ProgressBar-CXMuhBQV.js.map → ProgressBar-CUpF9fFW.js.map} +1 -1
  150. package/dist/ProgressBar.js +1 -1
  151. package/dist/{Radio-CTYs8JpI.js → Radio-CyCFna1X.js} +2 -2
  152. package/dist/{Radio-CTYs8JpI.js.map → Radio-CyCFna1X.js.map} +1 -1
  153. package/dist/Radio.js +2 -2
  154. package/dist/{RadioGroup-BVGnsTuG.js → RadioGroup-DRS2EjVH.js} +5 -5
  155. package/dist/{RadioGroup-BVGnsTuG.js.map → RadioGroup-DRS2EjVH.js.map} +1 -1
  156. package/dist/{SearchField-DLqva3o3.js → SearchField-DrgNbG3I.js} +3 -3
  157. package/dist/{SearchField-DLqva3o3.js.map → SearchField-DrgNbG3I.js.map} +1 -1
  158. package/dist/SearchField.js +1 -1
  159. package/dist/{SegmentedControl-1OzOQmCp.js → SegmentedControl-DK1cwC7A.js} +12 -3
  160. package/dist/SegmentedControl-DK1cwC7A.js.map +1 -0
  161. package/dist/SegmentedControl.js +1 -1
  162. package/dist/{SelectCard-Dw7zW0UN.js → SelectCard-lBcnP5j5.js} +4 -4
  163. package/dist/{SelectCard-Dw7zW0UN.js.map → SelectCard-lBcnP5j5.js.map} +1 -1
  164. package/dist/SelectCard.js +1 -1
  165. package/dist/{SelectTrigger-BQNqyG3M.js → SelectTrigger-qvoGCkb1.js} +5 -5
  166. package/dist/{SelectTrigger-BQNqyG3M.js.map → SelectTrigger-qvoGCkb1.js.map} +1 -1
  167. package/dist/SelectTrigger.js +1 -1
  168. package/dist/{SelectTriggerBase-B-fxog4U.js → SelectTriggerBase-C4gebtca.js} +6 -6
  169. package/dist/{SelectTriggerBase-B-fxog4U.js.map → SelectTriggerBase-C4gebtca.js.map} +1 -1
  170. package/dist/{SideNav-COiPAIph.js → SideNav-B1sH17Uc.js} +3 -3
  171. package/dist/{SideNav-COiPAIph.js.map → SideNav-B1sH17Uc.js.map} +1 -1
  172. package/dist/SideNav.js +1 -1
  173. package/dist/Skeleton.js +1 -1
  174. package/dist/{Stepper-xcgOQzru.js → Stepper-BZr9ytpD.js} +7 -4
  175. package/dist/Stepper-BZr9ytpD.js.map +1 -0
  176. package/dist/Stepper.js +1 -1
  177. package/dist/{Switch-mhyHJeex.js → Switch-BXDPs2mD.js} +8 -6
  178. package/dist/Switch-BXDPs2mD.js.map +1 -0
  179. package/dist/Switch.js +1 -1
  180. package/dist/{Tab-BISlFW_i.js → Tab-6UavokJJ.js} +3 -3
  181. package/dist/{Tab-BISlFW_i.js.map → Tab-6UavokJJ.js.map} +1 -1
  182. package/dist/Tab.js +1 -1
  183. package/dist/Table.js +1 -1
  184. package/dist/{Text-CDzLZl1O.js → Text-kPA-VzsB.js} +2 -2
  185. package/dist/{Text-CDzLZl1O.js.map → Text-kPA-VzsB.js.map} +1 -1
  186. package/dist/Text.js +1 -1
  187. package/dist/{TextField-CUrYEZR4.js → TextField-CpVkZxMT.js} +2 -2
  188. package/dist/{TextField-CUrYEZR4.js.map → TextField-CpVkZxMT.js.map} +1 -1
  189. package/dist/{TextField-DPTJjF8V.js → TextField-CygbgVVt.js} +6 -5
  190. package/dist/TextField-CygbgVVt.js.map +1 -0
  191. package/dist/TextField.js +1 -1
  192. package/dist/{Textarea-f0jAKcvn.js → Textarea-DacevzmW.js} +4 -4
  193. package/dist/{Textarea-f0jAKcvn.js.map → Textarea-DacevzmW.js.map} +1 -1
  194. package/dist/Textarea.js +1 -1
  195. package/dist/{ThemeProvider-CUiXHn4p.js → ThemeProvider-Bmsz__5N.js} +2 -2
  196. package/dist/{ThemeProvider-CUiXHn4p.js.map → ThemeProvider-Bmsz__5N.js.map} +1 -1
  197. package/dist/ThemeProvider.js +1 -1
  198. package/dist/{TimeField-CGSwrpl0.js → TimeField-BkOB5ESa.js} +8 -7
  199. package/dist/{TimeField-CGSwrpl0.js.map → TimeField-BkOB5ESa.js.map} +1 -1
  200. package/dist/TimeField.js +1 -1
  201. package/dist/Toast.js +2 -2
  202. package/dist/{Toaster-C6iB4h0P.js → Toaster-BxbR-XcR.js} +2 -2
  203. package/dist/{Toaster-C6iB4h0P.js.map → Toaster-BxbR-XcR.js.map} +1 -1
  204. package/dist/{Toaster-D72xHdfH.js → Toaster-Dg7M4W4U.js} +4 -4
  205. package/dist/{Toaster-D72xHdfH.js.map → Toaster-Dg7M4W4U.js.map} +1 -1
  206. package/dist/{Toolbar-CcJa_YpH.js → Toolbar-XcfHQftc.js} +20 -20
  207. package/dist/{Toolbar-CcJa_YpH.js.map → Toolbar-XcfHQftc.js.map} +1 -1
  208. package/dist/Toolbar.js +1 -1
  209. package/dist/{Tooltip-BOfdwyTv.js → Tooltip-CZsoFe6C.js} +2 -2
  210. package/dist/{Tooltip-BOfdwyTv.js.map → Tooltip-CZsoFe6C.js.map} +1 -1
  211. package/dist/Tooltip.js +1 -1
  212. package/dist/YearlessDateInputWithPicker-MHLlAdrH.js +949 -0
  213. package/dist/YearlessDateInputWithPicker-MHLlAdrH.js.map +1 -0
  214. package/dist/YearlessDateInputWithPicker.css +199 -0
  215. package/dist/beta/components/Table/DataTable/DataTable.d.ts +4 -4
  216. package/dist/beta/components/Table/DataTable/internal/useAsyncData.d.ts +5 -0
  217. package/dist/beta.js +4 -4
  218. package/dist/components/DateFieldYearless/DateFieldYearless.d.ts +57 -3
  219. package/dist/components/DateFieldYearless/internal/PickerList.d.ts +61 -0
  220. package/dist/components/DateFieldYearless/internal/PickerListOption.d.ts +61 -0
  221. package/dist/components/DateFieldYearless/internal/YearlessDateInput.d.ts +51 -0
  222. package/dist/components/DateFieldYearless/internal/YearlessDateInputWithPicker.d.ts +134 -0
  223. package/dist/components/DateFieldYearless/internal/YearlessDateSelectionPopover.d.ts +27 -0
  224. package/dist/components/DateFieldYearless/internal/maskito/yearlessDatePlaceholderMask.d.ts +3 -1
  225. package/dist/components/DateFieldYearless/internal/maskito/yearlessDateSegmentsStepping.d.ts +12 -0
  226. package/dist/components/DateFieldYearless/internal/utils.d.ts +50 -1
  227. package/dist/components/DateFieldYearlessRange/DateFieldYearlessRange.d.ts +59 -0
  228. package/dist/components/DateFieldYearlessRange/index.d.ts +1 -0
  229. package/dist/components/Dnd/DndHandleButton.d.ts +2 -1
  230. package/dist/components/FieldLabel/FieldLabel.d.ts +9 -48
  231. package/dist/components/FieldLabel/internal/FieldLabelMoreInfoIcon.d.ts +3 -1
  232. package/dist/components/Popover/Popover.d.ts +1 -0
  233. package/dist/components/Popover/PopoverContent.d.ts +8 -0
  234. package/dist/components/index.d.ts +1 -0
  235. package/dist/{index-CUVkL0hr.js → index-ByS9WvPk.js} +4 -3
  236. package/dist/index-ByS9WvPk.js.map +1 -0
  237. package/dist/{index.esm-BwMVvxTV.js → index.esm-C2ZhC_8d.js} +2 -2
  238. package/dist/{index.esm-BwMVvxTV.js.map → index.esm-C2ZhC_8d.js.map} +1 -1
  239. package/dist/index.js +68 -67
  240. package/dist/index.js.map +1 -1
  241. package/dist/{useLayoutPropsUtil-C7FVYB8F.js → useLayoutPropsUtil-BlIWftBb.js} +2 -2
  242. package/dist/{useLayoutPropsUtil-C7FVYB8F.js.map → useLayoutPropsUtil-BlIWftBb.js.map} +1 -1
  243. package/dist/{utils-CyPyKUVh.js → utils-aSAOVHjX.js} +2 -2
  244. package/dist/{utils-CyPyKUVh.js.map → utils-aSAOVHjX.js.map} +1 -1
  245. package/package.json +2 -1
  246. package/dist/Calendar-NDOcurOz.js.map +0 -1
  247. package/dist/DataTable-xUON92DR.js.map +0 -1
  248. package/dist/DateFieldYearless-BXRgNWzy.js +0 -266
  249. package/dist/DateFieldYearless-BXRgNWzy.js.map +0 -1
  250. package/dist/FieldLabel-DIlzcPIQ.js.map +0 -1
  251. package/dist/Page-4VdFrCjy.js.map +0 -1
  252. package/dist/Popover--c9PXAVi.js.map +0 -1
  253. package/dist/SegmentedControl-1OzOQmCp.js.map +0 -1
  254. package/dist/Stepper-xcgOQzru.js.map +0 -1
  255. package/dist/Switch-mhyHJeex.js.map +0 -1
  256. package/dist/TextField-DPTJjF8V.js.map +0 -1
  257. package/dist/components/DateFieldYearless/internal/MaskedYearlessDateInput.d.ts +0 -35
  258. package/dist/index-CUVkL0hr.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonCompound-Dvr3Fres.js","sources":["../src/components/ButtonCompound/ButtonCompound.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DataTrackingId, LayoutUtilProps } from \"../../types\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\nimport cx from \"classnames\";\nimport styles from \"../Button/Button.module.scss\";\n\n/**\n * Props for the ButtonCompound component\n * @extends LayoutUtilProps\n * @extends ComponentPropsWithoutRef<\"button\">\n */\nexport type ButtonCompoundProps = LayoutUtilProps &\n ComponentPropsWithoutRef<\"button\"> & {\n /**\n * The shape of the compound button.\n * @default rounded\n */\n shape?: \"pill\" | \"circular\" | \"rounded\";\n } &\n /**\n * Data tracking id\n */\n DataTrackingId;\n\n/**\n * ButtonCompound component for creating compound button layouts.\n *\n * Features:\n * - Three shape options (pill, circular, rounded)\n * - Transparent background for compound layouts\n * - Supports layout utilities for positioning and spacing\n * - Full accessibility support with proper ARIA attributes\n * - Flexible content support\n * - Consistent styling with other button components\n * - Hover and active state management\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ButtonCompound shape=\"circular\">\n * <Avatar name=\"John Doe\" />\n * </ButtonCompound>\n */\nexport const ButtonCompound = forwardRef(\n (props: ButtonCompoundProps, ref: Ref<HTMLButtonElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n shape = \"rounded\",\n type,\n disabled,\n children,\n style,\n ...rest\n } = componentProps;\n\n const data = {\n children: childrenToString(props.children),\n shape,\n type,\n };\n\n const trackingId = useTrackingId({\n name: \"ButtonCompound\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const buttonClassNames = cx(\n className,\n styles[\"button\"],\n styles[\"button-compound\"],\n {\n [styles[\"shape-pill\"]]: shape === \"pill\",\n [styles[\"shape-circular\"]]: shape === \"circular\",\n [styles[\"shape-rounded\"]]: shape === \"rounded\",\n },\n );\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n return (\n <button\n data-tracking-id={trackingId}\n className={buttonClassNames}\n type={type}\n disabled={disabled}\n data-anv=\"button-compound\"\n ref={ref}\n style={styleCombined}\n {...rest}\n >\n {children}\n </button>\n );\n },\n);\n\nButtonCompound.displayName = \"ButtonCompound\";\n"],"names":[],"mappings":";;;;;;;;AA6CO,MAAM,cAAA,GAAiB,UAAA;AAAA,EAC5B,CAAC,OAA4B,GAAA,KAAgC;AAC3D,IAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,IAAA,MAAM;AAAA,MACJ,SAAA;AAAA,MACA,KAAA,GAAQ,SAAA;AAAA,MACR,IAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,cAAA;AAEJ,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,QAAA,EAAU,gBAAA,CAAiB,KAAA,CAAM,QAAQ,CAAA;AAAA,MACzC,KAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAM,aAAa,aAAA,CAAc;AAAA,MAC/B,IAAA,EAAM,gBAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,gBAAA,GAAmB,EAAA;AAAA,MACvB,SAAA;AAAA,MACA,OAAO,QAAQ,CAAA;AAAA,MACf,OAAO,iBAAiB,CAAA;AAAA,MACxB;AAAA,QACE,CAAC,MAAA,CAAO,YAAY,CAAC,GAAG,KAAA,KAAU,MAAA;AAAA,QAClC,CAAC,MAAA,CAAO,gBAAgB,CAAC,GAAG,KAAA,KAAU,UAAA;AAAA,QACtC,CAAC,MAAA,CAAO,eAAe,CAAC,GAAG,KAAA,KAAU;AAAA;AACvC,KACF;AAEA,IAAA,MAAM,aAAA,GAAgB;AAAA,MACpB,GAAG,KAAA;AAAA,MACH,GAAG;AAAA,KACL;AAEA,IAAA,uBACE,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,kBAAA,EAAkB,UAAA;AAAA,QAClB,SAAA,EAAW,gBAAA;AAAA,QACX,IAAA;AAAA,QACA,QAAA;AAAA,QACA,UAAA,EAAS,iBAAA;AAAA,QACT,GAAA;AAAA,QACA,KAAA,EAAO,aAAA;AAAA,QACN,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,cAAA,CAAe,WAAA,GAAc,gBAAA;;;;"}
1
+ {"version":3,"file":"ButtonCompound-COdSELhh.js","sources":["../src/components/ButtonCompound/ButtonCompound.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DataTrackingId, LayoutUtilProps } from \"../../types\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\nimport cx from \"classnames\";\nimport styles from \"../Button/Button.module.scss\";\n\n/**\n * Props for the ButtonCompound component\n * @extends LayoutUtilProps\n * @extends ComponentPropsWithoutRef<\"button\">\n */\nexport type ButtonCompoundProps = LayoutUtilProps &\n ComponentPropsWithoutRef<\"button\"> & {\n /**\n * The shape of the compound button.\n * @default rounded\n */\n shape?: \"pill\" | \"circular\" | \"rounded\";\n } &\n /**\n * Data tracking id\n */\n DataTrackingId;\n\n/**\n * ButtonCompound component for creating compound button layouts.\n *\n * Features:\n * - Three shape options (pill, circular, rounded)\n * - Transparent background for compound layouts\n * - Supports layout utilities for positioning and spacing\n * - Full accessibility support with proper ARIA attributes\n * - Flexible content support\n * - Consistent styling with other button components\n * - Hover and active state management\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ButtonCompound shape=\"circular\">\n * <Avatar name=\"John Doe\" />\n * </ButtonCompound>\n */\nexport const ButtonCompound = forwardRef(\n (props: ButtonCompoundProps, ref: Ref<HTMLButtonElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n shape = \"rounded\",\n type,\n disabled,\n children,\n style,\n ...rest\n } = componentProps;\n\n const data = {\n children: childrenToString(props.children),\n shape,\n type,\n };\n\n const trackingId = useTrackingId({\n name: \"ButtonCompound\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const buttonClassNames = cx(\n className,\n styles[\"button\"],\n styles[\"button-compound\"],\n {\n [styles[\"shape-pill\"]]: shape === \"pill\",\n [styles[\"shape-circular\"]]: shape === \"circular\",\n [styles[\"shape-rounded\"]]: shape === \"rounded\",\n },\n );\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n return (\n <button\n data-tracking-id={trackingId}\n className={buttonClassNames}\n type={type}\n disabled={disabled}\n data-anv=\"button-compound\"\n ref={ref}\n style={styleCombined}\n {...rest}\n >\n {children}\n </button>\n );\n },\n);\n\nButtonCompound.displayName = \"ButtonCompound\";\n"],"names":[],"mappings":";;;;;;;;AA6CO,MAAM,cAAA,GAAiB,UAAA;AAAA,EAC5B,CAAC,OAA4B,GAAA,KAAgC;AAC3D,IAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,IAAA,MAAM;AAAA,MACJ,SAAA;AAAA,MACA,KAAA,GAAQ,SAAA;AAAA,MACR,IAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,cAAA;AAEJ,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,QAAA,EAAU,gBAAA,CAAiB,KAAA,CAAM,QAAQ,CAAA;AAAA,MACzC,KAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAM,aAAa,aAAA,CAAc;AAAA,MAC/B,IAAA,EAAM,gBAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,gBAAA,GAAmB,EAAA;AAAA,MACvB,SAAA;AAAA,MACA,OAAO,QAAQ,CAAA;AAAA,MACf,OAAO,iBAAiB,CAAA;AAAA,MACxB;AAAA,QACE,CAAC,MAAA,CAAO,YAAY,CAAC,GAAG,KAAA,KAAU,MAAA;AAAA,QAClC,CAAC,MAAA,CAAO,gBAAgB,CAAC,GAAG,KAAA,KAAU,UAAA;AAAA,QACtC,CAAC,MAAA,CAAO,eAAe,CAAC,GAAG,KAAA,KAAU;AAAA;AACvC,KACF;AAEA,IAAA,MAAM,aAAA,GAAgB;AAAA,MACpB,GAAG,KAAA;AAAA,MACH,GAAG;AAAA,KACL;AAEA,IAAA,uBACE,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,kBAAA,EAAkB,UAAA;AAAA,QAClB,SAAA,EAAW,gBAAA;AAAA,QACX,IAAA;AAAA,QACA,QAAA;AAAA,QACA,UAAA,EAAS,iBAAA;AAAA,QACT,GAAA;AAAA,QACA,KAAA,EAAO,aAAA;AAAA,QACN,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,cAAA,CAAe,WAAA,GAAc,gBAAA;;;;"}
@@ -1,2 +1,2 @@
1
- export { B as ButtonCompound, B as default } from './ButtonCompound-Dvr3Fres.js';
1
+ export { B as ButtonCompound, B as default } from './ButtonCompound-COdSELhh.js';
2
2
  //# sourceMappingURL=ButtonCompound.js.map
@@ -1,10 +1,10 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef } from 'react';
3
- import { I as Icon } from './Icon-TcJbUdTz.js';
3
+ import { I as Icon } from './Icon-BSuTVNaa.js';
4
4
  import { S as Spinner } from './Spinner-xEFwsq8_.js';
5
5
  import { c as cx } from './index-tZvMCc77.js';
6
6
  import { s as styles } from './Button.module-C1g9rrJs.js';
7
- import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-C7FVYB8F.js';
7
+ import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-BlIWftBb.js';
8
8
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
9
9
  import { useTrackingId } from './useTrackingId.js';
10
10
 
@@ -133,4 +133,4 @@ const ButtonLink = forwardRef(
133
133
  ButtonLink.displayName = "ButtonLink";
134
134
 
135
135
  export { ButtonLink as B };
136
- //# sourceMappingURL=ButtonLink-DGIRpyK6.js.map
136
+ //# sourceMappingURL=ButtonLink-C0zR7Wnb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonLink-DGIRpyK6.js","sources":["../src/components/ButtonLink/ButtonLink.tsx"],"sourcesContent":["import {\n ComponentPropsWithoutRef,\n KeyboardEvent,\n MouseEvent,\n Ref,\n forwardRef,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport {\n DataTrackingId,\n ButtonAppearance,\n LayoutUtilProps,\n Size,\n} from \"../../types\";\nimport Icon, { IconProps } from \"../Icon\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport Spinner from \"../Spinner\";\n\nimport cx from \"classnames\";\nimport styles from \"../Button/Button.module.scss\";\n\n/**\n * Props for the ButtonLink component\n * @extends LayoutUtilProps\n * @extends ComponentPropsWithoutRef<\"a\">\n */\nexport type ButtonLinkProps = LayoutUtilProps &\n ComponentPropsWithoutRef<\"a\"> & {\n /**\n * The disabled state of the button link.\n * @default false\n */\n disabled?: boolean;\n\n /**\n * The visual variant of the button link.\n * @default secondary\n */\n appearance?: ButtonAppearance;\n\n /**\n * The size of the button link.\n * @default medium\n */\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n\n /**\n * The icons of the button link.\n */\n icon?:\n | IconProps[\"svg\"]\n | {\n after: IconProps[\"svg\"];\n }\n | {\n before: IconProps[\"svg\"];\n };\n\n /**\n * The loading state of the button link.\n * If true, it will show infinite state of the loading.\n * @default false\n */\n loading?: boolean;\n } &\n /**\n * Data tracking id\n */\n DataTrackingId;\n\n/**\n * ButtonLink component for creating clickable links that look like buttons.\n *\n * Features:\n * - Multiple visual appearances (primary, secondary, ghost, danger variants)\n * - Three size options (small, medium, large)\n * - Loading state with spinner animation\n * - Icon support (before, after, or icon-only)\n * - Full accessibility support with proper ARIA attributes\n * - Supports layout utilities for positioning and spacing\n * - Keyboard navigation support (Space and Enter keys)\n * - Automatic disabled state when loading\n * - Prevents navigation when disabled or loading\n * - Flexible content with text and/or icons\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ButtonLink href=\"/dashboard\" appearance=\"primary\" size=\"medium\">\n * Go to Dashboard\n * </ButtonLink>\n */\nexport const ButtonLink = forwardRef(\n (props: ButtonLinkProps, ref: Ref<HTMLAnchorElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n\n const {\n children,\n className,\n appearance = \"secondary\",\n size = \"medium\",\n icon,\n loading = false,\n disabled,\n onClick,\n onKeyUp,\n onKeyDown,\n style,\n href,\n type,\n ...rest\n } = componentProps;\n\n const data = {\n children: childrenToString(props.children),\n appearance,\n href,\n icon,\n size,\n type,\n };\n\n const iconBefore = (icon: ButtonLinkProps[\"icon\"]) => {\n if (icon && typeof icon === \"object\" && \"before\" in icon) {\n return (\n <Icon\n aria-hidden\n className={styles[\"icon\"]}\n inherit\n svg={icon.before}\n />\n );\n }\n if (icon && typeof icon !== \"object\") {\n return (\n <Icon aria-hidden className={styles[\"icon\"]} inherit svg={icon} />\n );\n }\n return;\n };\n\n const handleOnClick = (e: MouseEvent<HTMLAnchorElement>) => {\n if (disabled || loading) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n };\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLAnchorElement>) => {\n if (e.code === \"Space\") {\n e.preventDefault();\n onKeyDown?.(e);\n return;\n }\n\n onKeyDown?.(e);\n };\n\n const onKeyUpHandler = (e: KeyboardEvent<HTMLAnchorElement>) => {\n if (e.code === \"Space\" || e.code === \"Enter\") {\n e.preventDefault();\n if (onClick) {\n e.currentTarget.click();\n }\n }\n\n onKeyUp?.(e);\n };\n\n const trackingId = useTrackingId({\n name: \"ButtonLink\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const buttonClassNames = cx(className, styles[\"button\"], {\n [styles[\"appearance-primary\"]]: appearance === \"primary\",\n [styles[\"appearance-secondary\"]]: appearance === \"secondary\",\n [styles[\"appearance-ghost\"]]: appearance === \"ghost\",\n [styles[\"danger-secondary\"]]: appearance === \"danger-secondary\",\n [styles[\"danger-primary\"]]: appearance === \"danger\",\n [styles[\"size-small\"]]: size === \"small\",\n [styles[\"size-medium\"]]: size === \"medium\",\n [styles[\"size-large\"]]: size === \"large\",\n [styles[\"type-icon\"]]: !children,\n [styles[\"loading\"]]: loading,\n });\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n return (\n <a\n data-tracking-id={trackingId}\n className={buttonClassNames}\n aria-disabled={disabled || loading}\n aria-busy={loading}\n data-anv=\"button-link\"\n tabIndex={disabled || loading ? -1 : 0}\n onClick={handleOnClick}\n onKeyDown={onKeyDownHandler}\n onKeyUp={onKeyUpHandler}\n style={styleCombined}\n ref={ref}\n href={href}\n {...rest}\n >\n {loading ? (\n <Spinner inherit size=\"small\" className={styles[\"loading-spinner\"]} />\n ) : icon ? (\n iconBefore(icon)\n ) : null}\n {children}\n {typeof icon === \"object\" && \"after\" in icon ? (\n <Icon\n className={styles[\"icon\"]}\n inherit\n aria-hidden\n svg={icon.after}\n />\n ) : null}\n </a>\n );\n },\n);\n\nButtonLink.displayName = \"ButtonLink\";\n"],"names":["icon"],"mappings":"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"}
1
+ {"version":3,"file":"ButtonLink-C0zR7Wnb.js","sources":["../src/components/ButtonLink/ButtonLink.tsx"],"sourcesContent":["import {\n ComponentPropsWithoutRef,\n KeyboardEvent,\n MouseEvent,\n Ref,\n forwardRef,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport {\n DataTrackingId,\n ButtonAppearance,\n LayoutUtilProps,\n Size,\n} from \"../../types\";\nimport Icon, { IconProps } from \"../Icon\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport Spinner from \"../Spinner\";\n\nimport cx from \"classnames\";\nimport styles from \"../Button/Button.module.scss\";\n\n/**\n * Props for the ButtonLink component\n * @extends LayoutUtilProps\n * @extends ComponentPropsWithoutRef<\"a\">\n */\nexport type ButtonLinkProps = LayoutUtilProps &\n ComponentPropsWithoutRef<\"a\"> & {\n /**\n * The disabled state of the button link.\n * @default false\n */\n disabled?: boolean;\n\n /**\n * The visual variant of the button link.\n * @default secondary\n */\n appearance?: ButtonAppearance;\n\n /**\n * The size of the button link.\n * @default medium\n */\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n\n /**\n * The icons of the button link.\n */\n icon?:\n | IconProps[\"svg\"]\n | {\n after: IconProps[\"svg\"];\n }\n | {\n before: IconProps[\"svg\"];\n };\n\n /**\n * The loading state of the button link.\n * If true, it will show infinite state of the loading.\n * @default false\n */\n loading?: boolean;\n } &\n /**\n * Data tracking id\n */\n DataTrackingId;\n\n/**\n * ButtonLink component for creating clickable links that look like buttons.\n *\n * Features:\n * - Multiple visual appearances (primary, secondary, ghost, danger variants)\n * - Three size options (small, medium, large)\n * - Loading state with spinner animation\n * - Icon support (before, after, or icon-only)\n * - Full accessibility support with proper ARIA attributes\n * - Supports layout utilities for positioning and spacing\n * - Keyboard navigation support (Space and Enter keys)\n * - Automatic disabled state when loading\n * - Prevents navigation when disabled or loading\n * - Flexible content with text and/or icons\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ButtonLink href=\"/dashboard\" appearance=\"primary\" size=\"medium\">\n * Go to Dashboard\n * </ButtonLink>\n */\nexport const ButtonLink = forwardRef(\n (props: ButtonLinkProps, ref: Ref<HTMLAnchorElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n\n const {\n children,\n className,\n appearance = \"secondary\",\n size = \"medium\",\n icon,\n loading = false,\n disabled,\n onClick,\n onKeyUp,\n onKeyDown,\n style,\n href,\n type,\n ...rest\n } = componentProps;\n\n const data = {\n children: childrenToString(props.children),\n appearance,\n href,\n icon,\n size,\n type,\n };\n\n const iconBefore = (icon: ButtonLinkProps[\"icon\"]) => {\n if (icon && typeof icon === \"object\" && \"before\" in icon) {\n return (\n <Icon\n aria-hidden\n className={styles[\"icon\"]}\n inherit\n svg={icon.before}\n />\n );\n }\n if (icon && typeof icon !== \"object\") {\n return (\n <Icon aria-hidden className={styles[\"icon\"]} inherit svg={icon} />\n );\n }\n return;\n };\n\n const handleOnClick = (e: MouseEvent<HTMLAnchorElement>) => {\n if (disabled || loading) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n };\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLAnchorElement>) => {\n if (e.code === \"Space\") {\n e.preventDefault();\n onKeyDown?.(e);\n return;\n }\n\n onKeyDown?.(e);\n };\n\n const onKeyUpHandler = (e: KeyboardEvent<HTMLAnchorElement>) => {\n if (e.code === \"Space\" || e.code === \"Enter\") {\n e.preventDefault();\n if (onClick) {\n e.currentTarget.click();\n }\n }\n\n onKeyUp?.(e);\n };\n\n const trackingId = useTrackingId({\n name: \"ButtonLink\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const buttonClassNames = cx(className, styles[\"button\"], {\n [styles[\"appearance-primary\"]]: appearance === \"primary\",\n [styles[\"appearance-secondary\"]]: appearance === \"secondary\",\n [styles[\"appearance-ghost\"]]: appearance === \"ghost\",\n [styles[\"danger-secondary\"]]: appearance === \"danger-secondary\",\n [styles[\"danger-primary\"]]: appearance === \"danger\",\n [styles[\"size-small\"]]: size === \"small\",\n [styles[\"size-medium\"]]: size === \"medium\",\n [styles[\"size-large\"]]: size === \"large\",\n [styles[\"type-icon\"]]: !children,\n [styles[\"loading\"]]: loading,\n });\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n return (\n <a\n data-tracking-id={trackingId}\n className={buttonClassNames}\n aria-disabled={disabled || loading}\n aria-busy={loading}\n data-anv=\"button-link\"\n tabIndex={disabled || loading ? -1 : 0}\n onClick={handleOnClick}\n onKeyDown={onKeyDownHandler}\n onKeyUp={onKeyUpHandler}\n style={styleCombined}\n ref={ref}\n href={href}\n {...rest}\n >\n {loading ? (\n <Spinner inherit size=\"small\" className={styles[\"loading-spinner\"]} />\n ) : icon ? (\n iconBefore(icon)\n ) : null}\n {children}\n {typeof icon === \"object\" && \"after\" in icon ? (\n <Icon\n className={styles[\"icon\"]}\n inherit\n aria-hidden\n svg={icon.after}\n />\n ) : null}\n </a>\n );\n },\n);\n\nButtonLink.displayName = \"ButtonLink\";\n"],"names":["icon"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { B as ButtonLink, B as default } from './ButtonLink-DGIRpyK6.js';
1
+ export { B as ButtonLink, B as default } from './ButtonLink-C0zR7Wnb.js';
2
2
  //# sourceMappingURL=ButtonLink.js.map
@@ -1,9 +1,9 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef, useState, useEffect } from 'react';
3
- import { B as Button } from './Button-DzcOa6iJ.js';
3
+ import { B as Button } from './Button-92_FKAyV.js';
4
4
  import { c as cx } from './index-tZvMCc77.js';
5
5
  import { s as styles } from './Button.module-C1g9rrJs.js';
6
- import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-C7FVYB8F.js';
6
+ import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-BlIWftBb.js';
7
7
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
8
8
  import { useTrackingId } from './useTrackingId.js';
9
9
 
@@ -75,4 +75,4 @@ const ButtonToggle = forwardRef(
75
75
  ButtonToggle.displayName = "ButtonToggle";
76
76
 
77
77
  export { ButtonToggle as B };
78
- //# sourceMappingURL=ButtonToggle-Dv6VAm4W.js.map
78
+ //# sourceMappingURL=ButtonToggle--sKvhBoA.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonToggle-Dv6VAm4W.js","sources":["../src/components/ButtonToggle/ButtonToggle.tsx"],"sourcesContent":["import {\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n Ref,\n useEffect,\n useState,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DataTrackingId } from \"../../types\";\nimport { Button, ButtonProps } from \"../Button/Button\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\nimport cx from \"classnames\";\nimport styles from \"../Button/Button.module.scss\";\n\nexport type ButtonToggleState = {\n pressed: boolean;\n value?: string;\n};\n\n/**\n * Props for the ButtonToggle component\n * @extends Omit<ButtonProps, \"appearance\" | \"loading\">\n */\nexport type ButtonToggleProps = Omit<ButtonProps, \"appearance\" | \"loading\"> & {\n /**\n * The default pressed(selected) state of the toggle button.\n * @default false\n */\n defaultChecked?: boolean;\n\n /**\n * The controlled pressed(selected) state of the toggle button.\n */\n checked?: boolean;\n\n /**\n * The value of the toggle button.\n */\n value?: string;\n\n /**\n * Callback for when pressed(selected) changes.\n */\n onChange?: (\n e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>,\n state: ButtonToggleState,\n ) => void;\n} &\n /**\n * Data tracking id\n */\n DataTrackingId;\n\n/**\n * ButtonToggle component for creating toggleable button states.\n *\n * Features:\n * - Supports both controlled and uncontrolled state management\n * - Toggle state with pressed/selected visual feedback\n * - Full accessibility support with aria-pressed attribute\n * - Callback support for state changes\n * - Supports layout utilities for positioning and spacing\n * - Inherits all button features except appearance and loading\n * - Flexible content with text and/or icons\n * - Keyboard interaction support\n * - Value association for form-like behavior\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ButtonToggle\n * defaultChecked={false}\n * onChange={(e, state) => console.log('Toggle state:', state.pressed)}\n * >\n * Toggle Me\n * </ButtonToggle>\n */\nexport const ButtonToggle = forwardRef(\n (props: ButtonToggleProps, ref: Ref<HTMLButtonElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n value,\n defaultChecked = false,\n checked,\n className,\n onClick,\n onChange,\n onKeyDown,\n style,\n icon,\n size,\n type,\n ...rest\n } = componentProps;\n\n const [isPressed, setIsPressed] = useState(checked ?? defaultChecked);\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n if (typeof checked === \"undefined\") {\n setIsPressed(!isPressed);\n onChange?.(e, { pressed: !isPressed, value });\n }\n onClick?.(e);\n };\n\n useEffect(() => {\n if (typeof checked === \"undefined\") return;\n setIsPressed(checked);\n }, [checked]);\n\n const data = {\n children: childrenToString(props.children),\n icon,\n size,\n value,\n type,\n };\n\n const trackingId = useTrackingId({\n name: \"ButtonToggle\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const ButtonToggleClassNames = cx(className, styles[\"button-toggle\"]);\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n return (\n <Button\n data-tracking-id={trackingId}\n data-anv=\"button-toggle\"\n aria-pressed={isPressed}\n onClick={onClickHandler}\n className={ButtonToggleClassNames}\n value={value}\n style={styleCombined}\n icon={icon}\n size={size}\n type={type}\n ref={ref}\n {...rest}\n />\n );\n },\n);\n\nButtonToggle.displayName = \"ButtonToggle\";\n"],"names":[],"mappings":";;;;;;;;;AA+EO,MAAM,YAAA,GAAe,UAAA;AAAA,EAC1B,CAAC,OAA0B,GAAA,KAAgC;AACzD,IAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,IAAA,MAAM;AAAA,MACJ,KAAA;AAAA,MACA,cAAA,GAAiB,KAAA;AAAA,MACjB,OAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,cAAA;AAEJ,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,QAAA,CAAS,WAAW,cAAc,CAAA;AAEpE,IAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KAAqC;AAC3D,MAAA,IAAI,OAAO,YAAY,WAAA,EAAa;AAClC,QAAA,YAAA,CAAa,CAAC,SAAS,CAAA;AACvB,QAAA,QAAA,GAAW,GAAG,EAAE,OAAA,EAAS,CAAC,SAAA,EAAW,OAAO,CAAA;AAAA,MAC9C;AACA,MAAA,OAAA,GAAU,CAAC,CAAA;AAAA,IACb,CAAA;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,OAAO,YAAY,WAAA,EAAa;AACpC,MAAA,YAAA,CAAa,OAAO,CAAA;AAAA,IACtB,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,QAAA,EAAU,gBAAA,CAAiB,KAAA,CAAM,QAAQ,CAAA;AAAA,MACzC,IAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAM,aAAa,aAAA,CAAc;AAAA,MAC/B,IAAA,EAAM,cAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,sBAAA,GAAyB,EAAA,CAAG,SAAA,EAAW,MAAA,CAAO,eAAe,CAAC,CAAA;AAEpE,IAAA,MAAM,aAAA,GAAgB;AAAA,MACpB,GAAG,KAAA;AAAA,MACH,GAAG;AAAA,KACL;AACA,IAAA,uBACE,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,kBAAA,EAAkB,UAAA;AAAA,QAClB,UAAA,EAAS,eAAA;AAAA,QACT,cAAA,EAAc,SAAA;AAAA,QACd,OAAA,EAAS,cAAA;AAAA,QACT,SAAA,EAAW,sBAAA;AAAA,QACX,KAAA;AAAA,QACA,KAAA,EAAO,aAAA;AAAA,QACP,IAAA;AAAA,QACA,IAAA;AAAA,QACA,IAAA;AAAA,QACA,GAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;;;;"}
1
+ {"version":3,"file":"ButtonToggle--sKvhBoA.js","sources":["../src/components/ButtonToggle/ButtonToggle.tsx"],"sourcesContent":["import {\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n Ref,\n useEffect,\n useState,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DataTrackingId } from \"../../types\";\nimport { Button, ButtonProps } from \"../Button/Button\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\nimport cx from \"classnames\";\nimport styles from \"../Button/Button.module.scss\";\n\nexport type ButtonToggleState = {\n pressed: boolean;\n value?: string;\n};\n\n/**\n * Props for the ButtonToggle component\n * @extends Omit<ButtonProps, \"appearance\" | \"loading\">\n */\nexport type ButtonToggleProps = Omit<ButtonProps, \"appearance\" | \"loading\"> & {\n /**\n * The default pressed(selected) state of the toggle button.\n * @default false\n */\n defaultChecked?: boolean;\n\n /**\n * The controlled pressed(selected) state of the toggle button.\n */\n checked?: boolean;\n\n /**\n * The value of the toggle button.\n */\n value?: string;\n\n /**\n * Callback for when pressed(selected) changes.\n */\n onChange?: (\n e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>,\n state: ButtonToggleState,\n ) => void;\n} &\n /**\n * Data tracking id\n */\n DataTrackingId;\n\n/**\n * ButtonToggle component for creating toggleable button states.\n *\n * Features:\n * - Supports both controlled and uncontrolled state management\n * - Toggle state with pressed/selected visual feedback\n * - Full accessibility support with aria-pressed attribute\n * - Callback support for state changes\n * - Supports layout utilities for positioning and spacing\n * - Inherits all button features except appearance and loading\n * - Flexible content with text and/or icons\n * - Keyboard interaction support\n * - Value association for form-like behavior\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <ButtonToggle\n * defaultChecked={false}\n * onChange={(e, state) => console.log('Toggle state:', state.pressed)}\n * >\n * Toggle Me\n * </ButtonToggle>\n */\nexport const ButtonToggle = forwardRef(\n (props: ButtonToggleProps, ref: Ref<HTMLButtonElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n value,\n defaultChecked = false,\n checked,\n className,\n onClick,\n onChange,\n onKeyDown,\n style,\n icon,\n size,\n type,\n ...rest\n } = componentProps;\n\n const [isPressed, setIsPressed] = useState(checked ?? defaultChecked);\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n if (typeof checked === \"undefined\") {\n setIsPressed(!isPressed);\n onChange?.(e, { pressed: !isPressed, value });\n }\n onClick?.(e);\n };\n\n useEffect(() => {\n if (typeof checked === \"undefined\") return;\n setIsPressed(checked);\n }, [checked]);\n\n const data = {\n children: childrenToString(props.children),\n icon,\n size,\n value,\n type,\n };\n\n const trackingId = useTrackingId({\n name: \"ButtonToggle\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const ButtonToggleClassNames = cx(className, styles[\"button-toggle\"]);\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n return (\n <Button\n data-tracking-id={trackingId}\n data-anv=\"button-toggle\"\n aria-pressed={isPressed}\n onClick={onClickHandler}\n className={ButtonToggleClassNames}\n value={value}\n style={styleCombined}\n icon={icon}\n size={size}\n type={type}\n ref={ref}\n {...rest}\n />\n );\n },\n);\n\nButtonToggle.displayName = \"ButtonToggle\";\n"],"names":[],"mappings":";;;;;;;;;AA+EO,MAAM,YAAA,GAAe,UAAA;AAAA,EAC1B,CAAC,OAA0B,GAAA,KAAgC;AACzD,IAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,IAAA,MAAM;AAAA,MACJ,KAAA;AAAA,MACA,cAAA,GAAiB,KAAA;AAAA,MACjB,OAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,cAAA;AAEJ,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,QAAA,CAAS,WAAW,cAAc,CAAA;AAEpE,IAAA,MAAM,cAAA,GAAiB,CAAC,CAAA,KAAqC;AAC3D,MAAA,IAAI,OAAO,YAAY,WAAA,EAAa;AAClC,QAAA,YAAA,CAAa,CAAC,SAAS,CAAA;AACvB,QAAA,QAAA,GAAW,GAAG,EAAE,OAAA,EAAS,CAAC,SAAA,EAAW,OAAO,CAAA;AAAA,MAC9C;AACA,MAAA,OAAA,GAAU,CAAC,CAAA;AAAA,IACb,CAAA;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,OAAO,YAAY,WAAA,EAAa;AACpC,MAAA,YAAA,CAAa,OAAO,CAAA;AAAA,IACtB,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,QAAA,EAAU,gBAAA,CAAiB,KAAA,CAAM,QAAQ,CAAA;AAAA,MACzC,IAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAM,aAAa,aAAA,CAAc;AAAA,MAC/B,IAAA,EAAM,cAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,sBAAA,GAAyB,EAAA,CAAG,SAAA,EAAW,MAAA,CAAO,eAAe,CAAC,CAAA;AAEpE,IAAA,MAAM,aAAA,GAAgB;AAAA,MACpB,GAAG,KAAA;AAAA,MACH,GAAG;AAAA,KACL;AACA,IAAA,uBACE,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,kBAAA,EAAkB,UAAA;AAAA,QAClB,UAAA,EAAS,eAAA;AAAA,QACT,cAAA,EAAc,SAAA;AAAA,QACd,OAAA,EAAS,cAAA;AAAA,QACT,SAAA,EAAW,sBAAA;AAAA,QACX,KAAA;AAAA,QACA,KAAA,EAAO,aAAA;AAAA,QACP,IAAA;AAAA,QACA,IAAA;AAAA,QACA,IAAA;AAAA,QACA,GAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;;;;"}
@@ -1,2 +1,2 @@
1
- export { B as ButtonToggle, B as default } from './ButtonToggle-Dv6VAm4W.js';
1
+ export { B as ButtonToggle, B as default } from './ButtonToggle--sKvhBoA.js';
2
2
  //# sourceMappingURL=ButtonToggle.js.map
@@ -1,20 +1,20 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { createContext, useContext, forwardRef, useState, useEffect, useRef, useCallback, useMemo, useId } from 'react';
4
- import { B as Button } from './Button-DzcOa6iJ.js';
4
+ import { B as Button } from './Button-92_FKAyV.js';
5
5
  import { S as SvgKeyboardArrowDown } from './keyboard_arrow_down-C8WQ38p1.js';
6
6
  import { S as SvgKeyboardArrowUp } from './keyboard_arrow_up-CxzK6LAl.js';
7
7
  import { S as SvgKeyboardArrowLeft, a as SvgKeyboardArrowRight } from './keyboard_arrow_right-DZWNVytH.js';
8
8
  import { c as cx } from './index-tZvMCc77.js';
9
9
  import { S as SrOnly } from './SrOnly-CTsYSuby.js';
10
10
  import { u as useSwipe } from './useSwipe-Cp-CJxLU.js';
11
- import { G as Grid } from './Grid-BpAt2zA7.js';
12
- import { S as SelectCard } from './SelectCard-Dw7zW0UN.js';
11
+ import { G as Grid } from './Grid-DW2cAuHi.js';
12
+ import { S as SelectCard } from './SelectCard-lBcnP5j5.js';
13
13
  import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
14
14
  import { flushSync } from 'react-dom';
15
15
  import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
16
16
  import { u as usePrevious } from './usePrevious-Bvq-5auG.js';
17
- import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-C7FVYB8F.js';
17
+ import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-BlIWftBb.js';
18
18
 
19
19
  import './Calendar.css';// these aren't really private, but nor are they really useful to document
20
20
 
@@ -8330,40 +8330,40 @@ const CalendarYearButton = forwardRef((props, ref) => {
8330
8330
  });
8331
8331
  CalendarYearButton.displayName = "CalendarYearButton";
8332
8332
 
8333
- const calendar = "_calendar_1csvm_2";
8334
- const header = "_header_1csvm_15";
8335
- const controller = "_controller_1csvm_46";
8336
- const spacer = "_spacer_1csvm_53";
8337
- const cell = "_cell_1csvm_66";
8338
- const overflow = "_overflow_1csvm_97";
8339
- const weekday = "_weekday_1csvm_103";
8340
- const range = "_range_1csvm_148";
8341
- const selected = "_selected_1csvm_158";
8342
- const pip = "_pip_1csvm_232";
8333
+ const calendar = "_calendar_50kmd_2";
8334
+ const header = "_header_50kmd_15";
8335
+ const controller = "_controller_50kmd_46";
8336
+ const spacer = "_spacer_50kmd_54";
8337
+ const cell = "_cell_50kmd_67";
8338
+ const overflow = "_overflow_50kmd_98";
8339
+ const weekday = "_weekday_50kmd_104";
8340
+ const range = "_range_50kmd_149";
8341
+ const selected = "_selected_50kmd_159";
8342
+ const pip = "_pip_50kmd_233";
8343
8343
  const styles$1 = {
8344
8344
  calendar: calendar,
8345
8345
  header: header,
8346
8346
  controller: controller,
8347
8347
  spacer: spacer,
8348
- "day-grid": "_day-grid_1csvm_56",
8348
+ "day-grid": "_day-grid_50kmd_57",
8349
8349
  cell: cell,
8350
8350
  overflow: overflow,
8351
8351
  weekday: weekday,
8352
- "month-selection": "_month-selection_1csvm_115",
8353
- "selection-checkbox": "_selection-checkbox_1csvm_115",
8354
- "selection-card": "_selection-card_1csvm_125",
8355
- "range-first": "_range-first_1csvm_148",
8356
- "range-last": "_range-last_1csvm_148",
8352
+ "month-selection": "_month-selection_50kmd_116",
8353
+ "selection-checkbox": "_selection-checkbox_50kmd_116",
8354
+ "selection-card": "_selection-card_50kmd_126",
8355
+ "range-first": "_range-first_50kmd_149",
8356
+ "range-last": "_range-last_50kmd_149",
8357
8357
  range: range,
8358
8358
  selected: selected,
8359
- "is-unavailable": "_is-unavailable_1csvm_166",
8360
- "hover-last": "_hover-last_1csvm_224",
8361
- "has-metadata": "_has-metadata_1csvm_228",
8359
+ "is-unavailable": "_is-unavailable_50kmd_167",
8360
+ "hover-last": "_hover-last_50kmd_225",
8361
+ "has-metadata": "_has-metadata_50kmd_229",
8362
8362
  pip: pip,
8363
- "range-fill": "_range-fill_1csvm_244",
8364
- "range-disabled": "_range-disabled_1csvm_254",
8365
- "controller-button": "_controller-button_1csvm_262",
8366
- "year-selector": "_year-selector_1csvm_270"
8363
+ "range-fill": "_range-fill_50kmd_245",
8364
+ "range-disabled": "_range-disabled_50kmd_255",
8365
+ "controller-button": "_controller-button_50kmd_263",
8366
+ "year-selector": "_year-selector_50kmd_271"
8367
8367
  };
8368
8368
 
8369
8369
  const CalendarPrev = forwardRef(
@@ -8784,47 +8784,37 @@ const CalendarDay = forwardRef(
8784
8784
  });
8785
8785
  const isMinDate = minDate !== null && date.toMillis() <= minDate?.toMillis();
8786
8786
  const isMaxDate = maxDate !== null && date.toMillis() >= maxDate?.toMillis();
8787
- return /* @__PURE__ */ jsxs(
8788
- "td",
8789
- {
8790
- "aria-disabled": !isSameMonth(date, focusedDate),
8791
- role: "gridcell",
8792
- ...rest,
8793
- ref,
8794
- children: [
8795
- !isUnavailable && (isRange(date) || hoverRange) ? /* @__PURE__ */ jsx(
8796
- "div",
8797
- {
8798
- role: "presentation",
8799
- className: cx(styles$1["range-fill"], {
8800
- [styles$1["range-disabled"]]: isDisabled,
8801
- [styles$1["hover-last"]]: hoverRange && isSameDay(date, hoveredDate)
8802
- })
8803
- }
8804
- ) : null,
8805
- /* @__PURE__ */ jsxs(
8806
- "button",
8807
- {
8808
- onClick: () => onClickHandler(date),
8809
- onFocus: () => onFocusHandler(date),
8810
- onBlur: () => onBlurHandler(),
8811
- className: cellCx,
8812
- onKeyDown: onKeyDownHandler,
8813
- onMouseEnter: () => onMouseEnterHandler(date),
8814
- tabIndex: disableAutofocus ? -1 : isSameDay(date, focusedDate) ? 0 : -1,
8815
- disabled: isDisabled ? true : void 0,
8816
- "aria-label": `${date.toLocaleString(dateFormat)}${isSelectedDate(date) ? " selected" : ""}${hasMetadata ? `, ${hasMetadata}` : ""}${isMinDate ? ", You are on the first available date" : ""}${isMaxDate ? ", You are on the last available date" : ""}`,
8817
- id: `${uid}-${date.toISODate()}`,
8818
- children: [
8819
- date.day,
8820
- hasMetadata && /* @__PURE__ */ jsx("span", { className: styles$1["pip"], "aria-hidden": "true" })
8821
- ]
8822
- }
8823
- )
8824
- ]
8825
- },
8826
- date.toISODate()
8827
- );
8787
+ return /* @__PURE__ */ jsxs("td", { role: "gridcell", ...rest, ref, children: [
8788
+ !isUnavailable && (isRange(date) || hoverRange) ? /* @__PURE__ */ jsx(
8789
+ "div",
8790
+ {
8791
+ role: "presentation",
8792
+ className: cx(styles$1["range-fill"], {
8793
+ [styles$1["range-disabled"]]: isDisabled,
8794
+ [styles$1["hover-last"]]: hoverRange && isSameDay(date, hoveredDate)
8795
+ })
8796
+ }
8797
+ ) : null,
8798
+ /* @__PURE__ */ jsxs(
8799
+ "button",
8800
+ {
8801
+ onClick: () => onClickHandler(date),
8802
+ onFocus: () => onFocusHandler(date),
8803
+ onBlur: () => onBlurHandler(),
8804
+ className: cellCx,
8805
+ onKeyDown: onKeyDownHandler,
8806
+ onMouseEnter: () => onMouseEnterHandler(date),
8807
+ tabIndex: disableAutofocus ? -1 : isSameDay(date, focusedDate) ? 0 : -1,
8808
+ disabled: isDisabled ? true : void 0,
8809
+ "aria-label": `${date.toLocaleString(dateFormat)}${isSelectedDate(date) ? " selected" : ""}${hasMetadata ? `, ${hasMetadata}` : ""}${isMinDate ? ", You are on the first available date" : ""}${isMaxDate ? ", You are on the last available date" : ""}`,
8810
+ id: `${uid}-${date.toISODate()}`,
8811
+ children: [
8812
+ date.day,
8813
+ hasMetadata && /* @__PURE__ */ jsx("span", { className: styles$1["pip"], "aria-hidden": "true" })
8814
+ ]
8815
+ }
8816
+ )
8817
+ ] }, date.toISODate());
8828
8818
  }
8829
8819
  );
8830
8820
  CalendarDay.displayName = "CalendarDay";
@@ -10869,4 +10859,4 @@ const Calendar = Object.assign(CalendarElement, {
10869
10859
  });
10870
10860
 
10871
10861
  export { CalendarBetaPropsContext as C, DateTime as D, Calendar as a, CalendarNow as b, CalendarYearButton as c, CalendarPrev as d, CalendarNext as e, CalendarMonthButton as f, CalendarMonth as g, isValidDate as i, toDateString as t, useCalendarBetaProps as u };
10872
- //# sourceMappingURL=Calendar-NDOcurOz.js.map
10862
+ //# sourceMappingURL=Calendar-BkJs1qTF.js.map