@sanity/ui 4.0.0-next.5 → 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 (46) hide show
  1. package/dist/{arrow-BG0EMNiC.js → arrow-BaxgKzOL.js} +8 -6
  2. package/dist/{arrow-BG0EMNiC.js.map → arrow-BaxgKzOL.js.map} +1 -1
  3. package/dist/autocomplete.d.ts +4 -4
  4. package/dist/autocomplete.d.ts.map +1 -1
  5. package/dist/autocomplete.js +18 -11
  6. package/dist/autocomplete.js.map +1 -1
  7. package/dist/breadcrumbs.d.ts +1 -1
  8. package/dist/breadcrumbs.d.ts.map +1 -1
  9. package/dist/breadcrumbs.js +8 -4
  10. package/dist/breadcrumbs.js.map +1 -1
  11. package/dist/{button-DZkAQOL2.js → button-BDLRd1Rr.js} +3 -3
  12. package/dist/button-BDLRd1Rr.js.map +1 -0
  13. package/dist/{button-BzoZs3Sl.d.ts → button-dnqMFkWg.d.ts} +2 -2
  14. package/dist/{button-BzoZs3Sl.d.ts.map → button-dnqMFkWg.d.ts.map} +1 -1
  15. package/dist/{hotkeys-B08HIKNu.js → hotkeys-aHdaZFAl.js} +11 -5
  16. package/dist/{hotkeys-B08HIKNu.js.map → hotkeys-aHdaZFAl.js.map} +1 -1
  17. package/dist/index.d.ts +28 -28
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +172 -73
  20. package/dist/index.js.map +1 -1
  21. package/dist/{layer-BQfdK7rt.d.ts → layer-ChlP9Ik6.d.ts} +2 -2
  22. package/dist/{layer-BQfdK7rt.d.ts.map → layer-ChlP9Ik6.d.ts.map} +1 -1
  23. package/dist/{layer-BdkSGATt.js → layer-DeCVQfUb.js} +10 -5
  24. package/dist/layer-DeCVQfUb.js.map +1 -0
  25. package/dist/menu.d.ts +4 -4
  26. package/dist/menu.d.ts.map +1 -1
  27. package/dist/menu.js +18 -6
  28. package/dist/menu.js.map +1 -1
  29. package/dist/{popover-DmmmSNzL.d.ts → popover-CMlQeKn0.d.ts} +3 -3
  30. package/dist/{popover-DmmmSNzL.d.ts.map → popover-CMlQeKn0.d.ts.map} +1 -1
  31. package/dist/{popover-Iy6EZEmv.js → popover-DfXz9lUl.js} +19 -8
  32. package/dist/popover-DfXz9lUl.js.map +1 -0
  33. package/dist/popover.d.ts +1 -1
  34. package/dist/popover.js +1 -1
  35. package/dist/styles.css +28 -1
  36. package/dist/{textInput-IbiDH7Jc.js → textInput-DhCo-b3N.js} +24 -18
  37. package/dist/{textInput-IbiDH7Jc.js.map → textInput-DhCo-b3N.js.map} +1 -1
  38. package/dist/toast.js +1 -1
  39. package/dist/tooltip.d.ts +2 -2
  40. package/dist/tooltip.d.ts.map +1 -1
  41. package/dist/tooltip.js +22 -8
  42. package/dist/tooltip.js.map +1 -1
  43. package/package.json +1 -1
  44. package/dist/button-DZkAQOL2.js.map +0 -1
  45. package/dist/layer-BdkSGATt.js.map +0 -1
  46. package/dist/popover-Iy6EZEmv.js.map +0 -1
package/dist/tooltip.js CHANGED
@@ -2,8 +2,8 @@
2
2
  import { c as POPOVER_MOTION_PROPS, n as _getArrayProp } from "./helpers-bwfx1e-Y.js";
3
3
  import { _ as useTheme_v2, d as createGlobalScopedContext, i as usePrefersReducedMotion, s as Card } from "./useLayer-9Pz-GG0r.js";
4
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";
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
7
  import { c } from "react/compiler-runtime";
8
8
  import { Activity, cloneElement, useContext, useEffect, useId, useImperativeHandle, useLayoutEffect, useRef, useState } from "react";
9
9
  import { styled } from "styled-components";
@@ -117,8 +117,12 @@ const DEFAULT_FALLBACK_PLACEMENTS = {
117
117
  ]
118
118
  }, MotionCard = styled(motion.create(Card)).withConfig({
119
119
  displayName: "MotionCard",
120
- componentId: "sc-qzzn8n-0"
121
- })`will-change:transform;`, TooltipCard = function TooltipCard(props) {
120
+ componentId: "sc-o2bdvy-0"
121
+ })`will-change:transform;`;
122
+ /**
123
+ * @internal
124
+ */
125
+ function TooltipCard(props) {
122
126
  let $ = c(49), animate, arrow, arrowRef, arrowX, arrowY, children, originX, originY, padding, placement, radius, ref, restProps, scheme, shadow, style;
123
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);
124
128
  let t0 = animate ? "transform" : void 0, t1;
@@ -167,7 +171,11 @@ const DEFAULT_FALLBACK_PLACEMENTS = {
167
171
  exit: t8,
168
172
  children: [children, t9]
169
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;
170
- }, TooltipDelayGroupContext = createGlobalScopedContext("@sanity/ui/context/tooltipDelayGroup", null);
174
+ }
175
+ /**
176
+ * @beta
177
+ */
178
+ const TooltipDelayGroupContext = createGlobalScopedContext("@sanity/ui/context/tooltipDelayGroup", null);
171
179
  /**
172
180
  * @beta
173
181
  */
@@ -176,8 +184,14 @@ function useTooltipDelayGroup() {
176
184
  }
177
185
  const StyledTooltip = styled(Layer).withConfig({
178
186
  displayName: "StyledTooltip",
179
- componentId: "sc-yxng5e-0"
180
- })`pointer-events:none;`, Tooltip = function Tooltip(props) {
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) {
181
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;
182
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);
183
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;
@@ -357,7 +371,7 @@ const StyledTooltip = styled(Layer).withConfig({
357
371
  }), $[131] = animate, $[132] = showTooltip, $[133] = tooltipNode, $[134] = t39) : t39 = $[134];
358
372
  let t40;
359
373
  return $[135] !== child || $[136] !== t39 ? (t40 = /* @__PURE__ */ jsxs(Fragment$1, { children: [t39, child] }), $[135] = child, $[136] = t39, $[137] = t40) : t40 = $[137], t40;
