@servicetitan/anvil2 1.46.1 → 1.46.3

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 (267) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/{Alert-BNGvfMAV.js → Alert-CPOBY6O5.js} +2 -2
  3. package/dist/{Alert-BNGvfMAV.js.map → Alert-CPOBY6O5.js.map} +1 -1
  4. package/dist/Alert.js +1 -1
  5. package/dist/{Announcement-CoheCP1i.js → Announcement-BvzAEdx8.js} +2 -2
  6. package/dist/{Announcement-CoheCP1i.js.map → Announcement-BvzAEdx8.js.map} +1 -1
  7. package/dist/Announcement.js +1 -1
  8. package/dist/AnvilProvider-C_qRQnE6.js.map +1 -1
  9. package/dist/{Avatar-CyGjhToG.js → Avatar-3d5Kv2CF.js} +2 -2
  10. package/dist/{Avatar-CyGjhToG.js.map → Avatar-3d5Kv2CF.js.map} +1 -1
  11. package/dist/{Avatar-D07f9NH_.js → Avatar-DJ3oJNsv.js} +2 -2
  12. package/dist/{Avatar-D07f9NH_.js.map → Avatar-DJ3oJNsv.js.map} +1 -1
  13. package/dist/Avatar.js +2 -2
  14. package/dist/Badge-DCA9mfc2.js.map +1 -1
  15. package/dist/Breadcrumbs-C4_PEolS.js.map +1 -1
  16. package/dist/{Button-BxFXQ0-n.js → Button-VNQQgZ45.js} +2 -2
  17. package/dist/{Button-BxFXQ0-n.js.map → Button-VNQQgZ45.js.map} +1 -1
  18. package/dist/Button.css +48 -48
  19. package/dist/Button.js +1 -1
  20. package/dist/Button.module-C1g9rrJs.js +25 -0
  21. package/dist/Button.module-C1g9rrJs.js.map +1 -0
  22. package/dist/{ButtonCompound-BF2Q6gGX.js → ButtonCompound-BbPK-Xjj.js} +2 -2
  23. package/dist/{ButtonCompound-BF2Q6gGX.js.map → ButtonCompound-BbPK-Xjj.js.map} +1 -1
  24. package/dist/ButtonCompound.js +1 -1
  25. package/dist/{ButtonLink-CXv65WVV.js → ButtonLink-CqR1F5Wn.js} +3 -3
  26. package/dist/{ButtonLink-CXv65WVV.js.map → ButtonLink-CqR1F5Wn.js.map} +1 -1
  27. package/dist/ButtonLink.js +1 -1
  28. package/dist/{ButtonToggle-pSwg7NvT.js → ButtonToggle-PCeSG-5D.js} +3 -3
  29. package/dist/{ButtonToggle-pSwg7NvT.js.map → ButtonToggle-PCeSG-5D.js.map} +1 -1
  30. package/dist/ButtonToggle.js +1 -1
  31. package/dist/{Calendar-BQ5F2ENO.js → Calendar-Cn0fOgog.js} +366 -169
  32. package/dist/Calendar-Cn0fOgog.js.map +1 -0
  33. package/dist/Calendar.js +1 -1
  34. package/dist/Card-vTYeSkxt.js.map +1 -1
  35. package/dist/{Checkbox-Dl4KTwEJ.js → Checkbox-C5PX8wur.js} +2 -2
  36. package/dist/{Checkbox-Dl4KTwEJ.js.map → Checkbox-C5PX8wur.js.map} +1 -1
  37. package/dist/{Checkbox-DDrmVC-u.js → Checkbox-DAODkzN3.js} +2 -2
  38. package/dist/{Checkbox-DDrmVC-u.js.map → Checkbox-DAODkzN3.js.map} +1 -1
  39. package/dist/Checkbox.js +2 -2
  40. package/dist/{Chip-Bz-vlQ4D.js → Chip-DLU13qe-.js} +2 -2
  41. package/dist/{Chip-Bz-vlQ4D.js.map → Chip-DLU13qe-.js.map} +1 -1
  42. package/dist/Chip.js +1 -1
  43. package/dist/{Combobox-B9nesJuc.js → Combobox-DO8cIvRQ.js} +146 -55
  44. package/dist/Combobox-DO8cIvRQ.js.map +1 -0
  45. package/dist/Combobox.js +1 -1
  46. package/dist/{DateField-DXxPsRtf.js → DateField-qHdgwSlB.js} +36 -102
  47. package/dist/DateField-qHdgwSlB.js.map +1 -0
  48. package/dist/DateField.js +1 -1
  49. package/dist/{DateFieldRange-Xauviu1w.js → DateFieldRange-GNpWV70g.js} +57 -58
  50. package/dist/DateFieldRange-GNpWV70g.js.map +1 -0
  51. package/dist/DateFieldRange.js +1 -1
  52. package/dist/{DateFieldSingle-yLnwpVzd.js → DateFieldSingle-B9caNibj.js} +53 -55
  53. package/dist/DateFieldSingle-B9caNibj.js.map +1 -0
  54. package/dist/DateFieldSingle.js +1 -1
  55. package/dist/{DateFieldYearless-Ba7HiTiI.js → DateFieldYearless-BmeKGaDc.js} +4 -4
  56. package/dist/{DateFieldYearless-Ba7HiTiI.js.map → DateFieldYearless-BmeKGaDc.js.map} +1 -1
  57. package/dist/DateFieldYearless.js +1 -1
  58. package/dist/{DaysOfTheWeek-BYSYZySH.js → DaysOfTheWeek-DPH13VCK.js} +4 -4
  59. package/dist/{DaysOfTheWeek-BYSYZySH.js.map → DaysOfTheWeek-DPH13VCK.js.map} +1 -1
  60. package/dist/DaysOfTheWeek.js +1 -1
  61. package/dist/Details-CF8DImjw.js.map +1 -1
  62. package/dist/{Dialog-CgkrvrQu.js → Dialog-BHFLnFNQ.js} +7 -7
  63. package/dist/{Dialog-CgkrvrQu.js.map → Dialog-BHFLnFNQ.js.map} +1 -1
  64. package/dist/Dialog.js +1 -1
  65. package/dist/Divider-DJe8kLf2.js.map +1 -1
  66. package/dist/Dnd.js +1 -1
  67. package/dist/DndSort.js +2 -2
  68. package/dist/DndSort.js.map +1 -1
  69. package/dist/{Drawer-CM4ZbAro.js → Drawer-BDA7Sjj9.js} +7 -7
  70. package/dist/{Drawer-CM4ZbAro.js.map → Drawer-BDA7Sjj9.js.map} +1 -1
  71. package/dist/Drawer.js +1 -1
  72. package/dist/{DrawerContext-DboTgTmo.js → DrawerContext-D4tWTLVf.js} +27 -10
  73. package/dist/DrawerContext-D4tWTLVf.js.map +1 -0
  74. package/dist/{EditCard-WKzZ2XCz.js → EditCard-CZzL0nx7.js} +2 -2
  75. package/dist/{EditCard-WKzZ2XCz.js.map → EditCard-CZzL0nx7.js.map} +1 -1
  76. package/dist/EditCard.js +1 -1
  77. package/dist/{FieldLabel-BsbTTyom.js → FieldLabel-Bgl3iu13.js} +2 -2
  78. package/dist/{FieldLabel-BsbTTyom.js.map → FieldLabel-Bgl3iu13.js.map} +1 -1
  79. package/dist/FieldLabel.js +1 -1
  80. package/dist/FieldMessage-B7uQ8vmr.js.map +1 -1
  81. package/dist/Flex-BdQMekvA.js.map +1 -1
  82. package/dist/Grid-MGUC698u.js.map +1 -1
  83. package/dist/Helper-BkIDJqgA.js.map +1 -1
  84. package/dist/Icon-D8SPKeO4.js.map +1 -1
  85. package/dist/{InputMask-_F139qFu.js → InputMask-B13KumrK.js} +3 -3
  86. package/dist/{InputMask-_F139qFu.js.map → InputMask-B13KumrK.js.map} +1 -1
  87. package/dist/InputMask.js +1 -1
  88. package/dist/Layout-CUUb2PVr.js.map +1 -1
  89. package/dist/Link-eRsLWPaQ.js.map +1 -1
  90. package/dist/LinkButton-2lXfrVoU.js.map +1 -1
  91. package/dist/{ListView-pb3rIcze.js → ListView-C-cVQZHp.js} +3 -3
  92. package/dist/{ListView-pb3rIcze.js.map → ListView-C-cVQZHp.js.map} +1 -1
  93. package/dist/ListView.js +1 -1
  94. package/dist/{Listbox-CUhMbFm2.js → Listbox-DxGx630W.js} +2 -2
  95. package/dist/{Listbox-CUhMbFm2.js.map → Listbox-DxGx630W.js.map} +1 -1
  96. package/dist/Listbox.js +1 -1
  97. package/dist/LocalizationContext-UsmB5mnR.js.map +1 -1
  98. package/dist/LocalizationProvider-DEZyjW5d.js.map +1 -1
  99. package/dist/{Menu-DEVZz9xZ.js → Menu-DUZqzpwg.js} +8 -10
  100. package/dist/Menu-DUZqzpwg.js.map +1 -0
  101. package/dist/Menu.js +1 -1
  102. package/dist/{NumberField-CkZZrkYC.js → NumberField-DWPAy1eG.js} +11 -11
  103. package/dist/{NumberField-CkZZrkYC.js.map → NumberField-DWPAy1eG.js.map} +1 -1
  104. package/dist/NumberField.css +9 -6
  105. package/dist/NumberField.js +1 -1
  106. package/dist/Overflow.js.map +1 -1
  107. package/dist/{Page-BMDkbDcU.js → Page-BfH2mGSt.js} +11 -11
  108. package/dist/Page-BfH2mGSt.js.map +1 -0
  109. package/dist/Page.js +1 -1
  110. package/dist/{Pagination-BJsCppgW.js → Pagination-B_G9QcHf.js} +48 -24
  111. package/dist/Pagination-B_G9QcHf.js.map +1 -0
  112. package/dist/Pagination.css +6 -6
  113. package/dist/Pagination.js +1 -1
  114. package/dist/{Popover-r26xMIfm.js → Popover-v8R920kj.js} +137 -196
  115. package/dist/Popover-v8R920kj.js.map +1 -0
  116. package/dist/Popover.js +1 -1
  117. package/dist/PortalProvider-9lXkQ0xY.js.map +1 -1
  118. package/dist/{ProgressBar-DXcXZEJ2.js → ProgressBar-BWN2yv1s.js} +2 -2
  119. package/dist/{ProgressBar-DXcXZEJ2.js.map → ProgressBar-BWN2yv1s.js.map} +1 -1
  120. package/dist/ProgressBar.js +1 -1
  121. package/dist/{Radio-C89VCMXd.js → Radio-C5riI-do.js} +2 -2
  122. package/dist/{Radio-C89VCMXd.js.map → Radio-C5riI-do.js.map} +1 -1
  123. package/dist/Radio.js +2 -2
  124. package/dist/{RadioGroup-C_4buUtG.js → RadioGroup-B7O06pVu.js} +2 -2
  125. package/dist/{RadioGroup-C_4buUtG.js.map → RadioGroup-B7O06pVu.js.map} +1 -1
  126. package/dist/{SearchField-Bb0uObwG.js → SearchField-CbwGErC4.js} +2 -2
  127. package/dist/{SearchField-Bb0uObwG.js.map → SearchField-CbwGErC4.js.map} +1 -1
  128. package/dist/SearchField.js +1 -1
  129. package/dist/{SegmentedControl-CsjjV1Dz.js → SegmentedControl-CLDdes8W.js} +4 -4
  130. package/dist/{SegmentedControl-CsjjV1Dz.js.map → SegmentedControl-CLDdes8W.js.map} +1 -1
  131. package/dist/SegmentedControl.js +1 -1
  132. package/dist/{SelectCard-BTYZg9TG.js → SelectCard-Ca07K1FW.js} +3 -3
  133. package/dist/{SelectCard-BTYZg9TG.js.map → SelectCard-Ca07K1FW.js.map} +1 -1
  134. package/dist/SelectCard.js +1 -1
  135. package/dist/{SelectTrigger-f1hvRrSC.js → SelectTrigger-CaXX1SHG.js} +3 -3
  136. package/dist/{SelectTrigger-f1hvRrSC.js.map → SelectTrigger-CaXX1SHG.js.map} +1 -1
  137. package/dist/SelectTrigger.js +1 -1
  138. package/dist/{SelectTriggerBase-DP9fmRSo.js → SelectTriggerBase-C7TLCna1.js} +4 -4
  139. package/dist/{SelectTriggerBase-DP9fmRSo.js.map → SelectTriggerBase-C7TLCna1.js.map} +1 -1
  140. package/dist/{SideNav-CBAzYyML.js → SideNav-nqq5sAwz.js} +3 -3
  141. package/dist/SideNav-nqq5sAwz.js.map +1 -0
  142. package/dist/SideNav.js +1 -1
  143. package/dist/Skeleton.js.map +1 -1
  144. package/dist/Spinner-wmO8Epw0.js.map +1 -1
  145. package/dist/SrOnly-CTsYSuby.js.map +1 -1
  146. package/dist/{Stepper-D-fOH9TF.js → Stepper-DQ_Hm-AI.js} +4 -4
  147. package/dist/{Stepper-D-fOH9TF.js.map → Stepper-DQ_Hm-AI.js.map} +1 -1
  148. package/dist/Stepper.js +1 -1
  149. package/dist/Switch-C2ddZcr9.js.map +1 -1
  150. package/dist/{Tab-wNucMTgo.js → Tab-CzNx3IdF.js} +45 -37
  151. package/dist/Tab-CzNx3IdF.js.map +1 -0
  152. package/dist/Tab.js +1 -1
  153. package/dist/Text-BqvcbXyp.js.map +1 -1
  154. package/dist/{TextField-D8fow9j7.js → TextField-D9gD-34Q.js} +3 -3
  155. package/dist/{TextField-D8fow9j7.js.map → TextField-D9gD-34Q.js.map} +1 -1
  156. package/dist/{TextField-BiHxlzE3.js → TextField-uCHgwO5F.js} +2 -2
  157. package/dist/{TextField-BiHxlzE3.js.map → TextField-uCHgwO5F.js.map} +1 -1
  158. package/dist/TextField.js +1 -1
  159. package/dist/{Textarea-BdVJJlbP.js → Textarea-B2-6m291.js} +3 -3
  160. package/dist/{Textarea-BdVJJlbP.js.map → Textarea-B2-6m291.js.map} +1 -1
  161. package/dist/Textarea.js +1 -1
  162. package/dist/ThemeProvider-Be3Pvtpz.js.map +1 -1
  163. package/dist/ThemeProviderContext-l52GohYT.js.map +1 -1
  164. package/dist/{TimeField-CmbErrsZ.js → TimeField-B5Jgy-Zg.js} +363 -360
  165. package/dist/TimeField-B5Jgy-Zg.js.map +1 -0
  166. package/dist/TimeField.js +1 -1
  167. package/dist/Toast.js +2 -2
  168. package/dist/{Toaster-B7zUwJOt.js → Toaster-CHyB-Mxs.js} +3 -3
  169. package/dist/{Toaster-B7zUwJOt.js.map → Toaster-CHyB-Mxs.js.map} +1 -1
  170. package/dist/{Toaster-9cpG_tWR.js → Toaster-CyiGDKMh.js} +18 -18
  171. package/dist/{Toaster-9cpG_tWR.js.map → Toaster-CyiGDKMh.js.map} +1 -1
  172. package/dist/{Toolbar-D4zuUFhb.js → Toolbar-BXGTrR6o.js} +19 -18
  173. package/dist/Toolbar-BXGTrR6o.js.map +1 -0
  174. package/dist/Toolbar.js +1 -1
  175. package/dist/{Tooltip-BI3Xs75X.js → Tooltip-DhtVlhah.js} +9 -3
  176. package/dist/{Tooltip-BI3Xs75X.js.map → Tooltip-DhtVlhah.js.map} +1 -1
  177. package/dist/Tooltip.js +1 -1
  178. package/dist/TrackingProvider-BtSjkmpM.js.map +1 -1
  179. package/dist/beta.js +1 -1
  180. package/dist/childrenToString-Bz9MqbHb.js.map +1 -1
  181. package/dist/components/Calendar/Calendar.d.ts +5 -0
  182. package/dist/components/Calendar/CalendarNowButton.d.ts +3 -1
  183. package/dist/components/Combobox/ComboboxTypes.d.ts +10 -5
  184. package/dist/components/Combobox/internal/ComboboxGroupContext.d.ts +1 -1
  185. package/dist/components/Combobox/internal/useGroups.d.ts +2 -2
  186. package/dist/components/DndSort/internal/test-utils.d.ts +1 -1
  187. package/dist/components/Popover/Popover.d.ts +136 -1
  188. package/dist/components/Popover/PopoverTrigger.d.ts +0 -1
  189. package/dist/components/Popover/internal/PopoverContext.d.ts +5 -3
  190. package/dist/components/Popover/internal/usePopoverContext.d.ts +6 -4
  191. package/dist/components/TimeField/TimeField.d.ts +4 -1
  192. package/dist/extends-Bg2s_OKl.js.map +1 -1
  193. package/dist/getActiveElement-BcSyVE7S.js.map +1 -1
  194. package/dist/getKeyboardFocusableElements-QqcABz0D.js.map +1 -1
  195. package/dist/hooks/useMergeRefs/useMergeRefs.d.ts +11 -0
  196. package/dist/{index-V5Ez2gq_.js → index-DrM3iid4.js} +2 -2
  197. package/dist/{index-V5Ez2gq_.js.map → index-DrM3iid4.js.map} +1 -1
  198. package/dist/index-tZvMCc77.js.map +1 -1
  199. package/dist/{index.esm-D889iexm.js → index.esm-BwMVvxTV.js} +199 -144
  200. package/dist/index.esm-BwMVvxTV.js.map +1 -0
  201. package/dist/index.js +52 -52
  202. package/dist/index.js.map +1 -1
  203. package/dist/internal/hooks/useFocusWithin/useFocusWithin.d.ts +2 -1
  204. package/dist/internal/hooks/useKeyboardFocusables/useKeyboardFocusables.d.ts +0 -1
  205. package/dist/internal/hooks/useOnClickOutside/useOnClickOutside.d.ts +5 -1
  206. package/dist/makeZeroShortcutPreprocessor-CxsiGTRW.js.map +1 -1
  207. package/dist/{proxy-CreWmH-e.js → proxy-BbFHSE6L.js} +8631 -8680
  208. package/dist/proxy-BbFHSE6L.js.map +1 -0
  209. package/dist/{use-reduced-motion-znCm41qB.js → use-reduced-motion-DSpxmqyT.js} +3 -3
  210. package/dist/use-reduced-motion-DSpxmqyT.js.map +1 -0
  211. package/dist/useAccessibleColor-BYKjkGRg.js.map +1 -1
  212. package/dist/useBreakpoint-Cv5fnZxs.js.map +1 -1
  213. package/dist/{useFocusWithin-BhhgRXdZ.js → useFocusWithin-hi77jsrB.js} +6 -3
  214. package/dist/useFocusWithin-hi77jsrB.js.map +1 -0
  215. package/dist/useInfiniteCombobox-WcRgC9p6.js.map +1 -1
  216. package/dist/useIntersectionObserver-BEmMDO3P.js.map +1 -1
  217. package/dist/{useDialogTransitionStates-2NaE_noq.js → useKeyboardFocusables-ek2mYel-.js} +46 -5
  218. package/dist/useKeyboardFocusables-ek2mYel-.js.map +1 -0
  219. package/dist/useLayoutPropsUtil-DjD5IMh0.js.map +1 -1
  220. package/dist/useMergeRefs-Dfmtq9cI.js +22 -0
  221. package/dist/useMergeRefs-Dfmtq9cI.js.map +1 -0
  222. package/dist/useMergeRefs.js +1 -1
  223. package/dist/{useOnClickOutside-BHEWMLa9.js → useOnClickOutside-C5AZE_I6.js} +6 -62
  224. package/dist/useOnClickOutside-C5AZE_I6.js.map +1 -0
  225. package/dist/useOptionallyControlledState-DbDuos5L.js.map +1 -1
  226. package/dist/{usePopoverSupport-DIjjfodl.js → usePopoverSupport-CWTCDfN2.js} +2 -2
  227. package/dist/{usePopoverSupport-DIjjfodl.js.map → usePopoverSupport-CWTCDfN2.js.map} +1 -1
  228. package/dist/usePrefersColorScheme-_hT7dK7_.js.map +1 -1
  229. package/dist/usePrevious-Bvq-5auG.js.map +1 -1
  230. package/dist/useSize.js.map +1 -1
  231. package/dist/{useSwipe-CULmVQEk.js → useSwipe-Cp-CJxLU.js} +2 -2
  232. package/dist/{useSwipe-CULmVQEk.js.map → useSwipe-Cp-CJxLU.js.map} +1 -1
  233. package/dist/useSwipe.js +1 -1
  234. package/dist/useTrackingContext-DRwDL8DE.js.map +1 -1
  235. package/dist/useTrackingId.js.map +1 -1
  236. package/dist/utils-CnKBdBNm.js +50 -0
  237. package/dist/utils-CnKBdBNm.js.map +1 -0
  238. package/package.json +12 -18
  239. package/dist/Button.module-pUNSKoVC.js +0 -25
  240. package/dist/Button.module-pUNSKoVC.js.map +0 -1
  241. package/dist/Calendar-BQ5F2ENO.js.map +0 -1
  242. package/dist/Combobox-B9nesJuc.js.map +0 -1
  243. package/dist/DateField-DXxPsRtf.js.map +0 -1
  244. package/dist/DateFieldRange-Xauviu1w.js.map +0 -1
  245. package/dist/DateFieldSingle-yLnwpVzd.js.map +0 -1
  246. package/dist/DrawerContext-DboTgTmo.js.map +0 -1
  247. package/dist/Menu-DEVZz9xZ.js.map +0 -1
  248. package/dist/Page-BMDkbDcU.js.map +0 -1
  249. package/dist/Pagination-BJsCppgW.js.map +0 -1
  250. package/dist/Popover-r26xMIfm.js.map +0 -1
  251. package/dist/SideNav-CBAzYyML.js.map +0 -1
  252. package/dist/Tab-wNucMTgo.js.map +0 -1
  253. package/dist/TimeField-CmbErrsZ.js.map +0 -1
  254. package/dist/Toolbar-D4zuUFhb.js.map +0 -1
  255. package/dist/components/DateFieldSingle/internal/useDateFieldOrchestration.d.ts +0 -17
  256. package/dist/index.esm-D889iexm.js.map +0 -1
  257. package/dist/proxy-CreWmH-e.js.map +0 -1
  258. package/dist/use-reduced-motion-znCm41qB.js.map +0 -1
  259. package/dist/useDateFieldOrchestration-BNJCsRkS.js +0 -138
  260. package/dist/useDateFieldOrchestration-BNJCsRkS.js.map +0 -1
  261. package/dist/useDialogTransitionStates-2NaE_noq.js.map +0 -1
  262. package/dist/useFocusWithin-BhhgRXdZ.js.map +0 -1
  263. package/dist/useMergeRefs-Bde85AWI.js +0 -21
  264. package/dist/useMergeRefs-Bde85AWI.js.map +0 -1
  265. package/dist/useOnClickOutside-BHEWMLa9.js.map +0 -1
  266. package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT.js +0 -18
  267. package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT.js.map +0 -1
