@servicetitan/anvil2 1.46.2 → 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 (164) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/{Avatar-CyGjhToG.js → Avatar-3d5Kv2CF.js} +2 -2
  3. package/dist/{Avatar-CyGjhToG.js.map → Avatar-3d5Kv2CF.js.map} +1 -1
  4. package/dist/{Avatar-D07f9NH_.js → Avatar-DJ3oJNsv.js} +2 -2
  5. package/dist/{Avatar-D07f9NH_.js.map → Avatar-DJ3oJNsv.js.map} +1 -1
  6. package/dist/Avatar.js +2 -2
  7. package/dist/{Calendar-X9qUi6Vx.js → Calendar-Cn0fOgog.js} +99 -48
  8. package/dist/Calendar-Cn0fOgog.js.map +1 -0
  9. package/dist/Calendar.js +1 -1
  10. package/dist/{Checkbox-CcYtto5f.js → Checkbox-C5PX8wur.js} +2 -2
  11. package/dist/{Checkbox-CcYtto5f.js.map → Checkbox-C5PX8wur.js.map} +1 -1
  12. package/dist/{Checkbox-BDohwHXQ.js → Checkbox-DAODkzN3.js} +2 -2
  13. package/dist/{Checkbox-BDohwHXQ.js.map → Checkbox-DAODkzN3.js.map} +1 -1
  14. package/dist/Checkbox.js +2 -2
  15. package/dist/{Chip-Bz-vlQ4D.js → Chip-DLU13qe-.js} +2 -2
  16. package/dist/{Chip-Bz-vlQ4D.js.map → Chip-DLU13qe-.js.map} +1 -1
  17. package/dist/Chip.js +1 -1
  18. package/dist/{Combobox-DQmW8Tyl.js → Combobox-DO8cIvRQ.js} +6 -6
  19. package/dist/{Combobox-DQmW8Tyl.js.map → Combobox-DO8cIvRQ.js.map} +1 -1
  20. package/dist/Combobox.js +1 -1
  21. package/dist/{DateField-C43nfkbx.js → DateField-qHdgwSlB.js} +35 -101
  22. package/dist/DateField-qHdgwSlB.js.map +1 -0
  23. package/dist/DateField.js +1 -1
  24. package/dist/{DateFieldRange-g7n5QYww.js → DateFieldRange-GNpWV70g.js} +54 -55
  25. package/dist/DateFieldRange-GNpWV70g.js.map +1 -0
  26. package/dist/DateFieldRange.js +1 -1
  27. package/dist/{DateFieldSingle-D3tneqeG.js → DateFieldSingle-B9caNibj.js} +50 -52
  28. package/dist/DateFieldSingle-B9caNibj.js.map +1 -0
  29. package/dist/DateFieldSingle.js +1 -1
  30. package/dist/{DateFieldYearless-3JBVj3wn.js → DateFieldYearless-BmeKGaDc.js} +2 -2
  31. package/dist/{DateFieldYearless-3JBVj3wn.js.map → DateFieldYearless-BmeKGaDc.js.map} +1 -1
  32. package/dist/DateFieldYearless.js +1 -1
  33. package/dist/{DaysOfTheWeek-RcPgDoM3.js → DaysOfTheWeek-DPH13VCK.js} +3 -3
  34. package/dist/{DaysOfTheWeek-RcPgDoM3.js.map → DaysOfTheWeek-DPH13VCK.js.map} +1 -1
  35. package/dist/DaysOfTheWeek.js +1 -1
  36. package/dist/{Dialog-FNJ16gY6.js → Dialog-BHFLnFNQ.js} +5 -5
  37. package/dist/{Dialog-FNJ16gY6.js.map → Dialog-BHFLnFNQ.js.map} +1 -1
  38. package/dist/Dialog.js +1 -1
  39. package/dist/{Drawer-DT31CMRd.js → Drawer-BDA7Sjj9.js} +5 -5
  40. package/dist/{Drawer-DT31CMRd.js.map → Drawer-BDA7Sjj9.js.map} +1 -1
  41. package/dist/Drawer.js +1 -1
  42. package/dist/{FieldLabel-BP8QK5UR.js → FieldLabel-Bgl3iu13.js} +2 -2
  43. package/dist/{FieldLabel-BP8QK5UR.js.map → FieldLabel-Bgl3iu13.js.map} +1 -1
  44. package/dist/FieldLabel.js +1 -1
  45. package/dist/{InputMask-CPuYMcw9.js → InputMask-B13KumrK.js} +2 -2
  46. package/dist/{InputMask-CPuYMcw9.js.map → InputMask-B13KumrK.js.map} +1 -1
  47. package/dist/InputMask.js +1 -1
  48. package/dist/{ListView-BJI8BQJ-.js → ListView-C-cVQZHp.js} +3 -3
  49. package/dist/{ListView-BJI8BQJ-.js.map → ListView-C-cVQZHp.js.map} +1 -1
  50. package/dist/ListView.js +1 -1
  51. package/dist/{Listbox-CUhMbFm2.js → Listbox-DxGx630W.js} +2 -2
  52. package/dist/{Listbox-CUhMbFm2.js.map → Listbox-DxGx630W.js.map} +1 -1
  53. package/dist/Listbox.js +1 -1
  54. package/dist/{Menu-t_11BIhU.js → Menu-DUZqzpwg.js} +6 -8
  55. package/dist/Menu-DUZqzpwg.js.map +1 -0
  56. package/dist/Menu.js +1 -1
  57. package/dist/{NumberField-Bjf9Tyvf.js → NumberField-DWPAy1eG.js} +7 -7
  58. package/dist/{NumberField-Bjf9Tyvf.js.map → NumberField-DWPAy1eG.js.map} +1 -1
  59. package/dist/NumberField.css +9 -6
  60. package/dist/NumberField.js +1 -1
  61. package/dist/{Page-BAyXnhz2.js → Page-BfH2mGSt.js} +7 -7
  62. package/dist/{Page-BAyXnhz2.js.map → Page-BfH2mGSt.js.map} +1 -1
  63. package/dist/Page.js +1 -1
  64. package/dist/{Pagination-DCBic619.js → Pagination-B_G9QcHf.js} +3 -3
  65. package/dist/{Pagination-DCBic619.js.map → Pagination-B_G9QcHf.js.map} +1 -1
  66. package/dist/Pagination.js +1 -1
  67. package/dist/{Popover-CrksxqKk.js → Popover-v8R920kj.js} +135 -200
  68. package/dist/Popover-v8R920kj.js.map +1 -0
  69. package/dist/Popover.js +1 -1
  70. package/dist/{ProgressBar-CgsAW2d8.js → ProgressBar-BWN2yv1s.js} +2 -2
  71. package/dist/{ProgressBar-CgsAW2d8.js.map → ProgressBar-BWN2yv1s.js.map} +1 -1
  72. package/dist/ProgressBar.js +1 -1
  73. package/dist/{Radio-C_rvxw74.js → Radio-C5riI-do.js} +2 -2
  74. package/dist/{Radio-C_rvxw74.js.map → Radio-C5riI-do.js.map} +1 -1
  75. package/dist/Radio.js +2 -2
  76. package/dist/{RadioGroup-DxBblSrx.js → RadioGroup-B7O06pVu.js} +2 -2
  77. package/dist/{RadioGroup-DxBblSrx.js.map → RadioGroup-B7O06pVu.js.map} +1 -1
  78. package/dist/{SearchField-Bb0uObwG.js → SearchField-CbwGErC4.js} +2 -2
  79. package/dist/{SearchField-Bb0uObwG.js.map → SearchField-CbwGErC4.js.map} +1 -1
  80. package/dist/SearchField.js +1 -1
  81. package/dist/{SegmentedControl-DC4BpdH5.js → SegmentedControl-CLDdes8W.js} +2 -2
  82. package/dist/{SegmentedControl-DC4BpdH5.js.map → SegmentedControl-CLDdes8W.js.map} +1 -1
  83. package/dist/SegmentedControl.js +1 -1
  84. package/dist/{SelectCard-DunNE9R3.js → SelectCard-Ca07K1FW.js} +3 -3
  85. package/dist/{SelectCard-DunNE9R3.js.map → SelectCard-Ca07K1FW.js.map} +1 -1
  86. package/dist/SelectCard.js +1 -1
  87. package/dist/{SelectTrigger-BYysLREL.js → SelectTrigger-CaXX1SHG.js} +3 -3
  88. package/dist/{SelectTrigger-BYysLREL.js.map → SelectTrigger-CaXX1SHG.js.map} +1 -1
  89. package/dist/SelectTrigger.js +1 -1
  90. package/dist/{SelectTriggerBase-DqUpJgzk.js → SelectTriggerBase-C7TLCna1.js} +3 -3
  91. package/dist/{SelectTriggerBase-DqUpJgzk.js.map → SelectTriggerBase-C7TLCna1.js.map} +1 -1
  92. package/dist/{SideNav-B9AWmF_H.js → SideNav-nqq5sAwz.js} +2 -2
  93. package/dist/{SideNav-B9AWmF_H.js.map → SideNav-nqq5sAwz.js.map} +1 -1
  94. package/dist/SideNav.js +1 -1
  95. package/dist/{Stepper-DHTrvfXw.js → Stepper-DQ_Hm-AI.js} +2 -2
  96. package/dist/{Stepper-DHTrvfXw.js.map → Stepper-DQ_Hm-AI.js.map} +1 -1
  97. package/dist/Stepper.js +1 -1
  98. package/dist/{Tab-0zx9hsw8.js → Tab-CzNx3IdF.js} +2 -2
  99. package/dist/{Tab-0zx9hsw8.js.map → Tab-CzNx3IdF.js.map} +1 -1
  100. package/dist/Tab.js +1 -1
  101. package/dist/{TextField-CFWs3lm9.js → TextField-D9gD-34Q.js} +3 -3
  102. package/dist/{TextField-CFWs3lm9.js.map → TextField-D9gD-34Q.js.map} +1 -1
  103. package/dist/{TextField-Cge6IRo5.js → TextField-uCHgwO5F.js} +2 -2
  104. package/dist/{TextField-Cge6IRo5.js.map → TextField-uCHgwO5F.js.map} +1 -1
  105. package/dist/TextField.js +1 -1
  106. package/dist/{Textarea-CXd3NKkW.js → Textarea-B2-6m291.js} +3 -3
  107. package/dist/{Textarea-CXd3NKkW.js.map → Textarea-B2-6m291.js.map} +1 -1
  108. package/dist/Textarea.js +1 -1
  109. package/dist/{TimeField-4v5aCwiG.js → TimeField-B5Jgy-Zg.js} +21 -8
  110. package/dist/TimeField-B5Jgy-Zg.js.map +1 -0
  111. package/dist/TimeField.js +1 -1
  112. package/dist/Toast.js +2 -2
  113. package/dist/{Toaster-bON5Xc1P.js → Toaster-CHyB-Mxs.js} +3 -3
  114. package/dist/{Toaster-bON5Xc1P.js.map → Toaster-CHyB-Mxs.js.map} +1 -1
  115. package/dist/{Toaster-D-rNSLTq.js → Toaster-CyiGDKMh.js} +3 -3
  116. package/dist/{Toaster-D-rNSLTq.js.map → Toaster-CyiGDKMh.js.map} +1 -1
  117. package/dist/{Toolbar-B2Jsuptz.js → Toolbar-BXGTrR6o.js} +16 -15
  118. package/dist/Toolbar-BXGTrR6o.js.map +1 -0
  119. package/dist/Toolbar.js +1 -1
  120. package/dist/{Tooltip-CtCLw_vx.js → Tooltip-DhtVlhah.js} +2 -2
  121. package/dist/{Tooltip-CtCLw_vx.js.map → Tooltip-DhtVlhah.js.map} +1 -1
  122. package/dist/Tooltip.js +1 -1
  123. package/dist/beta.js +1 -1
  124. package/dist/components/Calendar/Calendar.d.ts +5 -0
  125. package/dist/components/Calendar/CalendarNowButton.d.ts +3 -1
  126. package/dist/components/Popover/Popover.d.ts +136 -1
  127. package/dist/components/Popover/PopoverTrigger.d.ts +0 -1
  128. package/dist/components/Popover/internal/PopoverContext.d.ts +5 -3
  129. package/dist/components/Popover/internal/usePopoverContext.d.ts +6 -4
  130. package/dist/hooks/useMergeRefs/useMergeRefs.d.ts +11 -0
  131. package/dist/index.js +43 -43
  132. package/dist/internal/hooks/useFocusWithin/useFocusWithin.d.ts +2 -1
  133. package/dist/internal/hooks/useKeyboardFocusables/useKeyboardFocusables.d.ts +0 -1
  134. package/dist/internal/hooks/useOnClickOutside/useOnClickOutside.d.ts +5 -1
  135. package/dist/{useFocusWithin-BhhgRXdZ.js → useFocusWithin-hi77jsrB.js} +6 -3
  136. package/dist/useFocusWithin-hi77jsrB.js.map +1 -0
  137. package/dist/{useDialogTransitionStates-C1TtiwA_.js → useKeyboardFocusables-ek2mYel-.js} +45 -4
  138. package/dist/useKeyboardFocusables-ek2mYel-.js.map +1 -0
  139. package/dist/useMergeRefs-Dfmtq9cI.js +22 -0
  140. package/dist/useMergeRefs-Dfmtq9cI.js.map +1 -0
  141. package/dist/useMergeRefs.js +1 -1
  142. package/dist/{useOnClickOutside-B1ddwORK.js → useOnClickOutside-C5AZE_I6.js} +6 -65
  143. package/dist/useOnClickOutside-C5AZE_I6.js.map +1 -0
  144. package/dist/utils-CnKBdBNm.js +50 -0
  145. package/dist/utils-CnKBdBNm.js.map +1 -0
  146. package/package.json +1 -1
  147. package/dist/Calendar-X9qUi6Vx.js.map +0 -1
  148. package/dist/DateField-C43nfkbx.js.map +0 -1
  149. package/dist/DateFieldRange-g7n5QYww.js.map +0 -1
  150. package/dist/DateFieldSingle-D3tneqeG.js.map +0 -1
  151. package/dist/Menu-t_11BIhU.js.map +0 -1
  152. package/dist/Popover-CrksxqKk.js.map +0 -1
  153. package/dist/TimeField-4v5aCwiG.js.map +0 -1
  154. package/dist/Toolbar-B2Jsuptz.js.map +0 -1
  155. package/dist/components/DateFieldSingle/internal/useDateFieldOrchestration.d.ts +0 -17
  156. package/dist/useDateFieldOrchestration-DyAc3gPJ.js +0 -138
  157. package/dist/useDateFieldOrchestration-DyAc3gPJ.js.map +0 -1
  158. package/dist/useDialogTransitionStates-C1TtiwA_.js.map +0 -1
  159. package/dist/useFocusWithin-BhhgRXdZ.js.map +0 -1
  160. package/dist/useMergeRefs-Bde85AWI.js +0 -21
  161. package/dist/useMergeRefs-Bde85AWI.js.map +0 -1
  162. package/dist/useOnClickOutside-B1ddwORK.js.map +0 -1
  163. package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT.js +0 -18
  164. package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,78 +1,78 @@
