@servicetitan/anvil2 1.46.1 → 1.46.2

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 (231) hide show
  1. package/CHANGELOG.md +24 -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.map +1 -1
  10. package/dist/Avatar-D07f9NH_.js.map +1 -1
  11. package/dist/Badge-DCA9mfc2.js.map +1 -1
  12. package/dist/Breadcrumbs-C4_PEolS.js.map +1 -1
  13. package/dist/{Button-BxFXQ0-n.js → Button-VNQQgZ45.js} +2 -2
  14. package/dist/{Button-BxFXQ0-n.js.map → Button-VNQQgZ45.js.map} +1 -1
  15. package/dist/Button.css +48 -48
  16. package/dist/Button.js +1 -1
  17. package/dist/Button.module-C1g9rrJs.js +25 -0
  18. package/dist/Button.module-C1g9rrJs.js.map +1 -0
  19. package/dist/{ButtonCompound-BF2Q6gGX.js → ButtonCompound-BbPK-Xjj.js} +2 -2
  20. package/dist/{ButtonCompound-BF2Q6gGX.js.map → ButtonCompound-BbPK-Xjj.js.map} +1 -1
  21. package/dist/ButtonCompound.js +1 -1
  22. package/dist/{ButtonLink-CXv65WVV.js → ButtonLink-CqR1F5Wn.js} +3 -3
  23. package/dist/{ButtonLink-CXv65WVV.js.map → ButtonLink-CqR1F5Wn.js.map} +1 -1
  24. package/dist/ButtonLink.js +1 -1
  25. package/dist/{ButtonToggle-pSwg7NvT.js → ButtonToggle-PCeSG-5D.js} +3 -3
  26. package/dist/{ButtonToggle-pSwg7NvT.js.map → ButtonToggle-PCeSG-5D.js.map} +1 -1
  27. package/dist/ButtonToggle.js +1 -1
  28. package/dist/{Calendar-BQ5F2ENO.js → Calendar-X9qUi6Vx.js} +269 -123
  29. package/dist/Calendar-X9qUi6Vx.js.map +1 -0
  30. package/dist/Calendar.js +1 -1
  31. package/dist/Card-vTYeSkxt.js.map +1 -1
  32. package/dist/{Checkbox-DDrmVC-u.js → Checkbox-BDohwHXQ.js} +2 -2
  33. package/dist/{Checkbox-DDrmVC-u.js.map → Checkbox-BDohwHXQ.js.map} +1 -1
  34. package/dist/{Checkbox-Dl4KTwEJ.js → Checkbox-CcYtto5f.js} +2 -2
  35. package/dist/{Checkbox-Dl4KTwEJ.js.map → Checkbox-CcYtto5f.js.map} +1 -1
  36. package/dist/Checkbox.js +2 -2
  37. package/dist/Chip-Bz-vlQ4D.js.map +1 -1
  38. package/dist/{Combobox-B9nesJuc.js → Combobox-DQmW8Tyl.js} +144 -53
  39. package/dist/Combobox-DQmW8Tyl.js.map +1 -0
  40. package/dist/Combobox.js +1 -1
  41. package/dist/{DateField-DXxPsRtf.js → DateField-C43nfkbx.js} +7 -7
  42. package/dist/{DateField-DXxPsRtf.js.map → DateField-C43nfkbx.js.map} +1 -1
  43. package/dist/DateField.js +1 -1
  44. package/dist/{DateFieldRange-Xauviu1w.js → DateFieldRange-g7n5QYww.js} +8 -8
  45. package/dist/{DateFieldRange-Xauviu1w.js.map → DateFieldRange-g7n5QYww.js.map} +1 -1
  46. package/dist/DateFieldRange.js +1 -1
  47. package/dist/{DateFieldSingle-yLnwpVzd.js → DateFieldSingle-D3tneqeG.js} +8 -8
  48. package/dist/{DateFieldSingle-yLnwpVzd.js.map → DateFieldSingle-D3tneqeG.js.map} +1 -1
  49. package/dist/DateFieldSingle.js +1 -1
  50. package/dist/{DateFieldYearless-Ba7HiTiI.js → DateFieldYearless-3JBVj3wn.js} +4 -4
  51. package/dist/{DateFieldYearless-Ba7HiTiI.js.map → DateFieldYearless-3JBVj3wn.js.map} +1 -1
  52. package/dist/DateFieldYearless.js +1 -1
  53. package/dist/{DaysOfTheWeek-BYSYZySH.js → DaysOfTheWeek-RcPgDoM3.js} +4 -4
  54. package/dist/{DaysOfTheWeek-BYSYZySH.js.map → DaysOfTheWeek-RcPgDoM3.js.map} +1 -1
  55. package/dist/DaysOfTheWeek.js +1 -1
  56. package/dist/Details-CF8DImjw.js.map +1 -1
  57. package/dist/{Dialog-CgkrvrQu.js → Dialog-FNJ16gY6.js} +6 -6
  58. package/dist/{Dialog-CgkrvrQu.js.map → Dialog-FNJ16gY6.js.map} +1 -1
  59. package/dist/Dialog.js +1 -1
  60. package/dist/Divider-DJe8kLf2.js.map +1 -1
  61. package/dist/Dnd.js +1 -1
  62. package/dist/DndSort.js +2 -2
  63. package/dist/DndSort.js.map +1 -1
  64. package/dist/{Drawer-CM4ZbAro.js → Drawer-DT31CMRd.js} +6 -6
  65. package/dist/{Drawer-CM4ZbAro.js.map → Drawer-DT31CMRd.js.map} +1 -1
  66. package/dist/Drawer.js +1 -1
  67. package/dist/{DrawerContext-DboTgTmo.js → DrawerContext-D4tWTLVf.js} +27 -10
  68. package/dist/DrawerContext-D4tWTLVf.js.map +1 -0
  69. package/dist/{EditCard-WKzZ2XCz.js → EditCard-CZzL0nx7.js} +2 -2
  70. package/dist/{EditCard-WKzZ2XCz.js.map → EditCard-CZzL0nx7.js.map} +1 -1
  71. package/dist/EditCard.js +1 -1
  72. package/dist/{FieldLabel-BsbTTyom.js → FieldLabel-BP8QK5UR.js} +2 -2
  73. package/dist/{FieldLabel-BsbTTyom.js.map → FieldLabel-BP8QK5UR.js.map} +1 -1
  74. package/dist/FieldLabel.js +1 -1
  75. package/dist/FieldMessage-B7uQ8vmr.js.map +1 -1
  76. package/dist/Flex-BdQMekvA.js.map +1 -1
  77. package/dist/Grid-MGUC698u.js.map +1 -1
  78. package/dist/Helper-BkIDJqgA.js.map +1 -1
  79. package/dist/Icon-D8SPKeO4.js.map +1 -1
  80. package/dist/{InputMask-_F139qFu.js → InputMask-CPuYMcw9.js} +3 -3
  81. package/dist/{InputMask-_F139qFu.js.map → InputMask-CPuYMcw9.js.map} +1 -1
  82. package/dist/InputMask.js +1 -1
  83. package/dist/Layout-CUUb2PVr.js.map +1 -1
  84. package/dist/Link-eRsLWPaQ.js.map +1 -1
  85. package/dist/LinkButton-2lXfrVoU.js.map +1 -1
  86. package/dist/{ListView-pb3rIcze.js → ListView-BJI8BQJ-.js} +2 -2
  87. package/dist/{ListView-pb3rIcze.js.map → ListView-BJI8BQJ-.js.map} +1 -1
  88. package/dist/ListView.js +1 -1
  89. package/dist/Listbox-CUhMbFm2.js.map +1 -1
  90. package/dist/LocalizationContext-UsmB5mnR.js.map +1 -1
  91. package/dist/LocalizationProvider-DEZyjW5d.js.map +1 -1
  92. package/dist/{Menu-DEVZz9xZ.js → Menu-t_11BIhU.js} +3 -3
  93. package/dist/{Menu-DEVZz9xZ.js.map → Menu-t_11BIhU.js.map} +1 -1
  94. package/dist/Menu.js +1 -1
  95. package/dist/{NumberField-CkZZrkYC.js → NumberField-Bjf9Tyvf.js} +6 -6
  96. package/dist/{NumberField-CkZZrkYC.js.map → NumberField-Bjf9Tyvf.js.map} +1 -1
  97. package/dist/NumberField.js +1 -1
  98. package/dist/Overflow.js.map +1 -1
  99. package/dist/{Page-BMDkbDcU.js → Page-BAyXnhz2.js} +9 -9
  100. package/dist/Page-BAyXnhz2.js.map +1 -0
  101. package/dist/Page.js +1 -1
  102. package/dist/{Pagination-BJsCppgW.js → Pagination-DCBic619.js} +47 -23
  103. package/dist/Pagination-DCBic619.js.map +1 -0
  104. package/dist/Pagination.css +6 -6
  105. package/dist/Pagination.js +1 -1
  106. package/dist/{Popover-r26xMIfm.js → Popover-CrksxqKk.js} +11 -5
  107. package/dist/Popover-CrksxqKk.js.map +1 -0
  108. package/dist/Popover.js +1 -1
  109. package/dist/PortalProvider-9lXkQ0xY.js.map +1 -1
  110. package/dist/{ProgressBar-DXcXZEJ2.js → ProgressBar-CgsAW2d8.js} +2 -2
  111. package/dist/{ProgressBar-DXcXZEJ2.js.map → ProgressBar-CgsAW2d8.js.map} +1 -1
  112. package/dist/ProgressBar.js +1 -1
  113. package/dist/{Radio-C89VCMXd.js → Radio-C_rvxw74.js} +2 -2
  114. package/dist/{Radio-C89VCMXd.js.map → Radio-C_rvxw74.js.map} +1 -1
  115. package/dist/Radio.js +2 -2
  116. package/dist/{RadioGroup-C_4buUtG.js → RadioGroup-DxBblSrx.js} +2 -2
  117. package/dist/{RadioGroup-C_4buUtG.js.map → RadioGroup-DxBblSrx.js.map} +1 -1
  118. package/dist/SearchField-Bb0uObwG.js.map +1 -1
  119. package/dist/{SegmentedControl-CsjjV1Dz.js → SegmentedControl-DC4BpdH5.js} +3 -3
  120. package/dist/{SegmentedControl-CsjjV1Dz.js.map → SegmentedControl-DC4BpdH5.js.map} +1 -1
  121. package/dist/SegmentedControl.js +1 -1
  122. package/dist/{SelectCard-BTYZg9TG.js → SelectCard-DunNE9R3.js} +3 -3
  123. package/dist/{SelectCard-BTYZg9TG.js.map → SelectCard-DunNE9R3.js.map} +1 -1
  124. package/dist/SelectCard.js +1 -1
  125. package/dist/{SelectTrigger-f1hvRrSC.js → SelectTrigger-BYysLREL.js} +2 -2
  126. package/dist/{SelectTrigger-f1hvRrSC.js.map → SelectTrigger-BYysLREL.js.map} +1 -1
  127. package/dist/SelectTrigger.js +1 -1
  128. package/dist/{SelectTriggerBase-DP9fmRSo.js → SelectTriggerBase-DqUpJgzk.js} +3 -3
  129. package/dist/{SelectTriggerBase-DP9fmRSo.js.map → SelectTriggerBase-DqUpJgzk.js.map} +1 -1
  130. package/dist/{SideNav-CBAzYyML.js → SideNav-B9AWmF_H.js} +2 -2
  131. package/dist/SideNav-B9AWmF_H.js.map +1 -0
  132. package/dist/SideNav.js +1 -1
  133. package/dist/Skeleton.js.map +1 -1
  134. package/dist/Spinner-wmO8Epw0.js.map +1 -1
  135. package/dist/SrOnly-CTsYSuby.js.map +1 -1
  136. package/dist/{Stepper-D-fOH9TF.js → Stepper-DHTrvfXw.js} +3 -3
  137. package/dist/{Stepper-D-fOH9TF.js.map → Stepper-DHTrvfXw.js.map} +1 -1
  138. package/dist/Stepper.js +1 -1
  139. package/dist/Switch-C2ddZcr9.js.map +1 -1
  140. package/dist/{Tab-wNucMTgo.js → Tab-0zx9hsw8.js} +44 -36
  141. package/dist/Tab-0zx9hsw8.js.map +1 -0
  142. package/dist/Tab.js +1 -1
  143. package/dist/Text-BqvcbXyp.js.map +1 -1
  144. package/dist/{TextField-D8fow9j7.js → TextField-CFWs3lm9.js} +2 -2
  145. package/dist/{TextField-D8fow9j7.js.map → TextField-CFWs3lm9.js.map} +1 -1
  146. package/dist/{TextField-BiHxlzE3.js → TextField-Cge6IRo5.js} +2 -2
  147. package/dist/{TextField-BiHxlzE3.js.map → TextField-Cge6IRo5.js.map} +1 -1
  148. package/dist/TextField.js +1 -1
  149. package/dist/{Textarea-BdVJJlbP.js → Textarea-CXd3NKkW.js} +2 -2
  150. package/dist/{Textarea-BdVJJlbP.js.map → Textarea-CXd3NKkW.js.map} +1 -1
  151. package/dist/Textarea.js +1 -1
  152. package/dist/ThemeProvider-Be3Pvtpz.js.map +1 -1
  153. package/dist/ThemeProviderContext-l52GohYT.js.map +1 -1
  154. package/dist/{TimeField-CmbErrsZ.js → TimeField-4v5aCwiG.js} +345 -355
  155. package/dist/TimeField-4v5aCwiG.js.map +1 -0
  156. package/dist/TimeField.js +1 -1
  157. package/dist/Toast.js +2 -2
  158. package/dist/{Toaster-9cpG_tWR.js → Toaster-D-rNSLTq.js} +17 -17
  159. package/dist/{Toaster-9cpG_tWR.js.map → Toaster-D-rNSLTq.js.map} +1 -1
  160. package/dist/{Toaster-B7zUwJOt.js → Toaster-bON5Xc1P.js} +2 -2
  161. package/dist/{Toaster-B7zUwJOt.js.map → Toaster-bON5Xc1P.js.map} +1 -1
  162. package/dist/{Toolbar-D4zuUFhb.js → Toolbar-B2Jsuptz.js} +14 -14
  163. package/dist/{Toolbar-D4zuUFhb.js.map → Toolbar-B2Jsuptz.js.map} +1 -1
  164. package/dist/Toolbar.js +1 -1
  165. package/dist/{Tooltip-BI3Xs75X.js → Tooltip-CtCLw_vx.js} +8 -2
  166. package/dist/{Tooltip-BI3Xs75X.js.map → Tooltip-CtCLw_vx.js.map} +1 -1
  167. package/dist/Tooltip.js +1 -1
  168. package/dist/TrackingProvider-BtSjkmpM.js.map +1 -1
  169. package/dist/beta.js +1 -1
  170. package/dist/childrenToString-Bz9MqbHb.js.map +1 -1
  171. package/dist/components/Combobox/ComboboxTypes.d.ts +10 -5
  172. package/dist/components/Combobox/internal/ComboboxGroupContext.d.ts +1 -1
  173. package/dist/components/Combobox/internal/useGroups.d.ts +2 -2
  174. package/dist/components/DndSort/internal/test-utils.d.ts +1 -1
  175. package/dist/components/TimeField/TimeField.d.ts +4 -1
  176. package/dist/extends-Bg2s_OKl.js.map +1 -1
  177. package/dist/getActiveElement-BcSyVE7S.js.map +1 -1
  178. package/dist/getKeyboardFocusableElements-QqcABz0D.js.map +1 -1
  179. package/dist/{index-V5Ez2gq_.js → index-DrM3iid4.js} +2 -2
  180. package/dist/{index-V5Ez2gq_.js.map → index-DrM3iid4.js.map} +1 -1
  181. package/dist/index-tZvMCc77.js.map +1 -1
  182. package/dist/{index.esm-D889iexm.js → index.esm-BwMVvxTV.js} +199 -144
  183. package/dist/index.esm-BwMVvxTV.js.map +1 -0
  184. package/dist/index.js +45 -45
  185. package/dist/index.js.map +1 -1
  186. package/dist/makeZeroShortcutPreprocessor-CxsiGTRW.js.map +1 -1
  187. package/dist/{proxy-CreWmH-e.js → proxy-BbFHSE6L.js} +8631 -8680
  188. package/dist/proxy-BbFHSE6L.js.map +1 -0
  189. package/dist/{use-reduced-motion-znCm41qB.js → use-reduced-motion-DSpxmqyT.js} +3 -3
  190. package/dist/use-reduced-motion-DSpxmqyT.js.map +1 -0
  191. package/dist/useAccessibleColor-BYKjkGRg.js.map +1 -1
  192. package/dist/useBreakpoint-Cv5fnZxs.js.map +1 -1
  193. package/dist/{useDateFieldOrchestration-BNJCsRkS.js → useDateFieldOrchestration-DyAc3gPJ.js} +3 -3
  194. package/dist/{useDateFieldOrchestration-BNJCsRkS.js.map → useDateFieldOrchestration-DyAc3gPJ.js.map} +1 -1
  195. package/dist/{useDialogTransitionStates-2NaE_noq.js → useDialogTransitionStates-C1TtiwA_.js} +3 -3
  196. package/dist/{useDialogTransitionStates-2NaE_noq.js.map → useDialogTransitionStates-C1TtiwA_.js.map} +1 -1
  197. package/dist/useFocusWithin-BhhgRXdZ.js.map +1 -1
  198. package/dist/useInfiniteCombobox-WcRgC9p6.js.map +1 -1
  199. package/dist/useIntersectionObserver-BEmMDO3P.js.map +1 -1
  200. package/dist/useLayoutPropsUtil-DjD5IMh0.js.map +1 -1
  201. package/dist/useMergeRefs-Bde85AWI.js.map +1 -1
  202. package/dist/{useOnClickOutside-BHEWMLa9.js → useOnClickOutside-B1ddwORK.js} +5 -2
  203. package/dist/useOnClickOutside-B1ddwORK.js.map +1 -0
  204. package/dist/useOptionallyControlledState-DbDuos5L.js.map +1 -1
  205. package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT.js.map +1 -1
  206. package/dist/{usePopoverSupport-DIjjfodl.js → usePopoverSupport-CWTCDfN2.js} +2 -2
  207. package/dist/{usePopoverSupport-DIjjfodl.js.map → usePopoverSupport-CWTCDfN2.js.map} +1 -1
  208. package/dist/usePrefersColorScheme-_hT7dK7_.js.map +1 -1
  209. package/dist/usePrevious-Bvq-5auG.js.map +1 -1
  210. package/dist/useSize.js.map +1 -1
  211. package/dist/{useSwipe-CULmVQEk.js → useSwipe-Cp-CJxLU.js} +2 -2
  212. package/dist/{useSwipe-CULmVQEk.js.map → useSwipe-Cp-CJxLU.js.map} +1 -1
  213. package/dist/useSwipe.js +1 -1
  214. package/dist/useTrackingContext-DRwDL8DE.js.map +1 -1
  215. package/dist/useTrackingId.js.map +1 -1
  216. package/package.json +12 -18
  217. package/dist/Button.module-pUNSKoVC.js +0 -25
  218. package/dist/Button.module-pUNSKoVC.js.map +0 -1
  219. package/dist/Calendar-BQ5F2ENO.js.map +0 -1
  220. package/dist/Combobox-B9nesJuc.js.map +0 -1
  221. package/dist/DrawerContext-DboTgTmo.js.map +0 -1
  222. package/dist/Page-BMDkbDcU.js.map +0 -1
  223. package/dist/Pagination-BJsCppgW.js.map +0 -1
  224. package/dist/Popover-r26xMIfm.js.map +0 -1
  225. package/dist/SideNav-CBAzYyML.js.map +0 -1
  226. package/dist/Tab-wNucMTgo.js.map +0 -1
  227. package/dist/TimeField-CmbErrsZ.js.map +0 -1
  228. package/dist/index.esm-D889iexm.js.map +0 -1
  229. package/dist/proxy-CreWmH-e.js.map +0 -1
  230. package/dist/use-reduced-motion-znCm41qB.js.map +0 -1
  231. package/dist/useOnClickOutside-BHEWMLa9.js.map +0 -1
