@servicetitan/anvil2 1.32.0 → 1.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/{Alert-BcjnX40X-DdR5a1fS.js → Alert-BcjnX40X-DK8meb2Z.js} +2 -3
  3. package/dist/{Alert-BcjnX40X-DdR5a1fS.js.map → Alert-BcjnX40X-DK8meb2Z.js.map} +1 -1
  4. package/dist/{Alert-S-riTJp2.js → Alert-D4O5XFXo.js} +2 -2
  5. package/dist/{Alert-S-riTJp2.js.map → Alert-D4O5XFXo.js.map} +1 -1
  6. package/dist/Alert.js +1 -1
  7. package/dist/{Announcement-BUNvjkVo.js → Announcement-D30SgkZg.js} +2 -3
  8. package/dist/{Announcement-BUNvjkVo.js.map → Announcement-D30SgkZg.js.map} +1 -1
  9. package/dist/Announcement.js +1 -1
  10. package/dist/{Calendar-BzyPkdAu.js → Calendar-DFbt6fWP.js} +2 -2
  11. package/dist/{Calendar-BzyPkdAu.js.map → Calendar-DFbt6fWP.js.map} +1 -1
  12. package/dist/{Calendar-Zfsv8y4j-Vja4BE7W.js → Calendar-ch54N6OS-0vxeSJFt.js} +17 -15
  13. package/dist/{Calendar-Zfsv8y4j-Vja4BE7W.js.map → Calendar-ch54N6OS-0vxeSJFt.js.map} +1 -1
  14. package/dist/Calendar.js +1 -1
  15. package/dist/{Checkbox-DdIDGlbE.js → Checkbox-C4JF-LvE.js} +2 -2
  16. package/dist/{Checkbox-DdIDGlbE.js.map → Checkbox-C4JF-LvE.js.map} +1 -1
  17. package/dist/{Checkbox-B1OkhWY6-BXBzUXK4.js → Checkbox-ZLz_xJx9-CxqouREp.js} +44 -10
  18. package/dist/Checkbox-ZLz_xJx9-CxqouREp.js.map +1 -0
  19. package/dist/Checkbox.css +69 -72
  20. package/dist/Checkbox.js +1 -1
  21. package/dist/{Checkbox.module-DMrZNVpb-DOdjd86H.js → Checkbox.module-B6diiZe0-DDAy-YPr.js} +19 -18
  22. package/dist/Checkbox.module-B6diiZe0-DDAy-YPr.js.map +1 -0
  23. package/dist/{Combobox-wrmxS_0C.js → Combobox-VCa5Qplb.js} +5 -6
  24. package/dist/Combobox-VCa5Qplb.js.map +1 -0
  25. package/dist/Combobox.js +1 -1
  26. package/dist/{DateField-Bef-bUUm.js → DateField-Ex0bquMB.js} +6 -6
  27. package/dist/{DateField-Bef-bUUm.js.map → DateField-Ex0bquMB.js.map} +1 -1
  28. package/dist/DateField.js +1 -1
  29. package/dist/{DaysOfTheWeek-DmdZW53u.js → DaysOfTheWeek-CQqCFF2f.js} +3 -4
  30. package/dist/DaysOfTheWeek-CQqCFF2f.js.map +1 -0
  31. package/dist/DaysOfTheWeek.js +1 -1
  32. package/dist/Dialog-QtgPY3ji.js +333 -0
  33. package/dist/Dialog-QtgPY3ji.js.map +1 -0
  34. package/dist/Dialog.css +146 -0
  35. package/dist/Dialog.js +1 -1
  36. package/dist/{DndSort-8xmZRn1w.js → DndSort-BVcdqJLB.js} +2 -2
  37. package/dist/{DndSort-8xmZRn1w.js.map → DndSort-BVcdqJLB.js.map} +1 -1
  38. package/dist/DndSort.js +1 -1
  39. package/dist/{Drawer-BEIt_Ylz.js → Drawer-18QCWW4F.js} +2 -2
  40. package/dist/{Drawer-BEIt_Ylz.js.map → Drawer-18QCWW4F.js.map} +1 -1
  41. package/dist/Drawer.js +1 -1
  42. package/dist/{Flex-DlNiHX1G-CBMDzqYU.js → Flex-CLu2TnzF-aW2OhBYv.js} +9 -4
  43. package/dist/Flex-CLu2TnzF-aW2OhBYv.js.map +1 -0
  44. package/dist/{Flex-DlNiHX1G.css → Flex-CLu2TnzF.css} +14 -1
  45. package/dist/{Flex-CqNlL2mR.js → Flex-Dvn6ix9U.js} +2 -2
  46. package/dist/{Flex-CqNlL2mR.js.map → Flex-Dvn6ix9U.js.map} +1 -1
  47. package/dist/Flex.js +1 -1
  48. package/dist/{InputMask-BSchnaNh-BiWbAA0e.js → InputMask-CAaKh5xX-n62jt7dp.js} +2 -2
  49. package/dist/{InputMask-BSchnaNh-BiWbAA0e.js.map → InputMask-CAaKh5xX-n62jt7dp.js.map} +1 -1
  50. package/dist/{InputMask-CQUSkhJk.js → InputMask-txxn_qIf.js} +2 -2
  51. package/dist/{InputMask-CQUSkhJk.js.map → InputMask-txxn_qIf.js.map} +1 -1
  52. package/dist/InputMask.js +1 -1
  53. package/dist/{ListView-BQ98sGH5.js → ListView-DNwkCrxf.js} +7 -3
  54. package/dist/ListView-DNwkCrxf.js.map +1 -0
  55. package/dist/ListView.js +1 -1
  56. package/dist/{Listbox-CthJSHQ3-BnNf4vnZ.js → Listbox-DlKyRbri-Dc3ny9gH.js} +2 -2
  57. package/dist/{Listbox-CthJSHQ3-BnNf4vnZ.js.map → Listbox-DlKyRbri-Dc3ny9gH.js.map} +1 -1
  58. package/dist/{Listbox-Oz_LxoiF.js → Listbox-eNhS0Wmx.js} +2 -2
  59. package/dist/{Listbox-Oz_LxoiF.js.map → Listbox-eNhS0Wmx.js.map} +1 -1
  60. package/dist/Listbox.js +1 -1
  61. package/dist/{Menu-COy3N3q2.js → Menu-DvVci7Qr.js} +227 -111
  62. package/dist/Menu-DvVci7Qr.js.map +1 -0
  63. package/dist/Menu.css +35 -26
  64. package/dist/Menu.js +1 -1
  65. package/dist/{Overflow-DXWJ1gWT-6WRtRAc3.js → Overflow-D6S5X1N4-C7YfnaOv.js} +3 -3
  66. package/dist/{Overflow-DXWJ1gWT-6WRtRAc3.js.map → Overflow-D6S5X1N4-C7YfnaOv.js.map} +1 -1
  67. package/dist/{Overflow-STQ_RpAD.js → Overflow-DDsq_uUA.js} +2 -2
  68. package/dist/{Overflow-STQ_RpAD.js.map → Overflow-DDsq_uUA.js.map} +1 -1
  69. package/dist/Overflow.js +1 -1
  70. package/dist/{Page-DsRpGk2z.js → Page-BFVfMExj.js} +6 -6
  71. package/dist/{Page-DsRpGk2z.js.map → Page-BFVfMExj.js.map} +1 -1
  72. package/dist/Page.js +1 -1
  73. package/dist/{Popover-Dy82-soT.js → Popover-BbcT-mFU.js} +2 -2
  74. package/dist/{Popover-Dy82-soT.js.map → Popover-BbcT-mFU.js.map} +1 -1
  75. package/dist/{Popover-xQT2l-O--3ITnWB47.js → Popover-CbeghwZg--83MWVgP.js} +3 -3
  76. package/dist/{Popover-xQT2l-O--3ITnWB47.js.map → Popover-CbeghwZg--83MWVgP.js.map} +1 -1
  77. package/dist/Popover.js +1 -1
  78. package/dist/{ProgressBar-CXUHzFT7-Chfc-aG4.js → ProgressBar-DojG9LHF-nlymvlXw.js} +316 -536
  79. package/dist/ProgressBar-DojG9LHF-nlymvlXw.js.map +1 -0
  80. package/dist/{ProgressBar-CXUHzFT7.css → ProgressBar-DojG9LHF.css} +167 -276
  81. package/dist/{ProgressBar-DiozEP49.js → ProgressBar-OtKoZ_jO.js} +2 -2
  82. package/dist/{ProgressBar-DiozEP49.js.map → ProgressBar-OtKoZ_jO.js.map} +1 -1
  83. package/dist/ProgressBar.js +1 -1
  84. package/dist/{Radio-zEofJnTU.js → Radio-BWK27b7p.js} +2 -2
  85. package/dist/{Radio-zEofJnTU.js.map → Radio-BWK27b7p.js.map} +1 -1
  86. package/dist/{Radio-DE79qJFW-BRf9rOOV.js → Radio-BbohS64t-Ch6NvYfF.js} +54 -24
  87. package/dist/Radio-BbohS64t-Ch6NvYfF.js.map +1 -0
  88. package/dist/{Radio-DE79qJFW.css → Radio-BbohS64t.css} +50 -54
  89. package/dist/Radio.js +1 -1
  90. package/dist/SelectCard.js +1 -1
  91. package/dist/{SelectCardGroup-B_CVDaUI.js → SelectCardGroup-4MngIOom.js} +3 -3
  92. package/dist/{SelectCardGroup-B_CVDaUI.js.map → SelectCardGroup-4MngIOom.js.map} +1 -1
  93. package/dist/{Stepper-CeH1RiN9.js → Stepper-CuQn-jSf.js} +2 -2
  94. package/dist/{Stepper-CeH1RiN9.js.map → Stepper-CuQn-jSf.js.map} +1 -1
  95. package/dist/Stepper.js +1 -1
  96. package/dist/{TextField-LtQFLlk6.js → TextField-Djr02a3D.js} +2 -2
  97. package/dist/{TextField-LtQFLlk6.js.map → TextField-Djr02a3D.js.map} +1 -1
  98. package/dist/{TextField-Ca8YUPjX-BS4ojPnU.js → TextField-DtlCGV8B-BPoNBGYn.js} +2 -3
  99. package/dist/TextField-DtlCGV8B-BPoNBGYn.js.map +1 -0
  100. package/dist/TextField.js +1 -1
  101. package/dist/{Textarea-DgspneHG.js → Textarea-DjqGI_N0.js} +2 -3
  102. package/dist/Textarea-DjqGI_N0.js.map +1 -0
  103. package/dist/Textarea.js +1 -1
  104. package/dist/Toast.js +1 -1
  105. package/dist/{Toolbar-5E1u00Tg.js → Toolbar-DiUrfZ4O.js} +5 -5
  106. package/dist/{Toolbar-5E1u00Tg.js.map → Toolbar-DiUrfZ4O.js.map} +1 -1
  107. package/dist/Toolbar.js +1 -1
  108. package/dist/{Tooltip-D38RQJQI.js → Tooltip-DE8tqyR3.js} +2 -2
  109. package/dist/{Tooltip-D38RQJQI.js.map → Tooltip-DE8tqyR3.js.map} +1 -1
  110. package/dist/Tooltip.js +1 -1
  111. package/dist/{check_circle-BGfigqq-.js → check_circle-DJhuiYqa.js} +4 -2
  112. package/dist/check_circle-DJhuiYqa.js.map +1 -0
  113. package/dist/components/Checkbox/Checkbox.d.ts +2 -2
  114. package/dist/components/Flex/Flex.d.ts +12 -6
  115. package/dist/components/Radio/Radio.d.ts +2 -2
  116. package/dist/index.js +27 -27
  117. package/dist/internal/utils/generateChromaticStickersheetProps.d.ts +16 -0
  118. package/dist/{toast-DULP2LM1.js → toast-BRfZ2rPu.js} +2 -2
  119. package/dist/{toast-DULP2LM1.js.map → toast-BRfZ2rPu.js.map} +1 -1
  120. package/package.json +4 -4
  121. package/dist/Checkbox-B1OkhWY6-BXBzUXK4.js.map +0 -1
  122. package/dist/Checkbox.module-DMrZNVpb-DOdjd86H.js.map +0 -1
  123. package/dist/Combobox-wrmxS_0C.js.map +0 -1
  124. package/dist/DaysOfTheWeek-DmdZW53u.js.map +0 -1
  125. package/dist/Dialog-DJUMOPjL.js +0 -66
  126. package/dist/Dialog-DJUMOPjL.js.map +0 -1
  127. package/dist/Flex-DlNiHX1G-CBMDzqYU.js.map +0 -1
  128. package/dist/Helper-DBmwQvEP-BB75un4q.js +0 -55
  129. package/dist/Helper-DBmwQvEP-BB75un4q.js.map +0 -1
  130. package/dist/Helper-DBmwQvEP.css +0 -25
  131. package/dist/ListView-BQ98sGH5.js.map +0 -1
  132. package/dist/Menu-COy3N3q2.js.map +0 -1
  133. package/dist/ProgressBar-CXUHzFT7-Chfc-aG4.js.map +0 -1
  134. package/dist/Radio-DE79qJFW-BRf9rOOV.js.map +0 -1
  135. package/dist/TextField-Ca8YUPjX-BS4ojPnU.js.map +0 -1
  136. package/dist/Textarea-DgspneHG.js.map +0 -1
  137. package/dist/check_circle-BGfigqq-.js.map +0 -1
  138. package/dist/warning-c4Wj1rI4.js +0 -6
  139. package/dist/warning-c4Wj1rI4.js.map +0 -1
  140. /package/dist/{Calendar-Zfsv8y4j.css → Calendar-ch54N6OS.css} +0 -0
  141. /package/dist/{Overflow-DXWJ1gWT.css → Overflow-D6S5X1N4.css} +0 -0
  142. /package/dist/{Popover-xQT2l-O-.css → Popover-CbeghwZg.css} +0 -0