1
1
  import './index2.css';export { DndSort, DndSortCard, DndSortZone } from './DndSort.js';
2
2
  export { A as Alert } from './Alert-CPOBY6O5.js';
3
3
  export { A as Announcement } from './Announcement-BvzAEdx8.js';
4
- export { A as Avatar } from './Avatar-CyGjhToG.js';
5
- export { A as AvatarGroup } from './Avatar-D07f9NH_.js';
4
+ export { A as Avatar } from './Avatar-3d5Kv2CF.js';
5
+ export { A as AvatarGroup } from './Avatar-DJ3oJNsv.js';
6
6
  export { B as Badge } from './Badge-DCA9mfc2.js';
7
7
  export { B as Breadcrumbs, a as BreadcrumbsElement, b as BreadcrumbsLink } from './Breadcrumbs-C4_PEolS.js';
8
8
  import { B as Button } from './Button-VNQQgZ45.js';
9
9
  export { B as ButtonCompound } from './ButtonCompound-BbPK-Xjj.js';
10
10
  import { B as ButtonLink } from './ButtonLink-CqR1F5Wn.js';
11
11
  import { B as ButtonToggle } from './ButtonToggle-PCeSG-5D.js';
12
- export { C as Calendar, f as CalendarMonth, e as CalendarMonthButton, d as CalendarNext, a as CalendarNow, c as CalendarPrev, b as CalendarYearButton } from './Calendar-X9qUi6Vx.js';
12
+ export { C as Calendar, f as CalendarMonth, e as CalendarMonthButton, d as CalendarNext, a as CalendarNow, c as CalendarPrev, b as CalendarYearButton } from './Calendar-Cn0fOgog.js';
13
13
  export { C as Card } from './Card-vTYeSkxt.js';