360
- };
374
+ }
361
375
  function useMiddleware(t0) {
362
376
  let $ = c(17), { animate, arrowProp, arrowRef, boundaryElement, fallbackPlacements, rootBoundary } = t0, ret;
363
377
  if ($[0] !== animate || $[1] !== arrowProp || $[2] !== arrowRef || $[3] !== boundaryElement || $[4] !== fallbackPlacements || $[5] !== rootBoundary) {
@@ -1 +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":"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"}
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 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 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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sanity/ui",
3
- "version": "4.0.0-next.5",
3
+ "version": "4.0.0-next.6",
4
4
  "keywords": [
5
5
  "components",
6
6
  "design-system",
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-DZkAQOL2.js","names":["SpinnerIcon","Text","spinnerIcon","SpinnerProps","muted","size","Spinner","props","$","_c","t0","Symbol","for","t1","css","CSSObject","getTheme_v2","_cardColorStyle","focusRingBorderStyle","focusRingStyle","ThemeProps","ButtonMode","ButtonTone","ButtonWidth","buttonBaseStyles","props","$width","ReturnType","style","theme","button","combineBoxShadow","boxShadows","filter","Boolean","join","buttonColorStyles","$mode","$tone","color","baseColor","shadow","mode","default","border","width","defaultBoxShadow","undefined","enabled","disabled","boxShadow","base","bg","focusRing","hovered","pressed","root","isValidElement","useMemo","isValidElementType","styled","ThemeFontWeightKey","_getArrayProp","responsiveRadiusStyle","ResponsiveRadiusStyleProps","useTheme_v2","ButtonMode","ButtonTextAlign","ButtonTone","ButtonWidth","ElementType","Props","FlexJustify","Box","Flex","Spinner","Text","ResponsivePaddingProps","ResponsiveRadiusProps","buttonBaseStyles","buttonColorStyles","ButtonOwnProps","fontSize","mode","icon","React","ReactNode","iconRight","justify","loading","selected","space","gap","muted","text","textAlign","textWeight","tone","type","width","ButtonProps","E","StyledButton","button","$mode","$tone","$width","LoadingBox","div","ButtonComponent","Button","props","$","_c","IconComponent","IconRightComponent","children","disabled","paddingBottomProp","paddingLeftProp","paddingRightProp","paddingTopProp","paddingXProp","paddingYProp","ref","restProps","t0","t1","t2","t3","t4","t5","t6","t7","t8","padding","paddingX","paddingY","paddingTop","paddingBottom","paddingLeft","paddingRight","radius","undefined","justifyProp","paddingProp","radiusProp","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","spacing","t19","boxProps","t20","Boolean","t21","t22","t23","t24","t25","t26","JSX","Element"],"sources":["../src/core/primitives/spinner/spinner.css.ts","../src/core/primitives/spinner/spinner.tsx","../src/core/primitives/button/styles.ts","../src/core/primitives/button/button.tsx"],"sourcesContent":["import {keyframes, style} from '@vanilla-extract/css'\n\nconst rotate = keyframes({\n from: {transform: 'rotate(0deg)'},\n to: {transform: 'rotate(360deg)'},\n})\n\nexport const spinnerIcon = style({\n animation: `${rotate} 500ms linear infinite`,\n})\n","import {SpinnerIcon} from '@sanity/icons/Spinner'\n\nimport {Text} from '../text/text'\nimport {spinnerIcon} from './spinner.css'\n\n/**\n * @public\n */\nexport interface SpinnerProps {\n muted?: boolean\n size?: number | number[]\n}\n\n/**\n * Indicate that something is loading for an indeterminate amount of time.\n *\n * @public\n */\nexport const Spinner = function Spinner(\n props: SpinnerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'size'>,\n) {\n return (\n <Text data-ui=\"Spinner\" {...props}>\n <SpinnerIcon className={spinnerIcon} />\n </Text>\n )\n}\n","import {css} from 'styled-components'\n\nimport {CSSObject} from '../../../theme/system/css'\nimport {getTheme_v2} from '../../../theme/versioning/getTheme_v2'\nimport {_cardColorStyle} from '../../styles/card/_cardColorStyle'\nimport {focusRingBorderStyle, focusRingStyle} from '../../styles/focusRing'\nimport {ThemeProps} from '../../styles/types'\nimport {ButtonMode, ButtonTone, ButtonWidth} from '../../types/button'\n\n/**\n * @internal\n */\nexport function buttonBaseStyles(\n props: {$width?: ButtonWidth} & ThemeProps,\n): ReturnType<typeof css> {\n const {$width} = props\n const {style} = getTheme_v2(props.theme)\n\n return css`\n ${style?.button};\n\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n vertical-align: top;\n\n ${\n $width === 'fill' &&\n css`\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n `\n }\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n `\n}\n\nfunction combineBoxShadow(...boxShadows: (string | undefined)[]): string {\n return boxShadows.filter(Boolean).join(',')\n}\n\n/**\n * @internal\n */\nexport function buttonColorStyles(\n props: {$mode: ButtonMode; $tone: ButtonTone} & ThemeProps,\n): CSSObject[] {\n const {$mode} = props\n const {button, color: baseColor, style} = getTheme_v2(props.theme)\n const shadow = props.$mode === 'ghost'\n const mode = baseColor.button[$mode] || baseColor.button.default\n const color = mode[props.$tone] || mode.default\n const border = {\n width: button.border.width,\n color: 'var(--card-border-color)',\n }\n // const defaultBoxShadow = `inset 0px -1.5px 0px ${buttonTheme.border.width}px color-mix(in srgb, var(--card-border-color) 25%, var(--card-bg-color))`\n const defaultBoxShadow = undefined\n\n // oxlint-disable-next-line no-unsafe-type-assertion\n return [\n _cardColorStyle(baseColor, color.enabled),\n {\n 'backgroundColor': 'var(--card-bg-color)',\n 'color': 'var(--card-fg-color)',\n 'boxShadow': focusRingBorderStyle(border),\n '&:disabled, &[data-disabled=\"true\"]': _cardColorStyle(baseColor, color.disabled),\n \"&:not([data-disabled='true'])\": {\n 'boxShadow': combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n '&:focus': {\n boxShadow: focusRingStyle({\n base: baseColor,\n border: {width: 2, color: baseColor.bg},\n focusRing: button.focusRing,\n }),\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: combineBoxShadow(\n focusRingBorderStyle(border),\n shadow ? defaultBoxShadow : undefined,\n ),\n },\n '@media (hover: hover)': {\n '&:hover': _cardColorStyle(baseColor, color.hovered),\n '&:active': _cardColorStyle(baseColor, color.pressed),\n '&[data-hovered]': _cardColorStyle(baseColor, color.hovered),\n },\n '&[data-selected]': _cardColorStyle(baseColor, color.pressed),\n },\n },\n style?.button?.root,\n ].filter(Boolean) as CSSObject[]\n}\n","import {isValidElement, useMemo} from 'react'\nimport {isValidElementType} from 'react-is'\nimport {styled} from 'styled-components'\n\nimport {ThemeFontWeightKey} from '../../../theme/system/font'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {responsiveRadiusStyle} from '../../styles/radius/radiusStyle'\nimport {ResponsiveRadiusStyleProps} from '../../styles/radius/types'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {ButtonMode, ButtonTextAlign, ButtonTone, ButtonWidth} from '../../types/button'\nimport {ElementType, Props} from '../../types/component'\nimport {FlexJustify} from '../../types/flex'\nimport {Box} from '../box/box'\nimport {Flex} from '../flex/flex'\nimport {Spinner} from '../spinner/spinner'\nimport {Text} from '../text/text'\nimport {ResponsivePaddingProps, ResponsiveRadiusProps} from '../types'\nimport {buttonBaseStyles, buttonColorStyles} from './styles'\n\n/**\n * @public\n */\nexport interface ButtonOwnProps extends ResponsivePaddingProps, ResponsiveRadiusProps {\n fontSize?: number | number[]\n mode?: ButtonMode\n // oxlint-disable-next-line no-redundant-type-constituents\n icon?: React.ElementType | React.ReactNode\n // oxlint-disable-next-line no-redundant-type-constituents\n iconRight?: React.ElementType | React.ReactNode\n justify?: FlexJustify | FlexJustify[]\n /**\n * @beta Do not use in production, as this might change.\n */\n loading?: boolean\n selected?: boolean\n /**\n * @deprecated Use `gap` instead.\n */\n space?: never\n gap?: number | number[]\n muted?: boolean\n text?: React.ReactNode\n textAlign?: ButtonTextAlign\n textWeight?: ThemeFontWeightKey\n tone?: ButtonTone\n type?: 'button' | 'reset' | 'submit'\n width?: ButtonWidth\n}\n\n/**\n * @public\n */\nexport type ButtonProps<E extends ElementType = 'button'> = Props<ButtonOwnProps, E>\n\nconst StyledButton = styled.button<\n {$mode: ButtonMode; $tone: ButtonTone; $width?: ButtonWidth} & ResponsiveRadiusStyleProps\n>(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles)\n\nconst LoadingBox = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--card-bg-color);\n border-radius: inherit;\n z-index: 1;\n box-shadow: inherit;\n`\n\nconst ButtonComponent = function Button(\n props: ButtonOwnProps & {as?: ElementType} & Omit<\n React.HTMLProps<HTMLButtonElement>,\n 'as' | 'width'\n >,\n) {\n const {\n children,\n disabled,\n ref,\n fontSize = 1,\n icon: IconComponent,\n iconRight: IconRightComponent,\n justify: justifyProp = 'center',\n loading,\n mode = 'default',\n padding: paddingProp = 3,\n paddingX: paddingXProp,\n paddingY: paddingYProp,\n paddingTop: paddingTopProp,\n paddingBottom: paddingBottomProp,\n paddingLeft: paddingLeftProp,\n paddingRight: paddingRightProp,\n radius: radiusProp = 2,\n selected,\n gap = 3,\n text,\n textAlign,\n textWeight,\n tone = 'default',\n type = 'button',\n muted = false,\n width,\n ...restProps\n } = props\n const {button} = useTheme_v2()\n\n const justify = _getArrayProp(justifyProp)\n const padding = _getArrayProp(paddingProp)\n const paddingX = _getArrayProp(paddingXProp)\n const paddingY = _getArrayProp(paddingYProp)\n const paddingTop = _getArrayProp(paddingTopProp)\n const paddingBottom = _getArrayProp(paddingBottomProp)\n const paddingLeft = _getArrayProp(paddingLeftProp)\n const paddingRight = _getArrayProp(paddingRightProp)\n const radius = _getArrayProp(radiusProp)\n const spacing = _getArrayProp(gap)\n\n const boxProps = useMemo(\n () => ({\n // flex: 1,\n padding,\n paddingX,\n paddingY,\n paddingTop,\n paddingBottom,\n paddingLeft,\n paddingRight,\n }),\n [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight],\n )\n\n return (\n <StyledButton\n data-ui=\"Button\"\n {...restProps}\n $mode={mode}\n $radius={radius}\n $tone={tone}\n data-disabled={Boolean(loading || disabled)}\n data-selected={selected ? '' : undefined}\n disabled={Boolean(loading || disabled)}\n ref={ref}\n type={type}\n $width={width}\n >\n {Boolean(loading) && (\n <LoadingBox>\n <Spinner />\n </LoadingBox>\n )}\n\n {(IconComponent || text || IconRightComponent) && (\n <Box as=\"span\" {...boxProps}>\n <Flex as=\"span\" justify={justify} gap={spacing}>\n {IconComponent && (\n <Text size={fontSize}>\n {isValidElement(IconComponent) && IconComponent}\n {isValidElementType(IconComponent) && <IconComponent />}\n </Text>\n )}\n\n {text && (\n <Box>\n <Text\n muted={muted}\n align={textAlign}\n size={fontSize}\n textOverflow=\"ellipsis\"\n weight={textWeight ?? button.textWeight}\n >\n {text}\n </Text>\n </Box>\n )}\n\n {IconRightComponent && (\n <Text size={fontSize}>\n {isValidElement(IconRightComponent) && IconRightComponent}\n {isValidElementType(IconRightComponent) && <IconRightComponent />}\n </Text>\n )}\n </Flex>\n </Box>\n )}\n\n {children && (\n <Box as=\"span\" {...boxProps}>\n {children}\n </Box>\n )}\n </StyledButton>\n )\n}\n\n/**\n * @public\n */\n// oxlint-disable-next-line no-unsafe-type-assertion\nexport const Button = ButtonComponent as unknown as <E extends ElementType = 'button'>(\n props: ButtonProps<E>,\n) => React.JSX.Element\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"layer-BdkSGATt.js","names":["FocusEvent","useCallback","useEffect","useImperativeHandle","useRef","styled","EMPTY_RECORD","containsOrEqualsElement","isHTMLElement","LayerProvider","useLayer","LayerProps","as","React","ElementType","JSX","IntrinsicElements","onActivate","props","activeElement","HTMLElement","zOffset","LayerChildrenProps","StyledLayer","div","position","LayerChildren","$","_c","children","forwardedRef","onFocus","restProps","t0","ref","style","undefined","zIndex","isTopLayer","lastFocusedRef","isTopLayerRef","t1","Symbol","for","current","t2","t3","becameTopLayer","t4","event","rootElement","target","document","handleFocus","t5","t6","Layer"],"sources":["../src/core/utils/layer/layer.tsx"],"sourcesContent":["import {FocusEvent, useCallback, useEffect, useImperativeHandle, useRef} from 'react'\nimport {styled} from 'styled-components'\n\nimport {EMPTY_RECORD} from '../../constants'\nimport {containsOrEqualsElement, isHTMLElement} from '../../helpers/element'\nimport {LayerProvider} from './layerProvider'\nimport {useLayer} from './useLayer'\n\n/**\n * @public\n */\nexport interface LayerProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */\n onActivate?: (props: {activeElement: HTMLElement | null}) => void\n zOffset?: number | number[]\n}\n\ninterface LayerChildrenProps {\n as?: React.ElementType | keyof React.JSX.IntrinsicElements\n onActivate?: LayerProps['onActivate']\n}\n\nconst StyledLayer = styled.div({position: 'relative'})\n\nconst LayerChildren = function LayerChildren(\n props: LayerChildrenProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n) {\n const {\n children,\n onActivate,\n onFocus,\n ref: forwardedRef,\n style = EMPTY_RECORD,\n ...restProps\n } = props\n const {zIndex, isTopLayer} = useLayer()\n const lastFocusedRef = useRef<HTMLElement | null>(null)\n const ref = useRef<HTMLDivElement | null>(null)\n const isTopLayerRef = useRef<boolean>(isTopLayer)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n // When the layer very first mounts, it will be the top layer, but we don't want to fire\n // the callback in that case. We use a ref to track the previous value of isTopLayer to\n // determine if the layer has become the top layer since the last render.\n useEffect(() => {\n const becameTopLayer = isTopLayerRef.current !== isTopLayer && isTopLayer\n\n if (becameTopLayer) {\n onActivate?.({activeElement: lastFocusedRef.current})\n }\n\n isTopLayerRef.current = isTopLayer\n }, [isTopLayer, onActivate])\n\n const handleFocus = useCallback(\n // oxlint-disable-next-line no-unnecessary-type-arguments\n (event: FocusEvent<HTMLDivElement, Element>) => {\n // Call the user-provided onFocus handler if any\n onFocus?.(event)\n\n const rootElement = ref.current\n const target = document.activeElement\n\n if (!isTopLayer || !rootElement || !target) return\n\n if (isHTMLElement(target) && containsOrEqualsElement(rootElement, target)) {\n lastFocusedRef.current = target\n }\n },\n [isTopLayer, onFocus],\n )\n\n return (\n <StyledLayer\n {...restProps}\n data-ui=\"Layer\"\n onFocus={handleFocus}\n ref={ref}\n style={{...style, zIndex}}\n >\n {children}\n </StyledLayer>\n )\n}\n\n/**\n * @public\n */\nexport const Layer = function Layer(\n props: LayerProps & Omit<React.HTMLProps<HTMLDivElement>, 'as'>,\n) {\n const {children, zOffset = 1, ...restProps} = props\n\n return (\n <LayerProvider zOffset={zOffset}>\n <LayerChildren {...restProps}>{children}</LayerChildren>\n </LayerProvider>\n )\n}\n"],"mappings":";;;;;;;AAuBA,MAAMuB,cAAclB,uBAAOmB,IAAAA,WAAAA;;;AAAI,CAAA,CAAA,CAAA,EAACC,UAAU,WAAU,CAAC,GAE/CC,gBAAgB,SAAAA,cAAAR,OAAA;CAAA,IAAAS,IAAAC,EAAA,EAAA,GAAAC,UAAAC,cAAAb,YAAAc,SAAAC,WAAAC;CAAA,AAAAN,EAAA,OAAAT,SAUXW,WAAAF,EAAA,IAAAG,eAAAH,EAAA,IAAAV,aAAAU,EAAA,IAAAI,UAAAJ,EAAA,IAAAK,YAAAL,EAAA,IAAAM,KAAAN,EAAA,OAPT,CAAAE,UAAAZ,YAAAc,SAAAG,KAAAJ,cAAAK,OAAAF,OAAAD,aAOId,OAAKS,EAAA,KAAAT,OAAAS,EAAA,KAAAE,UAAAF,EAAA,KAAAG,cAAAH,EAAA,KAAAV,YAAAU,EAAA,KAAAI,SAAAJ,EAAA,KAAAK,WAAAL,EAAA,KAAAM;CAFP,IAAAE,QAAAF,OAAAG,KAAAA,IAAA9B,eAAA2B,IAGF,EAAAI,QAAAC,eAA6B5B,SAAS,GACtC6B,iBAAuBnC,OAA2B,IAAI,GACtD8B,MAAY9B,OAA8B,IAAI,GAC9CoC,gBAAsBpC,OAAgBkC,UAAU,GAACG;CAEjDtC,AAFiDwB,EAAA,OAAAe,OAAAC,IAAA,2BAAA,KAE+BF,WAAMP,IAAGU,SAAQjB,EAAA,KAAAc,MAAAA,KAAAd,EAAA,IAAjGxB,oBAAkE2B,cAAcW,EAAiB;CAAC,IAAAI,IAAAC;CAKlG5C,AALkGyB,EAAA,OAAAW,cAAAX,EAAA,OAAAV,cAKxF4B,WAAA;EAORL,AANuBA,cAAaI,YAAaN,cAA1BA,cAGrBrB,aAAa,EAAAE,eAAgBoB,eAAcK,QAAQ,CAAC,GAGtDJ,cAAaI,UAAWN;CAAH,GACpBQ,KAAA,CAACR,YAAYrB,UAAU,GAACU,EAAA,KAAAW,YAAAX,EAAA,KAAAV,YAAAU,EAAA,MAAAkB,IAAAlB,EAAA,MAAAmB,OAAAD,KAAAlB,EAAA,KAAAmB,KAAAnB,EAAA,MAR3BzB,UAAU2C,IAQPC,EAAwB;CAAC,IAAAE;CAAA,AAAArB,EAAA,QAAAW,cAAAX,EAAA,QAAAI,WAI1BiB,MAAAC,UAAA;EAEElB,UAAUkB,KAAK;EAEf,IAAAC,cAAoBhB,IAAGU,SACvBO,SAAeC,SAAQjC;EAEnB,CAACmB,cAAD,CAAgBY,eAAhB,CAAgCC,UAEhC3C,cAAc2C,MAAsD,KAA3C5C,wBAAwB2C,aAAaC,MAAM,MACtEZ,eAAcK,UAAWO;CAC1B,GACFxB,EAAA,MAAAW,YAAAX,EAAA,MAAAI,SAAAJ,EAAA,MAAAqB,MAAAA,KAAArB,EAAA;CAdH,IAAA0B,cAAoBL,IAgBnBM;CAAA,AAAA3B,EAAA,QAAAQ,SAAAR,EAAA,QAAAU,UAQUiB,KAAA;EAAA,GAAInB;EAAKE;CAAQ,GAACV,EAAA,MAAAQ,OAAAR,EAAA,MAAAU,QAAAV,EAAA,MAAA2B,MAAAA,KAAA3B,EAAA;CAAA,IAAA4B;CAGb,OAHa5B,EAAA,QAAAE,YAAAF,EAAA,QAAA0B,eAAA1B,EAAA,QAAAK,aAAAL,EAAA,QAAA2B,MAL3BC,KAAA,oBAAC,aAAD;EAAY,GACNvB;EACI,WAAA;EACCqB,SAAAA;EACJnB;EACE,OAAAoB;EAENzB;CAPS,CAAA,GAQEF,EAAA,MAAAE,UAAAF,EAAA,MAAA0B,aAAA1B,EAAA,MAAAK,WAAAL,EAAA,MAAA2B,IAAA3B,EAAA,MAAA4B,MAAAA,KAAA5B,EAAA,KARd4B;AAQc,GAOLC,QAAQ,SAAAA,MAAAtC,OAAA;CAAA,IAAAS,IAAAC,EAAA,EAAA,GAAAC,UAAAG,WAAAC;CAAA,AAAAN,EAAA,OAAAT,SAGgCW,WAAAF,EAAA,IAAAK,YAAAL,EAAA,IAAAM,KAAAN,EAAA,OAAnD,CAAAE,UAAAR,SAAAY,OAAAD,aAA8Cd,OAAKS,EAAA,KAAAT,OAAAS,EAAA,KAAAE,UAAAF,EAAA,KAAAK,WAAAL,EAAA,KAAAM;CAAlC,IAAAZ,UAAAY,OAAAG,KAAAA,IAAA,IAAAH,IAAWQ;CAAA,AAAAd,EAAA,OAAAE,YAAAF,EAAA,OAAAK,aAIxBS,KAAA,oBAAC,eAAD;EAAc,GAAKT;EAAYH;CAAjB,CAAA,GAA0CF,EAAA,KAAAE,UAAAF,EAAA,KAAAK,WAAAL,EAAA,KAAAc,MAAAA,KAAAd,EAAA;CAAA,IAAAkB;CAC1C,OAD0ClB,EAAA,OAAAc,MAAAd,EAAA,OAAAN,WAD1DwB,KAAA,oBAAC,eAAD;EAAwBxB;EACtBoB,UAAAA;CADY,CAAA,GAEEd,EAAA,KAAAc,IAAAd,EAAA,KAAAN,SAAAM,EAAA,KAAAkB,MAAAA,KAAAlB,EAAA,IAFhBkB;AAEgB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"popover-Iy6EZEmv.js","names":["Placement","PopoverMargins","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_PADDING","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_MARGINS","DEFAULT_FALLBACK_PLACEMENTS","Record","detectOverflow","Middleware","PopoverMargins","size","options","boundaryElement","HTMLElement","constrainSize","margins","matchReferenceWidth","maxWidthRef","React","RefObject","padding","referenceWidthRef","setReferenceWidth","referenceWidth","widthRef","name","fn","args","elements","placement","platform","rects","floating","reference","overflow","altBoundary","boundary","undefined","elementContext","rootBoundary","maxWidth","Infinity","maxHeight","floatingW","width","floatingH","height","includes","left","right","top","bottom","availableWidth","availableHeight","current","style","Math","min","nextDimensions","getDimensions","targetH","targetW","reset","DEFAULT_POPOVER_PADDING","PopoverWidth","calcCurrentWidth","params","mediaIndex","container","width","w","currentWidth","undefined","length","calcMaxWidth","boundaryWidth","Math","min","Infinity","Strategy","motion","MotionProps","React","CSSProperties","useMemo","styled","ThemeColorSchemeKey","POPOVER_MOTION_PROPS","BoxOverflow","CardTone","Placement","PopoverMargins","Radius","Arrow","useLayer","Card","CardProps","Flex","DEFAULT_POPOVER_ARROW_HEIGHT","DEFAULT_POPOVER_ARROW_RADIUS","DEFAULT_POPOVER_ARROW_WIDTH","DEFAULT_POPOVER_MARGINS","MotionCard","create","MotionFlex","PopoverCard","props","$","_c","animate","arrow","arrowRef","arrowX","arrowY","children","marginsProp","originX","originY","overflow","padding","placement","radius","ref","restProps","scheme","shadow","strategy","style","tone","width","xProp","yProp","__unstable_margins","x","y","zIndex","margins","t0","undefined","t1","left","position","top","willChange","rootStyle","t2","t3","t4","right","bottom","arrowStyle","t5","t6","t7","t8","t9","t10","transition","t11","t12","card","arrow","autoPlacement","autoUpdate","flip","hide","Middleware","offset","RootBoundary","shift","useFloating","Activity","cloneElement","Ref","useCallback","useEffect","useImperativeHandle","useMemo","useRef","useState","ThemeColorSchemeKey","useElementSize","useMediaIndex","usePrefersReducedMotion","origin","_getArrayProp","useTheme_v2","BoxOverflow","CardTone","Placement","PopoverMargins","AnimateActivity","useBoundaryElement","getElementRef","LayerProps","LayerProvider","useLayer","Portal","ResponsiveRadiusProps","ResponsiveShadowProps","DEFAULT_FALLBACK_PLACEMENTS","DEFAULT_POPOVER_DISTANCE","DEFAULT_POPOVER_MARGINS","DEFAULT_POPOVER_PADDING","size","calcCurrentWidth","calcMaxWidth","PopoverCard","PopoverUpdateCallback","PopoverWidth","PopoverProps","Omit","__unstable_margins","animate","boundaryElement","children","React","JSX","Element","constrainSize","content","ReactNode","disabled","fallbackPlacements","floatingBoundary","HTMLElement","matchReferenceWidth","modal","open","overflow","padding","placement","placementStrategy","portal","preventOverflow","referenceBoundary","referenceElement","scheme","tone","updateRef","width","ViewportOverlay","$","_c","zIndex","t0","height","inset","position","Popover","props","container","layer","boundaryElementContext","_fallbackPlacements","_floatingBoundary","_referenceBoundary","_zOffsetProp","childProp","forwardedRef","paddingProp","restProps","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","onActivate","t23","t24","t25","t26","t27","t28","t29","radius","t30","ref","t31","t32","t33","t34","shadow","t35","t36","t37","zOffset","t38","t39","t40","margins","undefined","_animate","arrowProp","placementProp","radiusProp","shadowProp","widthProp","element","zOffsetProp","popover","prefersReducedMotion","boundarySize","border","widthArrayProp","arrowRef","Symbol","for","current","mediaIndex","boundaryWidth","widthRef","currentWidth","maxWidth","maxWidthRef","referenceWidthRef","floatingElement","referenceWidth","style","referenceWidth_0","setReferenceWidth","rootBoundary","middleware","useMiddleware","reference","whileElementsMounted","elements","x","y","middlewareData","refs","strategy","update","referenceHidden","arrowX","arrowY","originX","originY","arrowEl","setArrow","node","setFloating","bb0","setReference","child","popoverNode","ret","allowedPlacements","concat","push","boundary","mainAxis"],"sources":["../src/core/primitives/popover/constants.ts","../src/core/primitives/popover/floating-ui/size.ts","../src/core/primitives/popover/helpers.ts","../src/core/primitives/popover/popoverCard.tsx","../src/core/primitives/popover/popover.tsx"],"sourcesContent":["import {Placement} from '../../types/placement'\nimport {PopoverMargins} from '../../types/popover'\n\nexport const DEFAULT_POPOVER_DISTANCE = 4\nexport const DEFAULT_POPOVER_PADDING = 4\nexport const DEFAULT_POPOVER_ARROW_WIDTH = 19\nexport const DEFAULT_POPOVER_ARROW_HEIGHT = 8\nexport const DEFAULT_POPOVER_ARROW_RADIUS = 2\nexport const DEFAULT_POPOVER_MARGINS: PopoverMargins = [0, 0, 0, 0]\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['bottom', 'left', 'right'],\n 'top-start': ['bottom-start', 'left-start', 'right-start'],\n 'top-end': ['bottom-end', 'left-end', 'right-end'],\n 'bottom': ['top', 'left', 'right'],\n 'bottom-start': ['top-start', 'left-start', 'right-start'],\n 'bottom-end': ['top-end', 'left-end', 'right-end'],\n 'left': ['right', 'top', 'bottom'],\n 'left-start': ['right-start', 'top-start', 'bottom-start'],\n 'left-end': ['right-end', 'top-end', 'bottom-end'],\n 'right': ['left', 'top', 'bottom'],\n 'right-start': ['left-start', 'top-start', 'bottom-start'],\n 'right-end': ['left-end', 'top-end', 'bottom-end'],\n}\n","import {detectOverflow, Middleware} from '@floating-ui/react-dom'\n\nimport {PopoverMargins} from '../../../types/popover'\n\nexport function size(options: {\n boundaryElement?: HTMLElement | null\n constrainSize: boolean\n margins: PopoverMargins\n matchReferenceWidth?: boolean\n maxWidthRef: React.RefObject<number | undefined>\n padding?: number\n referenceWidthRef: React.RefObject<number | undefined>\n setReferenceWidth: (referenceWidth: number) => void\n widthRef: React.RefObject<number | undefined>\n}): Middleware {\n const {\n constrainSize,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n padding = 0,\n referenceWidthRef,\n setReferenceWidth,\n widthRef,\n } = options\n\n return {\n name: '@sanity/ui/size',\n async fn(args) {\n const {elements, placement, platform, rects} = args\n const {floating, reference} = rects\n\n const overflow = await detectOverflow(args, {\n altBoundary: true,\n boundary: options.boundaryElement || undefined,\n elementContext: 'floating',\n padding,\n rootBoundary: 'viewport',\n })\n\n let maxWidth = Infinity\n let maxHeight = Infinity\n\n const floatingW = floating.width\n const floatingH = floating.height\n\n if (placement.includes('top')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.top\n }\n\n if (placement.includes('right')) {\n maxWidth = floatingW - overflow.right\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n if (placement.includes('bottom')) {\n maxWidth = floatingW - (overflow.left + overflow.right)\n maxHeight = floatingH - overflow.bottom\n }\n\n if (placement.includes('left')) {\n maxWidth = floatingW - overflow.left\n maxHeight = floatingH - (overflow.top + overflow.bottom)\n }\n\n // IMPORTANT – APPLY ELEMENT STYLES HERE\n // Elements need to be resized BEFORE the `platform.getDimensions` call below\n const availableWidth = maxWidth - margins[1] - margins[3]\n const availableHeight = maxHeight - margins[0] - margins[2]\n const referenceWidth = reference.width - margins[1] - margins[3]\n referenceWidthRef.current = referenceWidth\n setReferenceWidth(referenceWidth)\n\n if (matchReferenceWidth) {\n elements.floating.style.width = `${referenceWidth}px`\n } else if (widthRef.current !== undefined) {\n elements.floating.style.width = `${widthRef.current}px`\n }\n\n if (constrainSize) {\n elements.floating.style.maxWidth = `${Math.min(availableWidth, maxWidthRef.current ?? Infinity)}px`\n\n elements.floating.style.maxHeight = `${availableHeight}px`\n }\n\n const nextDimensions = await platform.getDimensions(elements.floating)\n\n const targetH = nextDimensions.height\n const targetW = nextDimensions.width\n\n if (floatingW !== targetW || floatingH !== targetH) {\n return {reset: {rects: true}}\n }\n\n return {}\n },\n }\n}\n","import {DEFAULT_POPOVER_PADDING} from './constants'\nimport {PopoverWidth} from './types'\n\nexport function calcCurrentWidth(params: {\n mediaIndex: number\n container: number[]\n width: PopoverWidth[]\n}): number | undefined {\n const {container, mediaIndex, width} = params\n\n const w = width[mediaIndex]\n const currentWidth: PopoverWidth | undefined = w === undefined ? width[width.length - 1] : w\n\n return typeof currentWidth === 'number' ? container[currentWidth] : undefined\n}\n\nexport function calcMaxWidth(params: {\n boundaryWidth: number | undefined\n currentWidth: number | undefined\n}): number | undefined {\n const {boundaryWidth, currentWidth} = params\n\n if (currentWidth === undefined && boundaryWidth === undefined) {\n return undefined\n }\n\n return Math.min(\n currentWidth ?? Infinity,\n (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2,\n )\n}\n","import {Strategy} from '@floating-ui/react-dom'\nimport {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 {BoxOverflow} from '../../types/box'\nimport {CardTone} from '../../types/card'\nimport {Placement} from '../../types/placement'\nimport {PopoverMargins} from '../../types/popover'\nimport {Radius} from '../../types/radius'\nimport {Arrow} from '../../utils/arrow/arrow'\nimport {useLayer} from '../../utils/layer/useLayer'\nimport {Card, CardProps} from '../card/card'\nimport {Flex} from '../flex/flex'\nimport {\n DEFAULT_POPOVER_ARROW_HEIGHT,\n DEFAULT_POPOVER_ARROW_RADIUS,\n DEFAULT_POPOVER_ARROW_WIDTH,\n DEFAULT_POPOVER_MARGINS,\n} from './constants'\n\nconst MotionCard = styled(motion.create(Card))`\n &:not([hidden]) {\n display: flex;\n }\n flex-direction: column;\n width: max-content;\n min-width: min-content;\n will-change: transform;\n`\n\nconst MotionFlex = styled(motion.create(Flex))`\n will-change: opacity;\n`\n\n/**\n * @internal\n */\nexport const PopoverCard = function PopoverCard(\n props: {\n /** @beta*/\n __unstable_margins?: PopoverMargins\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n overflow?: BoxOverflow\n padding?: number | number[]\n placement: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n strategy: Strategy\n tone: CardTone\n width: number | undefined\n x: number | null\n y: number | null\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n) {\n const {\n __unstable_margins: marginsProp,\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n padding,\n placement,\n originX,\n originY,\n overflow,\n radius,\n ref,\n scheme,\n shadow,\n strategy,\n style,\n tone,\n width,\n x: xProp,\n y: yProp,\n ...restProps\n } = props\n\n const {zIndex} = useLayer()\n\n // Get margins: [top, right, bottom, left]\n const margins: PopoverMargins = useMemo(\n () => marginsProp || DEFAULT_POPOVER_MARGINS,\n [marginsProp],\n )\n\n // Translate according to margins\n const x = (xProp ?? 0) + margins[3]\n const y = (yProp ?? 0) + margins[0]\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n left: x,\n originX,\n originY,\n position: strategy,\n top: y,\n width,\n zIndex,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, strategy, style, width, x, y, zIndex],\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=\"Popover\"\n // oxlint-disable-next-line no-unsafe-type-assertion\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n sizing=\"border\"\n style={rootStyle}\n tone={tone}\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 <MotionFlex\n data-ui=\"Popover__wrapper\"\n direction=\"column\"\n flex={1}\n overflow={overflow}\n variants={POPOVER_MOTION_PROPS.children}\n transition={POPOVER_MOTION_PROPS.transition}\n >\n <Flex direction=\"column\" flex={1} padding={padding}>\n {children}\n </Flex>\n </MotionFlex>\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_POPOVER_ARROW_WIDTH}\n height={DEFAULT_POPOVER_ARROW_HEIGHT}\n radius={DEFAULT_POPOVER_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n}\n","import {\n arrow,\n autoPlacement,\n autoUpdate,\n flip,\n hide,\n Middleware,\n offset,\n RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {\n Activity,\n cloneElement,\n type Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {useElementSize} from '../../hooks/useElementSize'\nimport {useMediaIndex} from '../../hooks/useMediaIndex/useMediaIndex'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport {BoxOverflow} from '../../types/box'\nimport {CardTone} from '../../types/card'\nimport {Placement} from '../../types/placement'\nimport {PopoverMargins} from '../../types/popover'\nimport {AnimateActivity} from '../../utils/animateActivity'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {LayerProps} from '../../utils/layer/layer'\nimport {LayerProvider} from '../../utils/layer/layerProvider'\nimport {useLayer} from '../../utils/layer/useLayer'\nimport {Portal} from '../../utils/portal/portal'\nimport {ResponsiveRadiusProps, ResponsiveShadowProps} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_POPOVER_DISTANCE,\n DEFAULT_POPOVER_MARGINS,\n DEFAULT_POPOVER_PADDING,\n} from './constants'\nimport {size} from './floating-ui/size'\nimport {calcCurrentWidth, calcMaxWidth} from './helpers'\nimport {PopoverCard} from './popoverCard'\nimport {PopoverUpdateCallback, PopoverWidth} from './types'\n\n/** @public */\nexport interface PopoverProps\n extends Omit<LayerProps, 'as'>, ResponsiveRadiusProps, ResponsiveShadowProps {\n /** @beta */\n __unstable_margins?: PopoverMargins\n /**\n * Whether the popover should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n arrow?: boolean\n /** @deprecated Use `floatingBoundary` and/or `referenceBoundary` instead */\n boundaryElement?: never\n children?: React.JSX.Element\n /**\n * When `true`, prevent overflow within the current boundary:\n * - by flipping on its side axis\n * - by resizing\n /*\n * Note that:\n * - setting `preventOverflow` to `true` also prevents overflow on its side axis\n * - setting `matchReferenceWidth` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n constrainSize?: boolean\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n floatingBoundary?: HTMLElement | null\n /**\n * When `true`, set the maximum width to match the reference element, and also prevent overflow within\n * the current boundary by resizing.\n *\n * Note that setting `constrainSize` to `true` also causes the popover to resize\n *\n * @defaultValue false\n */\n matchReferenceWidth?: boolean\n /**\n * When true, blocks all pointer interaction with elements beneath the popover until closed.\n *\n * @beta\n * @defaultValue false\n */\n modal?: boolean\n open?: boolean\n overflow?: BoxOverflow\n padding?: number | number[]\n placement?: Placement\n /**\n * When 'flip' (default), the placement is determined from the initial placement and the\n * fallback placements in order. Whichever fits in the viewport first.\n *\n * When 'autoPlacement', the initial placement and all fallback placements are evaluated\n * and the placement with the most viewport space available.\n *\n * Option is only relevant if either `constrainSize` or `preventOverflow` is `true`\n */\n placementStrategy?: 'flip' | 'autoPlacement'\n /** Whether or not to render the popover in a portal element. */\n portal?: boolean | string\n preventOverflow?: boolean\n referenceBoundary?: HTMLElement | null\n /**\n * When defined, the popover will be positioned relative to this element.\n * The children of the popover won't be rendered.\n */\n referenceElement?: HTMLElement | null\n scheme?: ThemeColorSchemeKey\n tone?: CardTone\n /** @beta */\n updateRef?: Ref<PopoverUpdateCallback | undefined>\n width?: PopoverWidth | PopoverWidth[]\n}\n\nconst ViewportOverlay = () => {\n const {zIndex} = useLayer()\n\n return <div style={{height: '100vh', inset: 0, position: 'fixed', width: '100vw', zIndex}} />\n}\n\n/**\n * The `Popover` component is used to display some content on top of another.\n *\n * @public\n */\nexport const Popover = function Popover(\n props: PopoverProps &\n Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content' | 'width'>,\n): React.JSX.Element {\n const {container, layer} = useTheme_v2()\n const boundaryElementContext = useBoundaryElement()\n\n const {\n __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,\n animate: _animate = false,\n arrow: arrowProp = false,\n children: childProp,\n constrainSize = false,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacements,\n matchReferenceWidth,\n floatingBoundary: _floatingBoundary,\n modal,\n // oxlint-disable-next-line no-unused-vars\n onActivate,\n open,\n overflow = 'hidden',\n padding: paddingProp,\n placement: placementProp = 'bottom',\n placementStrategy = 'flip',\n portal,\n preventOverflow = true,\n radius: radiusProp = 3,\n ref: forwardedRef,\n referenceBoundary: _referenceBoundary,\n referenceElement,\n scheme,\n shadow: shadowProp = 3,\n tone = 'inherit',\n width: widthProp = 'auto',\n zOffset: _zOffsetProp,\n updateRef,\n ...restProps\n } = props\n const fallbackPlacements =\n _fallbackPlacements ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const floatingBoundary = _floatingBoundary ?? boundaryElementContext.element\n const referenceBoundary = _referenceBoundary ?? boundaryElementContext.element\n // Max-width uses BoundaryElementProvider when present; otherwise the floating\n // boundary (same element the old `boundaryElement` prop used for both).\n const boundaryElement = boundaryElementContext.element ?? floatingBoundary\n const zOffsetProp = _zOffsetProp ?? layer.popover.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const boundarySize = useElementSize(boundaryElement)?.border\n const padding = _getArrayProp(paddingProp)\n const radius = _getArrayProp(radiusProp)\n const shadow = _getArrayProp(shadowProp)\n const widthArrayProp = _getArrayProp(widthProp)\n const zOffset = _getArrayProp(zOffsetProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const mediaIndex = useMediaIndex()\n const boundaryWidth = constrainSize || preventOverflow ? boundarySize?.width : undefined\n\n // Update width when\n // - media index changes\n // - `width` property changes\n const width = calcCurrentWidth({\n container,\n mediaIndex,\n width: widthArrayProp,\n })\n const widthRef = useRef(width)\n\n useEffect(() => {\n widthRef.current = width\n }, [width])\n\n // Update max width when\n // - boundary width changes\n // - `width` property changes\n const maxWidth = calcMaxWidth({boundaryWidth, currentWidth: width})\n const maxWidthRef = useRef(maxWidth)\n\n useEffect(() => {\n maxWidthRef.current = maxWidth\n }, [maxWidth])\n\n // Keep track of reference element width (see `size` middleware below)\n const referenceWidthRef = useRef<number>(undefined)\n\n // Force apply width & max width to floating element\n useEffect(() => {\n const floatingElement = ref.current\n\n if (!open || !floatingElement) return\n\n const referenceWidth = referenceWidthRef.current\n\n if (matchReferenceWidth) {\n if (referenceWidth !== undefined) {\n floatingElement.style.width = `${referenceWidth}px`\n }\n } else if (width !== undefined) {\n floatingElement.style.width = `${width}px`\n }\n\n if (typeof maxWidth === 'number') {\n floatingElement.style.maxWidth = `${maxWidth}px`\n }\n }, [width, matchReferenceWidth, maxWidth, open])\n\n const [referenceWidth, setReferenceWidth] = useState<number | undefined>(undefined)\n const middleware = useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n })\n\n const {x, y, middlewareData, placement, refs, strategy, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: referenceElement\n ? {\n reference: referenceElement,\n }\n : undefined,\n })\n\n const referenceHidden = middlewareData.hide?.referenceHidden\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 setArrow = useCallback((arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n }, [])\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\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, () => refs.reference.current)\n\n const child = useMemo(() => {\n // If a reference element is defined, we don't need to clone the child\n if (referenceElement) return childProp\n\n if (!childProp) return null\n\n return cloneElement(childProp, {ref: refs.setReference})\n }, [childProp, referenceElement, refs.setReference])\n\n useImperativeHandle(updateRef, () => update, [update])\n\n if (disabled) {\n return childProp || <></>\n }\n\n const popover = (\n <LayerProvider zOffset={zOffset}>\n {/* Optional transparent blocking overlay at the top-most z-index layer. Must be positioned before the below popover card. */}\n {modal && <ViewportOverlay />}\n\n <PopoverCard\n {...restProps}\n __unstable_margins={margins}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n hidden={referenceHidden}\n overflow={overflow}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n originX={originX}\n originY={originY}\n strategy={strategy}\n tone={tone}\n width={matchReferenceWidth ? referenceWidth : width}\n x={x}\n y={y}\n >\n {content}\n </PopoverCard>\n </LayerProvider>\n )\n\n const popoverNode = portal ? (\n <Portal __unstable_name={typeof portal === 'string' ? portal : undefined}>{popover}</Portal>\n ) : (\n popover\n )\n\n return (\n <>\n {/* the popover */}\n {animate ? (\n <AnimateActivity layoutMode=\"default\" mode={open ? 'visible' : 'hidden'}>\n {popoverNode}\n </AnimateActivity>\n ) : (\n <Activity mode={open ? 'visible' : 'hidden'}>{popoverNode}</Activity>\n )}\n\n {/* the referred element */}\n {child}\n </>\n )\n}\n\nfunction useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n}: {\n animate: boolean\n arrowProp: boolean\n arrowRef: React.RefObject<HTMLDivElement | null>\n constrainSize: boolean\n fallbackPlacements: Placement[]\n floatingBoundary: HTMLElement | null\n margins: PopoverMargins\n matchReferenceWidth: boolean | undefined\n maxWidthRef: React.RefObject<number | undefined>\n placementProp: Placement\n placementStrategy: 'flip' | 'autoPlacement'\n preventOverflow: boolean\n referenceBoundary: HTMLElement | null\n referenceWidthRef: React.RefObject<number | undefined>\n rootBoundary: RootBoundary\n setReferenceWidth: (referenceWidth: number) => void\n widthRef: React.RefObject<number | undefined>\n}) {\n return useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n if (constrainSize || preventOverflow) {\n if (placementStrategy === 'autoPlacement') {\n ret.push(\n autoPlacement({\n allowedPlacements: [placementProp].concat(fallbackPlacements),\n }),\n )\n } else {\n ret.push(\n flip({\n boundary: floatingBoundary || undefined,\n fallbackPlacements,\n padding: DEFAULT_POPOVER_PADDING,\n rootBoundary,\n }),\n )\n }\n }\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_POPOVER_DISTANCE}))\n\n // Track sizes\n if (constrainSize || matchReferenceWidth) {\n ret.push(\n size({\n boundaryElement: floatingBoundary || undefined,\n constrainSize,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n padding: DEFAULT_POPOVER_PADDING,\n referenceWidthRef,\n setReferenceWidth,\n widthRef,\n }),\n )\n }\n\n // Shift the popover so its sits within the boundary element\n if (preventOverflow) {\n ret.push(\n shift({\n boundary: floatingBoundary || undefined,\n rootBoundary,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\n }\n\n // Place arrow\n if (arrowProp) {\n ret.push(\n arrow({\n element: arrowRef,\n padding: DEFAULT_POPOVER_PADDING,\n }),\n )\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 ret.push(\n hide({\n boundary: referenceBoundary || undefined,\n padding: DEFAULT_POPOVER_PADDING,\n strategy: 'referenceHidden',\n }),\n )\n\n return ret\n }, [\n animate,\n arrowProp,\n arrowRef,\n constrainSize,\n fallbackPlacements,\n floatingBoundary,\n margins,\n matchReferenceWidth,\n maxWidthRef,\n placementProp,\n placementStrategy,\n preventOverflow,\n referenceBoundary,\n referenceWidthRef,\n rootBoundary,\n setReferenceWidth,\n widthRef,\n ])\n}\n"],"mappings":"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"}