@@ -16,7 +16,6 @@ type PopoverTriggerChildrenReturnType = {
16
16
  * Use aria-expanded instead
17
17
  */
18
18
  "data-state": dataStateType;
19
- "data-test": string;
20
19
  };
21
20
  /**
22
21
  * Props for the PopoverTrigger component
@@ -1,7 +1,6 @@
1
1
  import { CSSProperties, Dispatch, RefObject, SetStateAction } from 'react';
2
2
  import { PopoverProps } from '../Popover';
3
3
  import { Placement } from '@floating-ui/react-dom';
4
- import { FocusableElement } from 'tabbable';
5
4
  export type PopoverContextProps = {
6
5
  popoverId: string;
7
6
  invoker?: HTMLElement;
@@ -13,7 +12,6 @@ export type PopoverContextProps = {
13
12
  arrowElement?: HTMLSpanElement;
14
13
  setArrowElement?: Dispatch<SetStateAction<HTMLSpanElement | undefined>>;
15
14
  openState: boolean;
16
- setOpenState: Dispatch<SetStateAction<boolean>>;
17
15
  popoverStyle?: CSSProperties;
18
16
  placement?: Placement;
19
17
  openPopover: () => void;
@@ -35,6 +33,10 @@ export type PopoverContextProps = {
35
33
  disableTriggerFocus: PopoverProps["disableTriggerFocus"];
36
34
  arrowRef: RefObject<HTMLSpanElement>;
37
35
  resetKey: number;
38
- focusables: FocusableElement[] | null;
36
+ delay: PopoverProps["delay"];
37
+ triggerHovered: boolean;
38
+ setTriggerHovered: Dispatch<SetStateAction<boolean>>;
39
+ contentHovered: boolean;
40
+ setContentHovered: Dispatch<SetStateAction<boolean>>;
39
41
  };
40
42
  export declare const PopoverContext: import('react').Context<PopoverContextProps | null>;
@@ -8,8 +8,8 @@ export declare function usePopoverContext(): {
8
8
  onMouseLeave: () => void;
9
9
  onKeyDown: (e: KeyboardEvent) => void;
10
10
  onClick: () => void;
11
- onFocus: () => void;
12
- onBlur: () => void;
11
+ onFocus: (_e: React.FocusEvent) => void;
12
+ onBlur: (e: React.FocusEvent) => void;
13
13
  "aria-haspopup": boolean;
14
14
  "aria-expanded": boolean;
15
15
  "aria-details": string;
@@ -29,7 +29,6 @@ export declare function usePopoverContext(): {
29
29
  };
30
30
  rootNode: Node | undefined;
31
31
  onClose: (() => void) | undefined;
32
- setOpen: import('react').Dispatch<import('react').SetStateAction<boolean>>;
33
32
  open: boolean;
34
33
  openOnHover: boolean | undefined;
35
34
  controlled: boolean;
@@ -46,5 +45,8 @@ export declare function usePopoverContext(): {
46
45
  disableFlipFallback: boolean | undefined;
47
46
  disableFocusLock: boolean | undefined;
48
47
  disableTriggerFocus: boolean | undefined;
49
- focusables: import('tabbable').FocusableElement[] | null;
48
+ triggerHovered: boolean;
49
+ setTriggerHovered: import('react').Dispatch<import('react').SetStateAction<boolean>>;
50
+ contentHovered: boolean;
51
+ setContentHovered: import('react').Dispatch<import('react').SetStateAction<boolean>>;
50
52
  } | undefined;
@@ -87,4 +87,7 @@ export type TimeFieldProps = Omit<TextFieldProps, "onChange" | "value" | "defaul
87
87
  * }}
88
88
  * />
89
89
  */