@@ -1,16 +1,16 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { forwardRef, useState, useRef, useMemo, useEffect, useCallback, useImperativeHandle } from 'react';
4
- import { g as maskitoTimeOptionsGenerator, a as maskitoWithPlaceholder, u as useMaskito } from './index.esm-D889iexm.js';
4
+ import { g as maskitoTimeOptionsGenerator, a as maskitoWithPlaceholder, u as useMaskito } from './index.esm-BwMVvxTV.js';
5
5
  import { I as Icon } from './Icon-D8SPKeO4.js';
6
- import { T as TextField } from './TextField-D8fow9j7.js';
6
+ import { T as TextField } from './TextField-CFWs3lm9.js';
7
7
  import { c as cx } from './index-tZvMCc77.js';
8
8
  import { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';
9
- import { P as Popover } from './Popover-r26xMIfm.js';
9
+ import { P as Popover } from './Popover-CrksxqKk.js';
10
10
  import { L as Listbox } from './Listbox-CUhMbFm2.js';
11
11
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjD5IMh0.js';
12
12
  import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
13
- import { u as usePopoverSupport } from './usePopoverSupport-DIjjfodl.js';
13
+ import { u as usePopoverSupport } from './usePopoverSupport-CWTCDfN2.js';
14
14
  import { u as usePopoverCloseDelayWorkaround } from './usePopoverCloseDelayWorkaround-BZcjPkvT.js';
15
15
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
16
16
  import { useTrackingId } from './useTrackingId.js';
@@ -528,14 +528,14 @@ const MaskedTimeInput = forwardRef(
528
528
  },
529
529
  [currentParsedData, format, onBlur]
530
530
  );