14
- export { C as Checkbox } from './Checkbox-BDohwHXQ.js';
15
- export { C as CheckboxGroup } from './Checkbox-CcYtto5f.js';
16
- export { C as Chip } from './Chip-Bz-vlQ4D.js';
17
- export { C as Combobox, c as ComboboxContent, a as ComboboxElement, i as ComboboxEmpty, e as ComboboxItem, f as ComboboxItemAddNew, d as ComboboxList, g as ComboboxSearchField, b as ComboboxSelect, h as ComboboxSelectTrigger } from './Combobox-DQmW8Tyl.js';
14
+ export { C as Checkbox } from './Checkbox-DAODkzN3.js';
15
+ export { C as CheckboxGroup } from './Checkbox-C5PX8wur.js';
16
+ export { C as Chip } from './Chip-DLU13qe-.js';
17
+ export { C as Combobox, c as ComboboxContent, a as ComboboxElement, i as ComboboxEmpty, e as ComboboxItem, f as ComboboxItemAddNew, d as ComboboxList, g as ComboboxSearchField, b as ComboboxSelect, h as ComboboxSelectTrigger } from './Combobox-DO8cIvRQ.js';
18
18
  export { u as useInfiniteCombobox } from './useInfiniteCombobox-WcRgC9p6.js';
19
- export { D as DateField } from './DateField-C43nfkbx.js';
20
- export { D as DateFieldRange } from './DateFieldRange-g7n5QYww.js';
21
- export { D as DateFieldSingle } from './DateFieldSingle-D3tneqeG.js';
22
- export { D as DateFieldYearless } from './DateFieldYearless-3JBVj3wn.js';
23
- export { D as DaysOfTheWeek } from './DaysOfTheWeek-RcPgDoM3.js';
19
+ export { D as DateField } from './DateField-qHdgwSlB.js';
20
+ export { D as DateFieldRange } from './DateFieldRange-GNpWV70g.js';
21
+ export { D as DateFieldSingle } from './DateFieldSingle-B9caNibj.js';
22
+ export { D as DateFieldYearless } from './DateFieldYearless-BmeKGaDc.js';
23
+ export { D as DaysOfTheWeek } from './DaysOfTheWeek-DPH13VCK.js';
24
24
  export { D as Details, b as DetailsContent, a as DetailsSummary } from './Details-CF8DImjw.js';
25
- export { D as Dialog, a as DialogCancelButton, b as DialogContent, c as DialogFooter, d as DialogHeader } from './Dialog-FNJ16gY6.js';
25
+ export { D as Dialog, a as DialogCancelButton, b as DialogContent, c as DialogFooter, d as DialogHeader } from './Dialog-BHFLnFNQ.js';
26
26
  export { D as Divider } from './Divider-DJe8kLf2.js';
27
27
  export { D as Dnd } from './index-DrM3iid4.js';
28
- export { D as Drawer, a as DrawerCancelButton, d as DrawerContent, b as DrawerFooter, c as DrawerHeader } from './Drawer-DT31CMRd.js';
28
+ export { D as Drawer, a as DrawerCancelButton, d as DrawerContent, b as DrawerFooter, c as DrawerHeader } from './Drawer-BDA7Sjj9.js';
29
29
  export { E as EditCard } from './EditCard-CZzL0nx7.js';
30
- export { F as FieldLabel } from './FieldLabel-BP8QK5UR.js';
30
+ export { F as FieldLabel } from './FieldLabel-Bgl3iu13.js';
31
31
  export { F as FieldMessage } from './FieldMessage-B7uQ8vmr.js';
32
32
  import { F as Flex } from './Flex-BdQMekvA.js';
33
33
  export { G as Grid } from './Grid-MGUC698u.js';
34
34
  import { I as Icon } from './Icon-D8SPKeO4.js';
35
- export { I as InputMask } from './InputMask-CPuYMcw9.js';
35
+ export { I as InputMask } from './InputMask-B13KumrK.js';
36
36
  export { L as Layout, a as LayoutElement, b as LayoutItem } from './Layout-CUUb2PVr.js';
37
37
  export { L as Link, u as useLinkStyles } from './Link-eRsLWPaQ.js';
38
38
  export { L as LinkButton } from './LinkButton-2lXfrVoU.js';
39
- import { L as Listbox } from './Listbox-CUhMbFm2.js';
40
- export { a as ListboxOption, b as ListboxOptionGroup } from './Listbox-CUhMbFm2.js';
41
- export { L as ListView, a as ListViewOption, b as ListViewOptionCell } from './ListView-BJI8BQJ-.js';
42
- export { M as Menu, a as MenuItem } from './Menu-t_11BIhU.js';
43
- export { N as NumberField } from './NumberField-Bjf9Tyvf.js';
39
+ import { L as Listbox } from './Listbox-DxGx630W.js';
40
+ export { a as ListboxOption, b as ListboxOptionGroup } from './Listbox-DxGx630W.js';
41
+ export { L as ListView, a as ListViewOption, b as ListViewOptionCell } from './ListView-C-cVQZHp.js';
42
+ export { M as Menu, a as MenuItem } from './Menu-DUZqzpwg.js';
43
+ export { N as NumberField } from './NumberField-DWPAy1eG.js';
44
44
  export { Overflow, OverflowText } from './Overflow.js';
45
- export { P as Page } from './Page-BAyXnhz2.js';
46
- export { P as Pagination } from './Pagination-DCBic619.js';
47
- import { P as Popover } from './Popover-CrksxqKk.js';
48
- export { a as PopoverButton, b as PopoverClose, c as PopoverContent, d as PopoverTrigger } from './Popover-CrksxqKk.js';
49
- export { P as ProgressBar } from './ProgressBar-CgsAW2d8.js';
50
- export { R as Radio } from './Radio-C_rvxw74.js';
51
- export { R as RadioGroup } from './RadioGroup-DxBblSrx.js';
52
- export { S as SearchField } from './SearchField-Bb0uObwG.js';
53
- export { S as SegmentedControl, a as SegmentedControlSegment } from './SegmentedControl-DC4BpdH5.js';
54
- export { S as SelectCard, a as SelectCardElement, b as SelectCardGroup } from './SelectCard-DunNE9R3.js';
55
- export { S as SelectTrigger } from './SelectTrigger-BYysLREL.js';
56
- export { S as SideNav, b as SideNavCollapsible, c as SideNavGroup, a as SideNavLink } from './SideNav-B9AWmF_H.js';
45
+ export { P as Page } from './Page-BfH2mGSt.js';
46
+ export { P as Pagination } from './Pagination-B_G9QcHf.js';
47
+ import { P as Popover } from './Popover-v8R920kj.js';
48
+ export { a as PopoverButton, b as PopoverClose, c as PopoverContent, d as PopoverTrigger } from './Popover-v8R920kj.js';
49
+ export { P as ProgressBar } from './ProgressBar-BWN2yv1s.js';
50
+ export { R as Radio } from './Radio-C5riI-do.js';
51
+ export { R as RadioGroup } from './RadioGroup-B7O06pVu.js';
52
+ export { S as SearchField } from './SearchField-CbwGErC4.js';
53
+ export { S as SegmentedControl, a as SegmentedControlSegment } from './SegmentedControl-CLDdes8W.js';
54
+ export { S as SelectCard, a as SelectCardElement, b as SelectCardGroup } from './SelectCard-Ca07K1FW.js';
55
+ export { S as SelectTrigger } from './SelectTrigger-CaXX1SHG.js';
56
+ export { S as SideNav, b as SideNavCollapsible, c as SideNavGroup, a as SideNavLink } from './SideNav-nqq5sAwz.js';
57
57
  export { Skeleton, SkeletonCircle, SkeletonPill, SkeletonRectangle, SkeletonText } from './Skeleton.js';