90
- export declare const TimeField: import('react').ForwardRefExoticComponent<TimeFieldProps & import('react').RefAttributes<HTMLInputElement>>;
90
+ export declare const TimeField: {
91
+ (props: TimeFieldProps): import("react/jsx-runtime").JSX.Element;
92
+ displayName: string;
93
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"extends-Bg2s_OKl.js","sources":["../../../node_modules/.pnpm/@babel+runtime@7.28.2/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../node_modules/.pnpm/@babel+runtime@7.28.2/node_modules/@babel/runtime/helpers/esm/extends.js"],"sourcesContent":["function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };"],"names":[],"mappings":"AAAA,SAAS,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE;AAC7C,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,EAAE;AAC1B,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AACrD,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC7B,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACf;AACA,EAAE,OAAO,CAAC;AACV;;ACRA,SAAS,QAAQ,GAAG;AACpB,EAAE,OAAO,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE;AACxE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AAC1B,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE;AACA,IAAI,OAAO,CAAC;AACZ,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AACpC;;;;","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"extends-Bg2s_OKl.js","sources":["../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../node_modules/.pnpm/@babel+runtime@7.28.4/node_modules/@babel/runtime/helpers/esm/extends.js"],"sourcesContent":["function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };"],"names":[],"mappings":"AAAA,SAAS,6BAA6B,CAAC,CAAC,EAAE,CAAC,EAAE;AAC7C,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,OAAO,EAAE;AAC1B,EAAE,IAAI,CAAC,GAAG,EAAE;AACZ,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AACrD,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC7B,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACf,EAAE;AACF,EAAE,OAAO,CAAC;AACV;;ACRA,SAAS,QAAQ,GAAG;AACpB,EAAE,OAAO,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE;AACxE,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AAC1B,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,IAAI;AACJ,IAAI,OAAO,CAAC;AACZ,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AACpC;;;;","x_google_ignoreList":[0,1]}
@@ -1 +1 @@
1
- {"version":3,"file":"getActiveElement-BcSyVE7S.js","sources":["../src/internal/functions/getActiveElement.ts"],"sourcesContent":["export const getActiveElement = (\n activeDocument: Document | ShadowRoot,\n): HTMLElement | null => {\n const activeElement = activeDocument.activeElement;\n if (!activeElement) {\n return activeElement as null;\n }\n if (activeElement.tagName === \"IFRAME\") {\n const iframes = Array.from(document.getElementsByTagName(\"iframe\"));\n if (iframes.includes(activeElement as HTMLIFrameElement)) {\n const iframeActiveElement = activeElement as HTMLIFrameElement;\n const iframeActiveDocument =\n iframeActiveElement.contentDocument ||\n iframeActiveElement.contentWindow?.document;\n if (!iframeActiveDocument) return activeElement as HTMLElement;\n return getActiveElement(iframeActiveDocument);\n }\n }\n if (!activeElement.shadowRoot) {\n return activeElement as HTMLElement;\n }\n if (activeElement.shadowRoot) {\n return getActiveElement(activeElement.shadowRoot);\n }\n return activeElement as HTMLElement;\n};\n"],"names":[],"mappings":"AAAa,MAAA,gBAAA,GAAmB,CAC9B,cACuB,KAAA;AACvB,EAAA,MAAM,gBAAgB,cAAe,CAAA,aAAA;AACrC,EAAA,IAAI,CAAC,aAAe,EAAA;AAClB,IAAO,OAAA,aAAA;AAAA;AAET,EAAI,IAAA,aAAA,CAAc,YAAY,QAAU,EAAA;AACtC,IAAA,MAAM,UAAU,KAAM,CAAA,IAAA,CAAK,QAAS,CAAA,oBAAA,CAAqB,QAAQ,CAAC,CAAA;AAClE,IAAI,IAAA,OAAA,CAAQ,QAAS,CAAA,aAAkC,CAAG,EAAA;AACxD,MAAA,MAAM,mBAAsB,GAAA,aAAA;AAC5B,MAAA,MAAM,oBACJ,GAAA,mBAAA,CAAoB,eACpB,IAAA,mBAAA,CAAoB,aAAe,EAAA,QAAA;AACrC,MAAI,IAAA,CAAC,sBAA6B,OAAA,aAAA;AAClC,MAAA,OAAO,iBAAiB,oBAAoB,CAAA;AAAA;AAC9C;AAEF,EAAI,IAAA,CAAC,cAAc,UAAY,EAAA;AAC7B,IAAO,OAAA,aAAA;AAAA;AAET,EAAA,IAAI,cAAc,UAAY,EAAA;AAC5B,IAAO,OAAA,gBAAA,CAAiB,cAAc,UAAU,CAAA;AAAA;AAElD,EAAO,OAAA,aAAA;AACT;;;;"}
1
+ {"version":3,"file":"getActiveElement-BcSyVE7S.js","sources":["../src/internal/functions/getActiveElement.ts"],"sourcesContent":["export const getActiveElement = (\n activeDocument: Document | ShadowRoot,\n): HTMLElement | null => {\n const activeElement = activeDocument.activeElement;\n if (!activeElement) {\n return activeElement as null;\n }\n if (activeElement.tagName === \"IFRAME\") {\n const iframes = Array.from(document.getElementsByTagName(\"iframe\"));\n if (iframes.includes(activeElement as HTMLIFrameElement)) {\n const iframeActiveElement = activeElement as HTMLIFrameElement;\n const iframeActiveDocument =\n iframeActiveElement.contentDocument ||\n iframeActiveElement.contentWindow?.document;\n if (!iframeActiveDocument) return activeElement as HTMLElement;\n return getActiveElement(iframeActiveDocument);\n }\n }\n if (!activeElement.shadowRoot) {\n return activeElement as HTMLElement;\n }\n if (activeElement.shadowRoot) {\n return getActiveElement(activeElement.shadowRoot);\n }\n return activeElement as HTMLElement;\n};\n"],"names":[],"mappings":"AAAO,MAAM,gBAAA,GAAmB,CAC9B,cAAA,KACuB;AACvB,EAAA,MAAM,gBAAgB,cAAA,CAAe,aAAA;AACrC,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA,OAAO,aAAA;AAAA,EACT;AACA,EAAA,IAAI,aAAA,CAAc,YAAY,QAAA,EAAU;AACtC,IAAA,MAAM,UAAU,KAAA,CAAM,IAAA,CAAK,QAAA,CAAS,oBAAA,CAAqB,QAAQ,CAAC,CAAA;AAClE,IAAA,IAAI,OAAA,CAAQ,QAAA,CAAS,aAAkC,CAAA,EAAG;AACxD,MAAA,MAAM,mBAAA,GAAsB,aAAA;AAC5B,MAAA,MAAM,oBAAA,GACJ,mBAAA,CAAoB,eAAA,IACpB,mBAAA,CAAoB,aAAA,EAAe,QAAA;AACrC,MAAA,IAAI,CAAC,sBAAsB,OAAO,aAAA;AAClC,MAAA,OAAO,iBAAiB,oBAAoB,CAAA;AAAA,IAC9C;AAAA,EACF;AACA,EAAA,IAAI,CAAC,cAAc,UAAA,EAAY;AAC7B,IAAA,OAAO,aAAA;AAAA,EACT;AACA,EAAA,IAAI,cAAc,UAAA,EAAY;AAC5B,IAAA,OAAO,gBAAA,CAAiB,cAAc,UAAU,CAAA;AAAA,EAClD;AACA,EAAA,OAAO,aAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"getKeyboardFocusableElements-QqcABz0D.js","sources":["../src/internal/functions/getKeyboardFocusableElements.ts"],"sourcesContent":["/**\n * Retrieves all keyboard focusable elements within a given container element.\n *\n * Features:\n * - Finds all elements that can receive keyboard focus\n * - Filters out disabled, hidden, and inert elements\n * - Respects ARIA attributes for accessibility\n * - Checks computed styles for visibility\n * - Supports all standard focusable elements (links, buttons, inputs, etc.)\n * - Handles null and undefined input gracefully\n * - Returns array of focusable HTMLElements\n * - Excludes elements with tabindex=\"-1\"\n *\n * Focusable Elements Detected:\n * - Links with href attributes\n * - Buttons (all types)\n * - Form inputs (text, checkbox, radio, etc.)\n * - Textareas and select elements\n * - Details elements\n * - Elements with positive tabindex values\n *\n * @param element - The container element to search for focusable elements\n * @returns Array of focusable HTMLElements, or empty array if no element provided\n */\nexport function getKeyboardFocusableElements(element?: HTMLElement | null) {\n if (!element) return [];\n const elements = element.querySelectorAll(\n 'a[href], button, input, textarea, select, details,[tabindex]:not([tabindex=\"-1\"])',\n );\n\n return Array.from(elements).filter(\n (el) =>\n !el.hasAttribute(\"disabled\") &&\n !el.getAttribute(\"aria-hidden\") &&\n !el.getAttribute(\"inert\") &&\n !(globalThis.getComputedStyle(el).display === \"none\"),\n );\n}\n"],"names":[],"mappings":"AAwBO,SAAS,6BAA6B,OAA8B,EAAA;AACzE,EAAI,IAAA,CAAC,OAAS,EAAA,OAAO,EAAC;AACtB,EAAA,MAAM,WAAW,OAAQ,CAAA,gBAAA;AAAA,IACvB;AAAA,GACF;AAEA,EAAO,OAAA,KAAA,CAAM,IAAK,CAAA,QAAQ,CAAE,CAAA,MAAA;AAAA,IAC1B,CAAC,OACC,CAAC,EAAA,CAAG,aAAa,UAAU,CAAA,IAC3B,CAAC,EAAA,CAAG,YAAa,CAAA,aAAa,KAC9B,CAAC,EAAA,CAAG,aAAa,OAAO,CAAA,IACxB,EAAE,UAAW,CAAA,gBAAA,CAAiB,EAAE,CAAA,CAAE,OAAY,KAAA,MAAA;AAAA,GAClD;AACF;;;;"}
1
+ {"version":3,"file":"getKeyboardFocusableElements-QqcABz0D.js","sources":["../src/internal/functions/getKeyboardFocusableElements.ts"],"sourcesContent":["/**\n * Retrieves all keyboard focusable elements within a given container element.\n *\n * Features:\n * - Finds all elements that can receive keyboard focus\n * - Filters out disabled, hidden, and inert elements\n * - Respects ARIA attributes for accessibility\n * - Checks computed styles for visibility\n * - Supports all standard focusable elements (links, buttons, inputs, etc.)\n * - Handles null and undefined input gracefully\n * - Returns array of focusable HTMLElements\n * - Excludes elements with tabindex=\"-1\"\n *\n * Focusable Elements Detected:\n * - Links with href attributes\n * - Buttons (all types)\n * - Form inputs (text, checkbox, radio, etc.)\n * - Textareas and select elements\n * - Details elements\n * - Elements with positive tabindex values\n *\n * @param element - The container element to search for focusable elements\n * @returns Array of focusable HTMLElements, or empty array if no element provided\n */\nexport function getKeyboardFocusableElements(element?: HTMLElement | null) {\n if (!element) return [];\n const elements = element.querySelectorAll(\n 'a[href], button, input, textarea, select, details,[tabindex]:not([tabindex=\"-1\"])',\n );\n\n return Array.from(elements).filter(\n (el) =>\n !el.hasAttribute(\"disabled\") &&\n !el.getAttribute(\"aria-hidden\") &&\n !el.getAttribute(\"inert\") &&\n !(globalThis.getComputedStyle(el).display === \"none\"),\n );\n}\n"],"names":[],"mappings":"AAwBO,SAAS,6BAA6B,OAAA,EAA8B;AACzE,EAAA,IAAI,CAAC,OAAA,EAAS,OAAO,EAAC;AACtB,EAAA,MAAM,WAAW,OAAA,CAAQ,gBAAA;AAAA,IACvB;AAAA,GACF;AAEA,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,QAAQ,CAAA,CAAE,MAAA;AAAA,IAC1B,CAAC,OACC,CAAC,EAAA,CAAG,aAAa,UAAU,CAAA,IAC3B,CAAC,EAAA,CAAG,YAAA,CAAa,aAAa,KAC9B,CAAC,EAAA,CAAG,aAAa,OAAO,CAAA,IACxB,EAAE,UAAA,CAAW,gBAAA,CAAiB,EAAE,CAAA,CAAE,OAAA,KAAY,MAAA;AAAA,GAClD;AACF;;;;"}
@@ -15,3 +15,14 @@ import { Ref, RefCallback } from 'react';
15
15
  * @returns Single callback ref that handles all provided refs, or null if all refs are null
16
16
  */
17
17
  export declare function useMergeRefs<Instance>(refs: Array<Ref<Instance> | undefined>): RefCallback<Instance> | null;
18
+ /**
19
+ * Merges an array of refs into a single callback ref.
20
+ *
21
+ * Features:
22
+ * - Merges an array of refs into a single callback ref
23
+ * - Handles both function refs and object refs
24
+ *
25
+ * @param refs - Array of React refs to merge
26
+ * @returns
27
+ */
28
+ export declare function mergeRefs<Instance>(refs: Array<Ref<Instance> | undefined>): RefCallback<Instance> | null;
@@ -3,7 +3,7 @@ import { I as Icon } from './Icon-D8SPKeO4.js';
3
3
  import * as React from 'react';
4
4
  import { forwardRef } from 'react';
5
5
  import { c as cx } from './index-tZvMCc77.js';
6
- import { B as ButtonCompound } from './ButtonCompound-BF2Q6gGX.js';
6
+ import { B as ButtonCompound } from './ButtonCompound-BbPK-Xjj.js';
7
7
 
8
8
  import './index.css';const SvgDragIndicator = (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: "M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z" }));
