@sanity/ui 4.0.0-next.4 → 4.0.0-next.5

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 (97) hide show
  1. package/README.md +4 -0
  2. package/dist/_system-CTe2lb5l.d.ts +40 -0
  3. package/dist/_system-CTe2lb5l.d.ts.map +1 -0
  4. package/dist/arrow-BG0EMNiC.js +159 -0
  5. package/dist/arrow-BG0EMNiC.js.map +1 -0
  6. package/dist/autocomplete.d.ts +140 -0
  7. package/dist/autocomplete.d.ts.map +1 -0
  8. package/dist/autocomplete.js +468 -0
  9. package/dist/autocomplete.js.map +1 -0
  10. package/dist/breadcrumbs.d.ts +18 -0
  11. package/dist/breadcrumbs.d.ts.map +1 -0
  12. package/dist/breadcrumbs.js +112 -0
  13. package/dist/breadcrumbs.js.map +1 -0
  14. package/dist/button-BzoZs3Sl.d.ts +76 -0
  15. package/dist/button-BzoZs3Sl.d.ts.map +1 -0
  16. package/dist/button-DZkAQOL2.js +174 -0
  17. package/dist/button-DZkAQOL2.js.map +1 -0
  18. package/dist/card-C0a0wQTc.d.ts +7 -0
  19. package/dist/card-C0a0wQTc.d.ts.map +1 -0
  20. package/dist/code.d.ts +20 -0
  21. package/dist/code.d.ts.map +1 -0
  22. package/dist/code.js +85 -0
  23. package/dist/code.js.map +1 -0
  24. package/dist/codeFontStyle-DYUujk7K.js +11 -0
  25. package/dist/codeFontStyle-DYUujk7K.js.map +1 -0
  26. package/dist/component-DVlwaWB-.d.ts +25 -0
  27. package/dist/component-DVlwaWB-.d.ts.map +1 -0
  28. package/dist/element-BYgCE_iK.js +51 -0
  29. package/dist/element-BYgCE_iK.js.map +1 -0
  30. package/dist/{getScopedTheme-CqaSCfTH.js → factory-CvRcEQ36.js} +6 -753
  31. package/dist/factory-CvRcEQ36.js.map +1 -0
  32. package/dist/flex-BYRpBTOc.js +69 -0
  33. package/dist/flex-BYRpBTOc.js.map +1 -0
  34. package/dist/font-EtfxKPUz.d.ts +49 -0
  35. package/dist/font-EtfxKPUz.d.ts.map +1 -0
  36. package/dist/getElementRef-5HZQ-Owu.js +91 -0
  37. package/dist/getElementRef-5HZQ-Owu.js.map +1 -0
  38. package/dist/getScopedTheme-C-sZsyAz.js +267 -0
  39. package/dist/getScopedTheme-C-sZsyAz.js.map +1 -0
  40. package/dist/getTheme_v2-y09KqtEb.js +487 -0
  41. package/dist/getTheme_v2-y09KqtEb.js.map +1 -0
  42. package/dist/grid-D88j-N7f.js +108 -0
  43. package/dist/grid-D88j-N7f.js.map +1 -0
  44. package/dist/helpers-bwfx1e-Y.js +67 -0
  45. package/dist/helpers-bwfx1e-Y.js.map +1 -0
  46. package/dist/hotkeys-B08HIKNu.js +145 -0
  47. package/dist/hotkeys-B08HIKNu.js.map +1 -0
  48. package/dist/index.d.ts +112 -896
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +93 -4409
  51. package/dist/index.js.map +1 -1
  52. package/dist/layer-BQfdK7rt.d.ts +242 -0
  53. package/dist/layer-BQfdK7rt.d.ts.map +1 -0
  54. package/dist/layer-BdkSGATt.js +56 -0
  55. package/dist/layer-BdkSGATt.js.map +1 -0
  56. package/dist/menu.d.ts +146 -0
  57. package/dist/menu.d.ts.map +1 -0
  58. package/dist/menu.js +602 -0
  59. package/dist/menu.js.map +1 -0
  60. package/dist/popover-DmmmSNzL.d.ts +96 -0
  61. package/dist/popover-DmmmSNzL.d.ts.map +1 -0
  62. package/dist/popover-Iy6EZEmv.js +406 -0
  63. package/dist/popover-Iy6EZEmv.js.map +1 -0
  64. package/dist/popover.d.ts +2 -0
  65. package/dist/popover.js +3 -0
  66. package/dist/responsiveFont-hN1mZFjm.js +55 -0
  67. package/dist/responsiveFont-hN1mZFjm.js.map +1 -0
  68. package/dist/{rgba-LmTDhX0u.d.ts → rgba-BSYaEUW6.d.ts} +4 -87
  69. package/dist/rgba-BSYaEUW6.d.ts.map +1 -0
  70. package/dist/selectable-B0GUIL74.d.ts +7 -0
  71. package/dist/selectable-B0GUIL74.d.ts.map +1 -0
  72. package/dist/stack-C5WV-BRh.js +98 -0
  73. package/dist/stack-C5WV-BRh.js.map +1 -0
  74. package/dist/styles.css +1 -0
  75. package/dist/textInput-IbiDH7Jc.js +315 -0
  76. package/dist/textInput-IbiDH7Jc.js.map +1 -0
  77. package/dist/theme.d.ts +3 -1
  78. package/dist/theme.d.ts.map +1 -1
  79. package/dist/theme.js +3 -1
  80. package/dist/theme.js.map +1 -1
  81. package/dist/toast.d.ts +73 -0
  82. package/dist/toast.d.ts.map +1 -0
  83. package/dist/toast.js +297 -0
  84. package/dist/toast.js.map +1 -0
  85. package/dist/tooltip.d.ts +88 -0
  86. package/dist/tooltip.d.ts.map +1 -0
  87. package/dist/tooltip.js +432 -0
  88. package/dist/tooltip.js.map +1 -0
  89. package/dist/useClickOutsideEvent-lEVhDFCQ.js +36 -0
  90. package/dist/useClickOutsideEvent-lEVhDFCQ.js.map +1 -0
  91. package/dist/useElementSize-BJvbGHq8.js +51 -0
  92. package/dist/useElementSize-BJvbGHq8.js.map +1 -0
  93. package/dist/useLayer-9Pz-GG0r.js +704 -0
  94. package/dist/useLayer-9Pz-GG0r.js.map +1 -0
  95. package/package.json +15 -3
  96. package/dist/getScopedTheme-CqaSCfTH.js.map +0 -1
  97. package/dist/rgba-LmTDhX0u.d.ts.map +0 -1