@@ -1,25 +1,24 @@
1
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { useState, useRef, useEffect, forwardRef, useId, createContext, useContext, useCallback, useMemo, cloneElement, isValidElement, Fragment as Fragment$1, useLayoutEffect } from 'react';
3
3
  import { c as cx } from './index-tZvMCc77.js';
4
4
  import { I as Icon } from './Icon-DuwR7O2z-C_rTZRSc.js';
5
- import { a as SvgCheckCircle, S as SvgError, b as SvgInfo } from './check_circle-BGfigqq-.js';
5
+ import { b as SvgCheckCircle, S as SvgError, a as SvgWarning, c as SvgInfo } from './check_circle-DJhuiYqa.js';
6
6
  import { t as tabbable, q as useDelayGroup, F as FloatingPortal, b as FloatingArrow, p as computePosition, n as autoUpdate, o as offset, f as flip, d as shift, e as arrow$1, l as limitShift, r as useDelayGroupContext, c as useFloating, h as useHover, i as safePolygon, v as useFocus, j as useDismiss, k as useRole, m as useInteractions } from './floating-ui.react-Domgunz0.js';
7
7
  import { a as PortalProviderContext } from './PortalProvider-9lXkQ0xY-BKoGegS1.js';
8
8
  import { S as SvgClose } from './close-DZj38AEh.js';
9
9
  import { T as Text } from './Text-BCRKWTMM-B3ftA79H.js';
10
10
  import { B as Button } from './Button-CEDmdZ-2-DJVJnigb.js';
11
- import { A as Alert } from './Alert-BcjnX40X-DdR5a1fS.js';
12
- import { F as Flex } from './Flex-DlNiHX1G-CBMDzqYU.js';
11
+ import { A as Alert } from './Alert-BcjnX40X-DK8meb2Z.js';
12
+ import { F as Flex } from './Flex-CLu2TnzF-aW2OhBYv.js';
13
13
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-3B2XYWSr-5ZanZ8Ew.js';
14
- import { H as Helper } from './Helper-DBmwQvEP-BB75un4q.js';
15
- import { u as useSwipe } from './useSwipe-DIUHs7T5-DIUHs7T5.js';
16
14
  import { S as SrOnly } from './SrOnly-BXm1DGl3-BJVodjQp.js';
15
+ import { u as useSwipe } from './useSwipe-DIUHs7T5-DIUHs7T5.js';
17
16
  import { u as useMergeRefs } from './useMergeRefs-Bde85AWI-Bde85AWI.js';
18
17
  import { T as ThemeProvider, a as ThemeProviderContext } from './ThemeProvider-DrK12Ru--CcKMzgE3.js';
19
18
  import { g as getKeyboardFocusableElements } from './getKeyboardFocusableElements-QqcABz0D.js';
20
19
  import { u as useTooltipLegacyGroup } from './HammerProvider-C9QySDSZ-3uQ0NgD4.js';
21
20
 
22
- import './ProgressBar-CXUHzFT7.css';/**
21
+ import './ProgressBar-DojG9LHF.css';/**
23
22
  * Convert array of 16 byte values to UUID string format of the form:
24
23
  * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
25
24
  */