9
9
 
@@ -103,4 +103,4 @@ const Dnd = {
103
103
  };
104
104
 
105
105
  export { Dnd as D, DndSortLine as a, DndHandleButton as b, DndHandle as c, styles as s };
106
- //# sourceMappingURL=index-V5Ez2gq_.js.map
106
+ //# sourceMappingURL=index-DrM3iid4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-V5Ez2gq_.js","sources":["../../hammer-icon/mdi/round/drag_indicator.svg","../src/components/Dnd/DndHandle.tsx","../src/components/Dnd/DndHandleButton.tsx","../src/components/Dnd/DndSortLine.tsx","../src/components/Dnd/DndZone.tsx","../src/components/Dnd/index.ts"],"sourcesContent":["import * as React from \"react\";\nconst SvgDragIndicator = (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: \"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\" }));\nexport default SvgDragIndicator;\n","import { Icon } from \"../Icon\";\nimport DragIndicator from \"@servicetitan/hammer-icon/mdi/round/drag_indicator.svg\";\nimport styles from \"./DndHandle.module.scss\";\nimport cx from \"classnames\";\n\n/**\n * Props for the DndHandle component\n */\nexport type DndHandleProps = {\n /**\n * Additional CSS class names to apply to the drag handle.\n */\n className?: string;\n};\n\n/**\n * A reusable drag handle icon component for drag and drop interactions.\n *\n * Features:\n * - Standardized drag indicator icon\n * - Accessible with proper ARIA attributes\n * - Customizable styling through className prop\n * - Consistent visual appearance across applications\n * - Lightweight and performant\n * - Supports all standard HTML element props\n *\n * @example\n * <DndHandle className=\"custom-drag-handle\" />\n */\nexport function DndHandle({ className }: { className?: string }) {\n const handleClasses = cx(styles.handle, className);\n return (\n <Icon svg={DragIndicator} className={handleClasses} role=\"presentation\" />\n );\n}\n","import { ButtonCompound } from \"../ButtonCompound\";\nimport handleStyles from \"./DndHandle.module.scss\";\nimport cx from \"classnames\";\nimport { forwardRef } from \"react\";\nimport { DndHandle } from \"./DndHandle\";\n\n/**\n * Props for the DndHandleButton component\n * @extends React.ComponentPropsWithoutRef<typeof ButtonCompound>\n */\nexport interface DndHandleButtonProps\n extends React.ComponentPropsWithoutRef<typeof ButtonCompound> {\n /**\n * Indicates whether the handle is currently being dragged.\n * @default false\n */\n isActive?: boolean;\n}\n\n/**\n * A reusable drag handle button component for drag and drop functionality.\n *\n * Features:\n * - Interactive button with drag handle icon\n * - Visual feedback for active drag state\n * - Accessible with proper ARIA attributes\n * - Extends ButtonCompound functionality\n * - Customizable styling through className prop\n * - Supports all standard button props\n * - Consistent visual appearance across applications\n *\n * @example\n * <DndHandleButton\n * isActive={isDragging}\n * className=\"custom-handle-button\"\n * onClick={handleClick}\n * />\n */\nexport const DndHandleButton = forwardRef<\n HTMLButtonElement,\n DndHandleButtonProps\n>(({ isActive = false, className, ...props }, ref) => {\n const handleButtonClasses = cx(className, handleStyles[\"handle-button\"], {\n [handleStyles[\"active\"]]: isActive,\n });\n\n return (\n <ButtonCompound\n ref={ref}\n className={handleButtonClasses}\n type=\"button\"\n shape=\"rounded\"\n {...props}\n >\n <DndHandle />\n </ButtonCompound>\n );\n});\n\nDndHandleButton.displayName = \"DndHandleButton\";\n","import cx from \"classnames\";\n\nimport styles from \"./Dnd.module.scss\";\nimport { CSSProperties } from \"react\";\n\n/**\n * Props for the DndSortLine component\n * @extends React.ComponentPropsWithoutRef<\"div\">\n */\nexport type SortLineProps = React.ComponentPropsWithoutRef<\"div\"> & {\n /**\n * The offset of the line from the item. This is a CSS value, typically negative.\n */\n offset: string;\n /**\n * The orientation of the sort - Note this may be counterintuitive, as the line is rendered perpendicular to the sort.\n */\n orientation: \"horizontal\" | \"vertical\";\n /**\n * The position of the line relative to a target item.\n */\n position: \"before\" | \"after\";\n};\n\n/**\n * A visual indicator line that shows where an item will be dropped during drag and drop operations.\n *\n * Features:\n * - Visual feedback for drop positioning\n * - Configurable orientation (horizontal/vertical)\n * - Adjustable positioning (before/after)\n * - Customizable offset for precise placement\n * - Accessible with proper ARIA attributes\n * - Automatic CSS class management\n * - Supports all standard HTML div props\n *\n * @example\n * <DndSortLine\n * offset=\"-10px\"\n * orientation=\"vertical\"\n * position=\"after\"\n * className=\"custom-drop-line\"\n * />\n */\nexport const DndSortLine = ({\n offset,\n orientation,\n position,\n ...rest\n}: SortLineProps) => {\n const classes = cx(\n styles[\"drop-line\"],\n styles[`orientation-${orientation}`],\n styles[`position-${position}`],\n );\n\n return (\n <div\n aria-hidden\n className={classes}\n style={{ \"--drop-line-offset\": offset } as CSSProperties}\n {...rest}\n />\n );\n};\n","import { ElementType, forwardRef, ReactNode } from \"react\";\nimport cx from \"classnames\";\n\nimport styles from \"./Dnd.module.scss\";\n\n/**\n * Props for the DndZone component\n * @extends Omit<React.ComponentPropsWithoutRef<T>, \"el\" | \"ref\">\n */\nexport type DndZoneProps<T extends ElementType = \"div\"> = {\n /**\n * The HTML element type to render. Can be any valid HTML element or React component.\n * @default \"div\"\n */\n el?: T;\n /**\n * The content to be rendered inside the drop zone.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names to apply to the drop zone.\n */\n className?: string;\n /**\n * Indicates whether a draggable item is currently over this drop zone.\n */\n isOver: boolean;\n /**\n * Indicates whether the current drag operation is valid for this drop zone.\n */\n isValid: boolean;\n /**\n * Indicates whether any item is currently being dragged.\n */\n isDragging: boolean;\n} & Omit<React.ComponentPropsWithoutRef<T>, \"el\" | \"ref\">;\n\n/**\n * Base styling component for drop zones that handles visual states and styling.\n *\n * Features:\n * - Configurable HTML element rendering with the 'el' prop\n * - Visual feedback for drag states (over, valid, dragging)\n * - Automatic CSS class management based on drag state\n * - Supports all standard HTML element props\n * - Accessible with proper ARIA attributes\n * - Flexible styling through className prop\n * - Responsive design that adapts to container\n *\n * @example\n * <DndZone\n * isOver={isOver}\n * isValid={isValid}\n * isDragging={isDragging}\n * className=\"custom-drop-zone\"\n * >\n * Drop items here\n * </DndZone>\n */\nexport const DndZone = forwardRef<HTMLDivElement, DndZoneProps<ElementType>>(\n (\n {\n el: Component = \"div\" as ElementType,\n children,\n className,\n isDragging,\n isOver,\n isValid,\n ...rest\n },\n ref,\n ) => {\n const classes = cx(className, {\n [styles[\"drop-zone\"]]: true,\n [styles[\"over-valid\"]]: isDragging && isOver && isValid,\n [styles[\"over-invalid\"]]: isDragging && isOver && !isValid,\n [styles[\"active-not-over\"]]: isDragging && !isOver,\n });\n\n return (\n <Component ref={ref} className={classes} {...rest}>\n {children}\n </Component>\n );\n },\n);\n\nDndZone.displayName = \"DndZoneBase\";\n","import { DndHandle } from \"./DndHandle\";\nimport { DndHandleButton } from \"./DndHandleButton\";\nimport { DndSortLine } from \"./DndSortLine\";\nimport { DndZone } from \"./DndZone\";\n\nexport const Dnd = {\n Handle: DndHandle,\n HandleButton: DndHandleButton,\n SortLine: DndSortLine,\n Zone: DndZone,\n};\n"],"names":["styles","DragIndicator"],"mappings":"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"}
1
+ {"version":3,"file":"index-DrM3iid4.js","sources":["../../hammer-icon/mdi/round/drag_indicator.svg","../src/components/Dnd/DndHandle.tsx","../src/components/Dnd/DndHandleButton.tsx","../src/components/Dnd/DndSortLine.tsx","../src/components/Dnd/DndZone.tsx","../src/components/Dnd/index.ts"],"sourcesContent":["import * as React from \"react\";\nconst SvgDragIndicator = (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: \"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\" }));\nexport default SvgDragIndicator;\n","import { Icon } from \"../Icon\";\nimport DragIndicator from \"@servicetitan/hammer-icon/mdi/round/drag_indicator.svg\";\nimport styles from \"./DndHandle.module.scss\";\nimport cx from \"classnames\";\n\n/**\n * Props for the DndHandle component\n */\nexport type DndHandleProps = {\n /**\n * Additional CSS class names to apply to the drag handle.\n */\n className?: string;\n};\n\n/**\n * A reusable drag handle icon component for drag and drop interactions.\n *\n * Features:\n * - Standardized drag indicator icon\n * - Accessible with proper ARIA attributes\n * - Customizable styling through className prop\n * - Consistent visual appearance across applications\n * - Lightweight and performant\n * - Supports all standard HTML element props\n *\n * @example\n * <DndHandle className=\"custom-drag-handle\" />\n */\nexport function DndHandle({ className }: { className?: string }) {\n const handleClasses = cx(styles.handle, className);\n return (\n <Icon svg={DragIndicator} className={handleClasses} role=\"presentation\" />\n );\n}\n","import { ButtonCompound } from \"../ButtonCompound\";\nimport handleStyles from \"./DndHandle.module.scss\";\nimport cx from \"classnames\";\nimport { forwardRef } from \"react\";\nimport { DndHandle } from \"./DndHandle\";\n\n/**\n * Props for the DndHandleButton component\n * @extends React.ComponentPropsWithoutRef<typeof ButtonCompound>\n */\nexport interface DndHandleButtonProps\n extends React.ComponentPropsWithoutRef<typeof ButtonCompound> {\n /**\n * Indicates whether the handle is currently being dragged.\n * @default false\n */\n isActive?: boolean;\n}\n\n/**\n * A reusable drag handle button component for drag and drop functionality.\n *\n * Features:\n * - Interactive button with drag handle icon\n * - Visual feedback for active drag state\n * - Accessible with proper ARIA attributes\n * - Extends ButtonCompound functionality\n * - Customizable styling through className prop\n * - Supports all standard button props\n * - Consistent visual appearance across applications\n *\n * @example\n * <DndHandleButton\n * isActive={isDragging}\n * className=\"custom-handle-button\"\n * onClick={handleClick}\n * />\n */\nexport const DndHandleButton = forwardRef<\n HTMLButtonElement,\n DndHandleButtonProps\n>(({ isActive = false, className, ...props }, ref) => {\n const handleButtonClasses = cx(className, handleStyles[\"handle-button\"], {\n [handleStyles[\"active\"]]: isActive,\n });\n\n return (\n <ButtonCompound\n ref={ref}\n className={handleButtonClasses}\n type=\"button\"\n shape=\"rounded\"\n {...props}\n >\n <DndHandle />\n </ButtonCompound>\n );\n});\n\nDndHandleButton.displayName = \"DndHandleButton\";\n","import cx from \"classnames\";\n\nimport styles from \"./Dnd.module.scss\";\nimport { CSSProperties } from \"react\";\n\n/**\n * Props for the DndSortLine component\n * @extends React.ComponentPropsWithoutRef<\"div\">\n */\nexport type SortLineProps = React.ComponentPropsWithoutRef<\"div\"> & {\n /**\n * The offset of the line from the item. This is a CSS value, typically negative.\n */\n offset: string;\n /**\n * The orientation of the sort - Note this may be counterintuitive, as the line is rendered perpendicular to the sort.\n */\n orientation: \"horizontal\" | \"vertical\";\n /**\n * The position of the line relative to a target item.\n */\n position: \"before\" | \"after\";\n};\n\n/**\n * A visual indicator line that shows where an item will be dropped during drag and drop operations.\n *\n * Features:\n * - Visual feedback for drop positioning\n * - Configurable orientation (horizontal/vertical)\n * - Adjustable positioning (before/after)\n * - Customizable offset for precise placement\n * - Accessible with proper ARIA attributes\n * - Automatic CSS class management\n * - Supports all standard HTML div props\n *\n * @example\n * <DndSortLine\n * offset=\"-10px\"\n * orientation=\"vertical\"\n * position=\"after\"\n * className=\"custom-drop-line\"\n * />\n */\nexport const DndSortLine = ({\n offset,\n orientation,\n position,\n ...rest\n}: SortLineProps) => {\n const classes = cx(\n styles[\"drop-line\"],\n styles[`orientation-${orientation}`],\n styles[`position-${position}`],\n );\n\n return (\n <div\n aria-hidden\n className={classes}\n style={{ \"--drop-line-offset\": offset } as CSSProperties}\n {...rest}\n />\n );\n};\n","import { ElementType, forwardRef, ReactNode } from \"react\";\nimport cx from \"classnames\";\n\nimport styles from \"./Dnd.module.scss\";\n\n/**\n * Props for the DndZone component\n * @extends Omit<React.ComponentPropsWithoutRef<T>, \"el\" | \"ref\">\n */\nexport type DndZoneProps<T extends ElementType = \"div\"> = {\n /**\n * The HTML element type to render. Can be any valid HTML element or React component.\n * @default \"div\"\n */\n el?: T;\n /**\n * The content to be rendered inside the drop zone.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names to apply to the drop zone.\n */\n className?: string;\n /**\n * Indicates whether a draggable item is currently over this drop zone.\n */\n isOver: boolean;\n /**\n * Indicates whether the current drag operation is valid for this drop zone.\n */\n isValid: boolean;\n /**\n * Indicates whether any item is currently being dragged.\n */\n isDragging: boolean;\n} & Omit<React.ComponentPropsWithoutRef<T>, \"el\" | \"ref\">;\n\n/**\n * Base styling component for drop zones that handles visual states and styling.\n *\n * Features:\n * - Configurable HTML element rendering with the 'el' prop\n * - Visual feedback for drag states (over, valid, dragging)\n * - Automatic CSS class management based on drag state\n * - Supports all standard HTML element props\n * - Accessible with proper ARIA attributes\n * - Flexible styling through className prop\n * - Responsive design that adapts to container\n *\n * @example\n * <DndZone\n * isOver={isOver}\n * isValid={isValid}\n * isDragging={isDragging}\n * className=\"custom-drop-zone\"\n * >\n * Drop items here\n * </DndZone>\n */\nexport const DndZone = forwardRef<HTMLDivElement, DndZoneProps<ElementType>>(\n (\n {\n el: Component = \"div\" as ElementType,\n children,\n className,\n isDragging,\n isOver,\n isValid,\n ...rest\n },\n ref,\n ) => {\n const classes = cx(className, {\n [styles[\"drop-zone\"]]: true,\n [styles[\"over-valid\"]]: isDragging && isOver && isValid,\n [styles[\"over-invalid\"]]: isDragging && isOver && !isValid,\n [styles[\"active-not-over\"]]: isDragging && !isOver,\n });\n\n return (\n <Component ref={ref} className={classes} {...rest}>\n {children}\n </Component>\n );\n },\n);\n\nDndZone.displayName = \"DndZoneBase\";\n","import { DndHandle } from \"./DndHandle\";\nimport { DndHandleButton } from \"./DndHandleButton\";\nimport { DndSortLine } from \"./DndSortLine\";\nimport { DndZone } from \"./DndZone\";\n\nexport const Dnd = {\n Handle: DndHandle,\n HandleButton: DndHandleButton,\n SortLine: DndSortLine,\n Zone: DndZone,\n};\n"],"names":["styles","DragIndicator"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index-tZvMCc77.js","sources":["../../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAKA;;AAEA,EAAA,CAAC,YAAY;;AAGb,GAAC,IAAI,MAAM,GAAG,EAAE,CAAC,cAAc;;GAE9B,SAAS,UAAU,IAAI;IACtB,IAAI,OAAO,GAAG,EAAE;;AAElB,IAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,KAAG,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;KACtB,IAAI,GAAG,EAAE;MACR,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AACnD;AACA;;AAEA,IAAE,OAAO,OAAO;AAChB;;AAEA,GAAC,SAAS,UAAU,EAAE,GAAG,EAAE;IACzB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC1D,KAAG,OAAO,GAAG;AACb;;AAEA,IAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,KAAG,OAAO,EAAE;AACZ;;AAEA,IAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;KACvB,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC;AACrC;;IAEE,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;AACxG,KAAG,OAAO,GAAG,CAAC,QAAQ,EAAE;AACxB;;IAEE,IAAI,OAAO,GAAG,EAAE;;AAElB,IAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;AACvB,KAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;AAC1C,MAAI,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC;AACvC;AACA;;AAEA,IAAE,OAAO,OAAO;AAChB;;AAEA,GAAC,SAAS,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;IACtC,IAAI,CAAC,QAAQ,EAAE;AACjB,KAAG,OAAO,KAAK;AACf;AACA;IACE,IAAI,KAAK,EAAE;AACb,KAAG,OAAO,KAAK,GAAG,GAAG,GAAG,QAAQ;AAChC;AACA;IACE,OAAO,KAAK,GAAG,QAAQ;AACzB;;GAEC,IAAqC,MAAM,CAAC,OAAO,EAAE;AACtD,IAAE,UAAU,CAAC,OAAO,GAAG,UAAU;AACjC,IAAE,iBAAiB,UAAU;AAC7B,IAAE,MAKM;AACR,IAAE,MAAM,CAAC,UAAU,GAAG,UAAU;AAChC;AACA,GAAC,EAAE,EAAA;;;;;;;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index-tZvMCc77.js","sources":["../../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAKA;;AAEA,EAAA,CAAC,YAAY;;AAGb,GAAC,IAAI,MAAM,GAAG,EAAE,CAAC,cAAc;;GAE9B,SAAS,UAAU,IAAI;IACtB,IAAI,OAAO,GAAG,EAAE;;AAElB,IAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,KAAG,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC;KACtB,IAAI,GAAG,EAAE;MACR,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AACnD,KAAA;AACA,IAAA;;AAEA,IAAE,OAAO,OAAO;AAChB,GAAA;;AAEA,GAAC,SAAS,UAAU,EAAE,GAAG,EAAE;IACzB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC1D,KAAG,OAAO,GAAG;AACb,IAAA;;AAEA,IAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,KAAG,OAAO,EAAE;AACZ,IAAA;;AAEA,IAAE,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;KACvB,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC;AACrC,IAAA;;IAEE,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;AACxG,KAAG,OAAO,GAAG,CAAC,QAAQ,EAAE;AACxB,IAAA;;IAEE,IAAI,OAAO,GAAG,EAAE;;AAElB,IAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;AACvB,KAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;AAC1C,MAAI,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC;AACvC,KAAA;AACA,IAAA;;AAEA,IAAE,OAAO,OAAO;AAChB,GAAA;;AAEA,GAAC,SAAS,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;IACtC,IAAI,CAAC,QAAQ,EAAE;AACjB,KAAG,OAAO,KAAK;AACf,IAAA;AACA;IACE,IAAI,KAAK,EAAE;AACb,KAAG,OAAO,KAAK,GAAG,GAAG,GAAG,QAAQ;AAChC,IAAA;AACA;IACE,OAAO,KAAK,GAAG,QAAQ;AACzB,GAAA;;GAEC,IAAqC,MAAM,CAAC,OAAO,EAAE;AACtD,IAAE,UAAU,CAAC,OAAO,GAAG,UAAU;AACjC,IAAE,iBAAiB,UAAU;AAC7B,GAAA,CAAE,MAKM;AACR,IAAE,MAAM,CAAC,UAAU,GAAG,UAAU;AAChC,GAAA;AACA,EAAA,CAAC,EAAE,EAAA;;;;;;;;;;","x_google_ignoreList":[0]}
@@ -295,12 +295,14 @@ class MaskModel {
295
295
  selection: [newCaretIndex, newCaretIndex],
296
296
  }, maskExpression, initialElementState);
297
297
  const prevLeadingPart = value.slice(0, from);
298
- const newLeadingValuePart = calibrateValueByMask({
298
+ const newLeadingPartState = calibrateValueByMask({
299
299
  value: newUnmaskedLeadingValuePart,
300
300
  selection: [newCaretIndex, newCaretIndex],
301
- }, maskExpression, initialElementState).value;
302
- const isInvalidCharsInsertion = prevLeadingPart === newLeadingValuePart ||
303
- newLeadingValuePart.length < prevLeadingPart.length;
301
+ }, maskExpression, initialElementState);
302
+ const isInvalidCharsInsertion = newLeadingPartState.value === prevLeadingPart ||
303
+ (newLeadingPartState.value.length < prevLeadingPart.length &&
304
+ removeFixedMaskCharacters(newLeadingPartState, maskExpression).value ===
305
+ this.unmaskInitialState.value.slice(0, unmaskedFrom));
304
306
  if (isInvalidCharsInsertion ||
305
307
  areElementStatesEqual(this, maskedElementState) // If typing new characters does not change value
306
308
  ) {
@@ -797,6 +799,7 @@ class Maskito extends MaskHistory {
797
799
  }
798
800
  handleInsert(event, data) {
799
801
  const { options, maxLength, elementState: initialElementState } = this;
802
+ const [from, to] = initialElementState.selection;
800
803
  const { elementState, data: insertedText = data } = this.preprocessor({
801
804
  data,
802
805
  elementState: initialElementState,
@@ -808,23 +811,27 @@ class Maskito extends MaskHistory {
808
811
  catch (_a) {
809
812
  return event.preventDefault();
810
813
  }
811
- const [from, to] = initialElementState.selection;
812
- const newPossibleState = {
813
- value: initialElementState.value.slice(0, from) +
814
- data +
815
- initialElementState.value.slice(to),
816
- selection: [from + data.length, from + data.length],
817
- };
818
814
  this.upcomingElementState = this.clampState(this.postprocessor(maskModel, initialElementState));
819
- if (!areElementStatesEqual(this.clampState(newPossibleState), this.upcomingElementState) &&
820
- options.overwriteMode === 'replace' &&
821
- newPossibleState.value.length > maxLength) {
822
- /**
823
- * Browsers know nothing about Maskito and its `overwriteMode`.
824
- * When textfield value length is already equal to attribute `maxlength`,
825
- * pressing any key (even with valid value) does not emit `input` event.
826
- */
827
- this.dispatchInputEvent({ inputType: 'insertText', data });
815
+ /**
816
+ * When textfield value length is already equal to attribute `maxlength`,
817
+ * pressing any key (even with valid value) does not emit `input` event
818
+ * (except to the case when user replaces some characters by selection).
819
+ */
820
+ const noInputEventDispatch = initialElementState.value.length >= maxLength && from === to;
821
+ if (noInputEventDispatch) {
822
+ if (options.overwriteMode === 'replace' &&
823
+ !areElementStatesEqual(this.upcomingElementState, initialElementState)) {
824
+ this.dispatchInputEvent({ inputType: 'insertText', data });
825
+ }
826
+ else {
827
+ /**
828
+ * This `beforeinput` event will not be followed by `input` event –
829
+ * clear computed state to avoid any possible side effect
830
+ * for new possible `input` event without preceding `beforeinput` event
831
+ * (e.g. browser autofill, `document.execCommand('delete')` etc.)
832
+ */
833
+ this.upcomingElementState = null;
834
+ }
828
835
  }
829
836
  }
830
837
  handleEnter(event) {
@@ -971,18 +978,169 @@ function countDigits(str) {
971
978
  return str.replaceAll(/\W/g, '').length;
972
979
  }
973
980
 
974
- function appendDate(initialDate, { day, month, year } = {}) {
975
- const date = new Date(initialDate);
976
- if (day) {
977
- date.setDate(date.getDate() + day);
981
+ const DATE_SEGMENTS_MAX_VALUES = {
982
+ day: 31,
983
+ month: 12,
984
+ year: 9999,
985
+ };
986
+
987
+ // eslint-disable-next-line i18n/no-russian-character
988
+ const DEFAULT_DECIMAL_PSEUDO_SEPARATORS = ['.', ',', 'б', 'ю'];
989
+
990
+ const DEFAULT_MIN_DATE = new Date('0001-01-01T00:00');
991
+ const DEFAULT_MAX_DATE = new Date('9999-12-31T23:59:59.999');
992
+
993
+ const DEFAULT_TIME_SEGMENT_MAX_VALUES = {
994
+ hours: 23,
995
+ minutes: 59,
996
+ seconds: 59,
997
+ milliseconds: 999,
998
+ };
999
+ const DEFAULT_TIME_SEGMENT_MIN_VALUES = {
1000
+ hours: 0,
1001
+ minutes: 0,
1002
+ seconds: 0,
1003
+ milliseconds: 0,
1004
+ };
1005
+
1006
+ /**
1007
+ * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.
1008
+ */
1009
+ const CHAR_NO_BREAK_SPACE = '\u00A0';
1010
+ /**
1011
+ * {@link https://symbl.cc/en/200B/ Zero width space}.
1012
+ */
1013
+ const CHAR_ZERO_WIDTH_SPACE = '\u200B';
1014
+ /**
1015
+ * {@link https://unicode-table.com/en/2013/ EN dash}
1016
+ * is used to indicate a range of numbers or a span of time.
1017
+ * @example 2006–2022
1018
+ */
1019
+ const CHAR_EN_DASH = '\u2013';
1020
+ /**
1021
+ * {@link https://unicode-table.com/en/2014/ EM dash}
1022
+ * is used to mark a break in a sentence.
1023
+ * @example Taiga UI — powerful set of open source components for Angular
1024
+ * ___
1025
+ * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!
1026
+ */
1027
+ const CHAR_EM_DASH = '\u2014';
1028
+ /**
1029
+ * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}
1030
+ * is used to combine words.
1031
+ * @example well-behaved
1032
+ * ___
1033
+ * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!
1034
+ */
1035
+ const CHAR_HYPHEN = '\u002D';
1036
+ /**
1037
+ * {@link https://unicode-table.com/en/2212/ Minus}
1038
+ * is used as math operator symbol or before negative digits.
1039
+ * ---
1040
+ * Can be used as `&minus;`. Don't confuse with {@link CHAR_HYPHEN}
1041
+ */
1042
+ const CHAR_MINUS = '\u2212';
1043
+ /**
1044
+ * {@link https://symbl.cc/en/30FC/ Katakana-Hiragana Prolonged Sound Mark}
1045
+ * is used as prolonged sounds in Japanese.
1046
+ */
1047
+ const CHAR_JP_HYPHEN = '\u30FC';
1048
+ /**
1049
+ * {@link https://symbl.cc/en/003A/ Colon}
1050
+ * is a punctuation mark that connects parts of a text logically.
1051
+ * ---
1052
+ * is also used as separator in time.
1053
+ */
1054
+ const CHAR_COLON = '\u003A';
1055
+ /**
1056
+ * {@link https://symbl.cc/en/FF1A/ Full-width colon}
1057
+ * is a full-width punctuation mark used to separate parts of a text commonly in Japanese.
1058
+ */
1059
+ const CHAR_JP_COLON = '\uFF1A';
1060
+
1061
+ const ANY_MERIDIEM_CHARACTER_RE = new RegExp(`[${CHAR_NO_BREAK_SPACE}APM]+$`, 'g');
1062
+ const ALL_MERIDIEM_CHARACTERS_RE = new RegExp(`${CHAR_NO_BREAK_SPACE}[AP]M$`, 'g');
1063
+
1064
+ const TIME_FIXED_CHARACTERS = [':', '.'];
1065
+
1066
+ const TIME_SEGMENT_VALUE_LENGTHS = {
1067
+ hours: 2,
1068
+ minutes: 2,
1069
+ seconds: 2,
1070
+ milliseconds: 3,
1071
+ };
1072
+
1073
+ const POSSIBLE_DATE_RANGE_SEPARATOR = [
1074
+ CHAR_HYPHEN,
1075
+ CHAR_EN_DASH,
1076
+ CHAR_EM_DASH,
1077
+ CHAR_MINUS,
1078
+ CHAR_JP_HYPHEN,
1079
+ ];
1080
+ const MIN_DAY = 1;
1081
+ const MONTHS_IN_YEAR = 12;
1082
+ const MonthNumber = {
1083
+ January: 0,
1084
+ February: 1,
1085
+ April: 3,
1086
+ June: 5,
1087
+ September: 8,
1088
+ November: 10,
1089
+ December: 11,
1090
+ };
1091
+
1092
+ function appendDate(date, { day = 0, month = 0, year = 0 } = {}) {
1093
+ if (day === 0 && month === 0 && year === 0) {
1094
+ return date;
1095
+ }
1096
+ const initialYear = date.getFullYear();
1097
+ const initialMonth = date.getMonth();
1098
+ const initialDate = date.getDate();
1099
+ const totalMonths = (initialYear + year) * MONTHS_IN_YEAR + initialMonth + month;
1100
+ let years = Math.floor(totalMonths / MONTHS_IN_YEAR);
1101
+ let months = totalMonths % MONTHS_IN_YEAR;
1102
+ let days = Math.min(initialDate, getMonthDaysCount(months, isLeapYear(years))) + day;
1103
+ while (days > getMonthDaysCount(months, isLeapYear(years))) {
1104
+ days -= getMonthDaysCount(months, isLeapYear(years));
1105
+ if (months === MonthNumber.December) {
1106
+ years++;
1107
+ months = MonthNumber.January;
1108
+ }
1109
+ else {
1110
+ months++;
1111
+ }
978
1112
  }
979
- if (month) {
980
- date.setMonth(date.getMonth() + month);
1113
+ while (days < MIN_DAY) {
1114
+ if (months === MonthNumber.January) {
1115
+ years--;
1116
+ months = MonthNumber.December;
1117
+ }
1118
+ else {
1119
+ months--;
1120
+ }
1121
+ days += getMonthDaysCount(months, isLeapYear(years));
981
1122
  }
982
- if (year) {
983
- date.setFullYear(date.getFullYear() + year);
1123
+ days =
1124
+ day < 0 || (day === 0 && isLeapYear(initialYear) && (month < 0 || year < 0))
1125
+ ? days + 1 // add one day when moving days backward, or months or years backward for leap year
1126
+ : days - 1; // "from"-day is included in the range
1127
+ return new Date(years, months, days);
1128
+ }
1129
+ function getMonthDaysCount(month, isLeapYear) {
1130
+ switch (month) {
1131
+ case MonthNumber.April:
1132
+ case MonthNumber.June:
1133
+ case MonthNumber.November:
1134
+ case MonthNumber.September:
1135
+ return 30;
1136
+ case MonthNumber.February:
1137
+ return isLeapYear ? 29 : 28;
1138
+ default:
1139
+ return 31;
984
1140
  }
985
- return date;
1141
+ }
1142
+ function isLeapYear(year) {
1143
+ return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);
986
1144
  }
987
1145
 
988
1146
  const getDateSegmentValueLength = (dateString) => {
@@ -1078,98 +1236,6 @@ function toDateString({ day, month, year, hours, minutes, seconds, milliseconds,
1078
1236
  .replaceAll(/\D+$/g, '');
1079
1237
  }
1080
1238
 
1081
- const DATE_SEGMENTS_MAX_VALUES = {
1082
- day: 31,
1083
- month: 12,
1084
- year: 9999,
1085
- };
1086
-
1087
- // eslint-disable-next-line i18n/no-russian-character
1088
- const DEFAULT_DECIMAL_PSEUDO_SEPARATORS = ['.', ',', 'б', 'ю'];
1089
-
1090
- const DEFAULT_MIN_DATE = new Date('0001-01-01T00:00');
1091
- const DEFAULT_MAX_DATE = new Date('9999-12-31T23:59:59.999');
1092
-
1093
- const DEFAULT_TIME_SEGMENT_MAX_VALUES = {
1094
- hours: 23,
1095
- minutes: 59,
1096
- seconds: 59,
1097
- milliseconds: 999,
1098
- };
1099
- const DEFAULT_TIME_SEGMENT_MIN_VALUES = {
1100
- hours: 0,
1101
- minutes: 0,
1102
- seconds: 0,
1103
- milliseconds: 0,
1104
- };
1105
-
1106
- /**
1107
- * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.
1108
- */
1109
- const CHAR_NO_BREAK_SPACE = '\u00A0';
1110
- /**
1111
- * {@link https://symbl.cc/en/200B/ Zero width space}.
1112
- */
1113
- const CHAR_ZERO_WIDTH_SPACE = '\u200B';
1114
- /**
1115
- * {@link https://unicode-table.com/en/2013/ EN dash}
1116
- * is used to indicate a range of numbers or a span of time.
1117
- * @example 2006–2022
1118
- */
1119
- const CHAR_EN_DASH = '\u2013';
1120
- /**
1121
- * {@link https://unicode-table.com/en/2014/ EM dash}
1122
- * is used to mark a break in a sentence.
1123
- * @example Taiga UI — powerful set of open source components for Angular
1124
- * ___
1125
- * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!
1126
- */
1127
- const CHAR_EM_DASH = '\u2014';
1128
- /**
1129
- * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}
1130
- * is used to combine words.
1131
- * @example well-behaved
1132
- * ___
1133
- * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!
1134
- */
1135
- const CHAR_HYPHEN = '\u002D';
1136
- /**
1137
- * {@link https://unicode-table.com/en/2212/ Minus}
1138
- * is used as math operator symbol or before negative digits.
1139
- * ---
1140
- * Can be used as `&minus;`. Don't confuse with {@link CHAR_HYPHEN}
1141
- */
1142
- const CHAR_MINUS = '\u2212';
1143
- /**
1144
- * {@link https://symbl.cc/en/30FC/ Katakana-Hiragana Prolonged Sound Mark}
1145
- * is used as prolonged sounds in Japanese.
1146
- */
1147
- const CHAR_JP_HYPHEN = '\u30FC';
1148
- /**
1149
- * {@link https://symbl.cc/en/003A/ Colon}
1150
- * is a punctuation mark that connects parts of a text logically.
1151
- * ---
1152
- * is also used as separator in time.
1153
- */
1154
- const CHAR_COLON = '\u003A';
1155
- /**
1156
- * {@link https://symbl.cc/en/FF1A/ Full-width colon}
1157
- * is a full-width punctuation mark used to separate parts of a text commonly in Japanese.
1158
- */
1159
- const CHAR_JP_COLON = '\uFF1A';
1160
-
1161
- const ANY_MERIDIEM_CHARACTER_RE = new RegExp(`[${CHAR_NO_BREAK_SPACE}APM]+$`, 'g');
1162
- const ALL_MERIDIEM_CHARACTERS_RE = new RegExp(`${CHAR_NO_BREAK_SPACE}[AP]M$`, 'g');
1163
-
1164
- const TIME_FIXED_CHARACTERS = [':', '.'];
1165
-
1166
- const TIME_SEGMENT_VALUE_LENGTHS = {
1167
- hours: 2,
1168
- minutes: 2,
1169
- seconds: 2,
1170
- milliseconds: 3,
1171
- };
1172
-
1173
1239
  function validateDateString({ dateString, dateModeTemplate, dateSegmentsSeparator, offset, selection: [from, to], }) {
1174
1240
  var _a, _b;
1175
1241
  const parsedDate = parseDateString(dateString, dateModeTemplate);
@@ -2061,14 +2127,6 @@ function maskitoParseDate(value, { mode, min = DEFAULT_MIN_DATE, max = DEFAULT_M
2061
2127
  return clamp(parsedDate, min, max);
2062
2128
  }
2063
2129
 
2064
- const POSSIBLE_DATE_RANGE_SEPARATOR = [
2065
- CHAR_HYPHEN,
2066
- CHAR_EN_DASH,
2067
- CHAR_EM_DASH,
2068
- CHAR_MINUS,
2069
- CHAR_JP_HYPHEN,
2070
- ];
2071
-
2072
2130
  function createMinMaxRangeLengthPostprocessor({ dateModeTemplate, rangeSeparator, minLength, maxLength, max = DEFAULT_MAX_DATE, }) {
2073
2131
  if (isEmpty(minLength) && isEmpty(maxLength)) {
2074
2132
  return identity;
@@ -2083,12 +2141,9 @@ function createMinMaxRangeLengthPostprocessor({ dateModeTemplate, rangeSeparator
2083
2141
  if (!fromDate || !toDate) {
2084
2142
  return { value, selection };
2085
2143
  }
2086
- const minDistantToDate = appendDate(fromDate, Object.assign(Object.assign({}, minLength), {
2087
- // 06.02.2023 - 07.02.2023 => {minLength: {day: 3}} => 06.02.2023 - 08.02.2023
2088
- // "from"-day is included in the range
2089
- day: (minLength === null || minLength === void 0 ? void 0 : minLength.day) && minLength.day - 1 }));
2144
+ const minDistantToDate = appendDate(fromDate, minLength);
2090
2145
  const maxDistantToDate = !isEmpty(maxLength)
2091
- ? appendDate(fromDate, Object.assign(Object.assign({}, maxLength), { day: (maxLength === null || maxLength === void 0 ? void 0 : maxLength.day) && maxLength.day - 1 }))
2146
+ ? appendDate(fromDate, maxLength)
2092
2147
  : max;
2093
2148
  const minLengthClampedToDate = clamp(toDate, minDistantToDate, max);
2094
2149
  const minMaxLengthClampedToDate = minLengthClampedToDate > maxDistantToDate
@@ -2310,15 +2365,6 @@ decimalSeparatorOrParams = {}) {
2310
2365
  return NaN;
2311
2366
  }
2312
2367
 
2313
- function maskitoStringifyNumber(number, params) {
2314
- if (Number.isNaN(number) || number === null) {
2315
- return '';
2316
- }
2317
- const { min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER, decimalSeparator = '.', } = params;
2318
- const value = clamp(number, min, max).toString().replace('.', decimalSeparator);
2319
- return maskitoTransform(value, maskitoNumberOptionsGenerator(params));
2320
- }
2321
-
2322
2368
  /**
2323
2369
  * Convert number to string with replacing exponent part on decimals
2324
2370
  *
@@ -2338,6 +2384,15 @@ function stringifyNumberWithoutExp(value) {
2338
2384
  return valueWithoutExp;
2339
2385
  }
2340
2386
 
2387
+ function maskitoStringifyNumber(number, params) {
2388
+ if (Number.isNaN(number) || number === null) {
2389
+ return '';
2390
+ }
2391
+ const { min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER, decimalSeparator = '.', } = params;
2392
+ const value = stringifyNumberWithoutExp(clamp(number, min, max)).replace('.', decimalSeparator);
2393
+ return maskitoTransform(value, maskitoNumberOptionsGenerator(params));
2394
+ }
2395
+
2341
2396
  function toNumberParts(value, { decimalSeparator, minusSign }) {
2342
2397
  const [integerWithMinus = '', decimalPart = ''] = decimalSeparator
2343
2398
  ? value.split(decimalSeparator)
@@ -2954,4 +3009,4 @@ function maskitoNumberOptionsGenerator({ max = Number.MAX_SAFE_INTEGER, min = Nu
2954
3009
  }
2955
3010
 
2956
3011
  export { maskitoWithPlaceholder as a, maskitoParseDate as b, maskitoDateRangeOptionsGenerator as c, maskitoNumberOptionsGenerator as d, maskitoParseNumber as e, maskitoStringifyNumber as f, maskitoTimeOptionsGenerator as g, maskitoDateOptionsGenerator as m, useMaskito as u };
2957
- //# sourceMappingURL=index.esm-D889iexm.js.map
3012
+ //# sourceMappingURL=index.esm-BwMVvxTV.js.map