@@ -0,0 +1,88 @@
1
+ import { i as Delay, n as LayerProps, r as Placement } from "./layer-BQfdK7rt.js";
2
+ import { s as ThemeColorSchemeKey } from "./_system-CTe2lb5l.js";
3
+ /**
4
+ * @public
5
+ */
6
+ interface TooltipProps extends Omit<LayerProps, 'as'> {
7
+ /** @deprecated Use `fallbackPlacements` instead. */
8
+ allowedAutoPlacements?: never;
9
+ arrow?: boolean;
10
+ boundaryElement?: HTMLElement | null;
11
+ children?: React.JSX.Element;
12
+ content?: React.ReactNode;
13
+ disabled?: boolean;
14
+ fallbackPlacements?: Placement[];
15
+ padding?: number | number[];
16
+ placement?: Placement;
17
+ /** Whether or not to render the tooltip in a portal element. */
18
+ portal?: boolean | string;
19
+ radius?: number | number[];
20
+ scheme?: ThemeColorSchemeKey;
21
+ shadow?: number | number[];
22
+ /**
23
+ * Adds a delay to open or close the tooltip.
24
+ *
25
+ * If only a `number` is passed, it will be used for both opening and closing.
26
+ *
27
+ * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.
28
+ *
29
+ * @public
30
+ * @defaultValue 0
31
+ */
32
+ delay?: Delay;
33
+ /**
34
+ * Whether the tooltip should animate in and out.
35
+ *
36
+ * @beta
37
+ * @defaultValue false
38
+ */
39
+ animate?: boolean;
40
+ }
41
+ /**
42
+ * Tooltips display information when hovering, focusing or tapping.
43
+ *
44
+ * @public
45
+ */
46
+ declare const Tooltip: (props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>) => import("react").JSX.Element;
47
+ /**
48
+ * @beta
49
+ */
50
+ interface TooltipDelayGroupContextValue {
51
+ setIsGroupActive: (nextState: React.SetStateAction<boolean>, delay?: number | undefined) => void;
52
+ setOpenTooltipId: (nextId: string | null, delay?: number | undefined) => void;
53
+ openDelay: number;
54
+ closeDelay: number;
55
+ openTooltipId: string | null;
56
+ }
57
+ /**
58
+ * @beta
59
+ */
60
+ declare const TooltipDelayGroupContext: import("react").Context<TooltipDelayGroupContextValue | null>;
61
+ /**
62
+ * @public
63
+ * */
64
+ interface TooltipDelayGroupProviderProps {
65
+ children?: React.ReactNode;
66
+ /**
67
+ * Handles the delays to open or close a tooltip inside a group
68
+ *
69
+ * If only a `number` is passed, it will be used for both opening and closing.
70
+ *
71
+ * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.
72
+ *
73
+ * @public
74
+ */
75
+ delay: Delay;
76
+ }
77
+ /**
78
+ * @public
79
+ * Provides context for a group of tooltip elements that should share a delay
80
+ * which temporarily becomes 1 ms after the first floating element of the group opens.
81
+ */
82
+ declare function TooltipDelayGroupProvider(props: TooltipDelayGroupProviderProps): React.JSX.Element;
83
+ /**
84
+ * @beta
85
+ */
86
+ declare function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null;
87
+ export { Tooltip, TooltipDelayGroupContext, type TooltipDelayGroupContextValue, TooltipDelayGroupProvider, type TooltipDelayGroupProviderProps, type TooltipProps, useTooltipDelayGroup };
88
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","names":[],"sources":["../src/core/primitives/tooltip/tooltip.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/types.ts","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts"],"mappings":";;;;;UAuDiB,qBAAqB,KAAK;;EAEzC;EACA;EACA,kBAAkB;EAClB,WAAW,MAAM,IAAI;EACrB,UAAU,MAAM;EAChB;EACA,qBAAqB;EACrB;EACA,YAAY;;EAEZ;EACA;EACA,SAAS;EACT;;;;;;;;;;;EAWA,QAAQ;;;;;;;EAOR;;;;;;;cAYW,UAAO,OACX,eAAe,KAAK,MAAM,UAAU,oEAA+C,IAAA;;;;UClG3E;EAEf,mBAAmB,WAAW,MAAM,yBAAyB;EAE7D,mBAAmB,uBAAuB;EAC1C;EACA;EACA;;;;;cCJW,0CAAwB,QAAA;;;;UCIpB;EACf,WAAW,MAAM;;;;;;;;;;EAUjB,OAAO;;;;;;;iBAQO,0BACd,OAAO,iCACN,MAAM,IAAI;;;;iBCvBG,wBAAwB"}
@@ -0,0 +1,432 @@
1
+ "use client";
2
+ import { c as POPOVER_MOTION_PROPS, n as _getArrayProp } from "./helpers-bwfx1e-Y.js";
3
+ import { _ as useTheme_v2, d as createGlobalScopedContext, i as usePrefersReducedMotion, s as Card } from "./useLayer-9Pz-GG0r.js";
4
+ import { n as AnimateActivity, r as origin, t as getElementRef } from "./getElementRef-5HZQ-Owu.js";
5
+ import { a as useBoundaryElement, n as Portal, r as usePortal, t as Arrow } from "./arrow-BG0EMNiC.js";
6
+ import { t as Layer } from "./layer-BdkSGATt.js";
7
+ import { c } from "react/compiler-runtime";
8
+ import { Activity, cloneElement, useContext, useEffect, useId, useImperativeHandle, useLayoutEffect, useRef, useState } from "react";
9
+ import { styled } from "styled-components";
10
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
11
+ import { arrow, autoUpdate, flip, offset, shift, useFloating } from "@floating-ui/react-dom";
12
+ import { motion } from "motion/react";
13
+ import { useEffectEvent } from "use-effect-event";
14
+ /**
15
+ * @beta
16
+ */
17
+ function useDelayedState(initialState) {
18
+ let $ = c(5), [state, setState] = useState(initialState), delayedAction = useRef(void 0), t0;
19
+ $[0] === Symbol.for("react.memo_cache_sentinel") ? (t0 = (nextState, delay) => {
20
+ let action = () => {
21
+ setState(nextState);
22
+ };
23
+ if (delayedAction.current &&= (clearTimeout(delayedAction.current), void 0), !delay) return action();
24
+ delayedAction.current = setTimeout(action, delay);
25
+ }, $[0] = t0) : t0 = $[0];
26
+ let onStateChange = t0, t1, t2;
27
+ $[1] === Symbol.for("react.memo_cache_sentinel") ? (t1 = () => () => {
28
+ delayedAction.current && clearTimeout(delayedAction.current);
29
+ }, t2 = [], $[1] = t1, $[2] = t2) : (t1 = $[1], t2 = $[2]), useEffect(t1, t2);
30
+ let t3;
31
+ return $[3] === state ? t3 = $[4] : (t3 = [state, onStateChange], $[3] = state, $[4] = t3), t3;
32
+ }
33
+ const DEFAULT_FALLBACK_PLACEMENTS = {
34
+ top: [
35
+ "top-end",
36
+ "top-start",
37
+ "bottom",
38
+ "left",
39
+ "right"
40
+ ],
41
+ "top-start": [
42
+ "top",
43
+ "top-end",
44
+ "bottom-start",
45
+ "left-start",
46
+ "right-start"
47
+ ],
48
+ "top-end": [
49
+ "top",
50
+ "top-start",
51
+ "bottom-end",
52
+ "left-end",
53
+ "right-end"
54
+ ],
55
+ bottom: [
56
+ "bottom-end",
57
+ "bottom-start",
58
+ "top",
59
+ "left",
60
+ "right"
61
+ ],
62
+ "bottom-start": [
63
+ "bottom",
64
+ "bottom-end",
65
+ "top-start",
66
+ "left-start",
67
+ "right-start"
68
+ ],
69
+ "bottom-end": [
70
+ "bottom",
71
+ "bottom-start",
72
+ "top-end",
73
+ "left-end",
74
+ "right-end"
75
+ ],
76
+ left: [
77
+ "left-end",
78
+ "left-start",
79
+ "right",
80
+ "top",
81
+ "bottom"
82
+ ],
83
+ "left-start": [
84
+ "left",
85
+ "left-end",
86
+ "right-start",
87
+ "top-start",
88
+ "bottom-start"
89
+ ],
90
+ "left-end": [
91
+ "left",
92
+ "left-start",
93
+ "right-end",
94
+ "top-end",
95
+ "bottom-end"
96
+ ],
97
+ right: [
98
+ "right-end",
99
+ "right-start",
100
+ "left",
101
+ "top",
102
+ "bottom"
103
+ ],
104
+ "right-start": [
105
+ "right",
106
+ "right-end",
107
+ "left-start",
108
+ "top-start",
109
+ "bottom-start"
110
+ ],
111
+ "right-end": [
112
+ "right",
113
+ "right-start",
114
+ "left-end",
115
+ "top-end",
116
+ "bottom-end"
117
+ ]
118
+ }, MotionCard = styled(motion.create(Card)).withConfig({
119
+ displayName: "MotionCard",
120
+ componentId: "sc-qzzn8n-0"
121
+ })`will-change:transform;`, TooltipCard = function TooltipCard(props) {
122
+ let $ = c(49), animate, arrow, arrowRef, arrowX, arrowY, children, originX, originY, padding, placement, radius, ref, restProps, scheme, shadow, style;
123
+ $[0] === props ? (animate = $[1], arrow = $[2], arrowRef = $[3], arrowX = $[4], arrowY = $[5], children = $[6], originX = $[7], originY = $[8], padding = $[9], placement = $[10], radius = $[11], ref = $[12], restProps = $[13], scheme = $[14], shadow = $[15], style = $[16]) : ({animate, arrow, arrowRef, arrowX, arrowY, children, originX, originY, padding, placement, radius, ref, scheme, shadow, style, ...restProps} = props, $[0] = props, $[1] = animate, $[2] = arrow, $[3] = arrowRef, $[4] = arrowX, $[5] = arrowY, $[6] = children, $[7] = originX, $[8] = originY, $[9] = padding, $[10] = placement, $[11] = radius, $[12] = ref, $[13] = restProps, $[14] = scheme, $[15] = shadow, $[16] = style);
124
+ let t0 = animate ? "transform" : void 0, t1;
125
+ $[17] !== originX || $[18] !== originY || $[19] !== style || $[20] !== t0 ? (t1 = {
126
+ originX,
127
+ originY,
128
+ willChange: t0,
129
+ ...style
130
+ }, $[17] = originX, $[18] = originY, $[19] = style, $[20] = t0, $[21] = t1) : t1 = $[21];
131
+ let rootStyle = t1, t2 = arrowX === null ? void 0 : arrowX, t3 = arrowY === null ? void 0 : arrowY, t4;
132
+ $[22] !== t2 || $[23] !== t3 ? (t4 = {
133
+ left: t2,
134
+ top: t3,
135
+ right: void 0,
136
+ bottom: void 0
137
+ }, $[22] = t2, $[23] = t3, $[24] = t4) : t4 = $[24];
138
+ let arrowStyle = t4, t5 = restProps, t6;
139
+ $[25] === animate ? t6 = $[26] : (t6 = animate ? ["hidden", "initial"] : void 0, $[25] = animate, $[26] = t6);
140
+ let t7;
141
+ $[27] === animate ? t7 = $[28] : (t7 = animate ? ["visible", "scaleIn"] : void 0, $[27] = animate, $[28] = t7);
142
+ let t8;
143
+ $[29] === animate ? t8 = $[30] : (t8 = animate ? ["hidden", "scaleOut"] : void 0, $[29] = animate, $[30] = t8);
144
+ let t9;
145
+ $[31] !== arrow || $[32] !== arrowRef || $[33] !== arrowStyle ? (t9 = arrow && /* @__PURE__ */ jsx(Arrow, {
146
+ ref: arrowRef,
147
+ style: arrowStyle,
148
+ width: 15,
149
+ height: 6,
150
+ radius: 2
151
+ }), $[31] = arrow, $[32] = arrowRef, $[33] = arrowStyle, $[34] = t9) : t9 = $[34];
152
+ let t10;
153
+ return $[35] !== children || $[36] !== padding || $[37] !== placement || $[38] !== radius || $[39] !== ref || $[40] !== rootStyle || $[41] !== scheme || $[42] !== shadow || $[43] !== t5 || $[44] !== t6 || $[45] !== t7 || $[46] !== t8 || $[47] !== t9 ? (t10 = /* @__PURE__ */ jsxs(MotionCard, {
154
+ "data-ui": "Tooltip__card",
155
+ ...t5,
156
+ "data-placement": placement,
157
+ padding,
158
+ radius,
159
+ ref,
160
+ scheme,
161
+ shadow,
162
+ style: rootStyle,
163
+ variants: POPOVER_MOTION_PROPS.card,
164
+ transition: POPOVER_MOTION_PROPS.transition,
165
+ initial: t6,
166
+ animate: t7,
167
+ exit: t8,
168
+ children: [children, t9]
169
+ }), $[35] = children, $[36] = padding, $[37] = placement, $[38] = radius, $[39] = ref, $[40] = rootStyle, $[41] = scheme, $[42] = shadow, $[43] = t5, $[44] = t6, $[45] = t7, $[46] = t8, $[47] = t9, $[48] = t10) : t10 = $[48], t10;
170
+ }, TooltipDelayGroupContext = createGlobalScopedContext("@sanity/ui/context/tooltipDelayGroup", null);
171
+ /**
172
+ * @beta
173
+ */
174
+ function useTooltipDelayGroup() {
175
+ return useContext(TooltipDelayGroupContext);
176
+ }
177
+ const StyledTooltip = styled(Layer).withConfig({
178
+ displayName: "StyledTooltip",
179
+ componentId: "sc-yxng5e-0"
180
+ })`pointer-events:none;`, Tooltip = function Tooltip(props) {
181
+ let $ = c(138), boundaryElementContext = useBoundaryElement(), { layer } = useTheme_v2(), _boundaryElement, _fallbackPlacementsProp, _zOffset, childProp, content, delay, disabled, forwardedRef, portalProp, restProps, scheme, t0, t1, t2, t3, t4, t5;
182
+ $[0] === props ? (_boundaryElement = $[1], _fallbackPlacementsProp = $[2], _zOffset = $[3], childProp = $[4], content = $[5], delay = $[6], disabled = $[7], forwardedRef = $[8], portalProp = $[9], restProps = $[10], scheme = $[11], t0 = $[12], t1 = $[13], t2 = $[14], t3 = $[15], t4 = $[16], t5 = $[17]) : ({animate: t0, arrow: t1, boundaryElement: _boundaryElement, children: childProp, content, disabled, fallbackPlacements: _fallbackPlacementsProp, padding: t2, placement: t3, portal: portalProp, radius: t4, ref: forwardedRef, scheme, shadow: t5, zOffset: _zOffset, delay, ...restProps} = props, $[0] = props, $[1] = _boundaryElement, $[2] = _fallbackPlacementsProp, $[3] = _zOffset, $[4] = childProp, $[5] = content, $[6] = delay, $[7] = disabled, $[8] = forwardedRef, $[9] = portalProp, $[10] = restProps, $[11] = scheme, $[12] = t0, $[13] = t1, $[14] = t2, $[15] = t3, $[16] = t4, $[17] = t5);
183
+ let _animate = t0 !== void 0 && t0, arrowProp = t1 !== void 0 && t1, padding = t2 === void 0 ? 2 : t2, placementProp = t3 === void 0 ? "bottom" : t3, radius = t4 === void 0 ? 2 : t4, shadow = t5 === void 0 ? 2 : t5, boundaryElement = _boundaryElement ?? boundaryElementContext?.element, fallbackPlacementsProp = _fallbackPlacementsProp ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? "bottom"], zOffset = _zOffset ?? layer.tooltip.zOffset, animate = !usePrefersReducedMotion() && _animate, t6;
184
+ $[18] === fallbackPlacementsProp ? t6 = $[19] : (t6 = _getArrayProp(fallbackPlacementsProp), $[18] = fallbackPlacementsProp, $[19] = t6);
185
+ let fallbackPlacements = t6, ref = useRef(null), [referenceElement, setReferenceElement] = useState(null), arrowRef = useRef(null), [tooltipMaxWidth, setTooltipMaxWidth] = useState(0), t7;
186
+ $[20] === Symbol.for("react.memo_cache_sentinel") ? (t7 = () => ref.current, $[20] = t7) : t7 = $[20], useImperativeHandle(forwardedRef, t7);
187
+ let portal = usePortal(), portalElement = typeof portalProp == "string" ? portal.elements?.[portalProp] || null : portal.element, t8;
188
+ $[21] !== animate || $[22] !== arrowProp || $[23] !== boundaryElement || $[24] !== fallbackPlacements ? (t8 = {
189
+ animate,
190
+ arrowProp,
191
+ arrowRef,
192
+ boundaryElement,
193
+ fallbackPlacements,
194
+ rootBoundary: "viewport"
195
+ }, $[21] = animate, $[22] = arrowProp, $[23] = boundaryElement, $[24] = fallbackPlacements, $[25] = t8) : t8 = $[25];
196
+ let middleware = useMiddleware(t8), t9;
197
+ $[26] === referenceElement ? t9 = $[27] : (t9 = { reference: referenceElement }, $[26] = referenceElement, $[27] = t9);
198
+ let t10;
199
+ $[28] !== middleware || $[29] !== placementProp || $[30] !== t9 ? (t10 = {
200
+ middleware,
201
+ placement: placementProp,
202
+ whileElementsMounted: autoUpdate,
203
+ elements: t9
204
+ }, $[28] = middleware, $[29] = placementProp, $[30] = t9, $[31] = t10) : t10 = $[31];
205
+ let { floatingStyles, placement, middlewareData, refs, update } = useFloating(t10), arrowX = middlewareData.arrow?.x, arrowY = middlewareData.arrow?.y, originX = middlewareData["@sanity/ui/origin"]?.originX, originY = middlewareData["@sanity/ui/origin"]?.originY, tooltipId = useId(), [isOpen, setIsOpen] = useDelayedState(!1), delayGroupContext = useTooltipDelayGroup(), t11;
206
+ $[32] === delayGroupContext ? t11 = $[33] : (t11 = delayGroupContext || {}, $[32] = delayGroupContext, $[33] = t11);
207
+ let { setIsGroupActive, setOpenTooltipId } = t11, showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId, isInsideGroup = delayGroupContext !== null, openDelayProp = typeof delay == "number" ? delay : delay?.open || 0, closeDelayProp = typeof delay == "number" ? delay : delay?.close || 0, openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp, closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp, t12;
208
+ $[34] !== closeDelay || $[35] !== isInsideGroup || $[36] !== openDelay || $[37] !== setIsGroupActive || $[38] !== setIsOpen || $[39] !== setOpenTooltipId || $[40] !== tooltipId ? (t12 = (open, immediate) => {
209
+ if (isInsideGroup) if (open) {
210
+ let groupedOpenDelay = immediate ? 0 : openDelay;
211
+ setIsGroupActive?.(open, groupedOpenDelay), setOpenTooltipId?.(tooltipId, groupedOpenDelay);
212
+ } else setIsGroupActive?.(open, closeDelay > 200 ? closeDelay : 200), setOpenTooltipId?.(null, immediate ? 0 : closeDelay);
213
+ else setIsOpen(open, immediate ? 0 : open ? openDelay : closeDelay);
214
+ }, $[34] = closeDelay, $[35] = isInsideGroup, $[36] = openDelay, $[37] = setIsGroupActive, $[38] = setIsOpen, $[39] = setOpenTooltipId, $[40] = tooltipId, $[41] = t12) : t12 = $[41];
215
+ let handleIsOpenChange = t12, t13;
216
+ $[42] !== childProp?.props || $[43] !== handleIsOpenChange ? (t13 = (e) => {
217
+ handleIsOpenChange(!1), childProp?.props?.onBlur?.(e);
218
+ }, $[42] = childProp?.props, $[43] = handleIsOpenChange, $[44] = t13) : t13 = $[44], childProp?.props;
219
+ let handleBlur = t13, t14;
220
+ $[45] !== childProp?.props || $[46] !== handleIsOpenChange ? (t14 = (e_0) => {
221
+ handleIsOpenChange(!1, !0), childProp?.props.onClick?.(e_0);
222
+ }, $[45] = childProp?.props, $[46] = handleIsOpenChange, $[47] = t14) : t14 = $[47], childProp?.props;
223
+ let handleClick = t14, t15;
224
+ $[48] !== childProp?.props || $[49] !== handleIsOpenChange ? (t15 = (e_1) => {
225
+ handleIsOpenChange(!1, !0), childProp?.props.onContextMenu?.(e_1);
226
+ }, $[48] = childProp?.props, $[49] = handleIsOpenChange, $[50] = t15) : t15 = $[50], childProp?.props;
227
+ let handleContextMenu = t15, t16;
228
+ $[51] !== childProp?.props || $[52] !== handleIsOpenChange ? (t16 = (e_2) => {
229
+ handleIsOpenChange(!0), childProp?.props?.onFocus?.(e_2);
230
+ }, $[51] = childProp?.props, $[52] = handleIsOpenChange, $[53] = t16) : t16 = $[53], childProp?.props;
231
+ let handleFocus = t16, t17;
232
+ $[54] !== childProp?.props || $[55] !== handleIsOpenChange ? (t17 = (e_3) => {
233
+ handleIsOpenChange(!0), childProp?.props?.onMouseEnter?.(e_3);
234
+ }, $[54] = childProp?.props, $[55] = handleIsOpenChange, $[56] = t17) : t17 = $[56], childProp?.props;
235
+ let handleMouseEnter = t17, t18;
236
+ $[57] !== childProp?.props || $[58] !== handleIsOpenChange ? (t18 = (e_4) => {
237
+ handleIsOpenChange(!1), childProp?.props?.onMouseLeave?.(e_4);
238
+ }, $[57] = childProp?.props, $[58] = handleIsOpenChange, $[59] = t18) : t18 = $[59], childProp?.props;
239
+ let handleMouseLeave = t18, t19;
240
+ $[60] !== handleIsOpenChange || $[61] !== isInsideGroup || $[62] !== referenceElement || $[63] !== showTooltip ? (t19 = {
241
+ handleIsOpenChange,
242
+ referenceElement,
243
+ showTooltip,
244
+ isInsideGroup
245
+ }, $[60] = handleIsOpenChange, $[61] = isInsideGroup, $[62] = referenceElement, $[63] = showTooltip, $[64] = t19) : t19 = $[64], useCloseOnMouseLeave(t19);
246
+ let t20, t21;
247
+ $[65] !== disabled || $[66] !== handleIsOpenChange || $[67] !== showTooltip ? (t20 = () => {
248
+ disabled && showTooltip && handleIsOpenChange(!1);
249
+ }, t21 = [
250
+ disabled,
251
+ handleIsOpenChange,
252
+ showTooltip
253
+ ], $[65] = disabled, $[66] = handleIsOpenChange, $[67] = showTooltip, $[68] = t20, $[69] = t21) : (t20 = $[68], t21 = $[69]), useEffect(t20, t21);
254
+ let t22, t23;
255
+ $[70] !== content || $[71] !== handleIsOpenChange || $[72] !== showTooltip ? (t22 = () => {
256
+ !content && showTooltip && handleIsOpenChange(!1);
257
+ }, t23 = [
258
+ content,
259
+ handleIsOpenChange,
260
+ showTooltip
261
+ ], $[70] = content, $[71] = handleIsOpenChange, $[72] = showTooltip, $[73] = t22, $[74] = t23) : (t22 = $[73], t23 = $[74]), useEffect(t22, t23);
262
+ let t24, t25;
263
+ $[75] !== handleIsOpenChange || $[76] !== showTooltip ? (t24 = () => {
264
+ if (!showTooltip) return;
265
+ let handleWindowKeyDown = function handleWindowKeyDown(event) {
266
+ event.key === "Escape" && handleIsOpenChange(!1, !0);
267
+ };
268
+ return window.addEventListener("keydown", handleWindowKeyDown), () => {
269
+ window.removeEventListener("keydown", handleWindowKeyDown);
270
+ };
271
+ }, t25 = [handleIsOpenChange, showTooltip], $[75] = handleIsOpenChange, $[76] = showTooltip, $[77] = t24, $[78] = t25) : (t24 = $[77], t25 = $[78]), useEffect(t24, t25);
272
+ let t26;
273
+ $[79] !== boundaryElement || $[80] !== portalElement?.offsetWidth ? (t26 = () => {
274
+ let availableWidths = [...boundaryElement ? [boundaryElement.offsetWidth] : [], portalElement?.offsetWidth || document.body.offsetWidth];
275
+ setTooltipMaxWidth(Math.min(...availableWidths) - 8);
276
+ }, $[79] = boundaryElement, $[80] = portalElement?.offsetWidth, $[81] = t26) : t26 = $[81];
277
+ let t27;
278
+ $[82] !== boundaryElement || $[83] !== portalElement ? (t27 = [boundaryElement, portalElement], $[82] = boundaryElement, $[83] = portalElement, $[84] = t27) : t27 = $[84], useLayoutEffect(t26, t27);
279
+ let t28;
280
+ $[85] === update ? t28 = $[86] : (t28 = (arrowEl) => {
281
+ arrowRef.current = arrowEl, update();
282
+ }, $[85] = update, $[86] = t28);
283
+ let setArrow = t28, t29;
284
+ $[87] === refs ? t29 = $[88] : (t29 = (node) => {
285
+ ref.current = node, refs.setFloating(node);
286
+ }, $[87] = refs, $[88] = t29);
287
+ let setFloating = t29, t30;
288
+ bb0: {
289
+ if (!childProp) {
290
+ t30 = null;
291
+ break bb0;
292
+ }
293
+ let t31;
294
+ $[89] !== childProp || $[90] !== handleBlur || $[91] !== handleClick || $[92] !== handleContextMenu || $[93] !== handleFocus || $[94] !== handleMouseEnter || $[95] !== handleMouseLeave ? (t31 = cloneElement(childProp, {
295
+ onBlur: handleBlur,
296
+ onFocus: handleFocus,
297
+ onMouseEnter: handleMouseEnter,
298
+ onMouseLeave: handleMouseLeave,
299
+ onClick: handleClick,
300
+ onContextMenu: handleContextMenu,
301
+ ref: setReferenceElement
302
+ }), $[89] = childProp, $[90] = handleBlur, $[91] = handleClick, $[92] = handleContextMenu, $[93] = handleFocus, $[94] = handleMouseEnter, $[95] = handleMouseLeave, $[96] = t31) : t31 = $[96], t30 = t31;
303
+ }
304
+ let child = t30, t31;
305
+ $[97] === childProp ? t31 = $[98] : (t31 = childProp ? getElementRef(childProp) : null, $[97] = childProp, $[98] = t31);
306
+ let t32, t33;
307
+ if ($[99] === referenceElement ? (t32 = $[100], t33 = $[101]) : (t32 = () => referenceElement, t33 = [referenceElement], $[99] = referenceElement, $[100] = t32, $[101] = t33), useImperativeHandle(t31, t32, t33), !child) {
308
+ let t34;
309
+ return $[102] === Symbol.for("react.memo_cache_sentinel") ? (t34 = /* @__PURE__ */ jsx(Fragment$1, {}), $[102] = t34) : t34 = $[102], t34;
310
+ }
311
+ if (disabled) return child;
312
+ let t34 = tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : void 0, t35;
313
+ $[103] !== floatingStyles || $[104] !== t34 ? (t35 = {
314
+ ...floatingStyles,
315
+ maxWidth: t34
316
+ }, $[103] = floatingStyles, $[104] = t34, $[105] = t35) : t35 = $[105];
317
+ let t36;
318
+ $[106] !== animate || $[107] !== arrowProp || $[108] !== arrowX || $[109] !== arrowY || $[110] !== content || $[111] !== originX || $[112] !== originY || $[113] !== padding || $[114] !== placement || $[115] !== radius || $[116] !== restProps || $[117] !== scheme || $[118] !== setArrow || $[119] !== setFloating || $[120] !== shadow ? (t36 = /* @__PURE__ */ jsx(TooltipCard, {
319
+ ...restProps,
320
+ animate,
321
+ arrow: arrowProp,
322
+ arrowRef: setArrow,
323
+ arrowX,
324
+ arrowY,
325
+ originX,
326
+ originY,
327
+ padding,
328
+ placement,
329
+ radius,
330
+ ref: setFloating,
331
+ scheme,
332
+ shadow,
333
+ children: content
334
+ }), $[106] = animate, $[107] = arrowProp, $[108] = arrowX, $[109] = arrowY, $[110] = content, $[111] = originX, $[112] = originY, $[113] = padding, $[114] = placement, $[115] = radius, $[116] = restProps, $[117] = scheme, $[118] = setArrow, $[119] = setFloating, $[120] = shadow, $[121] = t36) : t36 = $[121];
335
+ let t37;
336
+ $[122] !== restProps || $[123] !== setFloating || $[124] !== t35 || $[125] !== t36 || $[126] !== zOffset ? (t37 = /* @__PURE__ */ jsx(StyledTooltip, {
337
+ "data-ui": "Tooltip",
338
+ ...restProps,
339
+ ref: setFloating,
340
+ style: t35,
341
+ zOffset,
342
+ children: t36
343
+ }), $[122] = restProps, $[123] = setFloating, $[124] = t35, $[125] = t36, $[126] = zOffset, $[127] = t37) : t37 = $[127];
344
+ let tooltip = t37, t38;
345
+ $[128] !== portalProp || $[129] !== tooltip ? (t38 = portalProp ? /* @__PURE__ */ jsx(Portal, {
346
+ __unstable_name: typeof portalProp == "string" ? portalProp : void 0,
347
+ children: tooltip
348
+ }) : tooltip, $[128] = portalProp, $[129] = tooltip, $[130] = t38) : t38 = $[130];
349
+ let tooltipNode = t38, t39;
350
+ $[131] !== animate || $[132] !== showTooltip || $[133] !== tooltipNode ? (t39 = animate ? /* @__PURE__ */ jsx(AnimateActivity, {
351
+ layoutMode: "default",
352
+ mode: showTooltip ? "visible" : "hidden",
353
+ children: tooltipNode
354
+ }) : /* @__PURE__ */ jsx(Activity, {
355
+ mode: showTooltip ? "visible" : "hidden",
356
+ children: tooltipNode
357
+ }), $[131] = animate, $[132] = showTooltip, $[133] = tooltipNode, $[134] = t39) : t39 = $[134];
358
+ let t40;
359
+ return $[135] !== child || $[136] !== t39 ? (t40 = /* @__PURE__ */ jsxs(Fragment$1, { children: [t39, child] }), $[135] = child, $[136] = t39, $[137] = t40) : t40 = $[137], t40;
360
+ };
361
+ function useMiddleware(t0) {
362
+ let $ = c(17), { animate, arrowProp, arrowRef, boundaryElement, fallbackPlacements, rootBoundary } = t0, ret;
363
+ if ($[0] !== animate || $[1] !== arrowProp || $[2] !== arrowRef || $[3] !== boundaryElement || $[4] !== fallbackPlacements || $[5] !== rootBoundary) {
364
+ ret = [];
365
+ let t1 = boundaryElement || void 0, t2;
366
+ $[7] !== fallbackPlacements || $[8] !== rootBoundary || $[9] !== t1 ? (t2 = flip({
367
+ boundary: t1,
368
+ fallbackPlacements,
369
+ padding: 4,
370
+ rootBoundary
371
+ }), $[7] = fallbackPlacements, $[8] = rootBoundary, $[9] = t1, $[10] = t2) : t2 = $[10], ret.push(t2);
372
+ let t3;
373
+ $[11] === Symbol.for("react.memo_cache_sentinel") ? (t3 = offset({ mainAxis: 4 }), $[11] = t3) : t3 = $[11], ret.push(t3);
374
+ let t4 = boundaryElement || void 0, t5;
375
+ if ($[12] !== rootBoundary || $[13] !== t4 ? (t5 = shift({
376
+ boundary: t4,
377
+ rootBoundary,
378
+ padding: 4
379
+ }), $[12] = rootBoundary, $[13] = t4, $[14] = t5) : t5 = $[14], ret.push(t5), arrowProp) {
380
+ let t6;
381
+ $[15] === arrowRef ? t6 = $[16] : (t6 = arrow({
382
+ element: arrowRef,
383
+ padding: 4
384
+ }), $[15] = arrowRef, $[16] = t6), ret.push(t6);
385
+ }
386
+ animate && ret.push(origin), $[0] = animate, $[1] = arrowProp, $[2] = arrowRef, $[3] = boundaryElement, $[4] = fallbackPlacements, $[5] = rootBoundary, $[6] = ret;
387
+ } else ret = $[6];
388
+ return ret;
389
+ }
390
+ /**
391
+ * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.
392
+ * @see https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks
393
+ */
394
+ function useCloseOnMouseLeave(t0) {
395
+ let $ = c(10), { handleIsOpenChange, referenceElement, showTooltip, isInsideGroup } = t0, t1;
396
+ $[0] !== handleIsOpenChange || $[1] !== referenceElement ? (t1 = (target, teardown) => {
397
+ referenceElement && (referenceElement === target || target instanceof Node && referenceElement.contains(target) || (handleIsOpenChange(!1), teardown()));
398
+ }, $[0] = handleIsOpenChange, $[1] = referenceElement, $[2] = t1) : t1 = $[2];
399
+ let onMouseMove = useEffectEvent(t1), t2;
400
+ $[3] !== isInsideGroup || $[4] !== onMouseMove || $[5] !== showTooltip ? (t2 = () => {
401
+ if (!showTooltip || isInsideGroup) return;
402
+ let handleMouseMove = (event) => {
403
+ onMouseMove(event.target, () => window.removeEventListener("mousemove", handleMouseMove));
404
+ };
405
+ return window.addEventListener("mousemove", handleMouseMove), () => window.removeEventListener("mousemove", handleMouseMove);
406
+ }, $[3] = isInsideGroup, $[4] = onMouseMove, $[5] = showTooltip, $[6] = t2) : t2 = $[6];
407
+ let t3;
408
+ $[7] !== isInsideGroup || $[8] !== showTooltip ? (t3 = [isInsideGroup, showTooltip], $[7] = isInsideGroup, $[8] = showTooltip, $[9] = t3) : t3 = $[9], useEffect(t2, t3);
409
+ }
410
+ /**
411
+ * @public
412
+ * Provides context for a group of tooltip elements that should share a delay
413
+ * which temporarily becomes 1 ms after the first floating element of the group opens.
414
+ */
415
+ function TooltipDelayGroupProvider(props) {
416
+ let $ = c(9), { children, delay } = props, [isGroupActive, setIsGroupActive] = useDelayedState(!1), [openTooltipId, setOpenTooltipId] = useDelayedState(null), openDelay = typeof delay == "number" ? delay : delay?.open || 0, closeDelay = typeof delay == "number" ? delay : delay?.close || 0, t0 = isGroupActive ? 1 : openDelay, t1;
417
+ $[0] !== closeDelay || $[1] !== openTooltipId || $[2] !== setIsGroupActive || $[3] !== setOpenTooltipId || $[4] !== t0 ? (t1 = {
418
+ setIsGroupActive,
419
+ openTooltipId,
420
+ setOpenTooltipId,
421
+ openDelay: t0,
422
+ closeDelay
423
+ }, $[0] = closeDelay, $[1] = openTooltipId, $[2] = setIsGroupActive, $[3] = setOpenTooltipId, $[4] = t0, $[5] = t1) : t1 = $[5];
424
+ let value = t1, t2;
425
+ return $[6] !== children || $[7] !== value ? (t2 = /* @__PURE__ */ jsx(TooltipDelayGroupContext.Provider, {
426
+ value,
427
+ children
428
+ }), $[6] = children, $[7] = value, $[8] = t2) : t2 = $[8], t2;
429
+ }
430
+ export { Tooltip, TooltipDelayGroupContext, TooltipDelayGroupProvider, useTooltipDelayGroup };
431
+
432
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","names":["SetStateAction","useCallback","useEffect","useRef","useState","useDelayedState","initialState","$","_c","state","setState","delayedAction","undefined","t0","Symbol","for","nextState","delay","action","current","clearTimeout","setTimeout","onStateChange","t1","t2","t3","Placement","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","DEFAULT_FALLBACK_PLACEMENTS","Record","motion","MotionProps","React","CSSProperties","useMemo","styled","ThemeColorSchemeKey","POPOVER_MOTION_PROPS","Placement","Radius","Arrow","Card","CardProps","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_ARROW_WIDTH","MotionCard","create","TooltipCard","props","$","_c","animate","arrow","arrowRef","arrowX","arrowY","children","originX","originY","padding","placement","radius","ref","restProps","scheme","shadow","style","t0","undefined","t1","willChange","rootStyle","t2","t3","t4","left","top","right","bottom","arrowStyle","t5","t6","t7","t8","t9","t10","card","transition","createGlobalScopedContext","TooltipDelayGroupContextValue","TooltipDelayGroupContext","useContext","TooltipDelayGroupContext","TooltipDelayGroupContextValue","useTooltipDelayGroup","value","arrow","autoUpdate","flip","Middleware","offset","RootBoundary","shift","useFloating","Activity","cloneElement","useCallback","useEffect","useId","useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","styled","useEffectEvent","ThemeColorSchemeKey","useDelayedState","usePrefersReducedMotion","origin","_getArrayProp","useTheme_v2","Placement","AnimateActivity","useBoundaryElement","getElementRef","Layer","LayerProps","Portal","usePortal","Delay","DEFAULT_FALLBACK_PLACEMENTS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","useTooltipDelayGroup","TooltipProps","Omit","allowedAutoPlacements","boundaryElement","HTMLElement","children","React","JSX","Element","content","ReactNode","disabled","fallbackPlacements","padding","placement","portal","radius","scheme","shadow","delay","animate","StyledTooltip","Tooltip","props","$","_c","boundaryElementContext","layer","_boundaryElement","_fallbackPlacementsProp","_zOffset","childProp","forwardedRef","portalProp","restProps","t0","t1","t2","t3","t4","t5","ref","zOffset","_animate","undefined","arrowProp","placementProp","element","fallbackPlacementsProp","tooltip","prefersReducedMotion","t6","referenceElement","setReferenceElement","arrowRef","tooltipMaxWidth","setTooltipMaxWidth","t7","Symbol","for","current","portalElement","elements","t8","rootBoundary","middleware","useMiddleware","t9","reference","t10","whileElementsMounted","floatingStyles","middlewareData","refs","update","arrowX","x","arrowY","y","originX","originY","tooltipId","isOpen","setIsOpen","delayGroupContext","t11","setIsGroupActive","setOpenTooltipId","showTooltip","openTooltipId","isInsideGroup","openDelayProp","open","closeDelayProp","close","openDelay","closeDelay","t12","immediate","groupedOpenDelay","groupDeactivateDelay","standaloneDelay","handleIsOpenChange","t13","e","onBlur","handleBlur","t14","e_0","onClick","handleClick","t15","e_1","onContextMenu","handleContextMenu","t16","e_2","onFocus","handleFocus","t17","e_3","onMouseEnter","handleMouseEnter","t18","e_4","onMouseLeave","handleMouseLeave","t19","useCloseOnMouseLeave","t20","t21","t22","t23","t24","t25","handleWindowKeyDown","event","key","window","addEventListener","removeEventListener","t26","offsetWidth","availableWidths","document","body","Math","min","t27","t28","arrowEl","setArrow","t29","node","setFloating","t30","bb0","t31","child","t32","t33","t34","t35","maxWidth","t36","t37","t38","tooltipNode","t39","t40","ret","boundary","push","mainAxis","target","teardown","isHoveringReference","Node","contains","onMouseMove","handleMouseMove","useMemo","useDelayedState","Delay","TooltipDelayGroupContext","TooltipDelayGroupContextValue","TooltipDelayGroupProviderProps","children","React","ReactNode","delay","TooltipDelayGroupProvider","props","$","_c","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","open","closeDelay","close","t0","t1","value","t2"],"sources":["../src/core/hooks/useDelayedState.ts","../src/core/primitives/tooltip/constants.ts","../src/core/primitives/tooltip/tooltipCard.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/core/primitives/tooltip/tooltip.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx"],"sourcesContent":["import {SetStateAction, useCallback, useEffect, useRef, useState} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n useEffect(() => {\n return () => {\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n }\n }\n }, [])\n\n return [state, onStateChange]\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {motion, type MotionProps} from 'motion/react'\nimport React, {CSSProperties, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement} from '../../types/placement'\nimport {Radius} from '../../types/radius'\nimport {Arrow} from '../../utils/arrow/arrow'\nimport {Card, CardProps} from '../card/card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = styled(motion.create(Card))`\n will-change: transform;\n`\n\n/**\n * @internal\n */\nexport const TooltipCard = function TooltipCard(\n props: {\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n padding?: number | number[]\n placement?: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n ref,\n scheme,\n shadow,\n style,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Tooltip__card\"\n // oxlint-disable-next-line no-unsafe-type-assertion\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n}\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/context/tooltipDelayGroup',\n null,\n )\n","import {useContext} from 'react'\n\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {\n arrow,\n autoUpdate,\n flip,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {\n Activity,\n cloneElement,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {styled} from 'styled-components'\n// TODO: switch to `useEffectEvent` from `react` once\n// https://github.com/facebook/react/issues/34818 is fixed in the lowest React\n// version we support: on React 19.2 the native hook never sees values past\n// the first render when the calling component is wrapped in `forwardRef` or\n// `memo`, and consumers may wrap `Tooltip` in `memo`.\nimport {useEffectEvent} from 'use-effect-event'\n\nimport type {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport type {Placement} from '../../types/placement'\nimport {AnimateActivity} from '../../utils/animateActivity'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {Layer, type LayerProps} from '../../utils/layer/layer'\nimport {Portal} from '../../utils/portal/portal'\nimport {usePortal} from '../../utils/portal/usePortal'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup/useTooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: never\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.JSX.Element\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n radius?: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\nconst StyledTooltip = styled(Layer)`\n pointer-events: none;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement: _boundaryElement,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacementsProp,\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n ref: forwardedRef,\n scheme,\n shadow = 2,\n zOffset: _zOffset,\n delay,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacementsProp =\n _fallbackPlacementsProp ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const zOffset = _zOffset ?? layer.tooltip.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = _getArrayProp(fallbackPlacementsProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n })\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: {reference: referenceElement},\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n setIsGroupActive?.(open, groupedOpenDelay)\n setOpenTooltipId?.(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n setIsGroupActive?.(open, groupDeactivateDelay)\n setOpenTooltipId?.(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [\n isInsideGroup,\n openDelay,\n setIsGroupActive,\n setOpenTooltipId,\n tooltipId,\n closeDelay,\n setIsOpen,\n ],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip, isInsideGroup})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n // oxlint-disable-next-line consistent-return\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n // oxlint-disable-next-line react-compiler\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReferenceElement,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [\n referenceElement,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const tooltip = (\n <StyledTooltip\n data-ui=\"Tooltip\"\n {...restProps}\n ref={setFloating}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n zOffset={zOffset}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n </TooltipCard>\n </StyledTooltip>\n )\n\n const tooltipNode = portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {tooltip}\n </Portal>\n ) : (\n tooltip\n )\n\n return (\n <>\n {/* the tooltip */}\n {animate ? (\n <AnimateActivity layoutMode=\"default\" mode={showTooltip ? 'visible' : 'hidden'}>\n {tooltipNode}\n </AnimateActivity>\n ) : (\n <Activity mode={showTooltip ? 'visible' : 'hidden'}>{tooltipNode}</Activity>\n )}\n\n {/* the referred element */}\n {child}\n </>\n )\n}\n\nfunction useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n}: {\n animate: boolean\n arrowProp: boolean\n arrowRef: React.RefObject<HTMLDivElement | null>\n boundaryElement: HTMLElement | null\n fallbackPlacements: Placement[]\n rootBoundary: RootBoundary\n}) {\n return useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, arrowRef, boundaryElement, fallbackPlacements, rootBoundary])\n}\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n isInsideGroup,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n isInsideGroup: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip || isInsideGroup) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n // oxlint-disable-next-line consistent-return\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [isInsideGroup, showTooltip])\n}\n","import {useMemo} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.JSX.Element {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAKA,SAAOK,gBAAAC,cAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAGL,CAAAC,OAAAC,YAA0BN,SAASE,YAAY,GAC/CK,gBAAsBR,OAAmCS,KAAAA,CAAS,GAACC;CAAA,AAAAN,EAAA,OAAAO,OAAAC,IAAA,2BAAA,KAEjCF,MAAAG,WAAAC,UAAA;EAChC,IAAAC,eAAe;GACbR,SAASM,SAAS;EAAC;EASrB,IALA,AAEEL,cAAaQ,aADbC,aAAaT,cAAaQ,OAAQ,GACVP,KAAAA,IAGtB,CAACK,OAAK,OAASC,OAAO;EAC1BP,cAAaQ,UAAWE,WAAWH,QAAQD,KAAK;CAA3B,GACtBV,EAAA,KAAAM,MAAAA,KAAAN,EAAA;CAbD,IAAAe,gBAAsBT,IAahBU,IAAAC;CAENtB,AAFMK,EAAA,OAAAO,OAAAC,IAAA,2BAAA,KAEIQ,iBACD;EACL,AAAIZ,cAAaQ,WACfC,aAAaT,cAAaQ,OAAQ;CACnC,GAEFK,KAAA,CAAA,GAAEjB,EAAA,KAAAgB,IAAAhB,EAAA,KAAAiB,OAAAD,KAAAhB,EAAA,IAAAiB,KAAAjB,EAAA,KANLL,UAAUqB,IAMPC,EAAE;CAAC,IAAAC;CAEuB,OAFvBlB,EAAA,OAAAE,QAEuBgB,KAAAlB,EAAA,MAAtBkB,KAAA,CAAChB,OAAOa,aAAa,GAACf,EAAA,KAAAE,OAAAF,EAAA,KAAAkB,KAAtBA;AAAsB;ACzB/B,MAAaO,8BAA8D;CACzE,KAAO;EAAC;EAAW;EAAa;EAAU;EAAQ;CAAO;CACzD,aAAa;EAAC;EAAO;EAAW;EAAgB;EAAc;CAAa;CAC3E,WAAW;EAAC;EAAO;EAAa;EAAc;EAAY;CAAW;CACrE,QAAU;EAAC;EAAc;EAAgB;EAAO;EAAQ;CAAO;CAC/D,gBAAgB;EAAC;EAAU;EAAc;EAAa;EAAc;CAAa;CACjF,cAAc;EAAC;EAAU;EAAgB;EAAW;EAAY;CAAW;CAC3E,MAAQ;EAAC;EAAY;EAAc;EAAS;EAAO;CAAQ;CAC3D,cAAc;EAAC;EAAQ;EAAY;EAAe;EAAa;CAAc;CAC7E,YAAY;EAAC;EAAQ;EAAc;EAAa;EAAW;CAAY;CACvE,OAAS;EAAC;EAAa;EAAe;EAAQ;EAAO;CAAQ;CAC7D,eAAe;EAAC;EAAS;EAAa;EAAc;EAAa;CAAc;CAC/E,aAAa;EAAC;EAAS;EAAe;EAAY;EAAW;CAAY;AAC3E,GCNMkB,aAAaX,OAAOL,OAAOiB,OAAON,IAAI,CAAC,CAAC,CAAA,WAAA;;;4BAOjCO,cAAc,SAAAA,YAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAAAC,SAAAC,OAAAC,UAAAC,QAAAC,QAAAC,UAAAC,SAAAC,SAAAC,SAAAC,WAAAC,QAAAC,KAAAC,WAAAC,QAAAC,QAAAC;CAAA,AAAAjB,EAAA,OAAAD,SAiChBG,UAAAF,EAAA,IAAAG,QAAAH,EAAA,IAAAI,WAAAJ,EAAA,IAAAK,SAAAL,EAAA,IAAAM,SAAAN,EAAA,IAAAO,WAAAP,EAAA,IAAAQ,UAAAR,EAAA,IAAAS,UAAAT,EAAA,IAAAU,UAAAV,EAAA,IAAAW,YAAAX,EAAA,KAAAY,SAAAZ,EAAA,KAAAa,MAAAb,EAAA,KAAAc,YAAAd,EAAA,KAAAe,SAAAf,EAAA,KAAAgB,SAAAhB,EAAA,KAAAiB,QAAAjB,EAAA,QAjBT,CAAAE,SAAAC,OAAAC,UAAAC,QAAAC,QAAAC,UAAAC,SAAAC,SAAAC,SAAAC,WAAAC,QAAAC,KAAAE,QAAAC,QAAAC,UAAAH,aAiBIf,OAAKC,EAAA,KAAAD,OAAAC,EAAA,KAAAE,SAAAF,EAAA,KAAAG,OAAAH,EAAA,KAAAI,UAAAJ,EAAA,KAAAK,QAAAL,EAAA,KAAAM,QAAAN,EAAA,KAAAO,UAAAP,EAAA,KAAAQ,SAAAR,EAAA,KAAAS,SAAAT,EAAA,KAAAU,SAAAV,EAAA,MAAAW,WAAAX,EAAA,MAAAY,QAAAZ,EAAA,MAAAa,KAAAb,EAAA,MAAAc,WAAAd,EAAA,MAAAe,QAAAf,EAAA,MAAAgB,QAAAhB,EAAA,MAAAiB;CAMO,IAAAC,KAAAhB,UAAA,cAAAiB,KAAAA,GAAiCC;CAAA,AAAApB,EAAA,QAAAQ,WAAAR,EAAA,QAAAS,WAAAT,EAAA,QAAAiB,SAAAjB,EAAA,QAAAkB,MAHxCE,KAAA;EAAAZ;EAAAC;EAAAY,YAGOH;EAAiC,GAC1CD;CACL,GAACjB,EAAA,MAAAQ,SAAAR,EAAA,MAAAS,SAAAT,EAAA,MAAAiB,OAAAjB,EAAA,MAAAkB,IAAAlB,EAAA,MAAAoB,MAAAA,KAAApB,EAAA;CANH,IAAAsB,YACSF,IAWCG,KAAAlB,WAAW,OAAXc,KAAAA,IAAAd,QACDmB,KAAAlB,WAAW,OAAXa,KAAAA,IAAAb,QAAoCmB;CAAA,AAAAzB,EAAA,QAAAuB,MAAAvB,EAAA,QAAAwB,MAFpCC,KAAA;EAAAC,MACCH;EAAoCI,KACrCH;EAAoCI,OAClCT,KAAAA;EAASU,QACRV,KAAAA;CACV,GAACnB,EAAA,MAAAuB,IAAAvB,EAAA,MAAAwB,IAAAxB,EAAA,MAAAyB,MAAAA,KAAAzB,EAAA;CANH,IAAA8B,aACSL,IAaAM,KAAAjB,WAAoCkB;CAAA,AAAAhC,EAAA,QAAAE,UAUW8B,KAAAhC,EAAA,OAA3CgC,KAAA9B,UAAA,CAAW,UAAU,SAAS,IAA9BiB,KAAAA,GAA2CnB,EAAA,MAAAE,SAAAF,EAAA,MAAAgC;CAAA,IAAAC;CAAA,AAAAjC,EAAA,QAAAE,UACC+B,KAAAjC,EAAA,OAA5CiC,KAAA/B,UAAA,CAAW,WAAW,SAAS,IAA/BiB,KAAAA,GAA4CnB,EAAA,MAAAE,SAAAF,EAAA,MAAAiC;CAAA,IAAAC;CAAA,AAAAlC,EAAA,QAAAE,UACHgC,KAAAlC,EAAA,OAA5CkC,KAAAhC,UAAA,CAAW,UAAU,UAAU,IAA/BiB,KAAAA,GAA4CnB,EAAA,MAAAE,SAAAF,EAAA,MAAAkC;CAAA,IAAAC;CAAA,AAAAnC,EAAA,QAAAG,SAAAH,EAAA,QAAAI,YAAAJ,EAAA,QAAA8B,cAIjDK,KAAAhC,SACC,oBAAC,OAAD;EACOC,KAAAA;EACE0B,OAAAA;EACAnC,OAAAA;EACCF,QAAAA;EACAC,QAAAA;CAA4B,CAAA,GAEvCM,EAAA,MAAAG,OAAAH,EAAA,MAAAI,UAAAJ,EAAA,MAAA8B,YAAA9B,EAAA,MAAAmC,MAAAA,KAAAnC,EAAA;CAAA,IAAAoC;CACU,OADVpC,EAAA,QAAAO,YAAAP,EAAA,QAAAU,WAAAV,EAAA,QAAAW,aAAAX,EAAA,QAAAY,UAAAZ,EAAA,QAAAa,OAAAb,EAAA,QAAAsB,aAAAtB,EAAA,QAAAe,UAAAf,EAAA,QAAAgB,UAAAhB,EAAA,QAAA+B,MAAA/B,EAAA,QAAAgC,MAAAhC,EAAA,QAAAiC,MAAAjC,EAAA,QAAAkC,MAAAlC,EAAA,QAAAmC,MA3BHC,MAAA,qBAAC,YAAD;EACU,WAAA;EAAe,GAElBL;EACWpB,kBAAAA;EACPD;EACDE;EACHC;EACGE;EACAC;EACDM,OAAAA;EACG,UAAAnC,qBAAoBkD;EAClB,YAAAlD,qBAAoBmD;EACvB,SAAAN;EACA,SAAAC;EACH,MAAAC;EAfR,UAAA,CAiBG3B,UAEA4B,EAnBQ;KA4BEnC,EAAA,MAAAO,UAAAP,EAAA,MAAAU,SAAAV,EAAA,MAAAW,WAAAX,EAAA,MAAAY,QAAAZ,EAAA,MAAAa,KAAAb,EAAA,MAAAsB,WAAAtB,EAAA,MAAAe,QAAAf,EAAA,MAAAgB,QAAAhB,EAAA,MAAA+B,IAAA/B,EAAA,MAAAgC,IAAAhC,EAAA,MAAAiC,IAAAjC,EAAA,MAAAkC,IAAAlC,EAAA,MAAAmC,IAAAnC,EAAA,MAAAoC,OAAAA,MAAApC,EAAA,KA5BboC;AA4Ba,GCrGJK,2BACXF,0BACE,wCACA,IACF;;;;ACFF,SAAOM,uBAAA;CAC6C,OAApCH,WAAWC,wBAElBG;AAAK;ACgFd,MAAM8D,gBAAgB3C,OAAOY,KAAK,CAAC,CAAA,WAAA;;;0BAStBgC,UAAU,SAAAA,QAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,GAAA,GAGrBC,yBAA+BtC,mBAAmB,GAClD,EAAAuC,UAAgB1C,YAAY,GAAC2C,kBAAAC,yBAAAC,UAAAC,WAAAtB,SAAAU,OAAAR,UAAAqB,cAAAC,YAAAC,WAAAjB,QAAAkB,IAAAC,IAAAC,IAAAC,IAAAC,IAAAC;CAAA,AAAAhB,EAAA,OAAAD,SAmBpBK,mBAAAJ,EAAA,IAAAK,0BAAAL,EAAA,IAAAM,WAAAN,EAAA,IAAAO,YAAAP,EAAA,IAAAf,UAAAe,EAAA,IAAAL,QAAAK,EAAA,IAAAb,WAAAa,EAAA,IAAAQ,eAAAR,EAAA,IAAAS,aAAAT,EAAA,IAAAU,YAAAV,EAAA,KAAAP,SAAAO,EAAA,KAAAW,KAAAX,EAAA,KAAAY,KAAAZ,EAAA,KAAAa,KAAAb,EAAA,KAAAc,KAAAd,EAAA,KAAAe,KAAAf,EAAA,KAAAgB,KAAAhB,EAAA,QAlBT,CAAAJ,SAAAe,IAAA3E,OAAA4E,IAAAjC,iBAAAyB,kBAAAvB,UAAA0B,WAAAtB,SAAAE,UAAAC,oBAAAiB,yBAAAhB,SAAAwB,IAAAvB,WAAAwB,IAAAvB,QAAAkB,YAAAjB,QAAAuB,IAAAE,KAAAT,cAAAf,QAAAC,QAAAsB,IAAAE,SAAAZ,UAAAX,UAAAe,aAkBIX,OAAKC,EAAA,KAAAD,OAAAC,EAAA,KAAAI,kBAAAJ,EAAA,KAAAK,yBAAAL,EAAA,KAAAM,UAAAN,EAAA,KAAAO,WAAAP,EAAA,KAAAf,SAAAe,EAAA,KAAAL,OAAAK,EAAA,KAAAb,UAAAa,EAAA,KAAAQ,cAAAR,EAAA,KAAAS,YAAAT,EAAA,MAAAU,WAAAV,EAAA,MAAAP,QAAAO,EAAA,MAAAW,IAAAX,EAAA,MAAAY,IAAAZ,EAAA,MAAAa,IAAAb,EAAA,MAAAc,IAAAd,EAAA,MAAAe,IAAAf,EAAA,MAAAgB;CAjBE,IAAAG,WAAAR,OAAAS,KAAAA,KAAAT,IACFU,YAAAT,OAAAQ,KAAAA,KAAAR,IAMPvB,UAAAwB,OAAAO,KAAAA,IAAA,IAAAP,IACWS,gBAAAR,OAAAM,KAAAA,IAAA,WAAAN,IAEXtB,SAAAuB,OAAAK,KAAAA,IAAA,IAAAL,IAGArB,SAAAsB,OAAAI,KAAAA,IAAA,IAAAJ,IAKFrC,kBAAwByB,oBAAoBF,wBAAsBqB,SAClEC,yBACEnB,2BAA2BlC,4BAA4B4B,MAAKT,aAAL,WACzD4B,UAAgBZ,YAAYH,MAAKsB,QAAQP,SAEzCtB,UAD6BtC,yBACboE,KAAAP,UAAuCQ;CAAA,AAAA3B,EAAA,QAAAwB,yBACSG,KAAA3B,EAAA,OAArC2B,KAAAnE,cAAcgE,sBAAsB,GAACxB,EAAA,MAAAwB,wBAAAxB,EAAA,MAAA2B;CAAhE,IAAAvC,qBAA2BuC,IAC3BV,MAAYjE,OAA8B,IAAI,GAC9C,CAAA4E,kBAAAC,uBAAgD5E,SAA6B,IAAI,GACjF6E,WAAiB9E,OAA8B,IAAI,GAEnD,CAAA+E,iBAAAC,sBAA8C/E,SAAS,CAAC,GAACgF;CAEzDpF,AAFyDmD,EAAA,QAAAkC,OAAAC,IAAA,2BAAA,KAEuBF,WAAMhB,IAAGmB,SAAQpC,EAAA,MAAAiC,MAAAA,KAAAjC,EAAA,KAAjGnD,oBAAkE2D,cAAcyB,EAAiB;CAEjG,IAAA1C,SAAetB,UAAU,GACzBoE,gBACE,OAAO5B,cAAe,WAAWlB,OAAM+C,WAAY7B,eAAlB,OAAwClB,OAAMgC,SAAQgB;CAAA,AAAAvC,EAAA,QAAAJ,WAAAI,EAAA,QAAAqB,aAAArB,EAAA,QAAArB,mBAAAqB,EAAA,QAAAZ,sBAExDmD,KAAA;EAAA3C;EAAAyB;EAAAS;EAAAnD;EAAAS;EAAAoD,cATE;CAgBnC,GAACxC,EAAA,MAAAJ,SAAAI,EAAA,MAAAqB,WAAArB,EAAA,MAAArB,iBAAAqB,EAAA,MAAAZ,oBAAAY,EAAA,MAAAuC,MAAAA,KAAAvC,EAAA;CAPD,IAAAyC,aAAmBC,cAAcH,EAOhC,GAACI;CAAA,AAAA3C,EAAA,QAAA4B,mBAMuCe,KAAA3C,EAAA,OAA7B2C,KAAA,EAAAC,WAAYhB,iBAAgB,GAAC5B,EAAA,MAAA4B,kBAAA5B,EAAA,MAAA2C;CAAA,IAAAE;CAAA,AAAA7C,EAAA,QAAAyC,cAAAzC,EAAA,QAAAsB,iBAAAtB,EAAA,QAAA2C,MAJqCE,MAAA;EAAAJ;EAAAnD,WAEjEgC;EAAawB,sBACF7G;EAAUqG,UACtBK;CACZ,GAAC3C,EAAA,MAAAyC,YAAAzC,EAAA,MAAAsB,eAAAtB,EAAA,MAAA2C,IAAA3C,EAAA,MAAA6C,OAAAA,MAAA7C,EAAA;CALD,IAAA,EAAA+C,gBAAAzD,WAAA0D,gBAAAC,MAAAC,WAAkE3G,YAAYsG,GAK7E,GAEDM,SAAeH,eAAchH,OAASoH,GACtCC,SAAeL,eAAchH,OAASsH,GAEtCC,UAAgBP,eAAe,oBAA6B,EAAAO,SAC5DC,UAAgBR,eAAe,oBAA6B,EAAAQ,SAE5DC,YAAkB7G,MAAM,GACxB,CAAA8G,QAAAC,aAA4BtG,gBAAgB,EAAK,GACjDuG,oBAA0BrF,qBAAqB,GAACsF;CAAA,AAAA7D,EAAA,QAAA4D,oBACoBC,MAAA7D,EAAA,OAAvB6D,MAAAD,qBAAA,CAAsB,GAAC5D,EAAA,MAAA4D,mBAAA5D,EAAA,MAAA6D;CAApE,IAAA,EAAAC,kBAAAC,qBAA6CF,KAC7CG,cAAoBN,UAAUE,mBAAiBK,kBAAoBR,WAEnES,gBAAsBN,sBAAsB,MAC5CO,gBAAsB,OAAOxE,SAAU,WAAjBA,QAAoCA,OAAKyE,QAAL,GAC1DC,iBAAuB,OAAO1E,SAAU,WAAjBA,QAAoCA,OAAK2E,SAAL,GAE3DC,YAAkBL,gBAAgBN,kBAAiBW,YAAjCJ,eAClBK,aAAmBN,gBAAgBN,kBAAiBY,aAAjCH,gBAA6DI;CAAA,AAAAzE,EAAA,QAAAwE,cAAAxE,EAAA,QAAAkE,iBAAAlE,EAAA,QAAAuE,aAAAvE,EAAA,QAAA8D,oBAAA9D,EAAA,QAAA2D,aAAA3D,EAAA,QAAA+D,oBAAA/D,EAAA,QAAAyD,aAG9EgB,OAAAL,MAAAM,cAAA;EACE,IAAIR,eAEF,IAAIE,MAAI;GACN,IAAAO,mBAAyBD,YAAA,IAAAH;GAGzBR,AADAD,mBAAmBM,MAAMO,gBAAgB,GACzCZ,mBAAmBN,WAAWkB,gBAAgB;EAAC,OAO/CZ,AADAD,mBAAmBM,MAFjBI,aAFkC,MAElCA,aAAA,GAE2C,GAC7CT,mBAAmB,MAAMW,YAAA,IAAAF,UAA0B;OAMrDb,UAAUS,MAHcM,YAAA,IAAgBN,OAAAG,YAAAC,UAGT;CAChC,GACFxE,EAAA,MAAAwE,YAAAxE,EAAA,MAAAkE,eAAAlE,EAAA,MAAAuE,WAAAvE,EAAA,MAAA8D,kBAAA9D,EAAA,MAAA2D,WAAA3D,EAAA,MAAA+D,kBAAA/D,EAAA,MAAAyD,WAAAzD,EAAA,MAAAyE,OAAAA,MAAAzE,EAAA;CAvBH,IAAA8E,qBAA2BL,KAiC1BM;CAOExE,AAPFP,EAAA,QAAAO,WAAAR,SAAAC,EAAA,QAAA8E,sBAGCC,OAAAC,MAAA;EAEEzE,AADAuE,mBAAmB,EAAK,GACxBvE,WAASR,OAAekF,SAAGD,CAAC;CAAC,GAC9BhF,EAAA,MAAAO,WAAAR,OAAAC,EAAA,MAAA8E,oBAAA9E,EAAA,MAAA+E,OAAAA,MAAA/E,EAAA,KACAO,WAASR;CALZ,IAAAmF,aAAmBH,KAMlBI;CAME5E,AANFP,EAAA,QAAAO,WAAAR,SAAAC,EAAA,QAAA8E,sBAECK,OAAAC,QAAA;EAEE7E,AADAuE,mBAAmB,IAAO,EAAI,GAC9BvE,WAASR,MAAesF,UAAGL,GAAC;CAAC,GAC9BhF,EAAA,MAAAO,WAAAR,OAAAC,EAAA,MAAA8E,oBAAA9E,EAAA,MAAAmF,OAAAA,MAAAnF,EAAA,KACAO,WAASR;CALZ,IAAAuF,cAAoBH,KAMnBI;CAMEhF,AANFP,EAAA,QAAAO,WAAAR,SAAAC,EAAA,QAAA8E,sBAECS,OAAAC,QAAA;EAEEjF,AADAuE,mBAAmB,IAAO,EAAI,GAC9BvE,WAASR,MAAqB0F,gBAAGT,GAAC;CAAC,GACpChF,EAAA,MAAAO,WAAAR,OAAAC,EAAA,MAAA8E,oBAAA9E,EAAA,MAAAuF,OAAAA,MAAAvF,EAAA,KACAO,WAASR;CALZ,IAAA2F,oBAA0BH,KAMzBI;CAMEpF,AANFP,EAAA,QAAAO,WAAAR,SAAAC,EAAA,QAAA8E,sBAECa,OAAAC,QAAA;EAEErF,AADAuE,mBAAmB,EAAI,GACvBvE,WAASR,OAAgB8F,UAAGb,GAAC;CAAC,GAC/BhF,EAAA,MAAAO,WAAAR,OAAAC,EAAA,MAAA8E,oBAAA9E,EAAA,MAAA2F,OAAAA,MAAA3F,EAAA,KACAO,WAASR;CALZ,IAAA+F,cAAoBH,KAMnBI;CAMExF,AANFP,EAAA,QAAAO,WAAAR,SAAAC,EAAA,QAAA8E,sBAECiB,OAAAC,QAAA;EAEEzF,AADAuE,mBAAmB,EAAI,GACvBvE,WAASR,OAAqBkG,eAAGjB,GAAC;CAAC,GACpChF,EAAA,MAAAO,WAAAR,OAAAC,EAAA,MAAA8E,oBAAA9E,EAAA,MAAA+F,OAAAA,MAAA/F,EAAA,KACAO,WAASR;CALZ,IAAAmG,mBAAyBH,KAMxBI;CAME5F,AANFP,EAAA,QAAAO,WAAAR,SAAAC,EAAA,QAAA8E,sBAECqB,OAAAC,QAAA;EAEE7F,AADAuE,mBAAmB,EAAK,GACxBvE,WAASR,OAAqBsG,eAAGrB,GAAC;CAAC,GACpChF,EAAA,MAAAO,WAAAR,OAAAC,EAAA,MAAA8E,oBAAA9E,EAAA,MAAAmG,OAAAA,MAAAnG,EAAA,KACAO,WAASR;CALZ,IAAAuG,mBAAyBH,KAMxBI;CAGDC,AAHCxG,EAAA,QAAA8E,sBAAA9E,EAAA,QAAAkE,iBAAAlE,EAAA,QAAA4B,oBAAA5B,EAAA,QAAAgE,eAGoBuC,MAAA;EAAAzB;EAAAlD;EAAAoC;EAAAE;CAAiE,GAAClE,EAAA,MAAA8E,oBAAA9E,EAAA,MAAAkE,eAAAlE,EAAA,MAAA4B,kBAAA5B,EAAA,MAAAgE,aAAAhE,EAAA,MAAAuG,OAAAA,MAAAvG,EAAA,KAAvFwG,qBAAqBD,GAAkE;CAAC,IAAAE,KAAAC;CAGxF/J,AAHwFqD,EAAA,QAAAb,YAAAa,EAAA,QAAA8E,sBAAA9E,EAAA,QAAAgE,eAG9EyC,YAAA;EACR,AAAItH,YAAA6E,eAAyBc,mBAAmB,EAAK;CAAC,GACrD4B,MAAA;EAACvH;EAAU2F;EAAoBd;CAAW,GAAChE,EAAA,MAAAb,UAAAa,EAAA,MAAA8E,oBAAA9E,EAAA,MAAAgE,aAAAhE,EAAA,MAAAyG,KAAAzG,EAAA,MAAA0G,QAAAD,MAAAzG,EAAA,KAAA0G,MAAA1G,EAAA,MAF9CrD,UAAU8J,KAEPC,GAA2C;CAAC,IAAAC,KAAAC;CAG/CjK,AAH+CqD,EAAA,QAAAf,WAAAe,EAAA,QAAA8E,sBAAA9E,EAAA,QAAAgE,eAGrC2C,YAAA;EACR,AAAI,CAAC1H,WAAD+E,eAAyBc,mBAAmB,EAAK;CAAC,GACrD8B,MAAA;EAAC3H;EAAS6F;EAAoBd;CAAW,GAAChE,EAAA,MAAAf,SAAAe,EAAA,MAAA8E,oBAAA9E,EAAA,MAAAgE,aAAAhE,EAAA,MAAA2G,KAAA3G,EAAA,MAAA4G,QAAAD,MAAA3G,EAAA,KAAA4G,MAAA5G,EAAA,MAF7CrD,UAAUgK,KAEPC,GAA0C;CAAC,IAAAC,KAAAC;CAE9CnK,AAF8CqD,EAAA,QAAA8E,sBAAA9E,EAAA,QAAAgE,eAEpC6C,YAAA;EAER,IAAI,CAAC7C,aAAW;EAEhB,IAAA+C,sBAAA,SAAAA,oBAAAC,OAAA;GACE,AAAIA,MAAKC,QAAS,YAChBnC,mBAAmB,IAAO,EAAI;EAC/B;EAGoD,OAAvDoC,OAAMC,iBAAkB,WAAWJ,mBAAmB,SAG/C;GACLG,OAAME,oBAAqB,WAAWL,mBAAmB;EAAC;CAC3D,GACAD,MAAA,CAAChC,oBAAoBd,WAAW,GAAChE,EAAA,MAAA8E,oBAAA9E,EAAA,MAAAgE,aAAAhE,EAAA,MAAA6G,KAAA7G,EAAA,MAAA8G,QAAAD,MAAA7G,EAAA,KAAA8G,MAAA9G,EAAA,MAhBpCrD,UAAUkK,KAgBPC,GAAiC;CAAC,IAAAO;CAAA,AAAArH,EAAA,QAAArB,mBAAAqB,EAAA,QAAAqC,eAAAiF,eAGrBD,YAAA;EAId,IAAAE,kBAAwB,CAAA,GAClB5I,kBAAA,CAAmBA,gBAAe2I,WAAY,IAA9C,CAAA,GACJjF,eAAaiF,eAAiBE,SAAQC,KAAKH,WAAY;EAIzDtF,mBAAmB0F,KAAIC,IAAI,GAAIJ,eAAe,IAAA,CAA+B;CAAC,GAC/EvH,EAAA,MAAArB,iBAAAqB,EAAA,MAAAqC,eAAAiF,aAAAtH,EAAA,MAAAqH,OAAAA,MAAArH,EAAA;CAAA,IAAA4H;CAXD9K,AAWCkD,EAAA,QAAArB,mBAAAqB,EAAA,QAAAqC,iBAAEuF,MAAA,CAACjJ,iBAAiB0D,aAAa,GAACrC,EAAA,MAAArB,iBAAAqB,EAAA,MAAAqC,eAAArC,EAAA,MAAA4H,OAAAA,MAAA5H,EAAA,KAXnClD,gBAAgBuK,KAWbO,GAAgC;CAAC,IAAAC;CAAA,AAAA7H,EAAA,QAAAkD,SAMjC2E,MAAA7H,EAAA,OAHD6H,OAAAC,YAAA;EAEE5E,AADApB,SAAQM,UAAW0F,SACnB5E,OAAO;CAAC,GACTlD,EAAA,MAAAkD,QAAAlD,EAAA,MAAA6H;CAJH,IAAAE,WAAiBF,KAMhBG;CAAA,AAAAhI,EAAA,QAAAiD,OAME+E,MAAAhI,EAAA,OAHDgI,OAAAC,SAAA;EAEEhF,AADAhC,IAAGmB,UAAW6F,MACdhF,KAAIiF,YAAaD,IAAI;CAAC,GACvBjI,EAAA,MAAAiD,MAAAjD,EAAA,MAAAgI;CAJH,IAAAE,cAAoBF,KAMnBG;CAAAC,KAAA;EAGC,IAAI,CAAC7H,WAAS;GAAE4H,MAAO;GAAP,MAAAC;EAAW;EAAA,IAAAC;EAE3BF,AAF2BnI,EAAA,QAAAO,aAAAP,EAAA,QAAAkF,cAAAlF,EAAA,QAAAsF,eAAAtF,EAAA,QAAA0F,qBAAA1F,EAAA,QAAA8F,eAAA9F,EAAA,QAAAkG,oBAAAlG,EAAA,QAAAsG,oBAEpB+B,MAAA5L,aAAa8D,WAAW;GAAA0E,QACrBC;GAAUW,SACTC;GAAWG,cACNC;GAAgBG,cAChBC;GAAgBjB,SACrBC;GAAWG,eACLC;GAAiBzE,KAC3BY;EACP,CAAC,GAAC7B,EAAA,MAAAO,WAAAP,EAAA,MAAAkF,YAAAlF,EAAA,MAAAsF,aAAAtF,EAAA,MAAA0F,mBAAA1F,EAAA,MAAA8F,aAAA9F,EAAA,MAAAkG,kBAAAlG,EAAA,MAAAsG,kBAAAtG,EAAA,MAAAqI,OAAAA,MAAArI,EAAA,KARFmI,MAAOE;CAQL;CAXJ,IAAAC,QAAcH,KAoBZE;CAAA,AAAArI,EAAA,QAAAO,YAI6D8H,MAAArI,EAAA,OAA3CqI,MAAA9H,YAAY1C,cAAc0C,SAAgB,IAA1C,MAA2CP,EAAA,MAAAO,WAAAP,EAAA,MAAAqI;CAAA,IAAAE,KAAAC;CAI/D,IAJ+DxI,EAAA,QAAA4B,oBAE9D2G,MAAAvI,EAAA,MAAAwI,MAAAxI,EAAA,SAFgEuI,YAAM3G,kBAAkB4G,MAAA,CACvF5G,gBAAgB,GACjB5B,EAAA,MAAA4B,kBAAA5B,EAAA,OAAAuI,KAAAvI,EAAA,OAAAwI,MAFD3L,oBAAoBwL,KAA6CE,KAAwBC,GAExF,GAEG,CAACF,OAAK;EAAA,IAAAG;EAAc,OAAdzI,EAAA,SAAAkC,OAAAC,IAAA,2BAAA,KAASsG,MAAA,oBAAA,YAAA,CAAA,CAAA,GAAKzI,EAAA,OAAAyI,OAAAA,MAAAzI,EAAA,MAALyI;CAAK;CAExB,IAAItJ,UAAQ,OAASmJ;CASL,IAAAG,MAAA1G,kBAAkB,IAAlB,GAAyBA,gBAAe,MAAxCX,KAAAA,GAAwDsH;CAAA,AAAA1I,EAAA,SAAA+C,kBAAA/C,EAAA,SAAAyI,OAF7DC,MAAA;EAAA,GACF3F;EAAc4F,UACPF;CACZ,GAACzI,EAAA,OAAA+C,gBAAA/C,EAAA,OAAAyI,KAAAzI,EAAA,OAAA0I,OAAAA,MAAA1I,EAAA;CAAA,IAAA4I;CAAA,AAAA5I,EAAA,SAAAJ,WAAAI,EAAA,SAAAqB,aAAArB,EAAA,SAAAmD,UAAAnD,EAAA,SAAAqD,UAAArD,EAAA,SAAAf,WAAAe,EAAA,SAAAuD,WAAAvD,EAAA,SAAAwD,WAAAxD,EAAA,SAAAX,WAAAW,EAAA,SAAAV,aAAAU,EAAA,SAAAR,UAAAQ,EAAA,SAAAU,aAAAV,EAAA,SAAAP,UAAAO,EAAA,SAAA+H,YAAA/H,EAAA,SAAAkI,eAAAlI,EAAA,SAAAN,UAGDkJ,MAAA,oBAAC,aAAD;EAAY,GACNlI;EACKd;EACFyB,OAAAA;EACG0G,UAAAA;EACF5E;EACAE;EACCE;EACAC;EACAnE;EACEC;EACHE;EACH0I,KAAAA;EACGzI;EACAC;EAEPT,UAAAA;CAhBS,CAAA,GAiBEe,EAAA,OAAAJ,SAAAI,EAAA,OAAAqB,WAAArB,EAAA,OAAAmD,QAAAnD,EAAA,OAAAqD,QAAArD,EAAA,OAAAf,SAAAe,EAAA,OAAAuD,SAAAvD,EAAA,OAAAwD,SAAAxD,EAAA,OAAAX,SAAAW,EAAA,OAAAV,WAAAU,EAAA,OAAAR,QAAAQ,EAAA,OAAAU,WAAAV,EAAA,OAAAP,QAAAO,EAAA,OAAA+H,UAAA/H,EAAA,OAAAkI,aAAAlI,EAAA,OAAAN,QAAAM,EAAA,OAAA4I,OAAAA,MAAA5I,EAAA;CAAA,IAAA6I;CAAA,AAAA7I,EAAA,SAAAU,aAAAV,EAAA,SAAAkI,eAAAlI,EAAA,SAAA0I,OAAA1I,EAAA,SAAA4I,OAAA5I,EAAA,SAAAkB,WA3BhB2H,MAAA,oBAAC,eAAD;EACU,WAAA;EAAS,GACbnI;EACCwH,KAAAA;EACE,OAAAQ;EAIExH;EAET0H,UAAAA;CAVY,CAAA,GA4BE5I,EAAA,OAAAU,WAAAV,EAAA,OAAAkI,aAAAlI,EAAA,OAAA0I,KAAA1I,EAAA,OAAA4I,KAAA5I,EAAA,OAAAkB,SAAAlB,EAAA,OAAA6I,OAAAA,MAAA7I,EAAA;CA7BlB,IAAAyB,UACEoH,KA6BDC;CAAA,AAAA9I,EAAA,SAAAS,cAAAT,EAAA,SAAAyB,WAEmBqH,MAAArI,aAClB,oBAAC,QAAD;EAAyB,iBAAA,OAAOA,cAAe,WAAtBA,aAAAW,KAAAA;EACtBK,UAAAA;CADI,CAAA,IADWA,SAMnBzB,EAAA,OAAAS,YAAAT,EAAA,OAAAyB,SAAAzB,EAAA,OAAA8I,OAAAA,MAAA9I,EAAA;CAND,IAAA+I,cAAoBD,KAMnBE;CAAA,AAAAhJ,EAAA,SAAAJ,WAAAI,EAAA,SAAAgE,eAAAhE,EAAA,SAAA+I,eAKIC,MAAApJ,UACC,oBAAC,iBAAD;EAA4B,YAAA;EAAgB,MAAAoE,cAAA,YAAA;EACzC+E,UAAAA;CADa,CAAA,IAIhB,oBAAC,UAAD;EAAgB,MAAA/E,cAAA,YAAA;EAAqC+E,UAAAA;CAA5C,CAAA,GACV/I,EAAA,OAAAJ,SAAAI,EAAA,OAAAgE,aAAAhE,EAAA,OAAA+I,aAAA/I,EAAA,OAAAgJ,OAAAA,MAAAhJ,EAAA;CAAA,IAAAiJ;CAIA,OAJAjJ,EAAA,SAAAsI,SAAAtI,EAAA,SAAAgJ,OARHC,MAAA,qBAAA,YAAA,EAAA,UAAA,CAEGD,KASAV,KAAK,EAAA,CAAA,GACLtI,EAAA,OAAAsI,OAAAtI,EAAA,OAAAgJ,KAAAhJ,EAAA,OAAAiJ,OAAAA,MAAAjJ,EAAA,MAZHiJ;AAYG;AAIP,SAAAvG,cAAA/B,IAAA;CAAA,IAAAX,IAAAC,EAAA,EAAA,GAAuB,EAAAL,SAAAyB,WAAAS,UAAAnD,iBAAAS,oBAAAoD,iBAAA7B,IActBuI;CAAA,IAAAlJ,EAAA,OAAAJ,WAAAI,EAAA,OAAAqB,aAAArB,EAAA,OAAA8B,YAAA9B,EAAA,OAAArB,mBAAAqB,EAAA,OAAAZ,sBAAAY,EAAA,OAAAwC,cAAA;EAEG0G,MAA0B,CAAA;EAKZ,IAAAtI,KAAAjC,mBAAAyC,KAAAA,GAA4BP;EAF1CqI,AAE0ClJ,EAAA,OAAAZ,sBAAAY,EAAA,OAAAwC,gBAAAxC,EAAA,OAAAY,MADxCC,KAAA3E,KAAK;GAAAiN,UACOvI;GAA4BxB;GAAAC,SAAAA;GAENmD;EAElC,CAAC,GAACxC,EAAA,KAAAZ,oBAAAY,EAAA,KAAAwC,cAAAxC,EAAA,KAAAY,IAAAZ,EAAA,MAAAa,MAAAA,KAAAb,EAAA,KANJkJ,IAAGE,KACDvI,EAMF;EAAC,IAAAC;EAGDoI,AAHClJ,EAAA,QAAAkC,OAAAC,IAAA,2BAAA,KAGQrB,KAAA1E,OAAO,EAAAiN,UAAAA,EAAmC,CAAC,GAACrJ,EAAA,MAAAc,MAAAA,KAAAd,EAAA,KAArDkJ,IAAGE,KAAMtI,EAA4C;EAKvC,IAAAC,KAAApC,mBAAAyC,KAAAA,GAA4BJ;EAO1C,IAP0ChB,EAAA,QAAAwC,gBAAAxC,EAAA,QAAAe,MADxCC,KAAA1E,MAAM;GAAA6M,UACMpI;GAA4ByB;GAAAnD,SAAAA;EAGxC,CAAC,GAACW,EAAA,MAAAwC,cAAAxC,EAAA,MAAAe,IAAAf,EAAA,MAAAgB,MAAAA,KAAAhB,EAAA,KALJkJ,IAAGE,KACDpI,EAKF,GAGIK,WAAS;GAAA,IAAAM;GACXuH,AADWlJ,EAAA,QAAA8B,WAC0DH,KAAA3B,EAAA,OAA5D2B,KAAA3F,MAAM;IAAAuF,SAAUO;IAAQzC,SAAAA;GAAkC,CAAC,GAACW,EAAA,MAAA8B,UAAA9B,EAAA,MAAA2B,KAArEuH,IAAGE,KAAMzH,EAA4D;EAAC;EAOvE3B,AAFGJ,WACFsJ,IAAGE,KAAM7L,MAAM,GAChByC,EAAA,KAAAJ,SAAAI,EAAA,KAAAqB,WAAArB,EAAA,KAAA8B,UAAA9B,EAAA,KAAArB,iBAAAqB,EAAA,KAAAZ,oBAAAY,EAAA,KAAAwC,cAAAxC,EAAA,KAAAkJ;CAAA,OAAAA,MAAAlJ,EAAA;CAAA,OAEDkJ;AAAU;;;;;AAQd,SAAA1C,qBAAA7F,IAAA;CAAA,IAAAX,IAAAC,EAAA,EAAA,GAA8B,EAAA6E,oBAAAlD,kBAAAoC,aAAAE,kBAAAvD,IAU7BC;CAAA,AAAAZ,EAAA,OAAA8E,sBAAA9E,EAAA,OAAA4B,oBAIoChB,MAAA0I,QAAAC,aAAA;EAC5B3H,qBAGHA,qBAAqB0H,UAAWA,kBAAkBG,QAAQ7H,iBAAgB8H,SAAUJ,MAAM,MAG1FxE,mBAAmB,EAAK,GAExByE,SAAS;CACV,GACFvJ,EAAA,KAAA8E,oBAAA9E,EAAA,KAAA4B,kBAAA5B,EAAA,KAAAY,MAAAA,KAAAZ,EAAA;CAXD,IAAA2J,cAAoBxM,eAAeyD,EAWlC,GAACC;CAAA,AAAAb,EAAA,OAAAkE,iBAAAlE,EAAA,OAAA2J,eAAA3J,EAAA,OAAAgE,eAKQnD,WAAA;EACR,IAAI,CAACmD,eAADE,eAA6B;EAEjC,IAAA0F,mBAAwB5C,UAAA;GACtB2C,YAAY3C,MAAKsC,cAAepC,OAAME,oBAAqB,aAAawC,eAAe,CAAC;EAAC;EAGtC,OAArD1C,OAAMC,iBAAkB,aAAayC,eAAe,SAGvC1C,OAAME,oBAAqB,aAAawC,eAAe;CAAC,GACtE5J,EAAA,KAAAkE,eAAAlE,EAAA,KAAA2J,aAAA3J,EAAA,KAAAgE,aAAAhE,EAAA,KAAAa,MAAAA,KAAAb,EAAA;CAAA,IAAAc;CAXDnE,AAWCqD,EAAA,OAAAkE,iBAAAlE,EAAA,OAAAgE,eAAElD,KAAA,CAACoD,eAAeF,WAAW,GAAChE,EAAA,KAAAkE,eAAAlE,EAAA,KAAAgE,aAAAhE,EAAA,KAAAc,MAAAA,KAAAd,EAAA,IAX/BrD,UAAUkE,IAWPC,EAA4B;AAAC;;;;;;AC7dlC,SAAOyJ,0BAAAC,OAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAGL,EAAAP,UAAAG,UAA0BE,OAC1B,CAAAG,eAAAC,oBAA0Cd,gBAAgB,EAAK,GAC/D,CAAAe,eAAAC,oBAA0ChB,gBAA+B,IAAI,GAE7EiB,YAAkB,OAAOT,SAAU,WAAjBA,QAAoCA,OAAKU,QAAL,GACtDC,aAAmB,OAAOX,SAAU,WAAjBA,QAAoCA,OAAKY,SAAL,GAQxCC,KAAAR,gBAAA,IAAAI,WAA6BK;CAAA,AAAAX,EAAA,OAAAQ,cAAAR,EAAA,OAAAI,iBAAAJ,EAAA,OAAAG,oBAAAH,EAAA,OAAAK,oBAAAL,EAAA,OAAAU,MALnCC,KAAA;EAAAR;EAAAC;EAAAC;EAAAC,WAKMI;EAA6BF;CAE1C,GAACR,EAAA,KAAAQ,YAAAR,EAAA,KAAAI,eAAAJ,EAAA,KAAAG,kBAAAH,EAAA,KAAAK,kBAAAL,EAAA,KAAAU,IAAAV,EAAA,KAAAW,MAAAA,KAAAX,EAAA;CARH,IAAAY,QACSD,IASRE;CAGgG,OAHhGb,EAAA,OAAAN,YAAAM,EAAA,OAAAY,SAGCC,KAAA,oBAAA,yBAAA,UAAA;EAA0CD;EAAQlB;CAAS,CAAA,GAAoCM,EAAA,KAAAN,UAAAM,EAAA,KAAAY,OAAAZ,EAAA,KAAAa,MAAAA,KAAAb,EAAA,IAA/Fa;AAA+F"}