@@ -128,114 +127,176 @@ const useKeyboardFocusables = (element, options = {
128
127
  return { focusables, updateFocusables };
129
128
  };
130
129
 
131
- const dialog = "_dialog_1uzo4_3";
132
- const container$1 = "_container_1uzo4_23";
133
- const content$2 = "_content_1uzo4_36";
134
- const header$1 = "_header_1uzo4_43";
135
- const footer$1 = "_footer_1uzo4_63";
136
- const large$1 = "_large_1uzo4_100";
137
- const fullscreen = "_fullscreen_1uzo4_100";
138
- const sticky$1 = "_sticky_1uzo4_119";
130
+ const getActiveElement = (activeDocument) => {
131
+ const activeElement = activeDocument.activeElement;
132
+ if (!activeElement) {
133
+ return activeElement;
134
+ }
135
+ if (!activeElement.shadowRoot) {
136
+ return activeElement;
137
+ }
138
+ if (activeElement.shadowRoot) {
139
+ return getActiveElement(activeElement.shadowRoot);
140
+ }
141
+ return activeElement;
142
+ };
143
+
144
+ const label = "_label_iolth_3";
145
+ const required = "_required_iolth_47";
139
146
  const styles$6 = {
140
- dialog: dialog,
141
- container: container$1,
142
- content: content$2,
143
- header: header$1,
144
- "close-container": "_close-container_1uzo4_56",
145
- footer: footer$1,
146
- large: large$1,
147
- fullscreen: fullscreen,
148
- sticky: sticky$1,
149
- "close-button": "_close-button_1uzo4_125"
147
+ label: label,
148
+ "top-container": "_top-container_iolth_38",
149
+ "label-text": "_label-text_iolth_43",
150
+ required: required,
151
+ "info-trigger": "_info-trigger_iolth_52",
152
+ "info-content": "_info-content_iolth_57"
150
153
  };
151
154
 
152
- const DialogCancelButton = forwardRef((props, ref) => {
153
- const { onClick, ...rest } = props;
154
- const { close } = useDialogContext();
155
- const onClickHandler = (e) => {
156
- onClick?.(e);
157
- close();
155
+ const content$1 = "_content_tjoaw_3";
156
+ const scroller = "_scroller_tjoaw_30";
157
+ const arrow = "_arrow_tjoaw_33";
158
+ const trigger = "_trigger_tjoaw_39";
159
+ const styles$5 = {
160
+ content: content$1,
161
+ scroller: scroller,
162
+ arrow: arrow,
163
+ trigger: trigger
164
+ };
165
+
166
+ function useTooltipContext() {
167
+ const context = useContext(TooltipContext);
168
+ const invokerRef = useRef(null);
169
+ const popoverRef = useRef(null);
170
+ const arrowRef = useRef(null);
171
+ useLayoutEffect(() => {
172
+ if (!invokerRef.current) return;
173
+ context?.setInvoker?.(invokerRef.current);
174
+ if (!context?.openState) return;
175
+ context.openTooltip();
176
+ }, [context, invokerRef]);
177
+ useLayoutEffect(() => {
178
+ if (!popoverRef.current) return;
179
+ context?.setTooltip?.(popoverRef.current);
180
+ context?.setRootNode?.(popoverRef.current.getRootNode());
181
+ if (!arrowRef.current) return;
182
+ context?.setArrowElement?.(arrowRef.current);
183
+ }, [context, popoverRef]);
184
+ const onMouseEnterHandler = () => {
185
+ context?.openTooltip();
158
186
  };
159
- return /* @__PURE__ */ jsx(
160
- Button,
161
- {
162
- "aria-label": "Close dialog",
163
- "data-anv": "dialog-cancel-button",
164
- onClick: onClickHandler,
165
- ref,
166
- ...rest
187
+ const onMouseLeaveHandler = () => {
188
+ context?.closeTooltip();
189
+ };
190
+ const onFocusHandler = () => {
191
+ if (context?.controlled) return;
192
+ context?.openTooltip();
193
+ };
194
+ const onBlurHandler = () => {
195
+ if (context?.controlled) return;
196
+ context?.closeTooltip();
197
+ };
198
+ const onKeyDownHandler = (e) => {
199
+ if (!context?.openState) return;
200
+ if (e.code === "Escape" && !context.controlled) {
201
+ context?.closeTooltip();
202
+ return;
167
203
  }
168
- );
169
- });
170
- DialogCancelButton.displayName = "DialogCancelButton";
204
+ };
205
+ if (!context || !invokerRef || !popoverRef) return;
206
+ return {
207
+ invoker: {
208
+ ref: invokerRef,
209
+ element: context.invoker,
210
+ onMouseEnter: onMouseEnterHandler,
211
+ onMouseLeave: onMouseLeaveHandler,
212
+ onKeyDown: onKeyDownHandler,
213
+ onFocus: onFocusHandler,
214
+ onBlur: onBlurHandler,
215
+ "aria-haspopup": true,
216
+ "aria-expanded": context.openState,
217
+ "aria-details": context.tooltipId,
218
+ "data-state": context.openState ? "open" : "closed",
219
+ "aria-describedby": context.tooltipId
220
+ },
221
+ tooltip: {
222
+ ref: popoverRef,
223
+ element: context.popover,
224
+ id: context.tooltipId,
225
+ show: context.openTooltip,
226
+ close: context.closeTooltip,
227
+ style: context.tooltipStyle,
228
+ arrowRef,
229
+ key: context.resetKey
230
+ },
231
+ setOpen: context.setOpenState,
232
+ open: context.openState,
233
+ controlled: context.controlled,
234
+ placement: context.placement,
235
+ disableFlipFallback: context.disableFlipFallback
236
+ };
237
+ }
171
238
 
172
- const DialogHeader = forwardRef(
173
- (props, ref) => {
174
- const { children, className, ...rest } = props;
175
- const headerClassNames = cx(className, styles$6["header"]);
176
- return /* @__PURE__ */ jsxs(
177
- "header",
178
- {
179
- className: headerClassNames,
180
- "data-anv": "dialog-header",
181
- ref,
182
- ...rest,
183
- children: [
184
- /* @__PURE__ */ jsx(Text, { variant: "headline", el: "h1", children }),
185
- /* @__PURE__ */ jsx("span", { className: styles$6["close-container"], children: /* @__PURE__ */ jsx(
186
- DialogCancelButton,
187
- {
188
- className: styles$6["close-button"],
189
- size: "small",
190
- appearance: "ghost",
191
- "aria-label": "Close dialog",
192
- icon: SvgClose
193
- }
194
- ) })
195
- ]
196
- }
197
- );
198
- }
199
- );
200
- DialogHeader.displayName = "DialogHeader";
239
+ function supportsPopover() {
240
+ return Object.prototype.hasOwnProperty.call(HTMLElement.prototype, "popover");
241
+ }
201
242
 
202
- const DialogFooter = forwardRef(
203
- (props, ref) => {
204
- const { children, className, sticky = false, ...rest } = props;
205
- const footerClassNames = cx(styles$6["footer"], className, {
206
- [styles$6["sticky"]]: sticky
207
- });
208
- return /* @__PURE__ */ jsx(
209
- "footer",
210
- {
211
- className: footerClassNames,
212
- "data-anv": "dialog-footer",
213
- ref,
214
- ...rest,
215
- children
216
- }
243
+ const TooltipLegacyContext = createContext(null);
244
+ const useTooltipLegacyContext = () => {
245
+ const context = useContext(TooltipLegacyContext);
246
+ if (context == null) {
247
+ throw new Error(
248
+ "TooltipLegacy components must be wrapped in <TooltipLegacy />"
217
249
  );
218
250
  }
219
- );
220
- DialogFooter.displayName = "DialogFooter";
251
+ return context;
252
+ };
221
253
 
222
- const DialogContent = forwardRef(
223
- (props, ref) => {
224
- const { children, className, ...rest } = props;
225
- const contentClassNames = cx(styles$6["content"], className);
226
- return /* @__PURE__ */ jsx(
227
- "div",
228
- {
229
- className: contentClassNames,
230
- "data-anv": "dialog-content",
231
- ref,
232
- ...rest,
233
- children
254
+ const styles$4 = {
255
+ "content-legacy": "_content-legacy_19gkz_4",
256
+ "arrow-legacy": "_arrow-legacy_19gkz_30",
257
+ "trigger-legacy": "_trigger-legacy_19gkz_33"
258
+ };
259
+
260
+ const ATTRIBUTE_NAME_LIST = "data-anv-dialogs";
261
+ const ATTRIBUTE_NAME_BOOL = "data-anv-dialogs-open";
262
+ const useDialogScrollLock = ({
263
+ open,
264
+ id,
265
+ enableScrollChaining,
266
+ elementRef
267
+ }) => {
268
+ useEffect(() => {
269
+ if (enableScrollChaining) return () => {
270
+ };
271
+ const root = elementRef.current?.getRootNode();
272
+ if (!(root instanceof ShadowRoot)) return () => {
273
+ };
274
+ const updateDialogAttributes = (shouldAdd) => {
275
+ const currentDialogs = root.host.getAttribute(ATTRIBUTE_NAME_LIST)?.split(" ").filter(Boolean) ?? [];
276
+ const newDialogs = new Set(currentDialogs);
277
+ if (shouldAdd) {
278
+ newDialogs.add(id);
279
+ } else {
280
+ newDialogs.delete(id);
234
281
  }
235
- );
236
- }
237
- );
238
- DialogContent.displayName = "DialogContent";
282
+ const dialogList = Array.from(newDialogs);
283
+ root.host.setAttribute(ATTRIBUTE_NAME_LIST, dialogList.join(" "));
284
+ if (dialogList.length > 0) {
285
+ root.host.setAttribute(ATTRIBUTE_NAME_BOOL, "true");
286
+ } else {
287
+ root.host.removeAttribute(ATTRIBUTE_NAME_BOOL);
288
+ }
289
+ };
290
+ updateDialogAttributes(open);
291
+ return () => {
292
+ if (elementRef.current?.getRootNode() === root) {
293
+ updateDialogAttributes(false);
294
+ }
295
+ };
296
+ }, [open, id, enableScrollChaining, elementRef]);
297
+ };
298
+
299
+ const DialogContext = createContext(null);
239
300
 
240
301
  const ToastProviderContext = createContext({
241
302
  toasts: [],
@@ -339,7 +400,7 @@ const hidden = "_hidden_lombm_25";
339
400
  const stacked = "_stacked_lombm_89";
340
401
  const open = "_open_lombm_184";
341
402
  const close = "_close_lombm_185";
342
- const styles$5 = {
403
+ const styles$3 = {
343
404
  popover: popover,
344
405
  toaster: toaster,
345
406
  hidden: hidden,
@@ -606,7 +667,7 @@ const Toast = forwardRef(
606
667
  ...alertProps
607
668
  }, ref) => {
608
669
  const { setToastHeights, extraToastsVisible, isDialogToaster } = useToasts();
609
- const closeToast = useCloseToast(styles$5.close);
670
+ const closeToast = useCloseToast(styles$3.close);
610
671
  const toastPositionStyles = useToastPositionStyles(index);
611
672
  const toastWrapperRef = useRef(null);
612
673
  const timerRef = useRef();
@@ -614,18 +675,18 @@ const Toast = forwardRef(
614
675
  const createdAtRef = useRef(createdAt ?? 0);
615
676
  const hasBeenStackedRef = useRef(false);
616
677
  const [transitionClass, setTransitionClass] = useState(
617
- styles$5.hidden
678
+ styles$3.hidden
618
679
  );
619
680
  const [toastOpened, setToastOpened] = useState(false);
620
681
  const duration = actions ? false : durationProp;
621
682
  const alertClasses = cx(
622
- styles$5["toast-alert"],
683
+ styles$3["toast-alert"],
623
684
  toastClassName,
624
685
  transitionClass
625
686
  );
626
687
  useEffect(() => {
627
688
  if (!toastOpened) {
628
- setTransitionClass(styles$5.open);
689
+ setTransitionClass(styles$3.open);
629
690
  setTimeout(() => {
630
691
  setTransitionClass(void 0);
631
692
  }, ANIMATION_DURATION);
@@ -734,7 +795,7 @@ const Toast = forwardRef(
734
795
  hasMessage ? /* @__PURE__ */ jsx(
735
796
  "div",
736
797
  {
737
- className: styles$5["message-container"],
798
+ className: styles$3["message-container"],
738
799
  id: `toast-message-${alertProps.id}`,
739
800
  children: message
740
801
  }
@@ -752,7 +813,7 @@ const Toast = forwardRef(
752
813
  value: progress
753
814
  }
754
815
  ) }) : null,
755
- actions ? /* @__PURE__ */ jsxs("div", { className: styles$5["alert-action"], children: [
816
+ actions ? /* @__PURE__ */ jsxs("div", { className: styles$3["alert-action"], children: [
756
817
  /* @__PURE__ */ jsx(
757
818
  Button,
758
819
  {
@@ -781,6 +842,53 @@ const Toast = forwardRef(
781
842
  );
782
843
  Toast.displayName = "Toast";
783
844
 
845
+ const helper = "_helper_1mtj6_2";
846
+ const messages = "_messages_1mtj6_9";
847
+ const styles$2 = {
848
+ helper: helper,
849
+ messages: messages,
850
+ "error-container": "_error-container_1mtj6_15",
851
+ "error-icon": "_error-icon_1mtj6_21"
852
+ };
853
+
854
+ const Helper = forwardRef((props, ref) => {
855
+ const {
856
+ id,
857
+ hint,
858
+ description,
859
+ errorAriaLive = "assertive",
860
+ errorMessage,
861
+ maxLength,
862
+ isTyping,
863
+ inputLength = 0,
864
+ showCounter
865
+ } = props;
866
+ return /* @__PURE__ */ jsxs("div", { className: styles$2["helper"], ref, id, children: [
867
+ /* @__PURE__ */ jsxs("div", { className: styles$2["messages"], children: [
868
+ errorMessage ? /* @__PURE__ */ jsxs("div", { className: styles$2["error-container"], children: [
869
+ /* @__PURE__ */ jsx(
870
+ Icon,
871
+ {
872
+ inherit: true,
873
+ className: styles$2["error-icon"],
874
+ "aria-hidden": true,
875
+ svg: SvgWarning
876
+ }
877
+ ),
878
+ /* @__PURE__ */ jsx("span", { className: styles$2["error-message"], "aria-live": errorAriaLive, children: errorMessage })
879
+ ] }) : hint ?? null,
880
+ description ? /* @__PURE__ */ jsx("div", { className: styles$2["description-container"], children: description ? /* @__PURE__ */ jsx("span", { children: description }) : null }) : null
881
+ ] }),
882
+ showCounter ? /* @__PURE__ */ jsx("div", { className: styles$2["counter"], children: /* @__PURE__ */ jsxs("span", { "aria-hidden": "true", children: [
883
+ inputLength,
884
+ "/",
885
+ maxLength
886
+ ] }) }) : null,
887
+ isTyping && !!maxLength ? maxLength - inputLength >= 1 ? /* @__PURE__ */ jsx(SrOnly, { children: /* @__PURE__ */ jsx("span", { "aria-live": "polite", "aria-atomic": "true", children: `${maxLength - inputLength} character${maxLength - inputLength !== 1 ? "s" : ""} left` }) }) : /* @__PURE__ */ jsx(SrOnly, { children: /* @__PURE__ */ jsx("span", { role: "alert", children: "Maximum characters count reached" }) }) : null
888
+ ] });
889
+ });
890
+ Helper.displayName = "Helper";
891
+
784
892
  function useHotkeyFocus({
785
893
  disabled,
786
894
  hotkey,
@@ -801,7 +909,7 @@ function useHotkeyFocus({
801
909
  setShouldEscapeRefocus(false);
802
910
  };
803
911
  const keyDownHandler = async (e) => {
804
- const activeElement = document.activeElement?.shadowRoot?.activeElement || document.activeElement;
912
+ const activeElement = getActiveElement(document);
805
913
  if (activeElement?.tagName.toLowerCase() !== "input" && activeElement?.tagName.toLowerCase() !== "textarea" && activeElement?.tagName.toLowerCase() !== "pre" && e.key === hotkey) {
806
914
  e.preventDefault();
807
915
  previousFocusElement.current = activeElement;
@@ -939,10 +1047,10 @@ const ToastStack = forwardRef(
939
1047
  const showMoreButton = !extraToastsVisible && toastCount > toastsBeforeStack;
940
1048
  const extraToastsLength = toastCount - toastsBeforeStack;
941
1049
  const showMoreButtonText = `${extraToastsLength} more message${extraToastsLength > 1 ? "s" : ""}`;
942
- const toastStackClasses = cx(styles$5["toast-stack"], className, {
943
- [styles$5["show-more-button"]]: showMoreButton,
944
- [styles$5["show-extra-toast"]]: extraToastsVisible,
945
- [styles$5["disable-animations"]]: disableAnimations
1050
+ const toastStackClasses = cx(styles$3["toast-stack"], className, {
1051
+ [styles$3["show-more-button"]]: showMoreButton,
1052
+ [styles$3["show-extra-toast"]]: extraToastsVisible,
1053
+ [styles$3["disable-animations"]]: disableAnimations
946
1054
  });
947
1055
  const handleToastStackFocusHover = () => {
948
1056
  if (toastPausedStatus === "resumed" || toastPausedStatus === void 0) {
@@ -978,13 +1086,13 @@ const ToastStack = forwardRef(
978
1086
  const isStacked = !extraToastsVisible && index < toastCount - toastsBeforeStack;
979
1087
  const isLastToastDisplayed = index === toastCount - toastsBeforeStack;
980
1088
  const isHidden = index < toastCount - toastsBeforeStack - 2;
981
- const toastClasses = cx(styles$5.toast, toastClassName);
982
- const toastContainerClasses = cx(styles$5["toast-wrapper"], {
983
- [styles$5.stacked]: isStacked || isLastToastDisplayed,
984
- [styles$5["stack-one"]]: isStacked && index === toastCount - toastsBeforeStack - 1,
985
- [styles$5["stack-two"]]: isStacked && index === toastCount - toastsBeforeStack - 2,
986
- [styles$5["stacked-extra"]]: isHidden,
987
- [styles$5["stacked-show-extra"]]: extraToastsVisible
1089
+ const toastClasses = cx(styles$3.toast, toastClassName);
1090
+ const toastContainerClasses = cx(styles$3["toast-wrapper"], {
1091
+ [styles$3.stacked]: isStacked || isLastToastDisplayed,
1092
+ [styles$3["stack-one"]]: isStacked && index === toastCount - toastsBeforeStack - 1,
1093
+ [styles$3["stack-two"]]: isStacked && index === toastCount - toastsBeforeStack - 2,
1094
+ [styles$3["stacked-extra"]]: isHidden,
1095
+ [styles$3["stacked-show-extra"]]: extraToastsVisible
988
1096
  });
989
1097
  const handleOnClose = (e) => {
990
1098
  onClose?.(e);
@@ -1011,12 +1119,12 @@ const ToastStack = forwardRef(
1011
1119
  showMoreButton && /* @__PURE__ */ jsx(
1012
1120
  "div",
1013
1121
  {
1014
- className: styles$5["show-more-button-container"],
1122
+ className: styles$3["show-more-button-container"],
1015
1123
  style: showMoreButtonPositionStyles,
1016
1124
  children: /* @__PURE__ */ jsx(
1017
1125
  Button,
1018
1126
  {
1019
- className: styles$5["show-collapse-button"],
1127
+ className: styles$3["show-collapse-button"],
1020
1128
  onClick: handleShowMoreButtonClick,
1021
1129
  appearance: "secondary",
1022
1130
  tabIndex: 0,
@@ -1033,10 +1141,10 @@ const ToastStack = forwardRef(
1033
1141
  ]
1034
1142
  }
1035
1143
  ),
1036
- extraToastsVisible && /* @__PURE__ */ jsx("div", { className: styles$5["show-collapse-button-container"], children: /* @__PURE__ */ jsx(
1144
+ extraToastsVisible && /* @__PURE__ */ jsx("div", { className: styles$3["show-collapse-button-container"], children: /* @__PURE__ */ jsx(
1037
1145
  Button,
1038
1146
  {
1039
- className: styles$5["show-collapse-button"],
1147
+ className: styles$3["show-collapse-button"],
1040
1148
  onClick: handleToastStackBlur,
1041
1149
  appearance: "secondary",
1042
1150
  children: "Collapse Messages"
@@ -1077,7 +1185,7 @@ const ToasterPopover = forwardRef(
1077
1185
  }
1078
1186
  };
1079
1187
  }, [toastCount, isDialogToaster]);
1080
- return /* @__PURE__ */ jsx("div", { ref: combinedRef, className: styles$5.popover, popover: "manual", children: props.children });
1188
+ return /* @__PURE__ */ jsx("div", { ref: combinedRef, className: styles$3.popover, popover: "manual", children: props.children });
1081
1189
  }
1082
1190
  );
1083
1191
  ToasterPopover.displayName = "ToasterPopover";
@@ -1145,7 +1253,7 @@ const ToasterContent = forwardRef(
1145
1253
  });
1146
1254
  dispatchEvent(DialogToasterEvent);
1147
1255
  }, [isDialogToaster]);
1148
- const closeToast = useCloseToast(styles$5.close);
1256
+ const closeToast = useCloseToast(styles$3.close);
1149
1257
  useEffect(() => {
1150
1258
  let timeout;
1151
1259
  updateDialogToasterStorage(isDialogToaster);
@@ -1244,8 +1352,8 @@ const ToasterContent = forwardRef(
1244
1352
  updateDialogToasterStorage(false);
1245
1353
  };
1246
1354
  }, []);
1247
- const toasterClasses = cx(styles$5.toaster, {
1248
- [styles$5["hidden"]]: shouldHideToaster,
1355
+ const toasterClasses = cx(styles$3.toaster, {
1356
+ [styles$3["hidden"]]: shouldHideToaster,
1249
1357
  [`${className}`]: className != null
1250
1358
  });
1251
1359
  return /* @__PURE__ */ jsx(
@@ -1278,218 +1386,25 @@ const Toaster = forwardRef(
1278
1386
  Toaster.displayName = "Toaster";
1279
1387
  ToasterContent.displayName = "ToasterContent";
1280
1388
 
1281
- const DialogContext = createContext(null);
1282
- const DialogElement = forwardRef(
1283
- (props, ref) => {
1284
- const {
1285
- className,
1286
- open = false,
1287
- children,
1288
- onOpen,
1289
- onOpenChange,
1290
- onClose,
1291
- onCancel,
1292
- onKeyDown,
1293
- fullScreen = false,
1294
- disableCloseOnEscape = false,
1295
- disableCloseOnClickOutside = false,
1296
- size,
1297
- enableScrollChaining,
1298
- ...rest
1299
- } = props;
1300
- const elRef = useRef(null);
1301
- const contentRef = useRef(null);
1302
- const [hasOpenPopover, setHasOpenPopover] = useState(false);
1303
- const id = useId();
1304
- const DialogClassNames = cx([styles$6["dialog"]], className, {
1305
- [styles$6["fullscreen"]]: fullScreen,
1306
- [styles$6["large"]]: size === "large"
1307
- });
1308
- const { focusables } = useKeyboardFocusables(contentRef, {
1309
- observeChange: true
1310
- });
1311
- useEffect(() => {
1312
- if (!open || enableScrollChaining) return;
1313
- let blockDocumentScroll = false;
1314
- const content = contentRef.current;
1315
- const scrollHandler = (e) => {
1316
- const target = e.target;
1317
- const isShadow2 = contentRef.current?.getRootNode() instanceof ShadowRoot;
1318
- const isOverflowing = elRef.current && elRef.current.scrollHeight > elRef.current.clientHeight;
1319
- if (isShadow2) {
1320
- if (blockDocumentScroll) {
1321
- e.preventDefault();
1322
- return;
1323
- }
1324
- return;
1325
- }
1326
- if (!isOverflowing || !content?.contains(target)) {
1327
- e.preventDefault();
1328
- return;
1329
- }
1330
- return;
1331
- };
1332
- const shadowScrollHandler = (e) => {
1333
- const target = e.target;
1334
- const isTargetInsideContent = content?.contains(target);
1335
- const isOverflowing = elRef.current && elRef.current.scrollHeight > elRef.current.clientHeight;
1336
- blockDocumentScroll = !isTargetInsideContent;
1337
- if (!isOverflowing || !content?.contains(target)) {
1338
- e.preventDefault();
1339
- }
1340
- return;
1341
- };
1342
- const isShadow = content?.getRootNode() instanceof ShadowRoot;
1343
- document.addEventListener("wheel", scrollHandler, {
1344
- passive: false
1345
- });
1346
- if (isShadow) {
1347
- content?.getRootNode().addEventListener("wheel", shadowScrollHandler, {
1348
- passive: false
1349
- });
1350
- }
1351
- return () => {
1352
- document.getRootNode().removeEventListener("wheel", scrollHandler);
1353
- if (isShadow) {
1354
- content?.getRootNode().removeEventListener("wheel", shadowScrollHandler);
1355
- }
1356
- };
1357
- }, [enableScrollChaining, open]);
1358
- useEffect(() => {
1359
- if (typeof document === "undefined" || disableCloseOnClickOutside) return;
1360
- const onClickOutsideHandler = (e) => {
1361
- if (hasOpenPopover) return;
1362
- if (e.composedPath()[0] === elRef.current) {
1363
- onClose?.();
1364
- }
1365
- };
1366
- document.addEventListener("mousedown", onClickOutsideHandler);
1367
- return () => document.removeEventListener("mousedown", onClickOutsideHandler);
1368
- }, [disableCloseOnClickOutside, onClose, onOpenChange, hasOpenPopover]);
1369
- const initial = useRef(true);
1370
- useEffect(() => {
1371
- if (initial.current) {
1372
- initial.current = false;
1373
- } else {
1374
- onOpenChange?.(open);
1375
- }
1376
- if (open) {
1377
- onOpen?.();
1378
- elRef.current?.showModal();
1379
- return;
1380
- }
1381
- setTimeout(() => {
1382
- elRef.current?.close();
1383
- }, 1);
1384
- }, [id, onOpen, onOpenChange, open]);
1385
- useEffect(() => {
1386
- if (!open) return;
1387
- if (!focusables) return;
1388
- const activeElement = document.activeElement;
1389
- if (activeElement.dataset.anv !== "dialog-header-close-button" && focusables.includes(activeElement)) {
1390
- return;
1391
- }
1392
- if (focusables[0]?.dataset.anv === "dialog-header-close-button" && focusables[1]) {
1393
- focusables[1].focus();
1394
- } else {
1395
- focusables[0]?.focus();
1396
- }
1397
- }, [open, focusables]);
1398
- const onKeyDownHandler = (e) => {
1399
- onKeyDown?.(e);
1400
- if (e.code === "Escape") {
1401
- e.preventDefault();
1402
- if (disableCloseOnEscape) return;
1403
- if (hasOpenPopover) return;
1404
- onClose?.();
1405
- return;
1406
- }
1407
- if (e.code === "Tab") {
1408
- if (e.shiftKey && e.target === focusables?.[0]) {
1409
- e.preventDefault();
1410
- focusables[focusables.length - 1]?.focus();
1411
- return;
1412
- }
1413
- if (e.target === focusables?.[focusables.length - 1] && !e.shiftKey) {
1414
- e.preventDefault();
1415
- focusables[0].focus();
1416
- return;
1417
- }
1418
- }
1419
- };
1420
- const close = useCallback(() => {
1421
- onClose?.();
1422
- }, [onClose]);
1423
- return (
1424
- // dialog element does seem to be interactive on MDN guideline
1425
- // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
1426
- /* @__PURE__ */ jsxs(
1427
- "dialog",
1428
- {
1429
- className: DialogClassNames,
1430
- "data-anv": "dialog",
1431
- ref: useMergeRefs([ref, elRef]),
1432
- onKeyDown: onKeyDownHandler,
1433
- ...rest,
1434
- children: [
1435
- /* @__PURE__ */ jsx(ToastProvider, { isDialogToaster: open, children: /* @__PURE__ */ jsx(ToasterPopover, { children: /* @__PURE__ */ jsx(ToasterContent, { id: "dialog-toaster" }) }) }),
1436
- /* @__PURE__ */ jsx(
1437
- DialogContext.Provider,
1438
- {
1439
- value: { close, ref: elRef, hasOpenPopover, setHasOpenPopover },
1440
- children: /* @__PURE__ */ jsx(
1441
- "section",
1442
- {
1443
- ref: contentRef,
1444
- className: styles$6["container"],
1445
- "data-open": open,
1446
- children
1447
- }
1448
- )
1449
- }
1450
- )
1451
- ]
1452
- }
1453
- )
1454
- );
1455
- }
1456
- );
1457
- function useDialogContext() {
1458
- const context = useContext(DialogContext);
1459
- if (!context) {
1460
- throw new Error(
1461
- "useDialogContext must be used within a DialogContextProvider"
1462
- );
1463
- }
1464
- return context;
1465
- }
1466
- DialogElement.displayName = "Dialog";
1467
- const Dialog = Object.assign(DialogElement, {
1468
- Header: DialogHeader,
1469
- Footer: DialogFooter,
1470
- Content: DialogContent,
1471
- CancelButton: DialogCancelButton
1472
- });
1473
-
1474
- const drawer = "_drawer_pysn1_3";
1475
- const container = "_container_pysn1_29";
1476
- const content$1 = "_content_pysn1_42";
1477
- const header = "_header_pysn1_49";
1478
- const footer = "_footer_pysn1_73";
1479
- const remove = "_remove_pysn1_91";
1480
- const large = "_large_pysn1_100";
1481
- const sticky = "_sticky_pysn1_103";
1482
- const styles$4 = {
1389
+ const drawer = "_drawer_vyd6b_3";
1390
+ const container = "_container_vyd6b_29";
1391
+ const content = "_content_vyd6b_42";
1392
+ const header = "_header_vyd6b_49";
1393
+ const footer = "_footer_vyd6b_73";
1394
+ const remove = "_remove_vyd6b_91";
1395
+ const large = "_large_vyd6b_100";
1396
+ const sticky = "_sticky_vyd6b_103";
1397
+ const styles$1 = {
1483
1398
  drawer: drawer,
1484
1399
  container: container,
1485
- content: content$1,
1400
+ content: content,
1486
1401
  header: header,
1487
- "close-container": "_close-container_pysn1_66",
1402
+ "close-container": "_close-container_vyd6b_66",
1488
1403
  footer: footer,
1489
1404
  remove: remove,
1490
1405
  large: large,
1491
1406
  sticky: sticky,
1492
- "close-button": "_close-button_pysn1_109"
1407
+ "close-button": "_close-button_vyd6b_109"
1493
1408
  };
1494
1409
 
1495
1410
  const DrawerCancelButton = forwardRef((props, ref) => {
@@ -1515,12 +1430,12 @@ DrawerCancelButton.displayName = "DrawerCancelButton";
1515
1430
  const DrawerHeader = forwardRef(
1516
1431
  (props, ref) => {
1517
1432
  const { children } = props;
1518
- return /* @__PURE__ */ jsxs("header", { className: styles$4.header, "data-anv": "drawer-header", ref, children: [
1433
+ return /* @__PURE__ */ jsxs("header", { className: styles$1.header, "data-anv": "drawer-header", ref, children: [
1519
1434
  /* @__PURE__ */ jsx(Text, { variant: "headline", el: "h1", children }),
1520
- /* @__PURE__ */ jsx("span", { className: styles$4["close-container"], children: /* @__PURE__ */ jsx(
1435
+ /* @__PURE__ */ jsx("span", { className: styles$1["close-container"], children: /* @__PURE__ */ jsx(
1521
1436
  DrawerCancelButton,
1522
1437
  {
1523
- className: styles$4["close-button"],
1438
+ className: styles$1["close-button"],
1524
1439
  size: "small",
1525
1440
  appearance: "ghost",
1526
1441
  "aria-label": "Close drawer",
@@ -1536,8 +1451,8 @@ DrawerHeader.displayName = "DrawerHeader";
1536
1451
  const DrawerFooter = forwardRef(
1537
1452
  (props, ref) => {
1538
1453
  const { children, sticky = false, ...rest } = props;
1539
- const DrawerFooterCX = cx(styles$4.footer, {
1540
- [styles$4["sticky"]]: sticky
1454
+ const DrawerFooterCX = cx(styles$1.footer, {
1455
+ [styles$1["sticky"]]: sticky
1541
1456
  });
1542
1457
  return /* @__PURE__ */ jsx(
1543
1458
  "footer",
@@ -1556,7 +1471,7 @@ DrawerFooter.displayName = "DrawerFooter";
1556
1471
  const DrawerContent = forwardRef(
1557
1472
  (props, ref) => {
1558
1473
  const { children, ...rest } = props;
1559
- const DrawerContentCX = cx(styles$4.content, {});
1474
+ const DrawerContentCX = cx(styles$1.content, {});
1560
1475
  return /* @__PURE__ */ jsx(
1561
1476
  "div",
1562
1477
  {
@@ -1594,15 +1509,22 @@ const DrawerElement = forwardRef(
1594
1509
  const toasterRef = useRef(null);
1595
1510
  const combinedRef = useMergeRefs([elRef, ref]);
1596
1511
  const [remove, setRemove] = useState(false);
1597
- const DrawerClassNames = cx([styles$4.drawer], className, {
1598
- [styles$4.remove]: remove,
1599
- [styles$4.large]: size === "large"
1512
+ const id = useId();
1513
+ const DrawerClassNames = cx([styles$1.drawer], className, {
1514
+ [styles$1.remove]: remove,
1515
+ [styles$1.large]: size === "large"
1600
1516
  });
1601
1517
  const { focusables } = useKeyboardFocusables(contentRef, {
1602
1518
  observeChange: false
1603
1519
  });
1604
1520
  const firstFocusable = focusables?.[0];
1605
1521
  const lastFocusable = focusables?.[focusables.length - 1];
1522
+ useDialogScrollLock({
1523
+ open,
1524
+ id,
1525
+ enableScrollChaining,
1526
+ elementRef: elRef
1527
+ });
1606
1528
  useEffect(() => {
1607
1529
  if (open) {
1608
1530
  onOpen?.();
@@ -1618,7 +1540,8 @@ const DrawerElement = forwardRef(
1618
1540
  useEffect(() => {
1619
1541
  if (!open) return;
1620
1542
  if (!focusables) return;
1621
- const activeElement = document.activeElement;
1543
+ const activeElement = getActiveElement(document);
1544
+ if (!activeElement) return;
1622
1545
  if (activeElement.dataset.anv !== "drawer-header-close-button" && focusables.includes(activeElement)) {
1623
1546
  return;
1624
1547
  }
@@ -1628,53 +1551,6 @@ const DrawerElement = forwardRef(
1628
1551
  focusables[0]?.focus();
1629
1552
  }
1630
1553
  }, [open, focusables]);
1631
- useEffect(() => {
1632
- if (!open || enableScrollChaining) return;
1633
- let blockDocumentScroll = false;
1634
- const content = contentRef.current;
1635
- const scrollHandler = (e) => {
1636
- const target = e.target;
1637
- const isShadow2 = contentRef.current?.getRootNode() instanceof ShadowRoot;
1638
- const isOverflowing = elRef.current && elRef.current.scrollHeight > elRef.current.clientHeight;
1639
- if (isShadow2) {
1640
- if (blockDocumentScroll) {
1641
- e.preventDefault();
1642
- return;
1643
- }
1644
- return;
1645
- }
1646
- if (!isOverflowing || !content?.contains(target)) {
1647
- e.preventDefault();
1648
- return;
1649
- }
1650
- return;
1651
- };
1652
- const shadowScrollHandler = (e) => {
1653
- const target = e.target;
1654
- const isTargetInsideContent = content?.contains(target);
1655
- const isOverflowing = elRef.current && elRef.current.scrollHeight > elRef.current.clientHeight;
1656
- blockDocumentScroll = !isTargetInsideContent;
1657
- if (!isOverflowing || !content?.contains(target)) {
1658
- e.preventDefault();
1659
- }
1660
- return;
1661
- };
1662
- const isShadow = content?.getRootNode() instanceof ShadowRoot;
1663
- document.addEventListener("wheel", scrollHandler, {
1664
- passive: false
1665
- });
1666
- if (isShadow) {
1667
- content?.getRootNode().addEventListener("wheel", shadowScrollHandler, {
1668
- passive: false
1669
- });
1670
- }
1671
- return () => {
1672
- document.getRootNode().removeEventListener("wheel", scrollHandler);
1673
- if (isShadow) {
1674
- content?.getRootNode().removeEventListener("wheel", shadowScrollHandler);
1675
- }
1676
- };
1677
- }, [enableScrollChaining, open]);
1678
1554
  const onCancelHandler = (e) => {
1679
1555
  e.preventDefault();
1680
1556
  if (disableCloseOnEscape) return;
@@ -1722,6 +1598,7 @@ const DrawerElement = forwardRef(
1722
1598
  {
1723
1599
  className: DrawerClassNames,
1724
1600
  "data-anv": "drawer",
1601
+ "data-anv-scroll-chaining": enableScrollChaining,
1725
1602
  ref: combinedRef,
1726
1603
  onCancel: onCancelHandler,
1727
1604
  onClick: onClickHandler,
@@ -1733,7 +1610,7 @@ const DrawerElement = forwardRef(
1733
1610
  "section",
1734
1611
  {
1735
1612
  ref: contentRef,
1736
- className: styles$4.container,
1613
+ className: styles$1.container,
1737
1614
  "data-open": open,
1738
1615
  children
1739
1616
  }
@@ -1761,122 +1638,6 @@ const Drawer = Object.assign(DrawerElement, {
1761
1638
  CancelButton: DrawerCancelButton
1762
1639
  });
1763
1640
 
1764
- function supportsPopover() {
1765
- return Object.prototype.hasOwnProperty.call(HTMLElement.prototype, "popover");
1766
- }
1767
-
1768
- const label = "_label_iolth_3";
1769
- const required = "_required_iolth_47";
1770
- const styles$3 = {
1771
- label: label,
1772
- "top-container": "_top-container_iolth_38",
1773
- "label-text": "_label-text_iolth_43",
1774
- required: required,
1775
- "info-trigger": "_info-trigger_iolth_52",
1776
- "info-content": "_info-content_iolth_57"
1777
- };
1778
-
1779
- const content = "_content_tjoaw_3";
1780
- const scroller = "_scroller_tjoaw_30";
1781
- const arrow = "_arrow_tjoaw_33";
1782
- const trigger = "_trigger_tjoaw_39";
1783
- const styles$2 = {
1784
- content: content,
1785
- scroller: scroller,
1786
- arrow: arrow,
1787
- trigger: trigger
1788
- };
1789
-
1790
- function useTooltipContext() {
1791
- const context = useContext(TooltipContext);
1792
- const invokerRef = useRef(null);
1793
- const popoverRef = useRef(null);
1794
- const arrowRef = useRef(null);
1795
- useLayoutEffect(() => {
1796
- if (!invokerRef.current) return;
1797
- context?.setInvoker?.(invokerRef.current);
1798
- if (!context?.openState) return;
1799
- context.openTooltip();
1800
- }, [context, invokerRef]);
1801
- useLayoutEffect(() => {
1802
- if (!popoverRef.current) return;
1803
- context?.setTooltip?.(popoverRef.current);
1804
- context?.setRootNode?.(popoverRef.current.getRootNode());
1805
- if (!arrowRef.current) return;
1806
- context?.setArrowElement?.(arrowRef.current);
1807
- }, [context, popoverRef]);
1808
- const onMouseEnterHandler = () => {
1809
- context?.openTooltip();
1810
- };
1811
- const onMouseLeaveHandler = () => {
1812
- context?.closeTooltip();
1813
- };
1814
- const onFocusHandler = () => {
1815
- if (context?.controlled) return;
1816
- context?.openTooltip();
1817
- };
1818
- const onBlurHandler = () => {
1819
- if (context?.controlled) return;
1820
- context?.closeTooltip();
1821
- };
1822
- const onKeyDownHandler = (e) => {
1823
- if (!context?.openState) return;
1824
- if (e.code === "Escape" && !context.controlled) {
1825
- context?.closeTooltip();
1826
- return;
1827
- }
1828
- };
1829
- if (!context || !invokerRef || !popoverRef) return;
1830
- return {
1831
- invoker: {
1832
- ref: invokerRef,
1833
- element: context.invoker,
1834
- onMouseEnter: onMouseEnterHandler,
1835
- onMouseLeave: onMouseLeaveHandler,
1836
- onKeyDown: onKeyDownHandler,
1837
- onFocus: onFocusHandler,
1838
- onBlur: onBlurHandler,
1839
- "aria-haspopup": true,
1840
- "aria-expanded": context.openState,
1841
- "aria-details": context.tooltipId,
1842
- "data-state": context.openState ? "open" : "closed",
1843
- "aria-describedby": context.tooltipId
1844
- },
1845
- tooltip: {
1846
- ref: popoverRef,
1847
- element: context.popover,
1848
- id: context.tooltipId,
1849
- show: context.openTooltip,
1850
- close: context.closeTooltip,
1851
- style: context.tooltipStyle,
1852
- arrowRef,
1853
- key: context.resetKey
1854
- },
1855
- setOpen: context.setOpenState,
1856
- open: context.openState,
1857
- controlled: context.controlled,
1858
- placement: context.placement,
1859
- disableFlipFallback: context.disableFlipFallback
1860
- };
1861
- }
1862
-
1863
- const TooltipLegacyContext = createContext(null);
1864
- const useTooltipLegacyContext = () => {
1865
- const context = useContext(TooltipLegacyContext);
1866
- if (context == null) {
1867
- throw new Error(
1868
- "TooltipLegacy components must be wrapped in <TooltipLegacy />"
1869
- );
1870
- }
1871
- return context;
1872
- };
1873
-
1874
- const styles$1 = {
1875
- "content-legacy": "_content-legacy_19gkz_4",
1876
- "arrow-legacy": "_arrow-legacy_19gkz_30",
1877
- "trigger-legacy": "_trigger-legacy_19gkz_33"
1878
- };
1879
-
1880
1641
  const TooltipLegacyContent = forwardRef(function TooltipLegacyContent2({ style, className, ...props }, propRef) {
1881
1642
  const {
1882
1643
  context: floatingContext,
@@ -1892,7 +1653,7 @@ const TooltipLegacyContent = forwardRef(function TooltipLegacyContent2({ style,
1892
1653
  useDelayGroup(floatingContext, { id });
1893
1654
  const ref = useMergeRefs([context.refs.setFloating, propRef]);
1894
1655
  if (!floatingContext.open) return null;
1895
- const contentCx = cx(styles$1["content-legacy"], className);
1656
+ const contentCx = cx(styles$4["content-legacy"], className);
1896
1657
  return /* @__PURE__ */ jsx(
1897
1658
  FloatingPortal,
1898
1659
  {
@@ -1915,7 +1676,7 @@ const TooltipLegacyContent = forwardRef(function TooltipLegacyContent2({ style,
1915
1676
  {
1916
1677
  ref: context.arrowRef,
1917
1678
  context: floatingContext,
1918
- className: styles$1["arrow-legacy"]
1679
+ className: styles$4["arrow-legacy"]
1919
1680
  }
1920
1681
  ),
1921
1682
  props.children
@@ -1940,7 +1701,7 @@ const TooltipContentElement = forwardRef(
1940
1701
  ...rest
1941
1702
  } = props;
1942
1703
  const context = useTooltipContext();
1943
- const tooltipClassNames = cx(className, styles$2["content"]);
1704
+ const tooltipClassNames = cx(className, styles$5["content"]);
1944
1705
  const childrenRef = useRef(null);
1945
1706
  const focusItems = useRef();
1946
1707
  const combinedStyles = {
@@ -1996,7 +1757,7 @@ const TooltipContentElement = forwardRef(
1996
1757
  /* @__PURE__ */ jsx(
1997
1758
  "div",
1998
1759
  {
1999
- className: styles$2.scroller,
1760
+ className: styles$5.scroller,
2000
1761
  role: "presentation",
2001
1762
  tabIndex: -1,
2002
1763
  ref: childrenRef,
@@ -2005,7 +1766,7 @@ const TooltipContentElement = forwardRef(
2005
1766
  },
2006
1767
  context?.tooltip.key
2007
1768
  ),
2008
- /* @__PURE__ */ jsx("span", { className: styles$2["arrow"], ref: context?.tooltip.arrowRef, children: /* @__PURE__ */ jsxs("svg", { "aria-hidden": "true", width: "14", height: "14", viewBox: "0 0 14 14", children: [
1769
+ /* @__PURE__ */ jsx("span", { className: styles$5["arrow"], ref: context?.tooltip.arrowRef, children: /* @__PURE__ */ jsxs("svg", { "aria-hidden": "true", width: "14", height: "14", viewBox: "0 0 14 14", children: [
2009
1770
  /* @__PURE__ */ jsx("path", { stroke: "none", d: "M0,0 H14 L7,7 Q7,7 7,7 Z" }),
2010
1771
  /* @__PURE__ */ jsx("clipPath", { id: ":r9:", children: /* @__PURE__ */ jsx("rect", { x: "0", y: "0", width: "14", height: "14" }) })
2011
1772
  ] }) })
@@ -2034,7 +1795,7 @@ const TooltipLegacyTrigger = forwardRef(function TooltipLegacyTrigger2({ childre
2034
1795
  "span",
2035
1796
  {
2036
1797
  ref,
2037
- className: cx([styles$1["trigger-legacy"]], className),
1798
+ className: cx([styles$4["trigger-legacy"]], className),
2038
1799
  "data-anv": "tooltip-trigger",
2039
1800
  "data-state": context.open ? "open" : "closed",
2040
1801
  ...restOfContextProps,
@@ -2060,9 +1821,10 @@ const TooltipTriggerElement = forwardRef(
2060
1821
  () => isValidElement(children) && children.type !== Fragment$1 && typeof children.type !== "function",
2061
1822
  [children]
2062
1823
  );
1824
+ const refs = useMergeRefs([children?.ref, context?.invoker.ref]);
2063
1825
  const childProps = useMemo(
2064
1826
  () => ({
2065
- ref: context?.invoker.ref,
1827
+ ref: refs,
2066
1828
  "aria-haspopup": context?.invoker["aria-haspopup"],
2067
1829
  "aria-expanded": context?.invoker["aria-expanded"],
2068
1830
  "aria-details": context?.invoker["aria-details"],
@@ -2096,7 +1858,7 @@ const TooltipTriggerElement = forwardRef(
2096
1858
  return /* @__PURE__ */ jsx(
2097
1859
  "span",
2098
1860
  {
2099
- className: cx([styles$2["trigger"]], className),
1861
+ className: cx([styles$5["trigger"]], className),
2100
1862
  "data-anv": "tooltip-trigger",
2101
1863
  ref: propRef,
2102
1864
  onMouseEnter: onMouseEnterHandler,
@@ -2400,30 +2162,48 @@ const Tooltip = Object.assign(TooltipElement, {
2400
2162
  Context: TooltipContext
2401
2163
  });
2402
2164
 
2165
+ const LabelMoreInfoIcon = ({
2166
+ moreInfo,
2167
+ openMoreInfo
2168
+ }) => {
2169
+ const [open, setOpen] = useState(openMoreInfo);
2170
+ useEffect(() => {
2171
+ if (openMoreInfo) {
2172
+ setOpen(true);
2173
+ } else {
2174
+ setOpen(false);
2175
+ setTimeout(() => {
2176
+ setOpen(void 0);
2177
+ });
2178
+ }
2179
+ }, [openMoreInfo]);
2180
+ return /* @__PURE__ */ jsxs(
2181
+ Tooltip,
2182
+ {
2183
+ open,
2184
+ placement: "top",
2185
+ offset: 5,
2186
+ fallbackPlacements: ["right", "bottom", "left"],
2187
+ children: [
2188
+ /* @__PURE__ */ jsx(Tooltip.Trigger, { className: styles$6["info-trigger"], children: /* @__PURE__ */ jsx(Icon, { svg: SvgInfo }) }),
2189
+ /* @__PURE__ */ jsx(Tooltip.Content, { className: styles$6["info-content"], children: moreInfo })
2190
+ ]
2191
+ }
2192
+ );
2193
+ };
2403
2194
  const Label = forwardRef((props, ref) => {
2404
2195
  const { children, className, moreInfo, required, openMoreInfo, ...rest } = props;
2405
- const LabelClassNames = cx([styles$3["label"]], className);
2196
+ const LabelClassNames = cx([styles$6["label"]], className);
2406
2197
  return /* @__PURE__ */ jsxs("label", { className: LabelClassNames, "data-anv": "label", ref, ...rest, children: [
2407
- /* @__PURE__ */ jsxs("div", { className: styles$3["top-container"], "aria-atomic": "true", children: [
2408
- /* @__PURE__ */ jsxs("span", { className: styles$3["label-text"], children: [
2198
+ /* @__PURE__ */ jsxs("div", { className: styles$6["top-container"], "aria-atomic": "true", children: [
2199
+ /* @__PURE__ */ jsxs("span", { className: styles$6["label-text"], children: [
2409
2200
  children,
2410
2201
  required ? /* @__PURE__ */ jsxs(Fragment, { children: [
2411
- /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: styles$3["required"], children: "*" }),
2202
+ /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: styles$6["required"], children: "*" }),
2412
2203
  /* @__PURE__ */ jsx(SrOnly, { children: "Required" })
2413
2204
  ] }) : null
2414
2205
  ] }),
2415
- moreInfo ? /* @__PURE__ */ jsxs(
2416
- Tooltip,
2417
- {
2418
- open: openMoreInfo ? openMoreInfo : void 0,
2419
- placement: "top",
2420
- fallbackPlacements: ["right", "bottom", "left"],
2421
- children: [
2422
- /* @__PURE__ */ jsx(Tooltip.Trigger, { className: styles$3["info-trigger"], children: /* @__PURE__ */ jsx(Icon, { svg: SvgInfo }) }),
2423
- /* @__PURE__ */ jsx(Tooltip.Content, { className: styles$3["info-content"], children: moreInfo })
2424
- ]
2425
- }
2426
- ) : null
2206
+ moreInfo ? /* @__PURE__ */ jsx(LabelMoreInfoIcon, { moreInfo, openMoreInfo }) : null
2427
2207
  ] }),
2428
2208
  moreInfo ? /* @__PURE__ */ jsx(SrOnly, { children: moreInfo }) : null
2429
2209
  ] });
@@ -2548,5 +2328,5 @@ const ProgressBar = forwardRef(
2548
2328
  );
2549
2329
  ProgressBar.displayName = "ProgressBar";
2550
2330
 
2551
- export { DialogHeader as D, Label as L, ProgressBar as P, TooltipTrigger as T, DialogFooter as a, DialogContent as b, DialogCancelButton as c, Dialog as d, DrawerCancelButton as e, DrawerFooter as f, DrawerHeader as g, DrawerContent as h, Drawer as i, TooltipContent as j, Tooltip as k, Toaster as l, DialogContext as m, DrawerContext as n, supportsPopover as s, toast as t, useKeyboardFocusables as u };
2552
- //# sourceMappingURL=ProgressBar-CXUHzFT7-Chfc-aG4.js.map
2331
+ export { DrawerCancelButton as D, Helper as H, Label as L, ProgressBar as P, TooltipTrigger as T, DrawerFooter as a, DrawerHeader as b, DrawerContent as c, Drawer as d, TooltipContent as e, Tooltip as f, getActiveElement as g, Toaster as h, DialogContext as i, useDialogScrollLock as j, ToastProvider as k, ToasterPopover as l, ToasterContent as m, DrawerContext as n, supportsPopover as s, toast as t, useKeyboardFocusables as u };
2332
+ //# sourceMappingURL=ProgressBar-DojG9LHF-nlymvlXw.js.map