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

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-BaxgKzOL.js +161 -0
  5. package/dist/arrow-BaxgKzOL.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 +475 -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 +116 -0
  13. package/dist/breadcrumbs.js.map +1 -0
  14. package/dist/button-BDLRd1Rr.js +174 -0
  15. package/dist/button-BDLRd1Rr.js.map +1 -0
  16. package/dist/button-dnqMFkWg.d.ts +76 -0
  17. package/dist/button-dnqMFkWg.d.ts.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-aHdaZFAl.js +151 -0
  47. package/dist/hotkeys-aHdaZFAl.js.map +1 -0
  48. package/dist/index.d.ts +138 -922
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +201 -4418
  51. package/dist/index.js.map +1 -1
  52. package/dist/layer-ChlP9Ik6.d.ts +242 -0
  53. package/dist/layer-ChlP9Ik6.d.ts.map +1 -0
  54. package/dist/layer-DeCVQfUb.js +61 -0
  55. package/dist/layer-DeCVQfUb.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 +614 -0
  59. package/dist/menu.js.map +1 -0
  60. package/dist/popover-CMlQeKn0.d.ts +96 -0
  61. package/dist/popover-CMlQeKn0.d.ts.map +1 -0
  62. package/dist/popover-DfXz9lUl.js +417 -0
  63. package/dist/popover-DfXz9lUl.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 +28 -0
  75. package/dist/textInput-DhCo-b3N.js +321 -0
  76. package/dist/textInput-DhCo-b3N.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 +446 -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-ChlP9Ik6.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 function 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;;;;;;;iBAYc,QACd,OAAO,eAAe,KAAK,MAAM,UAAU,kEAA+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,446 @@
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-BaxgKzOL.js";
6
+ import { t as Layer } from "./layer-DeCVQfUb.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-o2bdvy-0"
121
+ })`will-change:transform;`;
122
+ /**
123
+ * @internal
124
+ */
125
+ function TooltipCard(props) {
126
+ let $ = c(49), animate, arrow, arrowRef, arrowX, arrowY, children, originX, originY, padding, placement, radius, ref, restProps, scheme, shadow, style;
127
+ $[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);
128
+ let t0 = animate ? "transform" : void 0, t1;
129
+ $[17] !== originX || $[18] !== originY || $[19] !== style || $[20] !== t0 ? (t1 = {
130
+ originX,
131
+ originY,
132
+ willChange: t0,
133
+ ...style
134
+ }, $[17] = originX, $[18] = originY, $[19] = style, $[20] = t0, $[21] = t1) : t1 = $[21];
135
+ let rootStyle = t1, t2 = arrowX === null ? void 0 : arrowX, t3 = arrowY === null ? void 0 : arrowY, t4;
136
+ $[22] !== t2 || $[23] !== t3 ? (t4 = {
137
+ left: t2,
138
+ top: t3,
139
+ right: void 0,
140
+ bottom: void 0
141
+ }, $[22] = t2, $[23] = t3, $[24] = t4) : t4 = $[24];
142
+ let arrowStyle = t4, t5 = restProps, t6;
143
+ $[25] === animate ? t6 = $[26] : (t6 = animate ? ["hidden", "initial"] : void 0, $[25] = animate, $[26] = t6);
144
+ let t7;
145
+ $[27] === animate ? t7 = $[28] : (t7 = animate ? ["visible", "scaleIn"] : void 0, $[27] = animate, $[28] = t7);
146
+ let t8;
147
+ $[29] === animate ? t8 = $[30] : (t8 = animate ? ["hidden", "scaleOut"] : void 0, $[29] = animate, $[30] = t8);
148
+ let t9;
149
+ $[31] !== arrow || $[32] !== arrowRef || $[33] !== arrowStyle ? (t9 = arrow && /* @__PURE__ */ jsx(Arrow, {
150
+ ref: arrowRef,
151
+ style: arrowStyle,
152
+ width: 15,
153
+ height: 6,
154
+ radius: 2
155
+ }), $[31] = arrow, $[32] = arrowRef, $[33] = arrowStyle, $[34] = t9) : t9 = $[34];
156
+ let t10;
157
+ 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, {
158
+ "data-ui": "Tooltip__card",
159
+ ...t5,
160
+ "data-placement": placement,
161
+ padding,
162
+ radius,
163
+ ref,
164
+ scheme,
165
+ shadow,
166
+ style: rootStyle,
167
+ variants: POPOVER_MOTION_PROPS.card,
168
+ transition: POPOVER_MOTION_PROPS.transition,
169
+ initial: t6,
170
+ animate: t7,
171
+ exit: t8,
172
+ children: [children, t9]
173
+ }), $[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;
174
+ }
175
+ /**
176
+ * @beta
177
+ */
178
+ const TooltipDelayGroupContext = createGlobalScopedContext("@sanity/ui/context/tooltipDelayGroup", null);
179
+ /**
180
+ * @beta
181
+ */
182
+ function useTooltipDelayGroup() {
183
+ return useContext(TooltipDelayGroupContext);
184
+ }
185
+ const StyledTooltip = styled(Layer).withConfig({
186
+ displayName: "StyledTooltip",
187
+ componentId: "sc-8cbl5k-0"
188
+ })`pointer-events:none;`;
189
+ /**
190
+ * Tooltips display information when hovering, focusing or tapping.
191
+ *
192
+ * @public
193
+ */
194
+ function Tooltip(props) {
195
+ 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;
196
+ $[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);
197
+ 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;
198
+ $[18] === fallbackPlacementsProp ? t6 = $[19] : (t6 = _getArrayProp(fallbackPlacementsProp), $[18] = fallbackPlacementsProp, $[19] = t6);
199
+ let fallbackPlacements = t6, ref = useRef(null), [referenceElement, setReferenceElement] = useState(null), arrowRef = useRef(null), [tooltipMaxWidth, setTooltipMaxWidth] = useState(0), t7;
200
+ $[20] === Symbol.for("react.memo_cache_sentinel") ? (t7 = () => ref.current, $[20] = t7) : t7 = $[20], useImperativeHandle(forwardedRef, t7);
201
+ let portal = usePortal(), portalElement = typeof portalProp == "string" ? portal.elements?.[portalProp] || null : portal.element, t8;
202
+ $[21] !== animate || $[22] !== arrowProp || $[23] !== boundaryElement || $[24] !== fallbackPlacements ? (t8 = {
203
+ animate,
204
+ arrowProp,
205
+ arrowRef,
206
+ boundaryElement,
207
+ fallbackPlacements,
208
+ rootBoundary: "viewport"
209
+ }, $[21] = animate, $[22] = arrowProp, $[23] = boundaryElement, $[24] = fallbackPlacements, $[25] = t8) : t8 = $[25];
210
+ let middleware = useMiddleware(t8), t9;
211
+ $[26] === referenceElement ? t9 = $[27] : (t9 = { reference: referenceElement }, $[26] = referenceElement, $[27] = t9);
212
+ let t10;
213
+ $[28] !== middleware || $[29] !== placementProp || $[30] !== t9 ? (t10 = {
214
+ middleware,
215
+ placement: placementProp,
216
+ whileElementsMounted: autoUpdate,
217
+ elements: t9
218
+ }, $[28] = middleware, $[29] = placementProp, $[30] = t9, $[31] = t10) : t10 = $[31];
219
+ 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;
220
+ $[32] === delayGroupContext ? t11 = $[33] : (t11 = delayGroupContext || {}, $[32] = delayGroupContext, $[33] = t11);
221
+ 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;
222
+ $[34] !== closeDelay || $[35] !== isInsideGroup || $[36] !== openDelay || $[37] !== setIsGroupActive || $[38] !== setIsOpen || $[39] !== setOpenTooltipId || $[40] !== tooltipId ? (t12 = (open, immediate) => {
223
+ if (isInsideGroup) if (open) {
224
+ let groupedOpenDelay = immediate ? 0 : openDelay;
225
+ setIsGroupActive?.(open, groupedOpenDelay), setOpenTooltipId?.(tooltipId, groupedOpenDelay);
226
+ } else setIsGroupActive?.(open, closeDelay > 200 ? closeDelay : 200), setOpenTooltipId?.(null, immediate ? 0 : closeDelay);
227
+ else setIsOpen(open, immediate ? 0 : open ? openDelay : closeDelay);
228
+ }, $[34] = closeDelay, $[35] = isInsideGroup, $[36] = openDelay, $[37] = setIsGroupActive, $[38] = setIsOpen, $[39] = setOpenTooltipId, $[40] = tooltipId, $[41] = t12) : t12 = $[41];
229
+ let handleIsOpenChange = t12, t13;
230
+ $[42] !== childProp?.props || $[43] !== handleIsOpenChange ? (t13 = (e) => {
231
+ handleIsOpenChange(!1), childProp?.props?.onBlur?.(e);
232
+ }, $[42] = childProp?.props, $[43] = handleIsOpenChange, $[44] = t13) : t13 = $[44], childProp?.props;
233
+ let handleBlur = t13, t14;
234
+ $[45] !== childProp?.props || $[46] !== handleIsOpenChange ? (t14 = (e_0) => {
235
+ handleIsOpenChange(!1, !0), childProp?.props.onClick?.(e_0);
236
+ }, $[45] = childProp?.props, $[46] = handleIsOpenChange, $[47] = t14) : t14 = $[47], childProp?.props;
237
+ let handleClick = t14, t15;
238
+ $[48] !== childProp?.props || $[49] !== handleIsOpenChange ? (t15 = (e_1) => {
239
+ handleIsOpenChange(!1, !0), childProp?.props.onContextMenu?.(e_1);
240
+ }, $[48] = childProp?.props, $[49] = handleIsOpenChange, $[50] = t15) : t15 = $[50], childProp?.props;
241
+ let handleContextMenu = t15, t16;
242
+ $[51] !== childProp?.props || $[52] !== handleIsOpenChange ? (t16 = (e_2) => {
243
+ handleIsOpenChange(!0), childProp?.props?.onFocus?.(e_2);
244
+ }, $[51] = childProp?.props, $[52] = handleIsOpenChange, $[53] = t16) : t16 = $[53], childProp?.props;
245
+ let handleFocus = t16, t17;
246
+ $[54] !== childProp?.props || $[55] !== handleIsOpenChange ? (t17 = (e_3) => {
247
+ handleIsOpenChange(!0), childProp?.props?.onMouseEnter?.(e_3);
248
+ }, $[54] = childProp?.props, $[55] = handleIsOpenChange, $[56] = t17) : t17 = $[56], childProp?.props;
249
+ let handleMouseEnter = t17, t18;
250
+ $[57] !== childProp?.props || $[58] !== handleIsOpenChange ? (t18 = (e_4) => {
251
+ handleIsOpenChange(!1), childProp?.props?.onMouseLeave?.(e_4);
252
+ }, $[57] = childProp?.props, $[58] = handleIsOpenChange, $[59] = t18) : t18 = $[59], childProp?.props;
253
+ let handleMouseLeave = t18, t19;
254
+ $[60] !== handleIsOpenChange || $[61] !== isInsideGroup || $[62] !== referenceElement || $[63] !== showTooltip ? (t19 = {
255
+ handleIsOpenChange,
256
+ referenceElement,
257
+ showTooltip,
258
+ isInsideGroup
259
+ }, $[60] = handleIsOpenChange, $[61] = isInsideGroup, $[62] = referenceElement, $[63] = showTooltip, $[64] = t19) : t19 = $[64], useCloseOnMouseLeave(t19);
260
+ let t20, t21;
261
+ $[65] !== disabled || $[66] !== handleIsOpenChange || $[67] !== showTooltip ? (t20 = () => {
262
+ disabled && showTooltip && handleIsOpenChange(!1);
263
+ }, t21 = [
264
+ disabled,
265
+ handleIsOpenChange,
266
+ showTooltip
267
+ ], $[65] = disabled, $[66] = handleIsOpenChange, $[67] = showTooltip, $[68] = t20, $[69] = t21) : (t20 = $[68], t21 = $[69]), useEffect(t20, t21);
268
+ let t22, t23;
269
+ $[70] !== content || $[71] !== handleIsOpenChange || $[72] !== showTooltip ? (t22 = () => {
270
+ !content && showTooltip && handleIsOpenChange(!1);
271
+ }, t23 = [
272
+ content,
273
+ handleIsOpenChange,
274
+ showTooltip
275
+ ], $[70] = content, $[71] = handleIsOpenChange, $[72] = showTooltip, $[73] = t22, $[74] = t23) : (t22 = $[73], t23 = $[74]), useEffect(t22, t23);
276
+ let t24, t25;
277
+ $[75] !== handleIsOpenChange || $[76] !== showTooltip ? (t24 = () => {
278
+ if (!showTooltip) return;
279
+ let handleWindowKeyDown = function handleWindowKeyDown(event) {
280
+ event.key === "Escape" && handleIsOpenChange(!1, !0);
281
+ };
282
+ return window.addEventListener("keydown", handleWindowKeyDown), () => {
283
+ window.removeEventListener("keydown", handleWindowKeyDown);
284
+ };
285
+ }, t25 = [handleIsOpenChange, showTooltip], $[75] = handleIsOpenChange, $[76] = showTooltip, $[77] = t24, $[78] = t25) : (t24 = $[77], t25 = $[78]), useEffect(t24, t25);
286
+ let t26;
287
+ $[79] !== boundaryElement || $[80] !== portalElement?.offsetWidth ? (t26 = () => {
288
+ let availableWidths = [...boundaryElement ? [boundaryElement.offsetWidth] : [], portalElement?.offsetWidth || document.body.offsetWidth];
289
+ setTooltipMaxWidth(Math.min(...availableWidths) - 8);
290
+ }, $[79] = boundaryElement, $[80] = portalElement?.offsetWidth, $[81] = t26) : t26 = $[81];
291
+ let t27;
292
+ $[82] !== boundaryElement || $[83] !== portalElement ? (t27 = [boundaryElement, portalElement], $[82] = boundaryElement, $[83] = portalElement, $[84] = t27) : t27 = $[84], useLayoutEffect(t26, t27);
293
+ let t28;
294
+ $[85] === update ? t28 = $[86] : (t28 = (arrowEl) => {
295
+ arrowRef.current = arrowEl, update();
296
+ }, $[85] = update, $[86] = t28);
297
+ let setArrow = t28, t29;
298
+ $[87] === refs ? t29 = $[88] : (t29 = (node) => {
299
+ ref.current = node, refs.setFloating(node);
300
+ }, $[87] = refs, $[88] = t29);
301
+ let setFloating = t29, t30;
302
+ bb0: {
303
+ if (!childProp) {
304
+ t30 = null;
305
+ break bb0;
306
+ }
307
+ let t31;
308
+ $[89] !== childProp || $[90] !== handleBlur || $[91] !== handleClick || $[92] !== handleContextMenu || $[93] !== handleFocus || $[94] !== handleMouseEnter || $[95] !== handleMouseLeave ? (t31 = cloneElement(childProp, {
309
+ onBlur: handleBlur,
310
+ onFocus: handleFocus,
311
+ onMouseEnter: handleMouseEnter,
312
+ onMouseLeave: handleMouseLeave,
313
+ onClick: handleClick,
314
+ onContextMenu: handleContextMenu,
315
+ ref: setReferenceElement
316
+ }), $[89] = childProp, $[90] = handleBlur, $[91] = handleClick, $[92] = handleContextMenu, $[93] = handleFocus, $[94] = handleMouseEnter, $[95] = handleMouseLeave, $[96] = t31) : t31 = $[96], t30 = t31;
317
+ }
318
+ let child = t30, t31;
319
+ $[97] === childProp ? t31 = $[98] : (t31 = childProp ? getElementRef(childProp) : null, $[97] = childProp, $[98] = t31);
320
+ let t32, t33;
321
+ if ($[99] === referenceElement ? (t32 = $[100], t33 = $[101]) : (t32 = () => referenceElement, t33 = [referenceElement], $[99] = referenceElement, $[100] = t32, $[101] = t33), useImperativeHandle(t31, t32, t33), !child) {
322
+ let t34;
323
+ return $[102] === Symbol.for("react.memo_cache_sentinel") ? (t34 = /* @__PURE__ */ jsx(Fragment$1, {}), $[102] = t34) : t34 = $[102], t34;
324
+ }
325
+ if (disabled) return child;
326
+ let t34 = tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : void 0, t35;
327
+ $[103] !== floatingStyles || $[104] !== t34 ? (t35 = {
328
+ ...floatingStyles,
329
+ maxWidth: t34
330
+ }, $[103] = floatingStyles, $[104] = t34, $[105] = t35) : t35 = $[105];
331
+ let t36;
332
+ $[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, {
333
+ ...restProps,
334
+ animate,
335
+ arrow: arrowProp,
336
+ arrowRef: setArrow,
337
+ arrowX,
338
+ arrowY,
339
+ originX,
340
+ originY,
341
+ padding,
342
+ placement,
343
+ radius,
344
+ ref: setFloating,
345
+ scheme,
346
+ shadow,
347
+ children: content
348
+ }), $[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];
349
+ let t37;
350
+ $[122] !== restProps || $[123] !== setFloating || $[124] !== t35 || $[125] !== t36 || $[126] !== zOffset ? (t37 = /* @__PURE__ */ jsx(StyledTooltip, {
351
+ "data-ui": "Tooltip",
352
+ ...restProps,
353
+ ref: setFloating,
354
+ style: t35,
355
+ zOffset,
356
+ children: t36
357
+ }), $[122] = restProps, $[123] = setFloating, $[124] = t35, $[125] = t36, $[126] = zOffset, $[127] = t37) : t37 = $[127];
358
+ let tooltip = t37, t38;
359
+ $[128] !== portalProp || $[129] !== tooltip ? (t38 = portalProp ? /* @__PURE__ */ jsx(Portal, {
360
+ __unstable_name: typeof portalProp == "string" ? portalProp : void 0,
361
+ children: tooltip
362
+ }) : tooltip, $[128] = portalProp, $[129] = tooltip, $[130] = t38) : t38 = $[130];
363
+ let tooltipNode = t38, t39;
364
+ $[131] !== animate || $[132] !== showTooltip || $[133] !== tooltipNode ? (t39 = animate ? /* @__PURE__ */ jsx(AnimateActivity, {
365
+ layoutMode: "default",
366
+ mode: showTooltip ? "visible" : "hidden",
367
+ children: tooltipNode
368
+ }) : /* @__PURE__ */ jsx(Activity, {
369
+ mode: showTooltip ? "visible" : "hidden",
370
+ children: tooltipNode
371
+ }), $[131] = animate, $[132] = showTooltip, $[133] = tooltipNode, $[134] = t39) : t39 = $[134];
372
+ let t40;
373
+ return $[135] !== child || $[136] !== t39 ? (t40 = /* @__PURE__ */ jsxs(Fragment$1, { children: [t39, child] }), $[135] = child, $[136] = t39, $[137] = t40) : t40 = $[137], t40;
374
+ }
375
+ function useMiddleware(t0) {
376
+ let $ = c(17), { animate, arrowProp, arrowRef, boundaryElement, fallbackPlacements, rootBoundary } = t0, ret;
377
+ if ($[0] !== animate || $[1] !== arrowProp || $[2] !== arrowRef || $[3] !== boundaryElement || $[4] !== fallbackPlacements || $[5] !== rootBoundary) {
378
+ ret = [];
379
+ let t1 = boundaryElement || void 0, t2;
380
+ $[7] !== fallbackPlacements || $[8] !== rootBoundary || $[9] !== t1 ? (t2 = flip({
381
+ boundary: t1,
382
+ fallbackPlacements,
383
+ padding: 4,
384
+ rootBoundary
385
+ }), $[7] = fallbackPlacements, $[8] = rootBoundary, $[9] = t1, $[10] = t2) : t2 = $[10], ret.push(t2);
386
+ let t3;
387
+ $[11] === Symbol.for("react.memo_cache_sentinel") ? (t3 = offset({ mainAxis: 4 }), $[11] = t3) : t3 = $[11], ret.push(t3);
388
+ let t4 = boundaryElement || void 0, t5;
389
+ if ($[12] !== rootBoundary || $[13] !== t4 ? (t5 = shift({
390
+ boundary: t4,
391
+ rootBoundary,
392
+ padding: 4
393
+ }), $[12] = rootBoundary, $[13] = t4, $[14] = t5) : t5 = $[14], ret.push(t5), arrowProp) {
394
+ let t6;
395
+ $[15] === arrowRef ? t6 = $[16] : (t6 = arrow({
396
+ element: arrowRef,
397
+ padding: 4
398
+ }), $[15] = arrowRef, $[16] = t6), ret.push(t6);
399
+ }
400
+ animate && ret.push(origin), $[0] = animate, $[1] = arrowProp, $[2] = arrowRef, $[3] = boundaryElement, $[4] = fallbackPlacements, $[5] = rootBoundary, $[6] = ret;
401
+ } else ret = $[6];
402
+ return ret;
403
+ }
404
+ /**
405
+ * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.
406
+ * @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
407
+ */
408
+ function useCloseOnMouseLeave(t0) {
409
+ let $ = c(10), { handleIsOpenChange, referenceElement, showTooltip, isInsideGroup } = t0, t1;
410
+ $[0] !== handleIsOpenChange || $[1] !== referenceElement ? (t1 = (target, teardown) => {
411
+ referenceElement && (referenceElement === target || target instanceof Node && referenceElement.contains(target) || (handleIsOpenChange(!1), teardown()));
412
+ }, $[0] = handleIsOpenChange, $[1] = referenceElement, $[2] = t1) : t1 = $[2];
413
+ let onMouseMove = useEffectEvent(t1), t2;
414
+ $[3] !== isInsideGroup || $[4] !== onMouseMove || $[5] !== showTooltip ? (t2 = () => {
415
+ if (!showTooltip || isInsideGroup) return;
416
+ let handleMouseMove = (event) => {
417
+ onMouseMove(event.target, () => window.removeEventListener("mousemove", handleMouseMove));
418
+ };
419
+ return window.addEventListener("mousemove", handleMouseMove), () => window.removeEventListener("mousemove", handleMouseMove);
420
+ }, $[3] = isInsideGroup, $[4] = onMouseMove, $[5] = showTooltip, $[6] = t2) : t2 = $[6];
421
+ let t3;
422
+ $[7] !== isInsideGroup || $[8] !== showTooltip ? (t3 = [isInsideGroup, showTooltip], $[7] = isInsideGroup, $[8] = showTooltip, $[9] = t3) : t3 = $[9], useEffect(t2, t3);
423
+ }
424
+ /**
425
+ * @public
426
+ * Provides context for a group of tooltip elements that should share a delay
427
+ * which temporarily becomes 1 ms after the first floating element of the group opens.
428
+ */
429
+ function TooltipDelayGroupProvider(props) {
430
+ 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;
431
+ $[0] !== closeDelay || $[1] !== openTooltipId || $[2] !== setIsGroupActive || $[3] !== setOpenTooltipId || $[4] !== t0 ? (t1 = {
432
+ setIsGroupActive,
433
+ openTooltipId,
434
+ setOpenTooltipId,
435
+ openDelay: t0,
436
+ closeDelay
437
+ }, $[0] = closeDelay, $[1] = openTooltipId, $[2] = setIsGroupActive, $[3] = setOpenTooltipId, $[4] = t0, $[5] = t1) : t1 = $[5];
438
+ let value = t1, t2;
439
+ return $[6] !== children || $[7] !== value ? (t2 = /* @__PURE__ */ jsx(TooltipDelayGroupContext.Provider, {
440
+ value,
441
+ children
442
+ }), $[6] = children, $[7] = value, $[8] = t2) : t2 = $[8], t2;
443
+ }
444
+ export { Tooltip, TooltipDelayGroupContext, TooltipDelayGroupProvider, useTooltipDelayGroup };
445
+
446
+ //# sourceMappingURL=tooltip.js.map