58
58
  export { S as Spinner } from './Spinner-wmO8Epw0.js';
59
59
  export { S as SrOnly } from './SrOnly-CTsYSuby.js';
60
- export { S as Stepper, a as StepperFinalPanel, b as StepperList, c as StepperNextButton, d as StepperPanel, e as StepperPrevButton, f as StepperStep } from './Stepper-DHTrvfXw.js';
60
+ export { S as Stepper, a as StepperFinalPanel, b as StepperList, c as StepperNextButton, d as StepperPanel, e as StepperPrevButton, f as StepperStep } from './Stepper-DQ_Hm-AI.js';
61
61
  export { S as Switch } from './Switch-C2ddZcr9.js';
62
- export { T as Tab, a as TabButton, b as TabList, c as TabPanel } from './Tab-0zx9hsw8.js';
62
+ export { T as Tab, a as TabButton, b as TabList, c as TabPanel } from './Tab-CzNx3IdF.js';
63
63
  export { T as Text } from './Text-BqvcbXyp.js';
64
- export { T as Textarea } from './Textarea-CXd3NKkW.js';
65
- export { T as TextField } from './TextField-Cge6IRo5.js';
66
- export { T as TimeField } from './TimeField-4v5aCwiG.js';
67
- export { T as Toaster } from './Toaster-bON5Xc1P.js';
68
- export { t as toast } from './Toaster-D-rNSLTq.js';
64
+ export { T as Textarea } from './Textarea-B2-6m291.js';
65
+ export { T as TextField } from './TextField-uCHgwO5F.js';
66
+ export { T as TimeField } from './TimeField-B5Jgy-Zg.js';
67
+ export { T as Toaster } from './Toaster-CHyB-Mxs.js';
68
+ export { t as toast } from './Toaster-CyiGDKMh.js';
69
69
  import { jsx, jsxs } from 'react/jsx-runtime';
70
70
  import { useContext, createContext, useId, useRef, useCallback, useEffect, forwardRef, useState, useMemo } from 'react';
71
71
  import { c as cx } from './index-tZvMCc77.js';