531
- useImperativeHandle(
532
- ref,
533
- () => ({
534
- ...inputRef.current,
535
- focus: () => inputRef.current?.focus(),
531
+ useImperativeHandle(ref, () => {
532
+ const input = inputRef.current;
533
+ if (!input)
534
+ return null;
535
+ return Object.assign(input, {
536
536
  resetTypingFlag
537
- })
538
- );
537
+ });
538
+ });
539
539
  const classNames = useMemo(() => {
540
540
  return cx(styles["time-field"], className);
541
541
  }, [className]);
@@ -561,368 +561,358 @@ const MaskedTimeInput = forwardRef(
561
561
  );
562
562
  MaskedTimeInput.displayName = "MaskedTimeInput";
563
563
 
564
- const TimeField = forwardRef(
565
- (props, ref) => {
566
- const { componentProps } = useLayoutPropsUtil(props);
567
- const {
568
- label,
569
- labelProps,
570
- size,
571
- value: valueProp,
572
- defaultValue,
573
- min,
574
- max,
575
- onChange,
576
- format = 12,
577
- step = 30,
578
- required,
579
- description,
580
- error: errorProp,
581
- disableSuggestions = false,
582
- autoround = false,
583
- className,
584
- ...rest
585
- } = componentProps;
586
- const [isDropdownOpen, setIsDropdownOpenRaw] = useState(false);
587
- const setIsDropdownOpen = (open) => {
588
- setIsDropdownOpenRaw(open);
564
+ const TimeField = (props) => {
565
+ const { componentProps } = useLayoutPropsUtil(props);
566
+ const {
567
+ label,
568
+ labelProps,
569
+ size,
570
+ value: valueProp,
571
+ defaultValue,
572
+ min,
573
+ max,
574
+ onChange,
575
+ format = 12,
576
+ step = 30,
577
+ required,
578
+ description,
579
+ error: errorProp,
580
+ disableSuggestions = false,
581
+ autoround = false,
582
+ className,
583
+ ...rest
584
+ } = componentProps;
585
+ const [isDropdownOpen, setIsDropdownOpenRaw] = useState(false);
586
+ const setIsDropdownOpen = (open) => {
587
+ setIsDropdownOpenRaw(open);
588
+ };
589
+ const [selectedOptionIndex, setSelectedOptionIndex] = useState(0);
590
+ const [inputValueForFiltering, setInputValueForFiltering] = useState("");
591
+ const [currentParsedTime, setCurrentParsedTime] = useState(
592
+ null
593
+ );
594
+ const [selectedTime, setSelectedTime] = useOptionallyControlledState({
595
+ controlledValue: valueProp,
596
+ defaultValue: defaultValue ?? null
597
+ });
598
+ const [inputParsedData, setInputParsedData] = useState({ time: null, isInputValid: false, isInputEmpty: true });
599
+ const lastOnChangeCallRef = useRef(null);
600
+ const isDropdownClickingRef = useRef(false);
601
+ const [justSelected, setJustSelected] = useState(false);
602
+ const tabJustPressedRef = useRef(false);
603
+ const inputRef = useRef(null);
604
+ const popoverContentRef = useRef(null);
605
+ const [popoverTriggerRef, setPopoverTriggerRef] = useState();
606
+ const combinedRef = useMergeRefs([popoverTriggerRef, inputRef]);
607
+ const popoverSupported = usePopoverSupport();
608
+ const placeholder = TIME_FORMAT_PLACEHOLDERS[format];
609
+ const shouldShowOptionsFromHook = usePopoverCloseDelayWorkaround(isDropdownOpen);
610
+ const shouldShowOptions = tabJustPressedRef.current ? false : shouldShowOptionsFromHook;
611
+ const dropdownTimeoutRef = useRef(null);
612
+ useEffect(() => {
613
+ const dropdownRef = dropdownTimeoutRef.current;
614
+ return () => {
615
+ if (dropdownRef) {
616
+ clearTimeout(dropdownRef);
617
+ }
589
618
  };
590
- const [selectedOptionIndex, setSelectedOptionIndex] = useState(0);
591
- const [inputValueForFiltering, setInputValueForFiltering] = useState("");
592
- const [currentParsedTime, setCurrentParsedTime] = useState(
593
- null
619
+ }, []);
620
+ const allTimeOptions = useMemo(
621
+ () => generateTimeOptions({ step, min, max, format }),
622
+ [step, min, max, format]
623
+ );
624
+ const baseFilteredOptions = useMemo(() => {
625
+ if (!inputValueForFiltering || inputValueForFiltering.match(/^[–_:]+$/)) {
626
+ return allTimeOptions;
627
+ }
628
+ return filterTimeOptions(allTimeOptions, inputValueForFiltering);
629
+ }, [allTimeOptions, inputValueForFiltering]);
630
+ const autoRoundingOptions = useMemo(() => {
631
+ if (!autoround || baseFilteredOptions.length > 0 || !inputValueForFiltering || inputValueForFiltering.match(/^[–_:]+$/)) {
632
+ return [];
633
+ }
634
+ const currentTime = currentParsedTime || inputParsedData.time;
635
+ const autoRoundedOptions = getAutoRoundingOptions(
636
+ currentTime,
637
+ step ?? 30,
638
+ format,
639
+ inputValueForFiltering,
640
+ min
594
641
  );
595
- const [selectedTime, setSelectedTime] = useOptionallyControlledState({
596
- controlledValue: valueProp,
597
- defaultValue: defaultValue ?? null
598
- });
599
- const [inputParsedData, setInputParsedData] = useState({ time: null, isInputValid: false, isInputEmpty: true });
600
- const lastOnChangeCallRef = useRef(null);
601
- const isDropdownClickingRef = useRef(false);
602
- const [justSelected, setJustSelected] = useState(false);
603
- const tabJustPressedRef = useRef(false);
604
- const inputRef = useRef(null);
605
- const popoverContentRef = useRef(null);
606
- const combinedRef = useMergeRefs([inputRef, ref]);
607
- const popoverSupported = usePopoverSupport();
608
- const placeholder = TIME_FORMAT_PLACEHOLDERS[format];
609
- const shouldShowOptionsFromHook = usePopoverCloseDelayWorkaround(isDropdownOpen);
610
- const shouldShowOptions = tabJustPressedRef.current ? false : shouldShowOptionsFromHook;
611
- const dropdownTimeoutRef = useRef(null);
612
- useEffect(() => {
613
- const dropdownRef = dropdownTimeoutRef.current;
614
- return () => {
615
- if (dropdownRef) {
616
- clearTimeout(dropdownRef);
617
- }
618
- };
619
- }, []);
620
- const allTimeOptions = useMemo(
621
- () => generateTimeOptions({ step, min, max, format }),
622
- [step, min, max, format]
642
+ return autoRoundedOptions.filter(
643
+ (option) => !baseFilteredOptions.includes(option)
623
644
  );
624
- const baseFilteredOptions = useMemo(() => {
625
- if (!inputValueForFiltering || inputValueForFiltering.match(/^[–_:]+$/)) {
645
+ }, [
646
+ autoround,
647
+ baseFilteredOptions,
648
+ inputValueForFiltering,
649
+ currentParsedTime,
650
+ inputParsedData.time,
651
+ format,
652
+ min,
653
+ step
654
+ ]);
655
+ const filteredOptions = useMemo(() => {
656
+ if (baseFilteredOptions.length === 0 && autoRoundingOptions.length === 0) {
657
+ if (!inputParsedData.isInputValid && inputValueForFiltering && !inputValueForFiltering.match(/^[–_:]+$/)) {
626
658
  return allTimeOptions;
627
659
  }
628
- return filterTimeOptions(allTimeOptions, inputValueForFiltering);
629
- }, [allTimeOptions, inputValueForFiltering]);
630
- const autoRoundingOptions = useMemo(() => {
631
- if (!autoround || baseFilteredOptions.length > 0 || !inputValueForFiltering || inputValueForFiltering.match(/^[–_:]+$/)) {
632
- return [];
633
- }
634
- const currentTime = currentParsedTime || inputParsedData.time;
635
- const autoRoundedOptions = getAutoRoundingOptions(
636
- currentTime,
637
- step ?? 30,
638
- format,
639
- inputValueForFiltering,
640
- min
641
- );
642
- return autoRoundedOptions.filter(
643
- (option) => !baseFilteredOptions.includes(option)
644
- );
645
- }, [
646
- autoround,
647
- baseFilteredOptions,
648
- inputValueForFiltering,
649
- currentParsedTime,
650
- inputParsedData.time,
651
- format,
652
- min,
653
- step
654
- ]);
655
- const filteredOptions = useMemo(() => {
656
- if (baseFilteredOptions.length === 0 && autoRoundingOptions.length === 0) {
657
- if (!inputParsedData.isInputValid && inputValueForFiltering && !inputValueForFiltering.match(/^[–_:]+$/)) {
658
- return allTimeOptions;
659
- }
660
+ }
661
+ return [...baseFilteredOptions, ...autoRoundingOptions];
662
+ }, [
663
+ baseFilteredOptions,
664
+ autoRoundingOptions,
665
+ allTimeOptions,
666
+ inputValueForFiltering,
667
+ inputParsedData.isInputValid
668
+ ]);
669
+ const handleBlur = useCallback(
670
+ (event) => {
671
+ if (event.relatedTarget && popoverContentRef.current?.contains(event.relatedTarget) && isDropdownClickingRef.current) {
672
+ isDropdownClickingRef.current = false;
673
+ return;
660
674
  }
661
- return [...baseFilteredOptions, ...autoRoundingOptions];
662
- }, [
663
- baseFilteredOptions,
664
- autoRoundingOptions,
665
- allTimeOptions,
666
- inputValueForFiltering,
667
- inputParsedData.isInputValid
668
- ]);
669
- const handleBlur = useCallback(
670
- (event) => {
671
- if (event.relatedTarget && popoverContentRef.current?.contains(event.relatedTarget) && isDropdownClickingRef.current) {
672
- isDropdownClickingRef.current = false;
673
- return;
674
- }
675
- setIsDropdownOpen(false);
676
- setSelectedOptionIndex(0);
677
- const input = event.target;
678
- const parsedInputTime = input.dataset.time || null;
679
- const isInputValid = input.dataset.inputValid === "true";
680
- const isInputEmpty = input.dataset.inputEmpty === "true";
681
- let finalTime = parsedInputTime;
682
- if (autoround && finalTime && isInputValid) {
683
- const beforeRounding = finalTime;
684
- finalTime = handleAutoRounding(finalTime, {
685
- autoround,
686
- step,
687
- format
688
- });
689
- if (finalTime !== beforeRounding) {
690
- inputRef.current?.resetTypingFlag?.();
691
- setSelectedTime(finalTime);
692
- }
693
- }
694
- const currentChange = {
695
- time: finalTime,
696
- isInputValid,
697
- isInputEmpty
698
- };
699
- const lastChange = lastOnChangeCallRef.current;
700
- const isDuplicate = lastChange && lastChange.time === currentChange.time && lastChange.isInputValid === currentChange.isInputValid && lastChange.isInputEmpty === currentChange.isInputEmpty;
701
- if (!isDuplicate) {
702
- onChange?.(currentChange);
703
- lastOnChangeCallRef.current = currentChange;
675
+ setIsDropdownOpen(false);
676
+ setSelectedOptionIndex(0);
677
+ const input = event.target;
678
+ const parsedInputTime = input.dataset.time || null;
679
+ const isInputValid = input.dataset.inputValid === "true";
680
+ const isInputEmpty = input.dataset.inputEmpty === "true";
681
+ let finalTime = parsedInputTime;
682
+ if (autoround && finalTime && isInputValid) {
683
+ const beforeRounding = finalTime;
684
+ finalTime = handleAutoRounding(finalTime, {
685
+ autoround,
686
+ step,
687
+ format
688
+ });
689
+ if (finalTime !== beforeRounding) {
690
+ inputRef.current?.resetTypingFlag?.();
691
+ setSelectedTime(finalTime);
704
692
  }
705
- },
706
- // eslint-disable-next-line react-hooks/exhaustive-deps
707
- [format, step, autoround, onChange]
708
- );
709
- const handleFocus = useCallback(() => {
710
- if (!disableSuggestions && !justSelected) {
711
- setIsDropdownOpen(true);
712
- setSelectedOptionIndex(0);
713
- }
714
- }, [disableSuggestions, justSelected]);
715
- useEffect(() => {
716
- if (filteredOptions.length <= 1 && isDropdownOpen) {
717
- setIsDropdownOpen(false);
718
693
  }
719
- if (!disableSuggestions && filteredOptions.length > 1 && document.activeElement && document.activeElement.tagName === "INPUT" && !isDropdownOpen && !justSelected && !tabJustPressedRef.current) {
720
- setIsDropdownOpen(true);
721
- setSelectedOptionIndex(0);
694
+ const currentChange = {
695
+ time: finalTime,
696
+ isInputValid,
697
+ isInputEmpty
698
+ };
699
+ const lastChange = lastOnChangeCallRef.current;
700
+ const isDuplicate = lastChange && lastChange.time === currentChange.time && lastChange.isInputValid === currentChange.isInputValid && lastChange.isInputEmpty === currentChange.isInputEmpty;
701
+ if (!isDuplicate) {
702
+ onChange?.(currentChange);
703
+ lastOnChangeCallRef.current = currentChange;
722
704
  }
723
- }, [filteredOptions, disableSuggestions, isDropdownOpen, justSelected]);
724
- const handleInputChange = (change) => {
725
- setInputValueForFiltering(change.event.target.value);
726
- setCurrentParsedTime(change.time);
727
- setInputParsedData({
728
- time: change.time,
729
- isInputValid: change.isInputValid,
730
- isInputEmpty: change.isInputEmpty
705
+ },
706
+ // eslint-disable-next-line react-hooks/exhaustive-deps
707
+ [format, step, autoround, onChange]
708
+ );
709
+ const handleFocus = useCallback(() => {
710
+ if (!disableSuggestions && !justSelected) {
711
+ setIsDropdownOpen(true);
712
+ setSelectedOptionIndex(0);
713
+ }
714
+ }, [disableSuggestions, justSelected]);
715
+ useEffect(() => {
716
+ if (filteredOptions.length <= 1 && isDropdownOpen) {
717
+ setIsDropdownOpen(false);
718
+ }
719
+ if (!disableSuggestions && filteredOptions.length > 1 && document.activeElement && document.activeElement.tagName === "INPUT" && !isDropdownOpen && !justSelected && !tabJustPressedRef.current) {
720
+ setIsDropdownOpen(true);
721
+ setSelectedOptionIndex(0);
722
+ }
723
+ }, [filteredOptions, disableSuggestions, isDropdownOpen, justSelected]);
724
+ const handleInputChange = (change) => {
725
+ setInputValueForFiltering(change.event.target.value);
726
+ setCurrentParsedTime(change.time);
727
+ setInputParsedData({
728
+ time: change.time,
729
+ isInputValid: change.isInputValid,
730
+ isInputEmpty: change.isInputEmpty
731
+ });
732
+ setSelectedOptionIndex(0);
733
+ setJustSelected(false);
734
+ setSelectedTime(null);
735
+ };
736
+ const scrollToSelectedOption = useCallback(() => {
737
+ if (!popoverContentRef.current || selectedOptionIndex < 0) return;
738
+ const optionElements = popoverContentRef.current.querySelectorAll('[role="option"]');
739
+ const targetElement = optionElements[selectedOptionIndex];
740
+ if (targetElement) {
741
+ targetElement.scrollIntoView({
742
+ block: "nearest",
743
+ behavior: "auto"
731
744
  });
745
+ }
746
+ }, [selectedOptionIndex]);
747
+ useEffect(() => {
748
+ if (isDropdownOpen && selectedOptionIndex >= 0) {
749
+ scrollToSelectedOption();
750
+ }
751
+ }, [selectedOptionIndex, isDropdownOpen, scrollToSelectedOption]);
752
+ const handleOptionSelect = useCallback(
753
+ (selectedTime2) => {
754
+ if (inputRef.current?.resetTypingFlag) {
755
+ inputRef.current.resetTypingFlag();
756
+ }
757
+ setIsDropdownOpen(false);
732
758
  setSelectedOptionIndex(0);
733
- setJustSelected(false);
734
- setSelectedTime(null);
735
- };
736
- const scrollToSelectedOption = useCallback(() => {
737
- if (!popoverContentRef.current || selectedOptionIndex < 0) return;
738
- const optionElements = popoverContentRef.current.querySelectorAll('[role="option"]');
739
- const targetElement = optionElements[selectedOptionIndex];
740
- if (targetElement) {
741
- targetElement.scrollIntoView({
742
- block: "nearest",
743
- behavior: "auto"
744
- });
759
+ setJustSelected(true);
760
+ setCurrentParsedTime(selectedTime2);
761
+ setSelectedTime(selectedTime2);
762
+ const changeData = {
763
+ time: selectedTime2,
764
+ isInputValid: true,
765
+ isInputEmpty: false
766
+ };
767
+ onChange?.(changeData);
768
+ lastOnChangeCallRef.current = changeData;
769
+ requestAnimationFrame(() => {
770
+ inputRef.current?.focus();
771
+ });
772
+ },
773
+ // eslint-disable-next-line react-hooks/exhaustive-deps
774
+ [onChange]
775
+ );
776
+ const handleKeyDown = useCallback(
777
+ (event) => {
778
+ if (!isDropdownOpen) {
779
+ return;
745
780
  }
746
- }, [selectedOptionIndex]);
747
- useEffect(() => {
748
- if (isDropdownOpen && selectedOptionIndex >= 0) {
749
- scrollToSelectedOption();
781
+ switch (event.key) {
782
+ case "ArrowDown":
783
+ event.preventDefault();
784
+ setSelectedOptionIndex(
785
+ (prev) => prev < filteredOptions.length - 1 ? prev + 1 : 0
786
+ );
787
+ break;
788
+ case "ArrowUp":
789
+ event.preventDefault();
790
+ setSelectedOptionIndex(
791
+ (prev) => prev > 0 ? prev - 1 : filteredOptions.length - 1
792
+ );
793
+ break;
794
+ case "Enter":
795
+ event.preventDefault();
796
+ if (filteredOptions[selectedOptionIndex]) {
797
+ handleOptionSelect(filteredOptions[selectedOptionIndex]);
798
+ }
799
+ break;
800
+ case "Tab":
801
+ tabJustPressedRef.current = true;
802
+ setIsDropdownOpen(false);
803
+ setSelectedOptionIndex(0);
804
+ setTimeout(() => {
805
+ tabJustPressedRef.current = false;
806
+ }, 50);
807
+ break;
750
808
  }
751
- }, [selectedOptionIndex, isDropdownOpen, scrollToSelectedOption]);
752
- const handleOptionSelect = useCallback(
753
- (selectedTime2) => {
754
- if (inputRef.current?.resetTypingFlag) {
755
- inputRef.current.resetTypingFlag();
756
- }
757
- setIsDropdownOpen(false);
758
- setSelectedOptionIndex(0);
759
- setJustSelected(true);
760
- setCurrentParsedTime(selectedTime2);
761
- setSelectedTime(selectedTime2);
762
- const changeData = {
763
- time: selectedTime2,
764
- isInputValid: true,
765
- isInputEmpty: false
766
- };
767
- onChange?.(changeData);
768
- lastOnChangeCallRef.current = changeData;
769
- requestAnimationFrame(() => {
770
- inputRef.current?.focus();
771
- });
772
- },
773
- // eslint-disable-next-line react-hooks/exhaustive-deps
774
- [onChange]
775
- );
776
- const handleKeyDown = useCallback(
777
- (event) => {
778
- if (!isDropdownOpen) {
779
- return;
780
- }
781
- switch (event.key) {
782
- case "ArrowDown":
783
- event.preventDefault();
784
- setSelectedOptionIndex(
785
- (prev) => prev < filteredOptions.length - 1 ? prev + 1 : 0
786
- );
787
- break;
788
- case "ArrowUp":
789
- event.preventDefault();
790
- setSelectedOptionIndex(
791
- (prev) => prev > 0 ? prev - 1 : filteredOptions.length - 1
792
- );
793
- break;
794
- case "Enter":
795
- event.preventDefault();
796
- if (filteredOptions[selectedOptionIndex]) {
797
- handleOptionSelect(filteredOptions[selectedOptionIndex]);
798
- }
799
- break;
800
- case "Tab":
801
- tabJustPressedRef.current = true;
802
- setIsDropdownOpen(false);
803
- setSelectedOptionIndex(0);
804
- setTimeout(() => {
805
- tabJustPressedRef.current = false;
806
- }, 50);
807
- break;
808
- }
809
- },
810
- [
811
- isDropdownOpen,
812
- selectedOptionIndex,
813
- filteredOptions,
814
- handleOptionSelect
815
- ]
816
- );
817
- const popoverDisabled = disableSuggestions || !popoverSupported;
818
- const data = {
819
- label: childrenToString(label),
820
- labelProps,
821
- description: childrenToString(description),
822
- size,
809
+ },
810
+ [isDropdownOpen, selectedOptionIndex, filteredOptions, handleOptionSelect]
811
+ );
812
+ const popoverDisabled = disableSuggestions || !popoverSupported;
813
+ const data = {
814
+ label: childrenToString(label),
815
+ labelProps,
816
+ description: childrenToString(description),
817
+ size,
818
+ format,
819
+ step,
820
+ min,
821
+ max,
822
+ autoround,
823
+ disableSuggestions
824
+ };
825
+ const trackingId = useTrackingId({
826
+ name: "TimeField",
827
+ data,
828
+ hasOverride: !!rest["data-tracking-id"]
829
+ });
830
+ const justTheInput = /* @__PURE__ */ jsx(
831
+ MaskedTimeInput,
832
+ {
833
+ "data-tracking-id": trackingId,
834
+ ref: combinedRef,
835
+ selectedTime,
823
836
  format,
824
- step,
837
+ placeholder,
825
838
  min,
826
839
  max,
827
- autoround,
828
- disableSuggestions
829
- };
830
- const trackingId = useTrackingId({
831
- name: "TimeField",
832
- data,
833
- hasOverride: !!rest["data-tracking-id"]
834
- });
835
- const justTheInput = /* @__PURE__ */ jsx(
836
- MaskedTimeInput,
837
- {
838
- "data-tracking-id": trackingId,
839
- ref: combinedRef,
840
- selectedTime,
841
- format,
842
- placeholder,
843
- min,
844
- max,
845
- onInputChange: handleInputChange,
846
- onKeyDown: handleKeyDown,
847
- onBlur: handleBlur,
848
- onFocus: handleFocus,
849
- label,
850
- labelProps,
851
- size,
852
- description,
853
- error: errorProp,
854
- className: popoverDisabled ? className : void 0,
855
- ...rest,
856
- "data-anv": "time-field"
857
- }
858
- );
859
- if (popoverDisabled) {
860
- return justTheInput;
840
+ onInputChange: handleInputChange,
841
+ onKeyDown: handleKeyDown,
842
+ onBlur: handleBlur,
843
+ onFocus: handleFocus,
844
+ label,
845
+ labelProps,
846
+ size,
847
+ description,
848
+ error: errorProp,
849
+ className: popoverDisabled ? className : void 0,
850
+ ...rest,
851
+ "data-anv": "time-field"
861
852
  }
862
- return /* @__PURE__ */ jsxs(
863
- Popover,
864
- {
865
- open: isDropdownOpen,
866
- noPadding: true,
867
- disableCaret: true,
868
- placement: "bottom-start",
869
- matchReferenceWidth: true,
870
- modal: false,
871
- onClickOutside: () => {
872
- setIsDropdownOpen(false);
873
- },
874
- onClose: () => {
875
- setIsDropdownOpen(false);
876
- },
877
- fitScreen: true,
878
- maxHeight: 205,
879
- children: [
880
- /* @__PURE__ */ jsx(Popover.Trigger, { children: ({ ref: popoverRef }) => /* @__PURE__ */ jsx(
881
- "div",
882
- {
883
- ref: popoverRef,
884
- className,
885
- children: justTheInput
886
- }
887
- ) }),
888
- /* @__PURE__ */ jsx(
889
- Popover.Content,
890
- {
891
- ref: popoverContentRef,
892
- "data-open": isDropdownOpen,
893
- "data-disabled": disableSuggestions,
894
- onMouseDown: () => {
895
- isDropdownClickingRef.current = true;
896
- },
897
- onTouchStart: () => {
898
- isDropdownClickingRef.current = true;
899
- },
900
- children: shouldShowOptions && /* @__PURE__ */ jsx(
901
- Listbox,
902
- {
903
- selected: filteredOptions[selectedOptionIndex],
904
- onSelectionChange: (selected) => {
905
- if (selected) {
906
- handleOptionSelect(selected);
907
- } else {
908
- const currentOption = filteredOptions[selectedOptionIndex];
909
- if (currentOption) {
910
- handleOptionSelect(currentOption);
911
- }
912
- }
913
- },
914
- "aria-label": "Time suggestions",
915
- children: filteredOptions.map((option) => /* @__PURE__ */ jsx(Listbox.Option, { value: option, label: option, children: option }, option))
916
- }
917
- )
918
- }
919
- )
920
- ]
921
- }
922
- );
853
+ );
854
+ if (popoverDisabled) {
855
+ return justTheInput;
923
856
  }
924
- );
857
+ return /* @__PURE__ */ jsxs(
858
+ Popover,
859
+ {
860
+ open: isDropdownOpen,
861
+ noPadding: true,
862
+ disableCaret: true,
863
+ placement: "bottom-start",
864
+ matchReferenceWidth: true,
865
+ modal: false,
866
+ onClickOutside: () => {
867
+ setIsDropdownOpen(false);
868
+ },
869
+ onClose: () => {
870
+ setIsDropdownOpen(false);
871
+ },
872
+ fitScreen: true,
873
+ maxHeight: 205,
874
+ children: [
875
+ /* @__PURE__ */ jsx(Popover.Trigger, { children: ({ ref: iRef }) => {
876
+ setPopoverTriggerRef(iRef);
877
+ return justTheInput;
878
+ } }),
879
+ /* @__PURE__ */ jsx(
880
+ Popover.Content,
881
+ {
882
+ ref: popoverContentRef,
883
+ "data-open": isDropdownOpen,
884
+ "data-disabled": disableSuggestions,
885
+ onMouseDown: () => {
886
+ isDropdownClickingRef.current = true;
887
+ },
888
+ onTouchStart: () => {
889
+ isDropdownClickingRef.current = true;
890
+ },
891
+ children: shouldShowOptions && /* @__PURE__ */ jsx(
892
+ Listbox,
893
+ {
894
+ selected: filteredOptions[selectedOptionIndex],
895
+ onSelectionChange: (selected) => {
896
+ if (selected) {
897
+ handleOptionSelect(selected);
898
+ } else {
899
+ const currentOption = filteredOptions[selectedOptionIndex];
900
+ if (currentOption) {
901
+ handleOptionSelect(currentOption);
902
+ }
903
+ }
904
+ },
905
+ "aria-label": "Time suggestions",
906
+ children: filteredOptions.map((option) => /* @__PURE__ */ jsx(Listbox.Option, { value: option, label: option, children: option }, option))
907
+ }
908
+ )
909
+ }
910
+ )
911
+ ]
912
+ }
913
+ );
914
+ };
925
915
  TimeField.displayName = "TimeField";
926
916
 
927
917
  export { TimeField as T };
928
- //# sourceMappingURL=TimeField-CmbErrsZ.js.map
918
+ //# sourceMappingURL=TimeField-4v5aCwiG.js.map