72
72
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjD5IMh0.js';
73
- import { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';
74
- import { T as Tooltip } from './Tooltip-CtCLw_vx.js';
75
- export { a as TooltipContent, b as TooltipTrigger } from './Tooltip-CtCLw_vx.js';
73
+ import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
74
+ import { T as Tooltip } from './Tooltip-DhtVlhah.js';
75
+ export { a as TooltipContent, b as TooltipTrigger } from './Tooltip-DhtVlhah.js';
76
76
  export { u as useAccessibleColor } from './useAccessibleColor-BYKjkGRg.js';
77
77
  export { u as useBreakpoint } from './useBreakpoint-Cv5fnZxs.js';
78
78
  export { u as usePrefersColorScheme } from './usePrefersColorScheme-_hT7dK7_.js';
@@ -2,6 +2,7 @@ import { FocusEventHandler } from 'react';
2
2
  export interface UseFocusWithinOptions {
3
3
  onFocus?: (event: React.FocusEvent) => void;
4
4
  onBlur?: (event: React.FocusEvent) => void;
5
+ otherRelatedElements?: HTMLElement[];
5
6
  }
6
7
  export interface UseFocusWithinReturnValue<T extends HTMLElement = HTMLElement> {
7
8
  props: {
@@ -25,4 +26,4 @@ export interface UseFocusWithinReturnValue<T extends HTMLElement = HTMLElement>
25
26
  *
26
27
  * return <div {...props}>Content</div>;
27
28
  */
28
- export declare function useFocusWithin<T extends HTMLElement = any>({ onBlur, onFocus, }?: UseFocusWithinOptions): UseFocusWithinReturnValue<T>;
29
+ export declare function useFocusWithin<T extends HTMLElement = any>({ onBlur, onFocus, otherRelatedElements, }?: UseFocusWithinOptions): UseFocusWithinReturnValue<T>;
@@ -49,6 +49,5 @@ type OptionProps = {
49
49
  */
50
50
  export declare const useKeyboardFocusables: (element: RefObject<HTMLElement> | HTMLElement | undefined, options?: OptionProps) => {
51
51
  focusables: FocusableElement[] | null;
52
- updateFocusables: () => void;
53
52
  };
54
53
  export {};
@@ -14,6 +14,10 @@ type UseOnClickOutsideProps = {
14
14
  * Array of target elements to monitor
15
15
  */
16
16
  targets: (HTMLElement | undefined)[];
17
+ /**
18
+ * Whether to disable the useOnClickOutside hook
19
+ */
20
+ disable?: boolean;
17
21
  };
18
22
  /**
19
23
  * Custom hook for detecting clicks outside of specified target elements.
@@ -30,5 +34,5 @@ type UseOnClickOutsideProps = {
30
34
  * @param props - Configuration object containing targets and optional callbacks
31
35
  * @returns void
32
36
  */
33
- export declare const useOnClickOutside: ({ onOutsidePress, targets, onClose, }: UseOnClickOutsideProps) => void;
37
+ export declare const useOnClickOutside: ({ onOutsidePress, targets, onClose, disable, }: UseOnClickOutsideProps) => void;
34
38
  export {};
@@ -2,7 +2,8 @@ import { useRef } from 'react';
2
2
 
3
3
  function useFocusWithin({
4
4
  onBlur,
5
- onFocus
5
+ onFocus,
6
+ otherRelatedElements
6
7
  } = {}) {
7
8
  const isFocusedRef = useRef(false);
8
9
  const handleFocus = (event) => {
@@ -12,7 +13,9 @@ function useFocusWithin({
12
13
  }
13
14
  };
14
15
  const handleBlur = (event) => {
15
- if (isFocusedRef.current && !containsRelatedTarget(event)) {
16
+ if (isFocusedRef.current && !containsRelatedTarget(event) && !otherRelatedElements?.some(
17
+ (element) => element.contains(event.relatedTarget)
18
+ )) {
16
19
  isFocusedRef.current = false;
17
20
  onBlur?.(event);
18
21
  }
@@ -29,4 +32,4 @@ function containsRelatedTarget(event) {
29
32
  }
30
33
 
31
34
  export { useFocusWithin as u };
32
- //# sourceMappingURL=useFocusWithin-BhhgRXdZ.js.map
35
+ //# sourceMappingURL=useFocusWithin-hi77jsrB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFocusWithin-hi77jsrB.js","sources":["../src/internal/hooks/useFocusWithin/useFocusWithin.ts"],"sourcesContent":["import { FocusEventHandler, useRef } from \"react\";\nexport interface UseFocusWithinOptions {\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n otherRelatedElements?: HTMLElement[];\n}\n\nexport interface UseFocusWithinReturnValue<\n T extends HTMLElement = HTMLElement,\n> {\n props: {\n onFocus: FocusEventHandler<T>;\n onBlur: FocusEventHandler<T>;\n };\n}\n\n/**\n * Custom hook for tracking focus state within a DOM element.\n *\n * @param options Configuration options for the hook\n * @param options.onFocus Optional callback when focus enters the element\n * @param options.onBlur Optional callback when focus leaves the element\n * @returns Object containing props for the element\n *\n * @example\n * const { props } = useFocusWithin({\n * onFocus: () => console.log('Focus entered'),\n * onBlur: () => console.log('Focus left')\n * });\n *\n * return <div {...props}>Content</div>;\n */\nexport function useFocusWithin<T extends HTMLElement = any>({\n onBlur,\n onFocus,\n otherRelatedElements,\n}: UseFocusWithinOptions = {}): UseFocusWithinReturnValue<T> {\n const isFocusedRef = useRef(false);\n\n const handleFocus: FocusEventHandler<T> = (event) => {\n if (!isFocusedRef.current) {\n isFocusedRef.current = true;\n onFocus?.(event);\n }\n };\n\n const handleBlur: FocusEventHandler<T> = (event) => {\n if (\n isFocusedRef.current &&\n !containsRelatedTarget(event) &&\n !otherRelatedElements?.some((element) =>\n element.contains(event.relatedTarget),\n )\n ) {\n isFocusedRef.current = false;\n onBlur?.(event);\n }\n };\n\n return {\n props: { onFocus: handleFocus, onBlur: handleBlur },\n };\n}\n\nfunction containsRelatedTarget(event: React.FocusEvent) {\n if (\n event.currentTarget instanceof HTMLElement &&\n event.relatedTarget instanceof HTMLElement\n ) {\n return event.currentTarget.contains(event.relatedTarget);\n }\n\n return false;\n}\n"],"names":[],"mappings":";;AAgCO,SAAS,cAAA,CAA4C;AAAA,EAC1D,MAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,GAA2B,EAAC,EAAiC;AAC3D,EAAA,MAAM,YAAA,GAAe,OAAO,KAAK,CAAA;AAEjC,EAAA,MAAM,WAAA,GAAoC,CAAC,KAAA,KAAU;AACnD,IAAA,IAAI,CAAC,aAAa,OAAA,EAAS;AACzB,MAAA,YAAA,CAAa,OAAA,GAAU,IAAA;AACvB,MAAA,OAAA,GAAU,KAAK,CAAA;AAAA,IACjB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,UAAA,GAAmC,CAAC,KAAA,KAAU;AAClD,IAAA,IACE,aAAa,OAAA,IACb,CAAC,sBAAsB,KAAK,CAAA,IAC5B,CAAC,oBAAA,EAAsB,IAAA;AAAA,MAAK,CAAC,OAAA,KAC3B,OAAA,CAAQ,QAAA,CAAS,MAAM,aAAa;AAAA,KACtC,EACA;AACA,MAAA,YAAA,CAAa,OAAA,GAAU,KAAA;AACvB,MAAA,MAAA,GAAS,KAAK,CAAA;AAAA,IAChB;AAAA,EACF,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,EAAE,OAAA,EAAS,WAAA,EAAa,QAAQ,UAAA;AAAW,GACpD;AACF;AAEA,SAAS,sBAAsB,KAAA,EAAyB;AACtD,EAAA,IACE,KAAA,CAAM,aAAA,YAAyB,WAAA,IAC/B,KAAA,CAAM,yBAAyB,WAAA,EAC/B;AACA,IAAA,OAAO,KAAA,CAAM,aAAA,CAAc,QAAA,CAAS,KAAA,CAAM,aAAa,CAAA;AAAA,EACzD;AAEA,EAAA,OAAO,KAAA;AACT;;;;"}
@@ -1,5 +1,6 @@
1
- import { useEffect } from 'react';
2
- import { u as useOpenCloseTransitionStates } from './useOnClickOutside-B1ddwORK.js';
1
+ import { useEffect, useState, useRef } from 'react';
2
+ import { u as useOpenCloseTransitionStates } from './useOnClickOutside-C5AZE_I6.js';
3
+ import { t as tabbable } from './DrawerContext-D4tWTLVf.js';
3
4
 
4
5
  const ATTRIBUTE_NAME_LIST = "data-anv-dialogs";
5
6
  const ATTRIBUTE_NAME_BOOL = "data-anv-dialogs-open";
@@ -60,5 +61,45 @@ const useDialogTransitionStates = (ref, openProp, options = {}) => {
60
61
  });
61
62
  };
62
63
 
63
- export { useDialogScrollLock as a, useDialogTransitionStates as u };
64
- //# sourceMappingURL=useDialogTransitionStates-C1TtiwA_.js.map
64
+ const useKeyboardFocusables = (element, options = {
65
+ observeChange: true,
66
+ attributes: true,
67
+ characterData: true,
68
+ childList: true,
69
+ subtree: true
70
+ }) => {
71
+ const [focusables, setFocusables] = useState(null);
72
+ const observerRef = useRef();
73
+ useEffect(() => {
74
+ const target = element instanceof HTMLElement ? element : element?.current;
75
+ if (!target) return;
76
+ if (!options.observeChange && !focusables) {
77
+ setFocusables(tabbable(target));
78
+ return;
79
+ }
80
+ const mutationCallback = () => {
81
+ const targetArr = tabbable(target);
82
+ if (targetArr.length === 0) return;
83
+ setFocusables(targetArr);
84
+ };
85
+ const observer = new MutationObserver(mutationCallback);
86
+ observerRef.current = observer;
87
+ observer.observe(target, {
88
+ childList: true,
89
+ // Observe changes to child elements
90
+ subtree: true,
91
+ // Observe changes to descendants of the target
92
+ attributes: true,
93
+ // Observe changes to attributes
94
+ characterData: true
95
+ // Observe changes to text content
96
+ });
97
+ return () => {
98
+ observer.disconnect();
99
+ };
100
+ }, [element, options, focusables]);
101
+ return { focusables };
102
+ };
103
+
104
+ export { useKeyboardFocusables as a, useDialogScrollLock as b, useDialogTransitionStates as u };
105
+ //# sourceMappingURL=useKeyboardFocusables-ek2mYel-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useKeyboardFocusables-ek2mYel-.js","sources":["../src/internal/hooks/useDialogScrollLock/useDialogScrollLock.ts","../src/internal/hooks/useDialogTransitionStates/useDialogTransitionStates.ts","../src/internal/hooks/useKeyboardFocusables/useKeyboardFocusables.ts"],"sourcesContent":["import { useEffect } from \"react\";\n\nconst ATTRIBUTE_NAME_LIST = \"data-anv-dialogs\";\nconst ATTRIBUTE_NAME_BOOL = \"data-anv-dialogs-open\";\n\n/**\n * Props for the useDialogScrollLock hook\n * @property {boolean} open - Whether the dialog is open\n * @property {string} id - Unique identifier for the dialog\n * @property {boolean} [enableScrollChaining] - Whether to enable scroll chaining\n * @property {React.RefObject<HTMLElement>} elementRef - Reference to the dialog element\n */\nexport interface UseDialogScrollLockProps {\n /**\n * Whether the dialog is open\n */\n open: boolean;\n /**\n * Unique identifier for the dialog\n */\n id: string;\n /**\n * Whether to enable scroll chaining\n */\n enableScrollChaining?: boolean;\n /**\n * Reference to the dialog element\n */\n elementRef: React.RefObject<HTMLElement>;\n}\n\n/**\n * Custom hook for managing dialog scroll lock in shadow DOM environments.\n *\n * Features:\n * - Manages scroll lock state for dialogs in shadow DOM\n * - Tracks multiple open dialogs with unique IDs\n * - Prevents scroll chaining when dialogs are open\n * - Automatically cleans up scroll lock on unmount\n * - Supports enabling/disabling scroll chaining\n * - Uses data attributes to track dialog state\n *\n * @param props - Configuration object containing dialog state and element reference\n * @returns void\n */\nexport const useDialogScrollLock = ({\n open,\n id,\n enableScrollChaining,\n elementRef,\n}: UseDialogScrollLockProps) => {\n useEffect(() => {\n if (enableScrollChaining) return () => {};\n const root = elementRef.current?.getRootNode();\n if (!(root instanceof ShadowRoot)) return () => {};\n\n const updateDialogAttributes = (shouldAdd: boolean) => {\n const currentDialogs =\n root.host\n .getAttribute(ATTRIBUTE_NAME_LIST)\n ?.split(\" \")\n .filter(Boolean) ?? [];\n\n const newDialogs = new Set(currentDialogs);\n if (shouldAdd) {\n newDialogs.add(id);\n } else {\n newDialogs.delete(id);\n }\n\n const dialogList = Array.from(newDialogs);\n root.host.setAttribute(ATTRIBUTE_NAME_LIST, dialogList.join(\" \"));\n\n if (dialogList.length > 0) {\n root.host.setAttribute(ATTRIBUTE_NAME_BOOL, \"true\");\n } else {\n root.host.removeAttribute(ATTRIBUTE_NAME_BOOL);\n }\n };\n\n updateDialogAttributes(open);\n\n return () => {\n updateDialogAttributes(false);\n };\n }, [open, id, enableScrollChaining, elementRef]);\n};\n","import { RefObject } from \"react\";\nimport {\n useOpenCloseTransitionStates,\n type OpenCloseTransitionStateEffects,\n} from \"../useOpenCloseTransitionStates\";\n\n/**\n * Effects configuration for dialog transition states\n * @property {() => void} [onOpenAnimationStart] - Callback when opening animation starts\n * @property {() => void} [onCloseAnimationStart] - Callback when closing animation starts\n * @property {() => void} [onOpenAnimationComplete] - Callback when opening animation completes\n * @property {() => void} [onCloseAnimationComplete] - Callback when closing animation completes\n */\n\n/**\n * Custom hook for managing dialog transition states and animations.\n *\n * Features:\n * - Manages dialog open/close transition states\n * - Handles animation timing based on CSS animation duration\n * - Provides callbacks for animation lifecycle events\n * - Supports controlled dialog state management\n * - Automatically handles showModal() and close() calls\n * - Provides utility flags for open/closed states\n *\n * @param ref - The ref to the dialog element\n * @param openProp - The open prop controlling dialog visibility\n * @param options - Additional, optional options including callbacks for animation start, complete, and initialization\n * @returns Object containing dialog state, control functions, and utility flags\n */\n\n/**\n * Effects configuration for dialog transition states\n * @param openProp - The open prop controlling dialog visibility\n * @param options - The effects configuration\n * @returns The dialog transition state\n */\nexport const useDialogTransitionStates = (\n ref: RefObject<HTMLDialogElement>,\n openProp: boolean | undefined,\n options: OpenCloseTransitionStateEffects = {},\n) => {\n const { onOpenAnimationStart, onCloseAnimationComplete } = options;\n return useOpenCloseTransitionStates(openProp, {\n ...options,\n onOpenAnimationStart: () => {\n if (!ref.current) return;\n ref.current.showModal();\n onOpenAnimationStart?.();\n },\n onCloseAnimationComplete: () => {\n if (!ref.current) return;\n ref.current.close();\n onCloseAnimationComplete?.();\n },\n durationMs: () => {\n if (!ref.current || !window) return 0;\n const duration = window.getComputedStyle(ref.current).animationDuration;\n return parseFloat(duration) * 1000;\n },\n });\n};\n","import { RefObject, useEffect, useRef, useState } from \"react\";\nimport { FocusableElement, tabbable } from \"tabbable\";\n\n/**\n * Options for the useKeyboardFocusables hook\n */\ntype OptionProps =\n | {\n /**\n * Disable mutation observer\n */\n observeChange: false;\n }\n | {\n /**\n * Enable mutation observer with optional configuration\n */\n observeChange: true;\n /**\n * Observe attribute changes\n */\n attributes?: boolean;\n /**\n * Observe text content changes\n */\n characterData?: boolean;\n /**\n * Observe child element changes\n */\n childList?: boolean;\n /**\n * Observe descendant changes\n */\n subtree?: boolean;\n };\n\n/**\n * Custom hook for tracking keyboard focusable elements within a container.\n *\n * Features:\n * - Tracks all keyboard focusable elements within a target container\n * - Supports both ref objects and direct element references\n * - Optional mutation observer for real-time updates\n * - Debounced updates to prevent excessive re-renders\n * - Configurable mutation observer options\n * - Manual update function for immediate refresh\n * - Uses tabbable library for accurate focusable detection\n * - Automatically cleans up mutation observer\n *\n * @param element - Target element or ref to monitor for focusable elements\n * @param options - Configuration options for mutation observer behavior\n * @returns Object containing current focusable elements and update function\n */\nexport const useKeyboardFocusables = (\n element: RefObject<HTMLElement> | HTMLElement | undefined,\n options: OptionProps = {\n observeChange: true,\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n },\n) => {\n const [focusables, setFocusables] = useState<FocusableElement[] | null>(null);\n const observerRef = useRef<MutationObserver>();\n\n useEffect(() => {\n const target = element instanceof HTMLElement ? element : element?.current;\n if (!target) return;\n if (!options.observeChange && !focusables) {\n setFocusables(tabbable(target as Element));\n return;\n }\n\n const mutationCallback = () => {\n const targetArr = tabbable(target as Element);\n if (targetArr.length === 0) return;\n setFocusables(targetArr);\n };\n\n const observer = new MutationObserver(mutationCallback);\n observerRef.current = observer;\n observer.observe(target, {\n childList: true, // Observe changes to child elements\n subtree: true, // Observe changes to descendants of the target\n attributes: true, // Observe changes to attributes\n characterData: true, // Observe changes to text content\n });\n return () => {\n observer.disconnect();\n };\n }, [element, options, focusables]);\n\n return { focusables };\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { useMemo } from 'react';
2
+
3
+ function useMergeRefs(refs) {
4
+ return useMemo(() => mergeRefs(refs), refs);
5
+ }
6
+ function mergeRefs(refs) {
7
+ if (refs.every((ref) => ref == null)) {
8
+ return null;
9
+ }
10
+ return (value) => {
11
+ refs.forEach((ref) => {
12
+ if (typeof ref === "function") {
13
+ ref(value);
14
+ } else if (ref != null) {
15
+ ref.current = value;
16
+ }
17
+ });
18
+ };
19
+ }
20
+
21
+ export { mergeRefs as m, useMergeRefs as u };
22
+ //# sourceMappingURL=useMergeRefs-Dfmtq9cI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMergeRefs-Dfmtq9cI.js","sources":["../src/hooks/useMergeRefs/useMergeRefs.ts"],"sourcesContent":["import {\n useMemo,\n type Ref,\n type RefCallback,\n type MutableRefObject,\n} from \"react\";\n\n/**\n * Custom hook for merging multiple React refs into a single callback ref.\n * @see https://floating-ui.com/docs/react-utils#usemergerefs\n *\n * Features:\n * - Merges an array of refs into a single callback ref\n * - Handles both function refs and object refs\n * - Optimized with useMemo for performance\n * - Returns null when all refs are null/undefined\n * - Supports generic types for type safety\n * - Automatically handles ref assignment and cleanup\n *\n * @param refs - Array of React refs to merge\n * @returns Single callback ref that handles all provided refs, or null if all refs are null\n */\nexport function useMergeRefs<Instance>(\n refs: Array<Ref<Instance> | undefined>,\n): RefCallback<Instance> | null {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return useMemo(() => mergeRefs(refs), refs);\n}\n\n/**\n * Merges an array of refs into a single callback ref.\n *\n * Features:\n * - Merges an array of refs into a single callback ref\n * - Handles both function refs and object refs\n *\n * @param refs - Array of React refs to merge\n * @returns\n */\nexport function mergeRefs<Instance>(\n refs: Array<Ref<Instance> | undefined>,\n): RefCallback<Instance> | null {\n if (refs.every((ref) => ref == null)) {\n return null;\n }\n\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref != null) {\n (ref as MutableRefObject<Instance | null>).current = value;\n }\n });\n };\n}\n"],"names":[],"mappings":";;AAsBO,SAAS,aACd,IAAA,EAC8B;AAE9B,EAAA,OAAO,OAAA,CAAQ,MAAM,SAAA,CAAU,IAAI,GAAG,IAAI,CAAA;AAC5C;AAYO,SAAS,UACd,IAAA,EAC8B;AAC9B,EAAA,IAAI,KAAK,KAAA,CAAM,CAAC,GAAA,KAAQ,GAAA,IAAO,IAAI,CAAA,EAAG;AACpC,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAO,CAAC,KAAA,KAAU;AAChB,IAAA,IAAA,CAAK,OAAA,CAAQ,CAAC,GAAA,KAAQ;AACpB,MAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,QAAA,GAAA,CAAI,KAAK,CAAA;AAAA,MACX,CAAA,MAAA,IAAW,OAAO,IAAA,EAAM;AACtB,QAAC,IAA0C,OAAA,GAAU,KAAA;AAAA,MACvD;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAA;AACF;;;;"}
@@ -1,2 +1,2 @@
1
- export { u as default, u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';
1
+ export { u as default, u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
2
2
  //# sourceMappingURL=useMergeRefs.js.map
@@ -1,5 +1,4 @@
1
1
  import { useRef, useState, useEffect, useCallback } from 'react';
2
- import { t as tabbable } from './DrawerContext-D4tWTLVf.js';
3
2
 
4
3
  const useOpenCloseTransitionStates = (openProp, options = {
5
4
  durationMs: 0
@@ -65,72 +64,14 @@ const useOpenCloseTransitionStates = (openProp, options = {
65
64
  };
66
65
  };
67
66
 
68
- const useKeyboardFocusables = (element, options = {
69
- observeChange: true,
70
- attributes: true,
71
- characterData: true,
72
- childList: true,
73
- subtree: true
74
- }) => {
75
- const [focusables, setFocusables] = useState(null);
76
- const observerRef = useRef();
77
- const mountedRef = useRef(true);
78
- useEffect(() => {
79
- const target = element instanceof HTMLElement ? element : element?.current;
80
- if (!target) return;
81
- if (observerRef.current) return;
82
- if (!options.observeChange && !focusables) {
83
- setFocusables(tabbable(target));
84
- return;
85
- }
86
- let timeoutId = null;
87
- const debounceDelay = 100;
88
- const mutationCallback = () => {
89
- const targetArr = tabbable(target);
90
- if (targetArr.length === 0) return;
91
- if (timeoutId) {
92
- clearTimeout(timeoutId);
93
- }
94
- timeoutId = setTimeout(() => {
95
- if (!mountedRef.current) return;
96
- setFocusables(targetArr);
97
- }, debounceDelay);
98
- };
99
- const observer = new MutationObserver(mutationCallback);
100
- observerRef.current = observer;
101
- observer.observe(target, {
102
- childList: true,
103
- // Observe changes to child elements
104
- subtree: true,
105
- // Observe changes to descendants of the target
106
- attributes: true,
107
- // Observe changes to attributes
108
- characterData: true
109
- // Observe changes to text content
110
- });
111
- }, [element, options]);
112
- useEffect(() => {
113
- return () => {
114
- mountedRef.current = false;
115
- if (!observerRef.current) return;
116
- observerRef.current.disconnect();
117
- };
118
- }, []);
119
- const updateFocusables = () => {
120
- const target = element instanceof HTMLElement ? element : element?.current;
121
- if (!target) return;
122
- setFocusables(tabbable(target));
123
- };
124
- return { focusables, updateFocusables };
125
- };
126
-
127
67
  const useOnClickOutside = ({
128
68
  onOutsidePress,
129
69
  targets,
130
- onClose
70
+ onClose,
71
+ disable
131
72
  }) => {
132
73
  useEffect(() => {
133
- if (typeof document === "undefined") return;
74
+ if (disable || typeof document === "undefined") return;
134
75
  let isClosable = false;
135
76
  const onMouseDownHandler = (e) => {
136
77
  let isTarget = false;
@@ -166,8 +107,8 @@ const useOnClickOutside = ({
166
107
  document.removeEventListener("mousedown", onMouseDownHandler);
167
108
  document.removeEventListener("mouseup", onMouseUpHandler);
168
109
  };
169
- }, [onClose, onOutsidePress, targets]);
110
+ }, [onClose, onOutsidePress, targets, disable]);
170
111
  };
171
112
 
172
- export { useKeyboardFocusables as a, useOnClickOutside as b, useOpenCloseTransitionStates as u };
173
- //# sourceMappingURL=useOnClickOutside-B1ddwORK.js.map
113
+ export { useOnClickOutside as a, useOpenCloseTransitionStates as u };
114
+ //# sourceMappingURL=useOnClickOutside-C5AZE_I6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOnClickOutside-C5AZE_I6.js","sources":["../src/internal/hooks/useOpenCloseTransitionStates/useOpenCloseTransitionStates.ts","../src/internal/hooks/useOnClickOutside/useOnClickOutside.ts"],"sourcesContent":["import { useEffect, useState, useRef, useCallback } from \"react\";\n\n/**\n * Possible states for open/close transitions\n */\nexport type OpenCloseTransitionStates =\n | \"opening\"\n | \"open\"\n | \"closing\"\n | \"closed\";\n\n/**\n * Effects configuration for open/close transition states\n * @property {() => void} [onOpenAnimationStart] - Callback when opening animation starts\n * @property {() => void} [onCloseAnimationStart] - Callback when closing animation starts\n * @property {() => void} [onOpenAnimationComplete] - Callback when opening animation completes\n * @property {() => void} [onCloseAnimationComplete] - Callback when closing animation completes\n * @property {number | (() => number)} [durationMs] - Duration of the animation in milliseconds (or a function that returns the duration)\n */\nexport type OpenCloseTransitionStateEffects = {\n /**\n * Callback when opening animation starts\n */\n onOpenAnimationStart?: () => void;\n /**\n * Callback when closing animation starts\n */\n onCloseAnimationStart?: () => void;\n /**\n * Callback when opening animation completes\n */\n onOpenAnimationComplete?: () => void;\n /**\n * Callback when closing animation completes\n */\n onCloseAnimationComplete?: () => void;\n};\n\nexport type OpenCloseTransitionState = {\n state: OpenCloseTransitionStates;\n beginClosing: () => void;\n isOpenOrOpening: boolean;\n isClosedOrClosing: boolean;\n};\n\nexport type OpenCloseTransitionStateOptions = {\n durationMs: number | (() => number);\n onOpenAnimationStart?: () => void;\n onCloseAnimationStart?: () => void;\n onOpenAnimationComplete?: () => void;\n onCloseAnimationComplete?: () => void;\n};\n\n/**\n * Custom hook for managing open/close transition states and animations.\n *\n * @param openProp - The open prop controlling visibility\n * @param options - Additional, optional options including callbacks for animation start, complete, and initialization\n * @returns Object containing state, control functions, and utility flags\n */\nexport const useOpenCloseTransitionStates = (\n openProp: boolean | undefined,\n options: OpenCloseTransitionStateOptions = {\n durationMs: 0,\n },\n): OpenCloseTransitionState => {\n const {\n onOpenAnimationStart,\n onCloseAnimationStart,\n onOpenAnimationComplete,\n onCloseAnimationComplete,\n durationMs,\n } = options;\n const prevOpenProp = useRef<boolean | undefined>(openProp);\n const [state, setState] = useState<OpenCloseTransitionStates>(\n openProp ? \"open\" : \"closed\",\n );\n\n // Handle open/close prop changes\n useEffect(() => {\n if (prevOpenProp.current && !openProp) {\n // previously open, now closed\n setState(\"closing\");\n } else if (!prevOpenProp.current && openProp) {\n // previously closed, now open\n setState(\"opening\");\n } else {\n // Note: Using \"opening\" here catches the case where the element is initially open, allowing callbacks and animations to run.\n setState(openProp ? \"opening\" : \"closed\");\n }\n prevOpenProp.current = openProp;\n }, [openProp]);\n\n // Handle opening/closing animations\n useEffect(() => {\n if (!durationMs) return;\n if (state === \"open\" || state === \"closed\") return;\n if (state === \"opening\") {\n onOpenAnimationStart?.();\n } else if (state === \"closing\") {\n onCloseAnimationStart?.();\n }\n const d: number =\n typeof durationMs === \"function\" ? durationMs() : durationMs;\n const timeout = setTimeout(() => {\n if (state === \"opening\") {\n setState(\"open\");\n onOpenAnimationComplete?.();\n } else if (state === \"closing\") {\n setState(\"closed\");\n onCloseAnimationComplete?.();\n }\n }, d);\n\n return () => {\n clearTimeout(timeout);\n };\n }, [\n state,\n onOpenAnimationComplete,\n onCloseAnimationComplete,\n onOpenAnimationStart,\n onCloseAnimationStart,\n durationMs,\n ]);\n\n const beginClosing = useCallback(() => {\n setState(\"closing\");\n }, []);\n\n return {\n state,\n beginClosing,\n isOpenOrOpening: state === \"open\" || state === \"opening\",\n isClosedOrClosing: state === \"closed\" || state === \"closing\",\n };\n};\n","import { useEffect } from \"react\";\n\n/**\n * Props for the useOnClickOutside hook\n */\ntype UseOnClickOutsideProps = {\n /**\n * Callback when clicking outside targets\n */\n onOutsidePress?: (e: globalThis.MouseEvent) => void;\n /**\n * Callback when closing (after outside press)\n */\n onClose?: () => void;\n /**\n * Array of target elements to monitor\n */\n targets: (HTMLElement | undefined)[];\n /**\n * Whether to disable the useOnClickOutside hook\n */\n disable?: boolean;\n};\n\n/**\n * Custom hook for detecting clicks outside of specified target elements.\n *\n * Features:\n * - Detects clicks outside of multiple target elements\n * - Supports both mousedown and mouseup event handling\n * - Provides separate callbacks for outside press and close actions\n * - Handles SSR environments gracefully\n * - Automatically cleans up event listeners\n * - Uses composedPath for accurate event target detection\n * - Supports optional callbacks for flexible usage\n *\n * @param props - Configuration object containing targets and optional callbacks\n * @returns void\n */\nexport const useOnClickOutside = ({\n onOutsidePress,\n targets,\n onClose,\n disable,\n}: UseOnClickOutsideProps) => {\n useEffect(() => {\n if (disable || typeof document === \"undefined\") return;\n\n let isClosable = false;\n const onMouseDownHandler = (e: globalThis.MouseEvent) => {\n let isTarget = false;\n const path = e.composedPath();\n for (const el of targets) {\n if (el && path.includes(el)) {\n isTarget = true;\n break;\n }\n }\n\n if (!isTarget) {\n onOutsidePress?.(e);\n isClosable = true;\n }\n };\n const onMouseUpHandler = (e: globalThis.MouseEvent) => {\n if (!isClosable) return;\n let isTarget = false;\n const path = e.composedPath();\n for (const el of targets) {\n if (el && path.includes(el)) {\n isTarget = true;\n break;\n }\n }\n if (!isTarget) {\n onClose?.();\n }\n };\n\n document.addEventListener(\"mousedown\", onMouseDownHandler);\n document.addEventListener(\"mouseup\", onMouseUpHandler);\n return () => {\n document.removeEventListener(\"mousedown\", onMouseDownHandler);\n document.removeEventListener(\"mouseup\", onMouseUpHandler);\n };\n }, [onClose, onOutsidePress, targets, disable]);\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { D as DateTime } from './Calendar-Cn0fOgog.js';
2
+
3
+ const DateModeToFormatMap = {
4
+ "mm/dd/yyyy": "MM/dd/yyyy",
5
+ "dd/mm/yyyy": "dd/MM/yyyy",
6
+ "yyyy/mm/dd": "yyyy/MM/dd"
7
+ };
8
+ const DateModeToPlaceholderMap = {
9
+ "dd/mm/yyyy": "__/__/____",
10
+ "mm/dd/yyyy": "__/__/____",
11
+ "yyyy/mm/dd": "____/__/__"
12
+ };
13
+
14
+ function convertStringToDate(v) {
15
+ if (v === void 0 || v === null) {
16
+ return v;
17
+ }
18
+ const date = DateTime.fromISO(v, { setZone: true, zone: "utc" }).startOf(
19
+ "day"
20
+ );
21
+ if (date.isValid) {
22
+ return date;
23
+ }
24
+ return null;
25
+ }
26
+ function validateDate({
27
+ date,
28
+ constraints
29
+ }) {
30
+ const { required, unavailable, minDate, maxDate } = constraints;
31
+ if (!date) {
32
+ return required ? false : true;
33
+ }
34
+ if (unavailable?.dates?.some((d) => d.equals(date))) {
35
+ return false;
36
+ }
37
+ if (unavailable?.daysOfWeek?.includes(date.weekday)) {
38
+ return false;
39
+ }
40
+ if (minDate && date < minDate) {
41
+ return false;
42
+ }
43
+ if (maxDate && date > maxDate) {
44
+ return false;
45
+ }
46
+ return true;
47
+ }
48
+
49
+ export { DateModeToPlaceholderMap as D, DateModeToFormatMap as a, convertStringToDate as c, validateDate as v };
50
+ //# sourceMappingURL=utils-CnKBdBNm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-CnKBdBNm.js","sources":["../src/components/DateFieldSingle/internal/constants.ts","../src/components/DateFieldSingle/internal/utils.ts"],"sourcesContent":["import { DateMode } from \"../types\";\n\nexport const DateModeToFormatMap: Record<DateMode, string> = {\n \"mm/dd/yyyy\": \"MM/dd/yyyy\",\n \"dd/mm/yyyy\": \"dd/MM/yyyy\",\n \"yyyy/mm/dd\": \"yyyy/MM/dd\",\n};\n\nexport const DateModeToPlaceholderMap: Record<DateMode, string> = {\n \"dd/mm/yyyy\": \"__/__/____\",\n \"mm/dd/yyyy\": \"__/__/____\",\n \"yyyy/mm/dd\": \"____/__/__\",\n};\n","import { DateTime } from \"luxon\";\n\nexport function convertStringToDate(\n v: string | null | undefined,\n): DateTime | null | undefined {\n if (v === undefined || v === null) {\n return v;\n }\n const date = DateTime.fromISO(v, { setZone: true, zone: \"utc\" }).startOf(\n \"day\",\n );\n if (date.isValid) {\n return date;\n }\n return null;\n}\nexport function validateDate({\n date,\n constraints,\n}: {\n date: DateTime | null;\n constraints: {\n required?: boolean;\n unavailable?: {\n dates?: DateTime[];\n daysOfWeek?: number[];\n };\n minDate?: DateTime;\n maxDate?: DateTime;\n };\n}) {\n const { required, unavailable, minDate, maxDate } = constraints;\n if (!date) {\n return required ? false : true;\n }\n if (unavailable?.dates?.some((d) => d.equals(date))) {\n return false;\n }\n if (unavailable?.daysOfWeek?.includes(date.weekday)) {\n return false;\n }\n if (minDate && date < minDate) {\n return false;\n }\n if (maxDate && date > maxDate) {\n return false;\n }\n return true;\n}\n"],"names":[],"mappings":";;AAEO,MAAM,mBAAA,GAAgD;AAAA,EAC3D,YAAA,EAAc,YAAA;AAAA,EACd,YAAA,EAAc,YAAA;AAAA,EACd,YAAA,EAAc;AAChB;AAEO,MAAM,wBAAA,GAAqD;AAAA,EAChE,YAAA,EAAc,YAAA;AAAA,EACd,YAAA,EAAc,YAAA;AAAA,EACd,YAAA,EAAc;AAChB;;ACVO,SAAS,oBACd,CAAA,EAC6B;AAC7B,EAAA,IAAI,CAAA,KAAM,MAAA,IAAa,CAAA,KAAM,IAAA,EAAM;AACjC,IAAA,OAAO,CAAA;AAAA,EACT;AACA,EAAA,MAAM,IAAA,GAAO,QAAA,CAAS,OAAA,CAAQ,CAAA,EAAG,EAAE,SAAS,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,CAAA,CAAE,OAAA;AAAA,IAC/D;AAAA,GACF;AACA,EAAA,IAAI,KAAK,OAAA,EAAS;AAChB,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA;AACT;AACO,SAAS,YAAA,CAAa;AAAA,EAC3B,IAAA;AAAA,EACA;AACF,CAAA,EAWG;AACD,EAAA,MAAM,EAAE,QAAA,EAAU,WAAA,EAAa,OAAA,EAAS,SAAQ,GAAI,WAAA;AACpD,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,WAAW,KAAA,GAAQ,IAAA;AAAA,EAC5B;AACA,EAAA,IAAI,WAAA,EAAa,OAAO,IAAA,CAAK,CAAC,MAAM,CAAA,CAAE,MAAA,CAAO,IAAI,CAAC,CAAA,EAAG;AACnD,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,IAAI,WAAA,EAAa,UAAA,EAAY,QAAA,CAAS,IAAA,CAAK,OAAO,CAAA,EAAG;AACnD,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAA,IAAW,OAAO,OAAA,EAAS;AAC7B,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAA,IAAW,OAAO,OAAA,EAAS;AAC7B,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA;AACT;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/anvil2",
3
- "version": "1.46.2",
3
+ "version": "1.46.3",
4
4
  "type": "module",
5
5
  "types": "./dist/index.d.ts",
6
6
  "main": "./dist/index.js",