@sanity/ui 2.0.0-beta.3 → 2.0.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -11,8 +11,8 @@ var styled = require('styled-components');
11
11
  var icons = require('@sanity/icons');
12
12
  var Refractor = require('react-refractor');
13
13
  var reactDom$1 = require('@floating-ui/react-dom');
14
- var reactDom = require('react-dom');
15
14
  var framerMotion = require('framer-motion');
15
+ var reactDom = require('react-dom');
16
16
  function _interopDefaultCompat(e) {
17
17
  return e && typeof e === 'object' && 'default' in e ? e : {
18
18
  default: e
@@ -33,6 +33,24 @@ const screen = theme.screen;
33
33
  const studioTheme = theme.buildTheme();
34
34
  const EMPTY_ARRAY = [];
35
35
  const EMPTY_RECORD = {};
36
+ const POPOVER_MOTION_PROPS = {
37
+ initial: {
38
+ opacity: 0.5,
39
+ scale: 0.97
40
+ },
41
+ animate: {
42
+ opacity: 1,
43
+ scale: 1
44
+ },
45
+ exit: {
46
+ opacity: 0,
47
+ scale: 0.97
48
+ },
49
+ transition: {
50
+ duration: 0.4,
51
+ type: "spring"
52
+ }
53
+ };
36
54
  function _fillCSSObject(keys, value) {
37
55
  return keys.reduce((style, key) => {
38
56
  style[key] = value;
@@ -1491,13 +1509,13 @@ function responsiveInputPaddingIconRightStyle(props) {
1491
1509
  $iconRight: true
1492
1510
  });
1493
1511
  }
1494
- var __freeze$D = Object.freeze;
1495
- var __defProp$E = Object.defineProperty;
1496
- var __template$D = (cooked, raw) => __freeze$D(__defProp$E(cooked, "raw", {
1497
- value: __freeze$D(raw || cooked.slice())
1512
+ var __freeze$F = Object.freeze;
1513
+ var __defProp$G = Object.defineProperty;
1514
+ var __template$F = (cooked, raw) => __freeze$F(__defProp$G(cooked, "raw", {
1515
+ value: __freeze$F(raw || cooked.slice())
1498
1516
  }));
1499
- var _a$D, _b$n, _c$c;
1500
- const ROOT_STYLE = styled.css(_a$D || (_a$D = __template$D(["\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n"])));
1517
+ var _a$F, _b$n, _c$c;
1518
+ const ROOT_STYLE = styled.css(_a$F || (_a$F = __template$F(["\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n"])));
1501
1519
  function textInputRootStyle() {
1502
1520
  return ROOT_STYLE;
1503
1521
  }
@@ -1511,7 +1529,7 @@ function textInputBaseStyle(props) {
1511
1529
  color,
1512
1530
  font
1513
1531
  } = theme.getTheme_v2(props.theme);
1514
- return styled.css(_b$n || (_b$n = __template$D(["\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ", ";\n font-weight: ", ";\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome\u2019s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='", "'][data-tone='", "'] {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n }\n "])), font.text.family, $weight && font.text.weights[$weight] || font.text.weights.regular, $scheme, $tone, color.input.default.enabled.fg, color.input.default.enabled.placeholder, color.input.default.enabled.fg, color.input.default.enabled.placeholder, color.input.default.disabled.fg, color.input.default.disabled.placeholder, color.input.invalid.enabled.fg, color.input.invalid.enabled.placeholder, color.input.default.readOnly.fg, color.input.default.readOnly.placeholder);
1532
+ return styled.css(_b$n || (_b$n = __template$F(["\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ", ";\n font-weight: ", ";\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n\n /* NOTE: This is a hack to disable Chrome\u2019s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n color: var(--input-fg-color);\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n &[data-scheme='", "'][data-tone='", "'] {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n }\n "])), font.text.family, $weight && font.text.weights[$weight] || font.text.weights.regular, $scheme, $tone, color.input.default.enabled.fg, color.input.default.enabled.placeholder, color.input.default.enabled.fg, color.input.default.enabled.placeholder, color.input.default.disabled.fg, color.input.default.disabled.placeholder, color.input.invalid.enabled.fg, color.input.invalid.enabled.placeholder, color.input.default.readOnly.fg, color.input.default.readOnly.placeholder);
1515
1533
  }
1516
1534
  function textInputFontSizeStyle(props) {
1517
1535
  const {
@@ -1538,7 +1556,7 @@ function textInputRepresentationStyle(props) {
1538
1556
  color,
1539
1557
  input
1540
1558
  } = theme.getTheme_v2(props.theme);
1541
- return styled.css(_c$c || (_c$c = __template$D(["\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ", ";\n border-bottom-left-radius: ", ";\n border-top-right-radius: ", ";\n border-bottom-right-radius: ", ";\n\n &[data-scheme='", "'][data-tone='", "'] {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ", ";\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n\n &[data-border] {\n --input-box-shadow: ", ";\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ", ";\n }\n\n &:not([data-border]) {\n --input-box-shadow: ", ";\n }\n }\n\n /* disabled */\n *:disabled + & {\n --card-bg-color: ", " !important;\n --card-fg-color: ", " !important;\n\n &[data-border] {\n --input-box-shadow: ", ";\n }\n }\n\n /* readOnly */\n *:read-only + & {\n --card-bg-color: ", " !important;\n --card-fg-color: ", " !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ", ";\n }\n }\n }\n "])), $hasPrefix ? 0 : void 0, $hasPrefix ? 0 : void 0, $hasSuffix ? 0 : void 0, $hasSuffix ? 0 : void 0, $scheme, $tone, color.input.default.enabled.bg, color.input.default.enabled.fg, focusRingBorderStyle({
1559
+ return styled.css(_c$c || (_c$c = __template$F(["\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ", ";\n border-bottom-left-radius: ", ";\n border-top-right-radius: ", ";\n border-bottom-right-radius: ", ";\n\n &[data-scheme='", "'][data-tone='", "'] {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n\n /* enabled */\n *:not(:disabled) + &[data-border] {\n --input-box-shadow: ", ";\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n\n &[data-border] {\n --input-box-shadow: ", ";\n }\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n &[data-border] {\n --input-box-shadow: ", ";\n }\n\n &:not([data-border]) {\n --input-box-shadow: ", ";\n }\n }\n\n /* disabled */\n *:disabled + & {\n --card-bg-color: ", " !important;\n --card-fg-color: ", " !important;\n\n &[data-border] {\n --input-box-shadow: ", ";\n }\n }\n\n /* readOnly */\n *:read-only + & {\n --card-bg-color: ", " !important;\n --card-fg-color: ", " !important;\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + & {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + &[data-border] {\n --input-box-shadow: ", ";\n }\n }\n }\n "])), $hasPrefix ? 0 : void 0, $hasPrefix ? 0 : void 0, $hasSuffix ? 0 : void 0, $hasSuffix ? 0 : void 0, $scheme, $tone, color.input.default.enabled.bg, color.input.default.enabled.fg, focusRingBorderStyle({
1542
1560
  color: color.input.default.enabled.border,
1543
1561
  width: input.border.width
1544
1562
  }), color.input.invalid.enabled.bg, color.input.invalid.enabled.fg, focusRingBorderStyle({
@@ -1612,12 +1630,12 @@ function responsiveShadowStyle(props) {
1612
1630
  } = theme.getTheme_v2(props.theme);
1613
1631
  return _responsive(media, props.$shadow, index => shadowStyle(shadow[index], card.shadow.outline));
1614
1632
  }
1615
- var __freeze$C = Object.freeze;
1616
- var __defProp$D = Object.defineProperty;
1617
- var __template$C = (cooked, raw) => __freeze$C(__defProp$D(cooked, "raw", {
1618
- value: __freeze$C(raw || cooked.slice())
1633
+ var __freeze$E = Object.freeze;
1634
+ var __defProp$F = Object.defineProperty;
1635
+ var __template$E = (cooked, raw) => __freeze$E(__defProp$F(cooked, "raw", {
1636
+ value: __freeze$E(raw || cooked.slice())
1619
1637
  }));
1620
- var _a$C, _b$m, _c$b;
1638
+ var _a$E, _b$m, _c$b;
1621
1639
  function labelBaseStyle(props) {
1622
1640
  const {
1623
1641
  $accent,
@@ -1626,16 +1644,16 @@ function labelBaseStyle(props) {
1626
1644
  const {
1627
1645
  font
1628
1646
  } = theme.getTheme_v2(props.theme);
1629
- return styled.css(_c$b || (_c$b = __template$C(["\n text-transform: uppercase;\n\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), $accent && styled.css(_a$C || (_a$C = __template$C(["\n color: var(--card-accent-fg-color);\n "]))), $muted && styled.css(_b$m || (_b$m = __template$C(["\n color: var(--card-muted-fg-color);\n "]))), font.code.family);
1647
+ return styled.css(_c$b || (_c$b = __template$E(["\n text-transform: uppercase;\n\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), $accent && styled.css(_a$E || (_a$E = __template$E(["\n color: var(--card-accent-fg-color);\n "]))), $muted && styled.css(_b$m || (_b$m = __template$E(["\n color: var(--card-muted-fg-color);\n "]))), font.code.family);
1630
1648
  }
1631
- var __freeze$B = Object.freeze;
1632
- var __defProp$C = Object.defineProperty;
1633
- var __template$B = (cooked, raw) => __freeze$B(__defProp$C(cooked, "raw", {
1634
- value: __freeze$B(raw || cooked.slice())
1649
+ var __freeze$D = Object.freeze;
1650
+ var __defProp$E = Object.defineProperty;
1651
+ var __template$D = (cooked, raw) => __freeze$D(__defProp$E(cooked, "raw", {
1652
+ value: __freeze$D(raw || cooked.slice())
1635
1653
  }));
1636
- var _a$B;
1637
- const Root$D = styled__default.default.div(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle);
1638
- const SpanWithTextOverflow$2 = styled__default.default.span(_a$B || (_a$B = __template$B(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n"])));
1654
+ var _a$D;
1655
+ const Root$C = styled__default.default.div(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle);
1656
+ const SpanWithTextOverflow$2 = styled__default.default.span(_a$D || (_a$D = __template$D(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n"])));
1639
1657
  const Label = react.forwardRef(function Label2(props, ref) {
1640
1658
  const {
1641
1659
  accent,
@@ -1657,7 +1675,7 @@ const Label = react.forwardRef(function Label2(props, ref) {
1657
1675
  children
1658
1676
  });
1659
1677
  }
1660
- return /* @__PURE__ */jsxRuntime.jsx(Root$D, {
1678
+ return /* @__PURE__ */jsxRuntime.jsx(Root$C, {
1661
1679
  "data-ui": "Label",
1662
1680
  ...restProps,
1663
1681
  $accent: accent,
@@ -1816,7 +1834,7 @@ function avatarStrokeStyle() {
1816
1834
  }
1817
1835
  };
1818
1836
  }
1819
- const Root$C = styled__default.default.div(responsiveAvatarSizeStyle, avatarStyle.root);
1837
+ const Root$B = styled__default.default.div(responsiveAvatarSizeStyle, avatarStyle.root);
1820
1838
  const Arrow$1 = styled__default.default.div(avatarStyle.arrow);
1821
1839
  const BgStroke = styled__default.default.ellipse(avatarStyle.bgStroke);
1822
1840
  const Stroke = styled__default.default.ellipse(avatarStyle.stroke);
@@ -1872,7 +1890,7 @@ const Avatar = react.forwardRef(function Avatar2(props, ref) {
1872
1890
  if (s === 3) return 5;
1873
1891
  return 0;
1874
1892
  }), [size]);
1875
- return /* @__PURE__ */jsxRuntime.jsxs(Root$C, {
1893
+ return /* @__PURE__ */jsxRuntime.jsxs(Root$B, {
1876
1894
  as,
1877
1895
  "data-as": typeof as === "string" ? as : void 0,
1878
1896
  "data-ui": "Avatar",
@@ -1941,12 +1959,12 @@ const Avatar = react.forwardRef(function Avatar2(props, ref) {
1941
1959
  })]
1942
1960
  });
1943
1961
  });
1944
- var __freeze$A = Object.freeze;
1945
- var __defProp$B = Object.defineProperty;
1946
- var __template$A = (cooked, raw) => __freeze$A(__defProp$B(cooked, "raw", {
1947
- value: __freeze$A(raw || cooked.slice())
1962
+ var __freeze$C = Object.freeze;
1963
+ var __defProp$D = Object.defineProperty;
1964
+ var __template$C = (cooked, raw) => __freeze$C(__defProp$D(cooked, "raw", {
1965
+ value: __freeze$C(raw || cooked.slice())
1948
1966
  }));
1949
- var _a$A;
1967
+ var _a$C;
1950
1968
  function _responsiveAvatarCounterSizeStyle(props) {
1951
1969
  const {
1952
1970
  avatar,
@@ -1966,9 +1984,9 @@ function _avatarCounterBaseStyle(props) {
1966
1984
  const {
1967
1985
  space
1968
1986
  } = theme.getTheme_v2(props.theme);
1969
- return styled.css(_a$A || (_a$A = __template$A(["\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ", ";\n\n &:not([hidden]) {\n display: flex;\n }\n "])), rem(space[2]));
1987
+ return styled.css(_a$C || (_a$C = __template$C(["\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n inset 0 0 0 1px var(--card-hairline-hard-color);\n padding: 0 ", ";\n\n &:not([hidden]) {\n display: flex;\n }\n "])), rem(space[2]));
1970
1988
  }
1971
- const Root$B = styled__default.default.div(_responsiveAvatarCounterSizeStyle, _avatarCounterBaseStyle);
1989
+ const Root$A = styled__default.default.div(_responsiveAvatarCounterSizeStyle, _avatarCounterBaseStyle);
1972
1990
  const AvatarCounter = react.forwardRef(function AvatarCounter2(props, ref) {
1973
1991
  const {
1974
1992
  count,
@@ -1981,7 +1999,7 @@ const AvatarCounter = react.forwardRef(function AvatarCounter2(props, ref) {
1981
1999
  if (s === 3) return 5;
1982
2000
  return 0;
1983
2001
  }), [size]);
1984
- return /* @__PURE__ */jsxRuntime.jsx(Root$B, {
2002
+ return /* @__PURE__ */jsxRuntime.jsx(Root$A, {
1985
2003
  $size: size,
1986
2004
  "data-ui": "AvatarCounter",
1987
2005
  ref,
@@ -1997,13 +2015,13 @@ function childrenToElementArray(children) {
1997
2015
  const childrenArray = Array.isArray(children) ? children : [children];
1998
2016
  return childrenArray.filter(node => ReactIs.isElement(node) || ReactIs.isFragment(node) || typeof node === "string");
1999
2017
  }
2000
- var __freeze$z = Object.freeze;
2001
- var __defProp$A = Object.defineProperty;
2002
- var __template$z = (cooked, raw) => __freeze$z(__defProp$A(cooked, "raw", {
2003
- value: __freeze$z(raw || cooked.slice())
2018
+ var __freeze$B = Object.freeze;
2019
+ var __defProp$C = Object.defineProperty;
2020
+ var __template$B = (cooked, raw) => __freeze$B(__defProp$C(cooked, "raw", {
2021
+ value: __freeze$B(raw || cooked.slice())
2004
2022
  }));
2005
- var _a$z;
2006
- const BASE_STYLES = styled.css(_a$z || (_a$z = __template$z(["\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n"])));
2023
+ var _a$B;
2024
+ const BASE_STYLES = styled.css(_a$B || (_a$B = __template$B(["\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n"])));
2007
2025
  function avatarStackStyle() {
2008
2026
  return BASE_STYLES;
2009
2027
  }
@@ -2022,7 +2040,7 @@ function responsiveAvatarStackSizeStyle(props) {
2022
2040
  };
2023
2041
  });
2024
2042
  }
2025
- const Root$A = styled__default.default.div(responsiveAvatarStackSizeStyle, avatarStackStyle);
2043
+ const Root$z = styled__default.default.div(responsiveAvatarStackSizeStyle, avatarStackStyle);
2026
2044
  const AvatarStack = react.forwardRef(function AvatarStack2(props, ref) {
2027
2045
  const {
2028
2046
  children: childrenProp,
@@ -2037,7 +2055,7 @@ const AvatarStack = react.forwardRef(function AvatarStack2(props, ref) {
2037
2055
  const visibleCount = maxLength - 1;
2038
2056
  const extraCount = len - visibleCount;
2039
2057
  const visibleChildren = extraCount > 1 ? children.slice(extraCount, len) : children;
2040
- return /* @__PURE__ */jsxRuntime.jsxs(Root$A, {
2058
+ return /* @__PURE__ */jsxRuntime.jsxs(Root$z, {
2041
2059
  "data-ui": "AvatarStack",
2042
2060
  ...restProps,
2043
2061
  ref,
@@ -2059,7 +2077,7 @@ const AvatarStack = react.forwardRef(function AvatarStack2(props, ref) {
2059
2077
  }, String(childIndex)))]
2060
2078
  });
2061
2079
  });
2062
- const Root$z = styled__default.default.div(boxStyle, flexItemStyle, responsiveBoxStyle, responsiveGridItemStyle, responsiveMarginStyle, responsivePaddingStyle);
2080
+ const Root$y = styled__default.default.div(boxStyle, flexItemStyle, responsiveBoxStyle, responsiveGridItemStyle, responsiveMarginStyle, responsivePaddingStyle);
2063
2081
  const Box = react.forwardRef(function Box2(props, ref) {
2064
2082
  const {
2065
2083
  as: asProp = "div",
@@ -2090,7 +2108,7 @@ const Box = react.forwardRef(function Box2(props, ref) {
2090
2108
  sizing,
2091
2109
  ...restProps
2092
2110
  } = props;
2093
- return /* @__PURE__ */jsxRuntime.jsx(Root$z, {
2111
+ return /* @__PURE__ */jsxRuntime.jsx(Root$y, {
2094
2112
  "data-as": typeof asProp === "string" ? asProp : void 0,
2095
2113
  "data-ui": "Box",
2096
2114
  ...restProps,
@@ -2124,12 +2142,12 @@ const Box = react.forwardRef(function Box2(props, ref) {
2124
2142
  children: props.children
2125
2143
  });
2126
2144
  });
2127
- var __freeze$y = Object.freeze;
2128
- var __defProp$z = Object.defineProperty;
2129
- var __template$y = (cooked, raw) => __freeze$y(__defProp$z(cooked, "raw", {
2130
- value: __freeze$y(raw || cooked.slice())
2145
+ var __freeze$A = Object.freeze;
2146
+ var __defProp$B = Object.defineProperty;
2147
+ var __template$A = (cooked, raw) => __freeze$A(__defProp$B(cooked, "raw", {
2148
+ value: __freeze$A(raw || cooked.slice())
2131
2149
  }));
2132
- var _a$y, _b$l, _c$a;
2150
+ var _a$A, _b$l, _c$a;
2133
2151
  function textBaseStyle(props) {
2134
2152
  const {
2135
2153
  $accent,
@@ -2138,16 +2156,16 @@ function textBaseStyle(props) {
2138
2156
  const {
2139
2157
  font
2140
2158
  } = theme.getTheme_v2(props.theme);
2141
- return styled.css(_c$a || (_c$a = __template$y(["\n color: var(--card-fg-color);\n\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ", ";\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n color: var(--card-icon-color);\n\n & path {\n vector-effect: non-scaling-stroke !important;\n }\n }\n "])), $accent && styled.css(_a$y || (_a$y = __template$y(["\n color: var(--card-accent-fg-color);\n "]))), $muted && styled.css(_b$l || (_b$l = __template$y(["\n color: var(--card-muted-fg-color);\n "]))), font.code.family, font.text.weights.bold);
2159
+ return styled.css(_c$a || (_c$a = __template$A(["\n color: var(--card-fg-color);\n\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ", ";\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n color: var(--card-icon-color);\n\n & path {\n vector-effect: non-scaling-stroke !important;\n }\n }\n "])), $accent && styled.css(_a$A || (_a$A = __template$A(["\n color: var(--card-accent-fg-color);\n "]))), $muted && styled.css(_b$l || (_b$l = __template$A(["\n color: var(--card-muted-fg-color);\n "]))), font.code.family, font.text.weights.bold);
2142
2160
  }
2143
- var __freeze$x = Object.freeze;
2144
- var __defProp$y = Object.defineProperty;
2145
- var __template$x = (cooked, raw) => __freeze$x(__defProp$y(cooked, "raw", {
2146
- value: __freeze$x(raw || cooked.slice())
2161
+ var __freeze$z = Object.freeze;
2162
+ var __defProp$A = Object.defineProperty;
2163
+ var __template$z = (cooked, raw) => __freeze$z(__defProp$A(cooked, "raw", {
2164
+ value: __freeze$z(raw || cooked.slice())
2147
2165
  }));
2148
- var _a$x;
2149
- const Root$y = styled__default.default.div(responsiveTextFont, responsiveTextAlignStyle, textBaseStyle);
2150
- const SpanWithTextOverflow$1 = styled__default.default.span(_a$x || (_a$x = __template$x(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n"])));
2166
+ var _a$z;
2167
+ const Root$x = styled__default.default.div(responsiveTextFont, responsiveTextAlignStyle, textBaseStyle);
2168
+ const SpanWithTextOverflow$1 = styled__default.default.span(_a$z || (_a$z = __template$z(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n"])));
2151
2169
  const Text = react.forwardRef(function Text2(props, ref) {
2152
2170
  const {
2153
2171
  accent = false,
@@ -2165,7 +2183,7 @@ const Text = react.forwardRef(function Text2(props, ref) {
2165
2183
  children
2166
2184
  });
2167
2185
  }
2168
- return /* @__PURE__ */jsxRuntime.jsx(Root$y, {
2186
+ return /* @__PURE__ */jsxRuntime.jsx(Root$x, {
2169
2187
  "data-ui": "Text",
2170
2188
  ...restProps,
2171
2189
  $accent: accent,
@@ -2194,7 +2212,7 @@ function badgeStyle(props) {
2194
2212
  }
2195
2213
  };
2196
2214
  }
2197
- const Root$x = styled__default.default(Box)(responsiveRadiusStyle, badgeStyle);
2215
+ const Root$w = styled__default.default(Box)(responsiveRadiusStyle, badgeStyle);
2198
2216
  const Badge = react.forwardRef(function Badge2(props, ref) {
2199
2217
  const {
2200
2218
  children,
@@ -2206,7 +2224,7 @@ const Badge = react.forwardRef(function Badge2(props, ref) {
2206
2224
  tone = "default",
2207
2225
  ...restProps
2208
2226
  } = props;
2209
- return /* @__PURE__ */jsxRuntime.jsx(Root$x, {
2227
+ return /* @__PURE__ */jsxRuntime.jsx(Root$w, {
2210
2228
  "data-ui": "Badge",
2211
2229
  ...restProps,
2212
2230
  $tone: tone,
@@ -2220,7 +2238,7 @@ const Badge = react.forwardRef(function Badge2(props, ref) {
2220
2238
  })
2221
2239
  });
2222
2240
  });
2223
- const Root$w = styled__default.default(Box)(flexItemStyle, responsiveFlexStyle);
2241
+ const Root$v = styled__default.default(Box)(flexItemStyle, responsiveFlexStyle);
2224
2242
  const Flex = react.forwardRef(function Flex2(props, ref) {
2225
2243
  const {
2226
2244
  align,
@@ -2231,7 +2249,7 @@ const Flex = react.forwardRef(function Flex2(props, ref) {
2231
2249
  wrap,
2232
2250
  ...restProps
2233
2251
  } = props;
2234
- return /* @__PURE__ */jsxRuntime.jsx(Root$w, {
2252
+ return /* @__PURE__ */jsxRuntime.jsx(Root$v, {
2235
2253
  "data-ui": "Flex",
2236
2254
  ...restProps,
2237
2255
  $align: useArrayProp(align),
@@ -2243,16 +2261,16 @@ const Flex = react.forwardRef(function Flex2(props, ref) {
2243
2261
  ref
2244
2262
  });
2245
2263
  });
2246
- var __freeze$w = Object.freeze;
2247
- var __defProp$x = Object.defineProperty;
2248
- var __template$w = (cooked, raw) => __freeze$w(__defProp$x(cooked, "raw", {
2249
- value: __freeze$w(raw || cooked.slice())
2264
+ var __freeze$y = Object.freeze;
2265
+ var __defProp$z = Object.defineProperty;
2266
+ var __template$y = (cooked, raw) => __freeze$y(__defProp$z(cooked, "raw", {
2267
+ value: __freeze$y(raw || cooked.slice())
2250
2268
  }));
2251
- var _a$w, _b$k;
2252
- const rotate$1 = styled.keyframes(_a$w || (_a$w = __template$w(["\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n"])));
2253
- const Root$v = styled__default.default(Text)(_b$k || (_b$k = __template$w(["\n & > span > svg {\n animation: ", " 500ms linear infinite;\n }\n"])), rotate$1);
2269
+ var _a$y, _b$k;
2270
+ const rotate$1 = styled.keyframes(_a$y || (_a$y = __template$y(["\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n"])));
2271
+ const Root$u = styled__default.default(Text)(_b$k || (_b$k = __template$y(["\n & > span > svg {\n animation: ", " 500ms linear infinite;\n }\n"])), rotate$1);
2254
2272
  const Spinner = react.forwardRef(function Spinner2(props, ref) {
2255
- return /* @__PURE__ */jsxRuntime.jsx(Root$v, {
2273
+ return /* @__PURE__ */jsxRuntime.jsx(Root$u, {
2256
2274
  "data-ui": "Spinner",
2257
2275
  ...props,
2258
2276
  ref,
@@ -2330,12 +2348,12 @@ function _cardColorStyle(base, color) {
2330
2348
  "--card-hairline-hard-color": color.border
2331
2349
  };
2332
2350
  }
2333
- var __freeze$v = Object.freeze;
2334
- var __defProp$w = Object.defineProperty;
2335
- var __template$v = (cooked, raw) => __freeze$v(__defProp$w(cooked, "raw", {
2336
- value: __freeze$v(raw || cooked.slice())
2351
+ var __freeze$x = Object.freeze;
2352
+ var __defProp$y = Object.defineProperty;
2353
+ var __template$x = (cooked, raw) => __freeze$x(__defProp$y(cooked, "raw", {
2354
+ value: __freeze$x(raw || cooked.slice())
2337
2355
  }));
2338
- var _a$v, _b$j;
2356
+ var _a$x, _b$j;
2339
2357
  function buttonBaseStyles(props) {
2340
2358
  const {
2341
2359
  $width
@@ -2343,7 +2361,7 @@ function buttonBaseStyles(props) {
2343
2361
  const {
2344
2362
  style
2345
2363
  } = theme.getTheme_v2(props.theme);
2346
- return styled.css(_b$j || (_b$j = __template$v(["\n ", ";\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\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 "])), style == null ? void 0 : style.button, $width === "fill" && styled.css(_a$v || (_a$v = __template$v(["\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n "]))));
2364
+ return styled.css(_b$j || (_b$j = __template$x(["\n ", ";\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\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 "])), style == null ? void 0 : style.button, $width === "fill" && styled.css(_a$x || (_a$x = __template$x(["\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n "]))));
2347
2365
  }
2348
2366
  function combineBoxShadow() {
2349
2367
  for (var _len = arguments.length, boxShadows = new Array(_len), _key = 0; _key < _len; _key++) {
@@ -2398,14 +2416,14 @@ function buttonColorStyles(props) {
2398
2416
  }
2399
2417
  }, (_a2 = style == null ? void 0 : style.button) == null ? void 0 : _a2.root].filter(Boolean);
2400
2418
  }
2401
- var __freeze$u = Object.freeze;
2402
- var __defProp$v = Object.defineProperty;
2403
- var __template$u = (cooked, raw) => __freeze$u(__defProp$v(cooked, "raw", {
2404
- value: __freeze$u(raw || cooked.slice())
2419
+ var __freeze$w = Object.freeze;
2420
+ var __defProp$x = Object.defineProperty;
2421
+ var __template$w = (cooked, raw) => __freeze$w(__defProp$x(cooked, "raw", {
2422
+ value: __freeze$w(raw || cooked.slice())
2405
2423
  }));
2406
- var _a$u;
2407
- const Root$u = styled__default.default.button(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles);
2408
- const LoadingBox = styled__default.default.div(_a$u || (_a$u = __template$u(["\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"])));
2424
+ var _a$w;
2425
+ const Root$t = styled__default.default.button(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles);
2426
+ const LoadingBox = styled__default.default.div(_a$w || (_a$w = __template$w(["\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"])));
2409
2427
  const Button = react.forwardRef(function Button2(props, ref) {
2410
2428
  const {
2411
2429
  children,
@@ -2457,7 +2475,7 @@ const Button = react.forwardRef(function Button2(props, ref) {
2457
2475
  paddingLeft,
2458
2476
  paddingRight
2459
2477
  }), [padding, paddingX, paddingY, paddingTop, paddingBottom, paddingLeft, paddingRight]);
2460
- return /* @__PURE__ */jsxRuntime.jsxs(Root$u, {
2478
+ return /* @__PURE__ */jsxRuntime.jsxs(Root$t, {
2461
2479
  "data-ui": "Button",
2462
2480
  ...restProps,
2463
2481
  $mode: mode,
@@ -2503,12 +2521,12 @@ const Button = react.forwardRef(function Button2(props, ref) {
2503
2521
  })]
2504
2522
  });
2505
2523
  });
2506
- var __freeze$t = Object.freeze;
2507
- var __defProp$u = Object.defineProperty;
2508
- var __template$t = (cooked, raw) => __freeze$t(__defProp$u(cooked, "raw", {
2509
- value: __freeze$t(raw || cooked.slice())
2524
+ var __freeze$v = Object.freeze;
2525
+ var __defProp$w = Object.defineProperty;
2526
+ var __template$v = (cooked, raw) => __freeze$v(__defProp$w(cooked, "raw", {
2527
+ value: __freeze$v(raw || cooked.slice())
2510
2528
  }));
2511
- var _a$t, _b$i, _c$9;
2529
+ var _a$v, _b$i, _c$9;
2512
2530
  function cardStyle(props) {
2513
2531
  return [cardBaseStyle(props), cardColorStyle(props)];
2514
2532
  }
@@ -2519,7 +2537,7 @@ function cardBaseStyle(props) {
2519
2537
  const {
2520
2538
  space
2521
2539
  } = theme.getTheme_v2(props.theme);
2522
- return styled.css(_b$i || (_b$i = __template$t(["\n ", "\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n "])), $checkered && styled.css(_a$t || (_a$t = __template$t(["\n background-size: ", "px ", "px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n "])), space[3], space[3]));
2540
+ return styled.css(_b$i || (_b$i = __template$v(["\n ", "\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n "])), $checkered && styled.css(_a$v || (_a$v = __template$v(["\n background-size: ", "px ", "px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n "])), space[3], space[3]));
2523
2541
  }
2524
2542
  function cardColorStyle(props) {
2525
2543
  var _a2;
@@ -2536,7 +2554,7 @@ function cardColorStyle(props) {
2536
2554
  width: card.border.width,
2537
2555
  color: "var(--card-border-color)"
2538
2556
  };
2539
- return styled.css(_c$9 || (_c$9 = __template$t(["\n color-scheme: ", ";\n\n ", "\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ", "\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ", "\n }\n\n &[data-selected] {\n ", "\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ", "\n }\n\n &:active {\n ", "\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ", ";\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ", "\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ", "\n }\n\n &[data-selected] {\n ", "\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ", "\n }\n\n &:active {\n ", "\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ", ";\n }\n }\n }\n\n ", "\n "])), color._dark ? "dark" : "light", _cardColorStyle(color, color, $checkered), _cardColorStyle(color, color.selectable.default.disabled, $checkered), _cardColorStyle(color, color.selectable.default.pressed, $checkered), _cardColorStyle(color, color.selectable.default.selected, $checkered), _cardColorStyle(color, color.selectable.default.hovered, $checkered), _cardColorStyle(color, color.selectable.default.pressed, $checkered), $focusRing ? focusRingStyle({
2557
+ return styled.css(_c$9 || (_c$9 = __template$v(["\n color-scheme: ", ";\n\n ", "\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ", "\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ", "\n }\n\n &[data-selected] {\n ", "\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ", "\n }\n\n &:active {\n ", "\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ", ";\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ", "\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ", "\n }\n\n &[data-selected] {\n ", "\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &[data-hovered],\n &:hover {\n ", "\n }\n\n &:active {\n ", "\n }\n }\n }\n\n &:focus-visible {\n --card-focus-ring-box-shadow: ", ";\n }\n }\n }\n\n ", "\n "])), color._dark ? "dark" : "light", _cardColorStyle(color, color, $checkered), _cardColorStyle(color, color.selectable.default.disabled, $checkered), _cardColorStyle(color, color.selectable.default.pressed, $checkered), _cardColorStyle(color, color.selectable.default.selected, $checkered), _cardColorStyle(color, color.selectable.default.hovered, $checkered), _cardColorStyle(color, color.selectable.default.pressed, $checkered), $focusRing ? focusRingStyle({
2540
2558
  base: color,
2541
2559
  border,
2542
2560
  focusRing: card.focusRing
@@ -2546,7 +2564,7 @@ function cardColorStyle(props) {
2546
2564
  focusRing: card.focusRing
2547
2565
  }) : void 0, (_a2 = style == null ? void 0 : style.card) == null ? void 0 : _a2.root);
2548
2566
  }
2549
- const Root$t = styled__default.default(Box)(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle);
2567
+ const Root$s = styled__default.default(Box)(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle);
2550
2568
  const Card = react.forwardRef(function Card2(props, ref) {
2551
2569
  const {
2552
2570
  __unstable_checkered: checkered = false,
@@ -2571,7 +2589,7 @@ const Card = react.forwardRef(function Card2(props, ref) {
2571
2589
  return /* @__PURE__ */jsxRuntime.jsx(ThemeColorProvider, {
2572
2590
  scheme,
2573
2591
  tone,
2574
- children: /* @__PURE__ */jsxRuntime.jsx(Root$t, {
2592
+ children: /* @__PURE__ */jsxRuntime.jsx(Root$s, {
2575
2593
  "data-as": typeof as === "string" ? as : void 0,
2576
2594
  "data-scheme": rootTheme.scheme,
2577
2595
  "data-ui": "Card",
@@ -2596,14 +2614,14 @@ const Card = react.forwardRef(function Card2(props, ref) {
2596
2614
  })
2597
2615
  });
2598
2616
  });
2599
- var __freeze$s = Object.freeze;
2600
- var __defProp$t = Object.defineProperty;
2601
- var __template$s = (cooked, raw) => __freeze$s(__defProp$t(cooked, "raw", {
2602
- value: __freeze$s(raw || cooked.slice())
2617
+ var __freeze$u = Object.freeze;
2618
+ var __defProp$v = Object.defineProperty;
2619
+ var __template$u = (cooked, raw) => __freeze$u(__defProp$v(cooked, "raw", {
2620
+ value: __freeze$u(raw || cooked.slice())
2603
2621
  }));
2604
- var _a$s, _b$h;
2622
+ var _a$u, _b$h;
2605
2623
  function checkboxBaseStyles() {
2606
- return styled.css(_a$s || (_a$s = __template$s(["\n position: relative;\n display: inline-block;\n "])));
2624
+ return styled.css(_a$u || (_a$u = __template$u(["\n position: relative;\n display: inline-block;\n "])));
2607
2625
  }
2608
2626
  function inputElementStyles(props) {
2609
2627
  const {
@@ -2614,7 +2632,7 @@ function inputElementStyles(props) {
2614
2632
  const {
2615
2633
  focusRing
2616
2634
  } = input.checkbox;
2617
- return styled.css(_b$h || (_b$h = __template$s(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ", ";\n width: ", ";\n box-sizing: border-box;\n box-shadow: ", ";\n border-radius: ", ";\n line-height: 1;\n background-color: ", ";\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ", ";\n box-shadow: ", ";\n color: ", ";\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ", ";\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ", ";\n }\n\n &[data-error] + span {\n background-color: ", ";\n box-shadow: ", ";\n color: ", ";\n }\n &[data-error]&:checked + span {\n background-color: ", ";\n color: ", ";\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ", ";\n }\n\n &:disabled + span {\n background-color: ", ";\n box-shadow: ", ";\n color: ", ";\n }\n &:disabled&:checked + span {\n background-color: ", ";\n }\n\n &[data-read-only] + span {\n background-color: ", ";\n box-shadow: ", ";\n color: ", ";\n }\n\n &[data-read-only]&:checked + span {\n background-color: ", ";\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n "])), rem(input.checkbox.size), rem(input.checkbox.size), focusRingBorderStyle({
2635
+ return styled.css(_b$h || (_b$h = __template$u(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ", ";\n width: ", ";\n box-sizing: border-box;\n box-shadow: ", ";\n border-radius: ", ";\n line-height: 1;\n background-color: ", ";\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 1.5px !important;\n }\n }\n }\n\n &:checked + span {\n background: ", ";\n box-shadow: ", ";\n color: ", ";\n }\n\n /* focus */\n &:not(:disabled):focus:focus-visible + span {\n box-shadow: ", ";\n }\n\n /* focus when checked - uses a different offset */\n &:not(:disabled):focus:focus-visible&:checked + span {\n box-shadow: ", ";\n }\n\n &[data-error] + span {\n background-color: ", ";\n box-shadow: ", ";\n color: ", ";\n }\n &[data-error]&:checked + span {\n background-color: ", ";\n color: ", ";\n }\n &[data-error]&:checked&:not(:disabled):focus:focus-visible + span {\n box-shadow: ", ";\n }\n\n &:disabled + span {\n background-color: ", ";\n box-shadow: ", ";\n color: ", ";\n }\n &:disabled&:checked + span {\n background-color: ", ";\n }\n\n &[data-read-only] + span {\n background-color: ", ";\n box-shadow: ", ";\n color: ", ";\n }\n\n &[data-read-only]&:checked + span {\n background-color: ", ";\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n "])), rem(input.checkbox.size), rem(input.checkbox.size), focusRingBorderStyle({
2618
2636
  color: color.input.default.enabled.border,
2619
2637
  width: input.border.width
2620
2638
  }), rem(radius[2]), color.input.default.enabled.bg, color.input.default.enabled.fg, focusRingBorderStyle({
@@ -2647,7 +2665,7 @@ function inputElementStyles(props) {
2647
2665
  color: color.input.default.readOnly.border
2648
2666
  }), color.input.default.readOnly.fg, color.input.default.readOnly.muted.bg);
2649
2667
  }
2650
- const Root$s = styled__default.default.div(checkboxBaseStyles);
2668
+ const Root$r = styled__default.default.div(checkboxBaseStyles);
2651
2669
  const Input$5 = styled__default.default.input(inputElementStyles);
2652
2670
  const Checkbox = react.forwardRef(function Checkbox2(props, forwardedRef) {
2653
2671
  const {
@@ -2667,7 +2685,7 @@ const Checkbox = react.forwardRef(function Checkbox2(props, forwardedRef) {
2667
2685
  ref.current.indeterminate = indeterminate || false;
2668
2686
  }
2669
2687
  }, [indeterminate, ref]);
2670
- return /* @__PURE__ */jsxRuntime.jsxs(Root$s, {
2688
+ return /* @__PURE__ */jsxRuntime.jsxs(Root$r, {
2671
2689
  className,
2672
2690
  "data-ui": "Checkbox",
2673
2691
  style,
@@ -2685,12 +2703,12 @@ const Checkbox = react.forwardRef(function Checkbox2(props, forwardedRef) {
2685
2703
  })]
2686
2704
  });
2687
2705
  });
2688
- var __freeze$r = Object.freeze;
2689
- var __defProp$s = Object.defineProperty;
2690
- var __template$r = (cooked, raw) => __freeze$r(__defProp$s(cooked, "raw", {
2691
- value: __freeze$r(raw || cooked.slice())
2706
+ var __freeze$t = Object.freeze;
2707
+ var __defProp$u = Object.defineProperty;
2708
+ var __template$t = (cooked, raw) => __freeze$t(__defProp$u(cooked, "raw", {
2709
+ value: __freeze$t(raw || cooked.slice())
2692
2710
  }));
2693
- var _a$r;
2711
+ var _a$t;
2694
2712
  function codeSyntaxHighlightingStyle(_ref2) {
2695
2713
  let {
2696
2714
  theme: theme$1
@@ -2812,9 +2830,9 @@ function codeSyntaxHighlightingStyle(_ref2) {
2812
2830
  };
2813
2831
  }
2814
2832
  function codeBaseStyle() {
2815
- return styled.css(_a$r || (_a$r = __template$r(["\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ", "\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), codeSyntaxHighlightingStyle);
2833
+ return styled.css(_a$t || (_a$t = __template$t(["\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ", "\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), codeSyntaxHighlightingStyle);
2816
2834
  }
2817
- const Root$r = styled__default.default.pre(codeBaseStyle, responsiveCodeFontStyle);
2835
+ const Root$q = styled__default.default.pre(codeBaseStyle, responsiveCodeFontStyle);
2818
2836
  const Code = react.forwardRef(function Code2(props, ref) {
2819
2837
  const {
2820
2838
  children,
@@ -2825,7 +2843,7 @@ const Code = react.forwardRef(function Code2(props, ref) {
2825
2843
  } = props;
2826
2844
  const language = typeof languageProp === "string" ? languageProp : void 0;
2827
2845
  const registered = language ? Refractor__default.default.hasLanguage(language) : false;
2828
- return /* @__PURE__ */jsxRuntime.jsxs(Root$r, {
2846
+ return /* @__PURE__ */jsxRuntime.jsxs(Root$q, {
2829
2847
  "data-ui": "Code",
2830
2848
  ...restProps,
2831
2849
  $size: useArrayProp(size),
@@ -2856,14 +2874,14 @@ function responsiveContainerWidthStyle(props) {
2856
2874
  maxWidth: val === "auto" ? "none" : rem(container[val])
2857
2875
  }));
2858
2876
  }
2859
- const Root$q = styled__default.default(Box)(containerBaseStyle, responsiveContainerWidthStyle);
2877
+ const Root$p = styled__default.default(Box)(containerBaseStyle, responsiveContainerWidthStyle);
2860
2878
  const Container = react.forwardRef(function Container2(props, ref) {
2861
2879
  const {
2862
2880
  as,
2863
2881
  width = 2,
2864
2882
  ...restProps
2865
2883
  } = props;
2866
- return /* @__PURE__ */jsxRuntime.jsx(Root$q, {
2884
+ return /* @__PURE__ */jsxRuntime.jsx(Root$p, {
2867
2885
  "data-ui": "Container",
2868
2886
  ...restProps,
2869
2887
  $width: useArrayProp(width),
@@ -2871,7 +2889,7 @@ const Container = react.forwardRef(function Container2(props, ref) {
2871
2889
  ref
2872
2890
  });
2873
2891
  });
2874
- const Root$p = styled__default.default(Box)(responsiveGridStyle);
2892
+ const Root$o = styled__default.default(Box)(responsiveGridStyle);
2875
2893
  const Grid = react.forwardRef(function Grid2(props, ref) {
2876
2894
  const {
2877
2895
  as,
@@ -2886,7 +2904,7 @@ const Grid = react.forwardRef(function Grid2(props, ref) {
2886
2904
  children,
2887
2905
  ...restProps
2888
2906
  } = props;
2889
- return /* @__PURE__ */jsxRuntime.jsx(Root$p, {
2907
+ return /* @__PURE__ */jsxRuntime.jsx(Root$o, {
2890
2908
  "data-as": typeof as === "string" ? as : void 0,
2891
2909
  "data-ui": "Grid",
2892
2910
  ...restProps,
@@ -2903,12 +2921,12 @@ const Grid = react.forwardRef(function Grid2(props, ref) {
2903
2921
  children
2904
2922
  });
2905
2923
  });
2906
- var __freeze$q = Object.freeze;
2907
- var __defProp$r = Object.defineProperty;
2908
- var __template$q = (cooked, raw) => __freeze$q(__defProp$r(cooked, "raw", {
2909
- value: __freeze$q(raw || cooked.slice())
2924
+ var __freeze$s = Object.freeze;
2925
+ var __defProp$t = Object.defineProperty;
2926
+ var __template$s = (cooked, raw) => __freeze$s(__defProp$t(cooked, "raw", {
2927
+ value: __freeze$s(raw || cooked.slice())
2910
2928
  }));
2911
- var _a$q, _b$g, _c$8;
2929
+ var _a$s, _b$g, _c$8;
2912
2930
  function headingBaseStyle(props) {
2913
2931
  const {
2914
2932
  $accent,
@@ -2917,16 +2935,16 @@ function headingBaseStyle(props) {
2917
2935
  const {
2918
2936
  font
2919
2937
  } = theme.getTheme_v2(props.theme);
2920
- return styled.css(_c$8 || (_c$8 = __template$q(["\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), $accent && styled.css(_a$q || (_a$q = __template$q(["\n color: var(--card-accent-fg-color);\n "]))), $muted && styled.css(_b$g || (_b$g = __template$q(["\n color: var(--card-muted-fg-color);\n "]))), font.code.family);
2938
+ return styled.css(_c$8 || (_c$8 = __template$s(["\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow:\n 0 0 0 1px var(--card-bg-color),\n 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & svg {\n /* Certain popular CSS libraries changes the defaults for SVG display */\n /* Make sure SVGs are rendered as inline elements */\n display: inline;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), $accent && styled.css(_a$s || (_a$s = __template$s(["\n color: var(--card-accent-fg-color);\n "]))), $muted && styled.css(_b$g || (_b$g = __template$s(["\n color: var(--card-muted-fg-color);\n "]))), font.code.family);
2921
2939
  }
2922
- var __freeze$p = Object.freeze;
2923
- var __defProp$q = Object.defineProperty;
2924
- var __template$p = (cooked, raw) => __freeze$p(__defProp$q(cooked, "raw", {
2925
- value: __freeze$p(raw || cooked.slice())
2940
+ var __freeze$r = Object.freeze;
2941
+ var __defProp$s = Object.defineProperty;
2942
+ var __template$r = (cooked, raw) => __freeze$r(__defProp$s(cooked, "raw", {
2943
+ value: __freeze$r(raw || cooked.slice())
2926
2944
  }));
2927
- var _a$p;
2928
- const Root$o = styled__default.default.div(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont);
2929
- const SpanWithTextOverflow = styled__default.default.span(_a$p || (_a$p = __template$p(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n"])));
2945
+ var _a$r;
2946
+ const Root$n = styled__default.default.div(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont);
2947
+ const SpanWithTextOverflow = styled__default.default.span(_a$r || (_a$r = __template$r(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n overflow: clip;\n"])));
2930
2948
  const Heading = react.forwardRef(function Heading2(props, ref) {
2931
2949
  const {
2932
2950
  accent = false,
@@ -2944,7 +2962,7 @@ const Heading = react.forwardRef(function Heading2(props, ref) {
2944
2962
  children
2945
2963
  });
2946
2964
  }
2947
- return /* @__PURE__ */jsxRuntime.jsx(Root$o, {
2965
+ return /* @__PURE__ */jsxRuntime.jsx(Root$n, {
2948
2966
  "data-ui": "Heading",
2949
2967
  ...restProps,
2950
2968
  $accent: accent,
@@ -2985,7 +3003,7 @@ function inlineSpaceStyle(props) {
2985
3003
  };
2986
3004
  });
2987
3005
  }
2988
- const Root$n = styled__default.default(Box)(inlineBaseStyle, inlineSpaceStyle);
3006
+ const Root$m = styled__default.default(Box)(inlineBaseStyle, inlineSpaceStyle);
2989
3007
  const Inline = react.forwardRef(function Inline2(props, ref) {
2990
3008
  const {
2991
3009
  as,
@@ -2996,7 +3014,7 @@ const Inline = react.forwardRef(function Inline2(props, ref) {
2996
3014
  const children = react.useMemo(() => childrenToElementArray(childrenProp).filter(Boolean).map((child, idx) => /* @__PURE__ */jsxRuntime.jsx("div", {
2997
3015
  children: child
2998
3016
  }, idx)), [childrenProp]);
2999
- return /* @__PURE__ */jsxRuntime.jsx(Root$n, {
3017
+ return /* @__PURE__ */jsxRuntime.jsx(Root$m, {
3000
3018
  "data-ui": "Inline",
3001
3019
  ...restProps,
3002
3020
  $space: useArrayProp(space),
@@ -3005,16 +3023,16 @@ const Inline = react.forwardRef(function Inline2(props, ref) {
3005
3023
  children
3006
3024
  });
3007
3025
  });
3008
- var __freeze$o = Object.freeze;
3009
- var __defProp$p = Object.defineProperty;
3010
- var __template$o = (cooked, raw) => __freeze$o(__defProp$p(cooked, "raw", {
3011
- value: __freeze$o(raw || cooked.slice())
3026
+ var __freeze$q = Object.freeze;
3027
+ var __defProp$r = Object.defineProperty;
3028
+ var __template$q = (cooked, raw) => __freeze$q(__defProp$r(cooked, "raw", {
3029
+ value: __freeze$q(raw || cooked.slice())
3012
3030
  }));
3013
- var _a$o;
3031
+ var _a$q;
3014
3032
  function kbdStyle() {
3015
- return styled.css(_a$o || (_a$o = __template$o(["\n --card-bg-color: var(--card-kbd-bg-color);\n --card-border-color: var(--card-kbd-border-color);\n --card-fg-color: var(--card-kbd-fg-color);\n\n box-shadow: inset 0 0 0 1px var(--card-border-color);\n background: var(--card-bg-color);\n font: inherit;\n\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n "])));
3033
+ return styled.css(_a$q || (_a$q = __template$q(["\n --card-bg-color: var(--card-kbd-bg-color);\n --card-border-color: var(--card-kbd-border-color);\n --card-fg-color: var(--card-kbd-fg-color);\n\n box-shadow: inset 0 0 0 1px var(--card-border-color);\n background: var(--card-bg-color);\n font: inherit;\n\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n "])));
3016
3034
  }
3017
- const Root$m = styled__default.default.kbd(responsiveRadiusStyle, kbdStyle);
3035
+ const Root$l = styled__default.default.kbd(responsiveRadiusStyle, kbdStyle);
3018
3036
  const KBD = react.forwardRef(function KBD2(props, ref) {
3019
3037
  const {
3020
3038
  children,
@@ -3023,7 +3041,7 @@ const KBD = react.forwardRef(function KBD2(props, ref) {
3023
3041
  radius = 2,
3024
3042
  ...restProps
3025
3043
  } = props;
3026
- return /* @__PURE__ */jsxRuntime.jsx(Root$m, {
3044
+ return /* @__PURE__ */jsxRuntime.jsx(Root$l, {
3027
3045
  "data-ui": "KBD",
3028
3046
  ...restProps,
3029
3047
  $radius: useArrayProp(radius),
@@ -3040,6 +3058,45 @@ const KBD = react.forwardRef(function KBD2(props, ref) {
3040
3058
  })
3041
3059
  });
3042
3060
  });
3061
+ const origin = {
3062
+ name: "@sanity/ui/origin",
3063
+ fn(_ref3) {
3064
+ let {
3065
+ middlewareData,
3066
+ placement,
3067
+ rects
3068
+ } = _ref3;
3069
+ var _a, _b;
3070
+ const [side] = placement.split("-");
3071
+ const floatingWidth = rects.floating.width;
3072
+ const floatingHeight = rects.floating.height;
3073
+ const shiftX = ((_a = middlewareData.shift) == null ? void 0 : _a.x) || 0;
3074
+ const shiftY = ((_b = middlewareData.shift) == null ? void 0 : _b.y) || 0;
3075
+ if (floatingWidth <= 0 || floatingHeight <= 0) {
3076
+ return {};
3077
+ }
3078
+ const isVerticalPlacement = ["bottom", "top"].includes(side);
3079
+ const {
3080
+ originX,
3081
+ originY
3082
+ } = isVerticalPlacement ? {
3083
+ originX: clamp(0.5 - shiftX / floatingWidth, 0, 1),
3084
+ originY: side === "bottom" ? 0 : 1
3085
+ } : {
3086
+ originX: side === "left" ? 1 : 0,
3087
+ originY: clamp(0.5 - shiftY / floatingHeight, 0, 1)
3088
+ };
3089
+ return {
3090
+ data: {
3091
+ originX,
3092
+ originY
3093
+ }
3094
+ };
3095
+ }
3096
+ };
3097
+ function clamp(num, min, max) {
3098
+ return Math.min(Math.max(num, min), max);
3099
+ }
3043
3100
  function moveTowardsLength(movingPoint, targetPoint, amount) {
3044
3101
  const width = targetPoint.x - movingPoint.x;
3045
3102
  const height = targetPoint.y - movingPoint.y;
@@ -3094,20 +3151,20 @@ function compileCommands(cmds) {
3094
3151
  return "";
3095
3152
  }).join(" ");
3096
3153
  }
3097
- var __freeze$n = Object.freeze;
3098
- var __defProp$o = Object.defineProperty;
3099
- var __template$n = (cooked, raw) => __freeze$n(__defProp$o(cooked, "raw", {
3100
- value: __freeze$n(raw || cooked.slice())
3154
+ var __freeze$p = Object.freeze;
3155
+ var __defProp$q = Object.defineProperty;
3156
+ var __template$p = (cooked, raw) => __freeze$p(__defProp$q(cooked, "raw", {
3157
+ value: __freeze$p(raw || cooked.slice())
3101
3158
  }));
3102
- var _a$n, _b$f, _c$7;
3103
- const Root$l = styled__default.default.div(_ref3 => {
3159
+ var _a$p, _b$f, _c$7;
3160
+ const Root$k = styled__default.default.div(_ref4 => {
3104
3161
  let {
3105
3162
  $w: w
3106
- } = _ref3;
3107
- return styled.css(_a$n || (_a$n = __template$n(["\n position: absolute;\n width: ", "px;\n height: ", "px;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n line-height: 0;\n transform-origin: ", "px ", "px;\n }\n\n [data-placement^='top'] > & {\n bottom: -", "px;\n\n & > svg {\n transform: rotate(0);\n }\n }\n\n [data-placement^='right'] > & {\n left: -", "px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -", "px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -", "px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n "])), w, w, w / 2, w / 2, w, w, w, w);
3163
+ } = _ref4;
3164
+ return styled.css(_a$p || (_a$p = __template$p(["\n position: absolute;\n width: ", "px;\n height: ", "px;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n line-height: 0;\n transform-origin: ", "px ", "px;\n }\n\n [data-placement^='top'] > & {\n bottom: -", "px;\n\n & > svg {\n transform: rotate(0);\n }\n }\n\n [data-placement^='right'] > & {\n left: -", "px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -", "px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -", "px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n "])), w, w, w / 2, w / 2, w, w, w, w);
3108
3165
  });
3109
- const StrokePath = styled__default.default.path(_b$f || (_b$f = __template$n(["\n stroke: var(--card-shadow-outline-color);\n"])));
3110
- const ShapePath = styled__default.default.path(_c$7 || (_c$7 = __template$n(["\n fill: var(--card-bg-color);\n"])));
3166
+ const StrokePath = styled__default.default.path(_b$f || (_b$f = __template$p(["\n stroke: var(--card-shadow-outline-color);\n"])));
3167
+ const ShapePath = styled__default.default.path(_c$7 || (_c$7 = __template$p(["\n fill: var(--card-bg-color);\n"])));
3111
3168
  const Arrow = react.forwardRef(function Arrow2(props, ref) {
3112
3169
  const {
3113
3170
  width: w,
@@ -3143,7 +3200,7 @@ const Arrow = react.forwardRef(function Arrow2(props, ref) {
3143
3200
  const path = compileCommands(cmds);
3144
3201
  const strokePath = "".concat(path);
3145
3202
  const fillPath = "".concat(path, " M ").concat(w, " -1 M 0 -1 Z");
3146
- return /* @__PURE__ */jsxRuntime.jsx(Root$l, {
3203
+ return /* @__PURE__ */jsxRuntime.jsx(Root$k, {
3147
3204
  ...restProps,
3148
3205
  $w: w,
3149
3206
  ref,
@@ -3201,6 +3258,17 @@ function useBoundaryElement() {
3201
3258
  }
3202
3259
  return value || DEFAULT_VALUE;
3203
3260
  }
3261
+ function ConditionalWrapper(_ref5) {
3262
+ let {
3263
+ children,
3264
+ condition,
3265
+ wrapper
3266
+ } = _ref5;
3267
+ if (!condition) {
3268
+ return children;
3269
+ }
3270
+ return wrapper(children);
3271
+ }
3204
3272
  function findMaxBreakpoints(media, width) {
3205
3273
  const ret = [];
3206
3274
  for (let i = 0; i < media.length; i += 1) {
@@ -3250,8 +3318,8 @@ const ElementQuery = react.forwardRef(function ElementQuery2(props, ref) {
3250
3318
  children
3251
3319
  });
3252
3320
  });
3253
- var __defProp$n = Object.defineProperty;
3254
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp$n(obj, key, {
3321
+ var __defProp$p = Object.defineProperty;
3322
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp$p(obj, key, {
3255
3323
  enumerable: true,
3256
3324
  configurable: true,
3257
3325
  writable: true,
@@ -3480,7 +3548,7 @@ function LayerProvider(props) {
3480
3548
  children
3481
3549
  });
3482
3550
  }
3483
- const Root$k = styled__default.default.div({
3551
+ const Root$j = styled__default.default.div({
3484
3552
  position: "relative"
3485
3553
  });
3486
3554
  const LayerChildren = react.forwardRef(function LayerChildren2(props, ref) {
@@ -3516,7 +3584,7 @@ const LayerChildren = react.forwardRef(function LayerChildren2(props, ref) {
3516
3584
  lastFocusedRef.current = target;
3517
3585
  }
3518
3586
  }, [forwardedRef, isTopLayer, onFocus]);
3519
- return /* @__PURE__ */jsxRuntime.jsx(Root$k, {
3587
+ return /* @__PURE__ */jsxRuntime.jsx(Root$j, {
3520
3588
  ...restProps,
3521
3589
  "data-ui": "Layer",
3522
3590
  onFocus: handleFocus,
@@ -3627,19 +3695,19 @@ function PortalProvider(props) {
3627
3695
  children
3628
3696
  });
3629
3697
  }
3630
- var __freeze$m = Object.freeze;
3631
- var __defProp$m = Object.defineProperty;
3632
- var __template$m = (cooked, raw) => __freeze$m(__defProp$m(cooked, "raw", {
3633
- value: __freeze$m(raw || cooked.slice())
3698
+ var __freeze$o = Object.freeze;
3699
+ var __defProp$o = Object.defineProperty;
3700
+ var __template$o = (cooked, raw) => __freeze$o(__defProp$o(cooked, "raw", {
3701
+ value: __freeze$o(raw || cooked.slice())
3634
3702
  }));
3635
- var _a$m;
3636
- const Root$j = styled__default.default.div(_a$m || (_a$m = __template$m(["\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n"])));
3703
+ var _a$o;
3704
+ const Root$i = styled__default.default.div(_a$o || (_a$o = __template$o(["\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n overflow: clip;\n"])));
3637
3705
  const SrOnly = react.forwardRef(function SrOnly2(props, ref) {
3638
3706
  const {
3639
3707
  as,
3640
3708
  children
3641
3709
  } = props;
3642
- return /* @__PURE__ */jsxRuntime.jsx(Root$j, {
3710
+ return /* @__PURE__ */jsxRuntime.jsx(Root$i, {
3643
3711
  "aria-hidden": true,
3644
3712
  as,
3645
3713
  "data-ui": "SrOnly",
@@ -3647,14 +3715,14 @@ const SrOnly = react.forwardRef(function SrOnly2(props, ref) {
3647
3715
  children
3648
3716
  });
3649
3717
  });
3650
- var __freeze$l = Object.freeze;
3651
- var __defProp$l = Object.defineProperty;
3652
- var __template$l = (cooked, raw) => __freeze$l(__defProp$l(cooked, "raw", {
3653
- value: __freeze$l(raw || cooked.slice())
3718
+ var __freeze$n = Object.freeze;
3719
+ var __defProp$n = Object.defineProperty;
3720
+ var __template$n = (cooked, raw) => __freeze$n(__defProp$n(cooked, "raw", {
3721
+ value: __freeze$n(raw || cooked.slice())
3654
3722
  }));
3655
- var _a$l, _b$e;
3656
- const Root$i = styled__default.default.div(_a$l || (_a$l = __template$l(["\n position: relative;\n"])));
3657
- const ItemWrapper = styled__default.default.div(_b$e || (_b$e = __template$l(["\n position: absolute;\n left: 0;\n right: 0;\n"])));
3723
+ var _a$n, _b$e;
3724
+ const Root$h = styled__default.default.div(_a$n || (_a$n = __template$n(["\n position: relative;\n"])));
3725
+ const ItemWrapper = styled__default.default.div(_b$e || (_b$e = __template$n(["\n position: absolute;\n left: 0;\n right: 0;\n"])));
3658
3726
  const VirtualList = react.forwardRef(function VirtualList2(props, ref) {
3659
3727
  const {
3660
3728
  as = "div",
@@ -3760,7 +3828,7 @@ const VirtualList = react.forwardRef(function VirtualList2(props, ref) {
3760
3828
  const wrapperStyle = react.useMemo(() => ({
3761
3829
  height
3762
3830
  }), [height]);
3763
- return /* @__PURE__ */jsxRuntime.jsx(Root$i, {
3831
+ return /* @__PURE__ */jsxRuntime.jsx(Root$h, {
3764
3832
  as,
3765
3833
  "data-ui": "VirtualList",
3766
3834
  ...restProps,
@@ -3878,17 +3946,17 @@ function calcMaxWidth(params) {
3878
3946
  }
3879
3947
  return Math.min(currentWidth != null ? currentWidth : Infinity, (boundaryWidth || Infinity) - DEFAULT_POPOVER_PADDING * 2);
3880
3948
  }
3881
- const Root$h = styled__default.default(Card)({
3882
- "&:not([hidden])": {
3883
- display: "flex"
3884
- },
3885
- flexDirection: "column",
3886
- width: "max-content",
3887
- minWidth: "min-content"
3888
- });
3949
+ var __freeze$m = Object.freeze;
3950
+ var __defProp$m = Object.defineProperty;
3951
+ var __template$m = (cooked, raw) => __freeze$m(__defProp$m(cooked, "raw", {
3952
+ value: __freeze$m(raw || cooked.slice())
3953
+ }));
3954
+ var _a$m;
3955
+ const MotionCard$1 = styled__default.default(framerMotion.motion(Card))(_a$m || (_a$m = __template$m(["\n &:not([hidden]) {\n display: flex;\n }\n flex-direction: column;\n width: max-content;\n min-width: min-content;\n"])));
3889
3956
  const PopoverCard = react.memo(react.forwardRef(function PopoverCard2(props, ref) {
3890
3957
  const {
3891
3958
  __unstable_margins: marginsProp,
3959
+ animate,
3892
3960
  arrow,
3893
3961
  arrowRef,
3894
3962
  arrowX,
@@ -3896,6 +3964,8 @@ const PopoverCard = react.memo(react.forwardRef(function PopoverCard2(props, ref
3896
3964
  children,
3897
3965
  padding,
3898
3966
  placement,
3967
+ originX,
3968
+ originY,
3899
3969
  overflow,
3900
3970
  radius,
3901
3971
  scheme,
@@ -3915,20 +3985,22 @@ const PopoverCard = react.memo(react.forwardRef(function PopoverCard2(props, ref
3915
3985
  const x = (xProp != null ? xProp : 0) + margins[3];
3916
3986
  const y = (yProp != null ? yProp : 0) + margins[0];
3917
3987
  const rootStyle = react.useMemo(() => ({
3988
+ left: x,
3989
+ originX,
3990
+ originY,
3918
3991
  position: strategy,
3919
3992
  top: y,
3920
- left: x,
3921
3993
  width,
3922
3994
  zIndex,
3923
3995
  ...style
3924
- }), [strategy, style, width, x, y, zIndex]);
3996
+ }), [originX, originY, strategy, style, width, x, y, zIndex]);
3925
3997
  const arrowStyle = react.useMemo(() => ({
3926
3998
  left: arrowX !== null ? arrowX : void 0,
3927
3999
  top: arrowY !== null ? arrowY : void 0,
3928
4000
  right: void 0,
3929
4001
  bottom: void 0
3930
4002
  }), [arrowX, arrowY]);
3931
- return /* @__PURE__ */jsxRuntime.jsxs(Root$h, {
4003
+ return /* @__PURE__ */jsxRuntime.jsxs(MotionCard$1, {
3932
4004
  "data-ui": "Popover",
3933
4005
  ...restProps,
3934
4006
  "data-placement": placement,
@@ -3939,6 +4011,7 @@ const PopoverCard = react.memo(react.forwardRef(function PopoverCard2(props, ref
3939
4011
  sizing: "border",
3940
4012
  style: rootStyle,
3941
4013
  tone,
4014
+ ...(animate ? POPOVER_MOTION_PROPS : {}),
3942
4015
  children: [/* @__PURE__ */jsxRuntime.jsx(Flex, {
3943
4016
  "data-ui": "Popover__wrapper",
3944
4017
  direction: "column",
@@ -3961,7 +4034,7 @@ const PopoverCard = react.memo(react.forwardRef(function PopoverCard2(props, ref
3961
4034
  }));
3962
4035
  PopoverCard.displayName = "PopoverCard";
3963
4036
  const Popover = react.memo(react.forwardRef(function Popover2(props, ref) {
3964
- var _a, _b, _c, _d, _e, _f, _g, _h;
4037
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
3965
4038
  const {
3966
4039
  container,
3967
4040
  layer
@@ -3969,6 +4042,7 @@ const Popover = react.memo(react.forwardRef(function Popover2(props, ref) {
3969
4042
  const boundaryElementContext = useBoundaryElement();
3970
4043
  const {
3971
4044
  __unstable_margins: margins = DEFAULT_POPOVER_MARGINS,
4045
+ animate = false,
3972
4046
  arrow: arrowProp = false,
3973
4047
  boundaryElement = boundaryElementContext.element,
3974
4048
  children: childProp,
@@ -4056,13 +4130,13 @@ const Popover = react.memo(react.forwardRef(function Popover2(props, ref) {
4056
4130
  }));
4057
4131
  if (constrainSize || matchReferenceWidth) {
4058
4132
  ret.push(size({
4059
- apply(_ref4) {
4133
+ apply(_ref6) {
4060
4134
  let {
4061
4135
  availableWidth,
4062
4136
  availableHeight,
4063
4137
  elements,
4064
4138
  referenceWidth
4065
- } = _ref4;
4139
+ } = _ref6;
4066
4140
  referenceWidthRef.current = referenceWidth;
4067
4141
  const _currentWidth = widthRef.current;
4068
4142
  const _maxWidth = maxWidthRef.current;
@@ -4096,13 +4170,16 @@ const Popover = react.memo(react.forwardRef(function Popover2(props, ref) {
4096
4170
  padding: DEFAULT_POPOVER_PADDING
4097
4171
  }));
4098
4172
  }
4173
+ if (animate) {
4174
+ ret.push(origin);
4175
+ }
4099
4176
  ret.push(reactDom$1.hide({
4100
4177
  boundary: referenceBoundary || void 0,
4101
4178
  padding: DEFAULT_POPOVER_PADDING,
4102
4179
  strategy: "referenceHidden"
4103
4180
  }));
4104
4181
  return ret;
4105
- }, [arrowProp, constrainSize, fallbackPlacements, floatingBoundary, margins, matchReferenceWidth, preventOverflow, referenceBoundary]);
4182
+ }, [animate, arrowProp, constrainSize, fallbackPlacements, floatingBoundary, margins, matchReferenceWidth, preventOverflow, referenceBoundary]);
4106
4183
  const {
4107
4184
  x,
4108
4185
  y,
@@ -4119,6 +4196,8 @@ const Popover = react.memo(react.forwardRef(function Popover2(props, ref) {
4119
4196
  const referenceHidden = (_f = middlewareData.hide) == null ? void 0 : _f.referenceHidden;
4120
4197
  const arrowX = (_g = middlewareData.arrow) == null ? void 0 : _g.x;
4121
4198
  const arrowY = (_h = middlewareData.arrow) == null ? void 0 : _h.y;
4199
+ const originX = (_i = middlewareData["@sanity/ui/origin"]) == null ? void 0 : _i.originX;
4200
+ const originY = (_j = middlewareData["@sanity/ui/origin"]) == null ? void 0 : _j.originY;
4122
4201
  const setArrow = react.useCallback(arrowEl => {
4123
4202
  arrowRef.current = arrowEl;
4124
4203
  }, []);
@@ -4161,6 +4240,7 @@ const Popover = react.memo(react.forwardRef(function Popover2(props, ref) {
4161
4240
  children: /* @__PURE__ */jsxRuntime.jsx(PopoverCard, {
4162
4241
  ...restProps,
4163
4242
  __unstable_margins: margins,
4243
+ animate,
4164
4244
  arrow: arrowProp,
4165
4245
  arrowRef: setArrow,
4166
4246
  arrowX,
@@ -4173,6 +4253,8 @@ const Popover = react.memo(react.forwardRef(function Popover2(props, ref) {
4173
4253
  ref: setFloating,
4174
4254
  scheme,
4175
4255
  shadow,
4256
+ originX,
4257
+ originY,
4176
4258
  strategy,
4177
4259
  tone,
4178
4260
  width: matchReferenceWidth ? referenceWidthRef.current : width,
@@ -4182,23 +4264,31 @@ const Popover = react.memo(react.forwardRef(function Popover2(props, ref) {
4182
4264
  })
4183
4265
  });
4184
4266
  return /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, {
4185
- children: [open && /* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment, {
4186
- children: portal ? /* @__PURE__ */jsxRuntime.jsx(Portal, {
4187
- __unstable_name: typeof portal === "string" ? portal : void 0,
4267
+ children: [/* @__PURE__ */jsxRuntime.jsx(ConditionalWrapper, {
4268
+ condition: animate,
4269
+ wrapper: children => /* @__PURE__ */jsxRuntime.jsx(framerMotion.AnimatePresence, {
4270
+ children
4271
+ }),
4272
+ children: open && /* @__PURE__ */jsxRuntime.jsx(ConditionalWrapper, {
4273
+ condition: !!portal,
4274
+ wrapper: children => /* @__PURE__ */jsxRuntime.jsx(Portal, {
4275
+ __unstable_name: typeof portal === "string" ? portal : void 0,
4276
+ children
4277
+ }),
4188
4278
  children: popover
4189
- }) : popover
4279
+ })
4190
4280
  }), child]
4191
4281
  });
4192
4282
  }));
4193
4283
  Popover.displayName = "Popover";
4194
- var __freeze$k = Object.freeze;
4195
- var __defProp$k = Object.defineProperty;
4196
- var __template$k = (cooked, raw) => __freeze$k(__defProp$k(cooked, "raw", {
4197
- value: __freeze$k(raw || cooked.slice())
4284
+ var __freeze$l = Object.freeze;
4285
+ var __defProp$l = Object.defineProperty;
4286
+ var __template$l = (cooked, raw) => __freeze$l(__defProp$l(cooked, "raw", {
4287
+ value: __freeze$l(raw || cooked.slice())
4198
4288
  }));
4199
- var _a$k, _b$d;
4289
+ var _a$l, _b$d;
4200
4290
  function radioBaseStyle() {
4201
- return styled.css(_a$k || (_a$k = __template$k(["\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n "])));
4291
+ return styled.css(_a$l || (_a$l = __template$l(["\n position: relative;\n\n &:not([hidden]) {\n display: inline-block;\n }\n\n &[data-read-only] {\n outline: 1px solid red;\n }\n "])));
4202
4292
  }
4203
4293
  function inputElementStyle(props) {
4204
4294
  const {
@@ -4206,7 +4296,7 @@ function inputElementStyle(props) {
4206
4296
  input
4207
4297
  } = theme.getTheme_v2(props.theme);
4208
4298
  const dist = (input.radio.size - input.radio.markSize) / 2;
4209
- return styled.css(_b$d || (_b$d = __template$k(["\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ", ";\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ", ";\n width: ", ";\n border-radius: ", ";\n background: ", ";\n box-shadow: ", ";\n\n &::after {\n content: '';\n position: absolute;\n top: ", ";\n left: ", ";\n height: ", ";\n width: ", ";\n border-radius: ", ";\n background: ", ";\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ", ";\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ", ";\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ", ";\n box-shadow: ", ";\n &::after {\n background: ", ";\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ", ";\n background: ", ";\n\n &::after {\n background: ", ";\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ", ";\n background: ", ";\n\n &::after {\n background: ", ";\n }\n }\n "])), rem(input.radio.size / 2), rem(input.radio.size), rem(input.radio.size), rem(input.radio.size / 2), color.input.default.enabled.bg, focusRingBorderStyle({
4299
+ return styled.css(_b$d || (_b$d = __template$l(["\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n z-index: 1;\n padding: 0;\n margin: 0;\n border-radius: ", ";\n border: none;\n\n /* enabled */\n & + span {\n display: block;\n position: relative;\n height: ", ";\n width: ", ";\n border-radius: ", ";\n background: ", ";\n box-shadow: ", ";\n\n &::after {\n content: '';\n position: absolute;\n top: ", ";\n left: ", ";\n height: ", ";\n width: ", ";\n border-radius: ", ";\n background: ", ";\n opacity: 0;\n }\n }\n\n /* focused */\n &:not(:disabled):focus + span {\n box-shadow: ", ";\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ", ";\n }\n\n &:checked + span::after {\n opacity: 1;\n }\n\n /* customValidity */\n &[data-error] + span {\n background-color: ", ";\n box-shadow: ", ";\n &::after {\n background: ", ";\n }\n }\n\n /* read only */\n &[data-read-only] + span {\n box-shadow: 0 0 0 1px ", ";\n background: ", ";\n\n &::after {\n background: ", ";\n }\n }\n\n /* disabled */\n &:not([data-read-only]):disabled + span {\n box-shadow: 0 0 0 1px ", ";\n background: ", ";\n\n &::after {\n background: ", ";\n }\n }\n "])), rem(input.radio.size / 2), rem(input.radio.size), rem(input.radio.size), rem(input.radio.size / 2), color.input.default.enabled.bg, focusRingBorderStyle({
4210
4300
  color: color.input.default.enabled.border,
4211
4301
  width: input.border.width
4212
4302
  }), rem(dist), rem(dist), rem(input.radio.markSize), rem(input.radio.markSize), rem(input.radio.markSize / 2), color.input.default.enabled.fg, focusRingStyle({
@@ -4251,27 +4341,27 @@ const Radio = react.forwardRef(function Radio2(props, forwardedRef) {
4251
4341
  }), /* @__PURE__ */jsxRuntime.jsx("span", {})]
4252
4342
  });
4253
4343
  });
4254
- var __freeze$j = Object.freeze;
4255
- var __defProp$j = Object.defineProperty;
4256
- var __template$j = (cooked, raw) => __freeze$j(__defProp$j(cooked, "raw", {
4257
- value: __freeze$j(raw || cooked.slice())
4344
+ var __freeze$k = Object.freeze;
4345
+ var __defProp$k = Object.defineProperty;
4346
+ var __template$k = (cooked, raw) => __freeze$k(__defProp$k(cooked, "raw", {
4347
+ value: __freeze$k(raw || cooked.slice())
4258
4348
  }));
4259
- var _a$j, _b$c, _c$6, _d$5;
4349
+ var _a$k, _b$c, _c$6, _d$5;
4260
4350
  function rootStyle() {
4261
- return styled.css(_a$j || (_a$j = __template$j(["\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n "])));
4351
+ return styled.css(_a$k || (_a$k = __template$k(["\n position: relative;\n width: -moz-available;\n width: -webkit-fill-available;\n width: stretch;\n\n &:not([hidden]) {\n display: inline-block;\n }\n "])));
4262
4352
  }
4263
4353
  function inputBaseStyle(props) {
4264
4354
  const {
4265
4355
  font
4266
4356
  } = theme.getTheme_v2(props.theme);
4267
- return styled.css(_b$c || (_b$c = __template$j(["\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ", ";\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n "])), font.text.family);
4357
+ return styled.css(_b$c || (_b$c = __template$k(["\n -webkit-font-smoothing: antialiased;\n appearance: none;\n border: 0;\n font-family: ", ";\n color: inherit;\n width: 100%;\n outline: none;\n margin: 0;\n\n &:disabled {\n opacity: 1;\n }\n "])), font.text.family);
4268
4358
  }
4269
4359
  function inputColorStyle(props) {
4270
4360
  const {
4271
4361
  color,
4272
4362
  input
4273
4363
  } = theme.getTheme_v2(props.theme);
4274
- return styled.css(_c$6 || (_c$6 = __template$j(["\n /* enabled */\n background-color: ", ";\n color: ", ";\n box-shadow: ", ";\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ", ";\n color: ", ";\n box-shadow: ", ";\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ", ";\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ", ";\n color: ", ";\n box-shadow: ", ";\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ", ";\n color: ", ";\n box-shadow: ", ";\n }\n "])), color.input.default.enabled.bg, color.input.default.enabled.fg, focusRingBorderStyle({
4364
+ return styled.css(_c$6 || (_c$6 = __template$k(["\n /* enabled */\n background-color: ", ";\n color: ", ";\n box-shadow: ", ";\n\n /* hovered */\n @media (hover: hover) {\n &:not(:disabled):hover {\n background-color: ", ";\n color: ", ";\n box-shadow: ", ";\n }\n }\n\n /* focused */\n &:not(:disabled):focus {\n box-shadow: ", ";\n }\n\n /* read-only */\n &[data-read-only] {\n background-color: ", ";\n color: ", ";\n box-shadow: ", ";\n }\n\n /* disabled */\n &:not([data-read-only]):disabled {\n background-color: ", ";\n color: ", ";\n box-shadow: ", ";\n }\n "])), color.input.default.enabled.bg, color.input.default.enabled.fg, focusRingBorderStyle({
4275
4365
  color: color.input.default.enabled.border,
4276
4366
  width: input.border.width
4277
4367
  }), color.input.default.hovered.bg, color.input.default.hovered.fg, focusRingBorderStyle({
@@ -4314,7 +4404,7 @@ function iconBoxStyle(props) {
4314
4404
  const {
4315
4405
  color
4316
4406
  } = theme.getTheme_v2(props.theme);
4317
- return styled.css(_d$5 || (_d$5 = __template$j(["\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ", ";\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ", ";\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ", ";\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ", ";\n }\n "])), color.input.default.enabled.fg, color.input.default.hovered.fg, color.input.default.disabled.fg, color.input.default.readOnly.fg);
4407
+ return styled.css(_d$5 || (_d$5 = __template$k(["\n pointer-events: none;\n position: absolute;\n top: 0;\n right: 0;\n\n /* enabled */\n --card-fg-color: ", ";\n\n /* hover */\n @media (hover: hover) {\n select:not(disabled):not(:read-only):hover + && {\n --card-fg-color: ", ";\n }\n }\n\n /* disabled */\n select:disabled + && {\n --card-fg-color: ", ";\n }\n\n /* read-only */\n select[data-read-only] + && {\n --card-fg-color: ", ";\n }\n "])), color.input.default.enabled.fg, color.input.default.hovered.fg, color.input.default.disabled.fg, color.input.default.readOnly.fg);
4318
4408
  }
4319
4409
  const selectStyle = {
4320
4410
  root: rootStyle,
@@ -4398,24 +4488,24 @@ const Stack = react.forwardRef(function Stack2(props, ref) {
4398
4488
  ref
4399
4489
  });
4400
4490
  });
4401
- var __freeze$i = Object.freeze;
4402
- var __defProp$i = Object.defineProperty;
4403
- var __template$i = (cooked, raw) => __freeze$i(__defProp$i(cooked, "raw", {
4404
- value: __freeze$i(raw || cooked.slice())
4491
+ var __freeze$j = Object.freeze;
4492
+ var __defProp$j = Object.defineProperty;
4493
+ var __template$j = (cooked, raw) => __freeze$j(__defProp$j(cooked, "raw", {
4494
+ value: __freeze$j(raw || cooked.slice())
4405
4495
  }));
4406
- var _a$i, _b$b, _c$5, _d$4, _e$2, _f$2, _g;
4496
+ var _a$j, _b$b, _c$5, _d$4, _e$2, _f$2, _g;
4407
4497
  function switchBaseStyles() {
4408
- return styled.css(_a$i || (_a$i = __template$i(["\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n "])));
4498
+ return styled.css(_a$j || (_a$j = __template$j(["\n position: relative;\n &:not([hidden]) {\n display: inline-block;\n }\n "])));
4409
4499
  }
4410
4500
  function switchInputStyles() {
4411
- return styled.css(_b$b || (_b$b = __template$i(["\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n "])));
4501
+ return styled.css(_b$b || (_b$b = __template$j(["\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n opacity: 0;\n height: 100%;\n width: 100%;\n outline: none;\n padding: 0;\n margin: 0;\n\n /* Place the input element above the representation element */\n z-index: 1;\n "])));
4412
4502
  }
4413
4503
  function switchRepresentationStyles(props) {
4414
4504
  const {
4415
4505
  color,
4416
4506
  input
4417
4507
  } = theme.getTheme_v2(props.theme);
4418
- return styled.css(_c$5 || (_c$5 = __template$i(["\n --switch-bg-color: ", ";\n --switch-fg-color: ", ";\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ", ";\n height: ", ";\n border-radius: ", ";\n\n /* Make sure it\u2019s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ", ";\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ", ";\n --switch-fg-color: ", ";\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ", ";\n --switch-fg-color: ", ";\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ", ";\n --switch-fg-color: ", ";\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ", ";\n --switch-fg-color: ", ";\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ", ";\n --switch-fg-color: ", ";\n }\n "])), color.input.default.enabled.border, color.input.default.enabled.bg, rem(input.switch.width), rem(input.switch.height), rem(input.switch.height / 2), focusRingStyle({
4508
+ return styled.css(_c$5 || (_c$5 = __template$j(["\n --switch-bg-color: ", ";\n --switch-fg-color: ", ";\n --switch-box-shadow: none;\n\n &:not([hidden]) {\n display: block;\n }\n position: relative;\n width: ", ";\n height: ", ";\n border-radius: ", ";\n\n /* Make sure it\u2019s not possible to interact with the wrapper element */\n pointer-events: none;\n\n &:after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n box-shadow: var(--switch-box-shadow);\n border-radius: inherit;\n }\n\n /* Focus styles */\n input:focus + && {\n --switch-box-shadow: ", ";\n }\n\n input:focus:not(:focus-visible) + && {\n --switch-box-shadow: none;\n }\n\n input:checked + && {\n --switch-bg-color: ", ";\n --switch-fg-color: ", ";\n }\n\n @media (hover: hover) {\n input:not(:disabled):hover + && {\n --switch-bg-color: ", ";\n --switch-fg-color: ", ";\n }\n\n input:not(:disabled):checked:hover + && {\n --switch-bg-color: ", ";\n --switch-fg-color: ", ";\n }\n }\n\n input:not([data-read-only]):disabled + && {\n --switch-bg-color: ", ";\n --switch-fg-color: ", ";\n }\n\n input[data-read-only]:disabled + && {\n --switch-bg-color: ", ";\n --switch-fg-color: ", ";\n }\n "])), color.input.default.enabled.border, color.input.default.enabled.bg, rem(input.switch.width), rem(input.switch.height), rem(input.switch.height / 2), focusRingStyle({
4419
4509
  focusRing: input.switch.focusRing
4420
4510
  }), color.input.default.enabled.fg, color.input.default.enabled.bg, color.input.default.hovered.border, color.input.default.hovered.bg, color.input.default.enabled.fg, color.input.default.enabled.bg, color.input.default.disabled.border, color.input.default.disabled.bg, color.input.default.readOnly.border, color.input.default.readOnly.bg);
4421
4511
  }
@@ -4423,7 +4513,7 @@ function switchTrackStyles(props) {
4423
4513
  const {
4424
4514
  input
4425
4515
  } = theme.getTheme_v2(props.theme);
4426
- return styled.css(_d$4 || (_d$4 = __template$i(["\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ", ";\n height: ", ";\n border-radius: ", ";\n "])), rem(input.switch.width), rem(input.switch.height), rem(input.switch.height / 2));
4516
+ return styled.css(_d$4 || (_d$4 = __template$j(["\n &:not([hidden]) {\n display: block;\n }\n background-color: var(--switch-bg-color);\n position: absolute;\n left: 0;\n top: 0;\n width: ", ";\n height: ", ";\n border-radius: ", ";\n "])), rem(input.switch.width), rem(input.switch.height), rem(input.switch.height / 2));
4427
4517
  }
4428
4518
  function switchThumbStyles(props) {
4429
4519
  const {
@@ -4439,7 +4529,7 @@ function switchThumbStyles(props) {
4439
4529
  const checkedOffset = trackWidth - trackPadding * 2 - size;
4440
4530
  const indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding;
4441
4531
  const checked = $indeterminate !== true && props.$checked === true;
4442
- return styled.css(_g || (_g = __template$i(["\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ", ";\n top: ", ";\n height: ", ";\n width: ", ";\n border-radius: ", ";\n transition-property: transform;\n transition-duration: ", "ms;\n transition-timing-function: ", ";\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);\n\n ", "\n\n ", "\n "])), rem(trackPadding), rem(trackPadding), rem(size), rem(size), rem(size / 2), input.switch.transitionDurationMs, input.switch.transitionTimingFunction, checked && styled.css(_e$2 || (_e$2 = __template$i(["\n transform: translate3d(", "px, 0, 0);\n "])), checkedOffset), $indeterminate && styled.css(_f$2 || (_f$2 = __template$i(["\n transform: translate3d(", "px, 0, 0);\n "])), indeterminateOffset));
4532
+ return styled.css(_g || (_g = __template$j(["\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ", ";\n top: ", ";\n height: ", ";\n width: ", ";\n border-radius: ", ";\n transition-property: transform;\n transition-duration: ", "ms;\n transition-timing-function: ", ";\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.1);\n\n ", "\n\n ", "\n "])), rem(trackPadding), rem(trackPadding), rem(size), rem(size), rem(size / 2), input.switch.transitionDurationMs, input.switch.transitionTimingFunction, checked && styled.css(_e$2 || (_e$2 = __template$j(["\n transform: translate3d(", "px, 0, 0);\n "])), checkedOffset), $indeterminate && styled.css(_f$2 || (_f$2 = __template$j(["\n transform: translate3d(", "px, 0, 0);\n "])), indeterminateOffset));
4443
4533
  }
4444
4534
  const Root$d = styled__default.default.span(switchBaseStyles);
4445
4535
  const Input$2 = styled__default.default.input(switchInputStyles);
@@ -4483,14 +4573,14 @@ const Switch = react.forwardRef(function Switch2(props, forwardedRef) {
4483
4573
  })]
4484
4574
  });
4485
4575
  });
4486
- var __freeze$h = Object.freeze;
4487
- var __defProp$h = Object.defineProperty;
4488
- var __template$h = (cooked, raw) => __freeze$h(__defProp$h(cooked, "raw", {
4489
- value: __freeze$h(raw || cooked.slice())
4576
+ var __freeze$i = Object.freeze;
4577
+ var __defProp$i = Object.defineProperty;
4578
+ var __template$i = (cooked, raw) => __freeze$i(__defProp$i(cooked, "raw", {
4579
+ value: __freeze$i(raw || cooked.slice())
4490
4580
  }));
4491
- var _a$h;
4581
+ var _a$i;
4492
4582
  const Root$c = styled__default.default.span(textInputRootStyle);
4493
- const InputRoot$1 = styled__default.default.span(_a$h || (_a$h = __template$h(["\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n"])));
4583
+ const InputRoot$1 = styled__default.default.span(_a$i || (_a$i = __template$i(["\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n"])));
4494
4584
  const Input$1 = styled__default.default.textarea(responsiveInputPaddingStyle, textInputBaseStyle, textInputFontSizeStyle);
4495
4585
  const Presentation$1 = styled__default.default.div(responsiveRadiusStyle, textInputRepresentationStyle);
4496
4586
  const TextArea = react.forwardRef(function TextArea2(props, forwardedRef) {
@@ -4534,30 +4624,30 @@ const TextArea = react.forwardRef(function TextArea2(props, forwardedRef) {
4534
4624
  })
4535
4625
  });
4536
4626
  });
4537
- var __freeze$g = Object.freeze;
4538
- var __defProp$g = Object.defineProperty;
4539
- var __template$g = (cooked, raw) => __freeze$g(__defProp$g(cooked, "raw", {
4540
- value: __freeze$g(raw || cooked.slice())
4627
+ var __freeze$h = Object.freeze;
4628
+ var __defProp$h = Object.defineProperty;
4629
+ var __template$h = (cooked, raw) => __freeze$h(__defProp$h(cooked, "raw", {
4630
+ value: __freeze$h(raw || cooked.slice())
4541
4631
  }));
4542
- var _a$g, _b$a, _c$4, _d$3, _e$1, _f$1;
4632
+ var _a$h, _b$a, _c$4, _d$3, _e$1, _f$1;
4543
4633
  const CLEAR_BUTTON_BOX_STYLE = {
4544
4634
  zIndex: 2
4545
4635
  };
4546
4636
  const Root$b = styled__default.default(Card).attrs({
4547
4637
  forwardedAs: "span"
4548
4638
  })(textInputRootStyle);
4549
- const InputRoot = styled__default.default.span(_a$g || (_a$g = __template$g(["\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n"])));
4639
+ const InputRoot = styled__default.default.span(_a$h || (_a$h = __template$h(["\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n"])));
4550
4640
  const Prefix = styled__default.default(Card).attrs({
4551
4641
  forwardedAs: "span"
4552
- })(_b$a || (_b$a = __template$g(["\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n"])));
4642
+ })(_b$a || (_b$a = __template$h(["\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n"])));
4553
4643
  const Suffix = styled__default.default(Card).attrs({
4554
4644
  forwardedAs: "span"
4555
- })(_c$4 || (_c$4 = __template$g(["\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n"])));
4645
+ })(_c$4 || (_c$4 = __template$h(["\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n\n & > span {\n display: block;\n margin: -1px;\n }\n"])));
4556
4646
  const Input = styled__default.default.input(responsiveInputPaddingStyle, textInputBaseStyle, textInputFontSizeStyle);
4557
4647
  const Presentation = styled__default.default.span(responsiveRadiusStyle, textInputRepresentationStyle);
4558
- const LeftBox = styled__default.default(Box)(_d$3 || (_d$3 = __template$g(["\n position: absolute;\n top: 0;\n left: 0;\n"])));
4559
- const RightBox = styled__default.default(Box)(_e$1 || (_e$1 = __template$g(["\n position: absolute;\n top: 0;\n right: 0;\n"])));
4560
- const RightCard = styled__default.default(Card)(_f$1 || (_f$1 = __template$g(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
4648
+ const LeftBox = styled__default.default(Box)(_d$3 || (_d$3 = __template$h(["\n position: absolute;\n top: 0;\n left: 0;\n"])));
4649
+ const RightBox = styled__default.default(Box)(_e$1 || (_e$1 = __template$h(["\n position: absolute;\n top: 0;\n right: 0;\n"])));
4650
+ const RightCard = styled__default.default(Card)(_f$1 || (_f$1 = __template$h(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
4561
4651
  const TextInputClearButton = styled__default.default(Button)({
4562
4652
  "&:not([hidden])": {
4563
4653
  display: "block"
@@ -4725,17 +4815,6 @@ function useDelayedState(initialState) {
4725
4815
  }, []);
4726
4816
  return [state, onStateChange];
4727
4817
  }
4728
- function ConditionalWrapper(_ref5) {
4729
- let {
4730
- children,
4731
- condition,
4732
- wrapper
4733
- } = _ref5;
4734
- if (!condition) {
4735
- return children;
4736
- }
4737
- return wrapper(children);
4738
- }
4739
4818
  const DEFAULT_TOOLTIP_ARROW_WIDTH = 15;
4740
4819
  const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6;
4741
4820
  const DEFAULT_TOOLTIP_ARROW_RADIUS = 2;
@@ -4755,6 +4834,63 @@ const DEFAULT_FALLBACK_PLACEMENTS = {
4755
4834
  "right-start": ["right", "right-end", "left-start", "top-start", "bottom-start"],
4756
4835
  "right-end": ["right", "right-start", "left-end", "top-end", "bottom-end"]
4757
4836
  };
4837
+ var __freeze$g = Object.freeze;
4838
+ var __defProp$g = Object.defineProperty;
4839
+ var __template$g = (cooked, raw) => __freeze$g(__defProp$g(cooked, "raw", {
4840
+ value: __freeze$g(raw || cooked.slice())
4841
+ }));
4842
+ var _a$g;
4843
+ const MotionCard = styled__default.default(framerMotion.motion(Card))(_a$g || (_a$g = __template$g([""])));
4844
+ const TooltipCard = react.memo(react.forwardRef(function TooltipCard2(props, ref) {
4845
+ const {
4846
+ animate,
4847
+ arrow,
4848
+ arrowRef,
4849
+ arrowX,
4850
+ arrowY,
4851
+ children,
4852
+ originX,
4853
+ originY,
4854
+ padding,
4855
+ placement,
4856
+ radius,
4857
+ scheme,
4858
+ shadow,
4859
+ style,
4860
+ ...restProps
4861
+ } = props;
4862
+ const rootStyle = react.useMemo(() => ({
4863
+ originX,
4864
+ originY,
4865
+ ...style
4866
+ }), [originX, originY, style]);
4867
+ const arrowStyle = react.useMemo(() => ({
4868
+ left: arrowX !== null ? arrowX : void 0,
4869
+ top: arrowY !== null ? arrowY : void 0,
4870
+ right: void 0,
4871
+ bottom: void 0
4872
+ }), [arrowX, arrowY]);
4873
+ return /* @__PURE__ */jsxRuntime.jsxs(MotionCard, {
4874
+ "data-ui": "Tooltip__card",
4875
+ ...restProps,
4876
+ "data-placement": placement,
4877
+ padding,
4878
+ radius,
4879
+ ref,
4880
+ scheme,
4881
+ shadow,
4882
+ style: rootStyle,
4883
+ ...(animate ? POPOVER_MOTION_PROPS : {}),
4884
+ children: [children, arrow && /* @__PURE__ */jsxRuntime.jsx(Arrow, {
4885
+ ref: arrowRef,
4886
+ style: arrowStyle,
4887
+ width: DEFAULT_TOOLTIP_ARROW_WIDTH,
4888
+ height: DEFAULT_TOOLTIP_ARROW_HEIGHT,
4889
+ radius: DEFAULT_TOOLTIP_ARROW_RADIUS
4890
+ })]
4891
+ });
4892
+ }));
4893
+ TooltipCard.displayName = "TooltipCard";
4758
4894
  const key$4 = Symbol.for("@sanity/ui/context/tooltipDelayGroup");
4759
4895
  globalScope[key$4] = globalScope[key$4] || react.createContext(null);
4760
4896
  const TooltipDelayGroupContext = globalScope[key$4];
@@ -4791,19 +4927,20 @@ var __template$f = (cooked, raw) => __freeze$f(__defProp$f(cooked, "raw", {
4791
4927
  value: __freeze$f(raw || cooked.slice())
4792
4928
  }));
4793
4929
  var _a$f;
4794
- const Root$a = styled__default.default(Layer)(_a$f || (_a$f = __template$f(["\n pointer-events: none;\n max-width: ", "px;\n"])), _ref6 => {
4930
+ const Root$a = styled__default.default(Layer)(_a$f || (_a$f = __template$f(["\n pointer-events: none;\n max-width: ", "px;\n"])), _ref7 => {
4795
4931
  let {
4796
4932
  $maxWidth
4797
- } = _ref6;
4933
+ } = _ref7;
4798
4934
  return $maxWidth;
4799
4935
  });
4800
4936
  const Tooltip = react.forwardRef(function Tooltip2(props, ref) {
4801
- var _a2, _b, _c, _d, _e;
4937
+ var _a2, _b, _c, _d, _e, _f, _g;
4802
4938
  const boundaryElementContext = useBoundaryElement();
4803
4939
  const {
4804
4940
  layer
4805
4941
  } = useTheme_v2();
4806
4942
  const {
4943
+ animate = false,
4807
4944
  arrow: arrowProp = false,
4808
4945
  boundaryElement = boundaryElementContext == null ? void 0 : boundaryElementContext.element,
4809
4946
  children: childProp,
@@ -4818,7 +4955,6 @@ const Tooltip = react.forwardRef(function Tooltip2(props, ref) {
4818
4955
  shadow = 2,
4819
4956
  zOffset = layer.tooltip.zOffset,
4820
4957
  delay,
4821
- animate = false,
4822
4958
  ...restProps
4823
4959
  } = props;
4824
4960
  const fallbackPlacements = useArrayProp(fallbackPlacementsProp);
@@ -4854,8 +4990,11 @@ const Tooltip = react.forwardRef(function Tooltip2(props, ref) {
4854
4990
  padding: DEFAULT_TOOLTIP_PADDING
4855
4991
  }));
4856
4992
  }
4993
+ if (animate) {
4994
+ ret.push(origin);
4995
+ }
4857
4996
  return ret;
4858
- }, [arrowProp, boundaryElement, fallbackPlacements]);
4997
+ }, [animate, arrowProp, boundaryElement, fallbackPlacements]);
4859
4998
  const {
4860
4999
  floatingStyles,
4861
5000
  placement,
@@ -4869,12 +5008,8 @@ const Tooltip = react.forwardRef(function Tooltip2(props, ref) {
4869
5008
  });
4870
5009
  const arrowX = (_d = middlewareData.arrow) == null ? void 0 : _d.x;
4871
5010
  const arrowY = (_e = middlewareData.arrow) == null ? void 0 : _e.y;
4872
- const arrowStyle = react.useMemo(() => ({
4873
- left: arrowX !== null ? arrowX : void 0,
4874
- top: arrowY !== null ? arrowY : void 0,
4875
- right: void 0,
4876
- bottom: void 0
4877
- }), [arrowX, arrowY]);
5011
+ const originX = (_f = middlewareData["@sanity/ui/origin"]) == null ? void 0 : _f.originX;
5012
+ const originY = (_g = middlewareData["@sanity/ui/origin"]) == null ? void 0 : _g.originY;
4878
5013
  const tooltipId = react.useId();
4879
5014
  const [isOpen, setIsOpen] = useDelayedState(false);
4880
5015
  const delayGroupContext = useTooltipDelayGroup();
@@ -4996,53 +5131,33 @@ const Tooltip = react.forwardRef(function Tooltip2(props, ref) {
4996
5131
  }, [childProp, handleBlur, handleClick, handleContextMenu, handleFocus, handleMouseEnter, handleMouseLeave, setReference]);
4997
5132
  if (!child) return /* @__PURE__ */jsxRuntime.jsx(jsxRuntime.Fragment, {});
4998
5133
  if (disabled) return child;
4999
- const root = /* @__PURE__ */jsxRuntime.jsx(Root$a, {
5134
+ const tooltip = /* @__PURE__ */jsxRuntime.jsx(Root$a, {
5000
5135
  "data-ui": "Tooltip",
5001
5136
  ...restProps,
5002
5137
  ref: setFloating,
5003
5138
  style: floatingStyles,
5004
5139
  zOffset,
5005
5140
  $maxWidth: tooltipWidth,
5006
- children: /* @__PURE__ */jsxRuntime.jsx(ConditionalWrapper, {
5007
- condition: animate,
5008
- wrapper: children => /* @__PURE__ */jsxRuntime.jsx(framerMotion.motion.div, {
5009
- initial: {
5010
- opacity: 0.5,
5011
- scale: 0.95
5012
- },
5013
- animate: {
5014
- opacity: 1,
5015
- scale: 1
5016
- },
5017
- exit: {
5018
- opacity: 0,
5019
- scale: 0.95
5020
- },
5021
- transition: {
5022
- duration: 0.3,
5023
- type: "spring"
5024
- },
5025
- children
5026
- }),
5027
- children: /* @__PURE__ */jsxRuntime.jsxs(Card, {
5028
- "data-ui": "Tooltip__card",
5029
- "data-placement": placement,
5030
- padding,
5031
- radius,
5032
- scheme,
5033
- shadow,
5034
- children: [content, arrowProp && /* @__PURE__ */jsxRuntime.jsx(Arrow, {
5035
- ref: setArrow,
5036
- style: arrowStyle,
5037
- width: DEFAULT_TOOLTIP_ARROW_WIDTH,
5038
- height: DEFAULT_TOOLTIP_ARROW_HEIGHT,
5039
- radius: DEFAULT_TOOLTIP_ARROW_RADIUS
5040
- })]
5041
- })
5141
+ children: /* @__PURE__ */jsxRuntime.jsx(TooltipCard, {
5142
+ ...restProps,
5143
+ animate,
5144
+ arrow: arrowProp,
5145
+ arrowRef: setArrow,
5146
+ arrowX,
5147
+ arrowY,
5148
+ originX,
5149
+ originY,
5150
+ padding,
5151
+ placement,
5152
+ radius,
5153
+ ref: setFloating,
5154
+ scheme,
5155
+ shadow,
5156
+ children: content
5042
5157
  })
5043
5158
  });
5044
5159
  return /* @__PURE__ */jsxRuntime.jsxs(jsxRuntime.Fragment, {
5045
- children: [child, /* @__PURE__ */jsxRuntime.jsx(ConditionalWrapper, {
5160
+ children: [/* @__PURE__ */jsxRuntime.jsx(ConditionalWrapper, {
5046
5161
  condition: animate,
5047
5162
  wrapper: children => /* @__PURE__ */jsxRuntime.jsx(framerMotion.AnimatePresence, {
5048
5163
  children
@@ -5053,9 +5168,9 @@ const Tooltip = react.forwardRef(function Tooltip2(props, ref) {
5053
5168
  __unstable_name: typeof portalProp === "string" ? portalProp : void 0,
5054
5169
  children
5055
5170
  }),
5056
- children: root
5171
+ children: tooltip
5057
5172
  })
5058
- })]
5173
+ }), child]
5059
5174
  });
5060
5175
  });
5061
5176
  var __freeze$e = Object.freeze;
@@ -5212,10 +5327,10 @@ const InnerAutocomplete = react.forwardRef(function InnerAutocomplete2(props, re
5212
5327
  query,
5213
5328
  value
5214
5329
  } = state;
5215
- const defaultRenderOption = react.useCallback(_ref7 => {
5330
+ const defaultRenderOption = react.useCallback(_ref8 => {
5216
5331
  let {
5217
5332
  value: value2
5218
- } = _ref7;
5333
+ } = _ref8;
5219
5334
  return /* @__PURE__ */jsxRuntime.jsx(Card, {
5220
5335
  "data-as": "button",
5221
5336
  padding: paddingProp,
@@ -5674,10 +5789,10 @@ var __template$c = (cooked, raw) => __freeze$c(__defProp$c(cooked, "raw", {
5674
5789
  value: __freeze$c(raw || cooked.slice())
5675
5790
  }));
5676
5791
  var _a$c, _b$7;
5677
- function dialogStyle(_ref8) {
5792
+ function dialogStyle(_ref9) {
5678
5793
  let {
5679
5794
  theme: theme$1
5680
- } = _ref8;
5795
+ } = _ref9;
5681
5796
  const {
5682
5797
  color
5683
5798
  } = theme.getTheme_v2(theme$1);
@@ -6345,6 +6460,9 @@ const MenuButton = react.forwardRef(function MenuButton2(props, ref) {
6345
6460
  setOpen(v => !v);
6346
6461
  setShouldFocus(null);
6347
6462
  }, []);
6463
+ const handleMouseDown = react.useCallback(event => {
6464
+ if (open) event.preventDefault();
6465
+ }, [open]);
6348
6466
  const handleButtonKeyDown = react.useCallback(event => {
6349
6467
  if (event.key === "ArrowDown" || event.key === "Enter" || event.key === " ") {
6350
6468
  event.preventDefault();
@@ -6428,11 +6546,12 @@ const MenuButton = react.forwardRef(function MenuButton2(props, ref) {
6428
6546
  id,
6429
6547
  onClick: handleButtonClick,
6430
6548
  onKeyDown: handleButtonKeyDown,
6549
+ onMouseDown: handleMouseDown,
6431
6550
  "aria-haspopup": true,
6432
6551
  "aria-expanded": open,
6433
6552
  ref: setButtonRef,
6434
6553
  selected: open
6435
- }) : null, [buttonProp, handleButtonClick, handleButtonKeyDown, id, open, setButtonRef]);
6554
+ }) : null, [buttonProp, handleButtonClick, handleButtonKeyDown, handleMouseDown, id, open, setButtonRef]);
6436
6555
  const popoverProps = react.useMemo(() => ({
6437
6556
  boundaryElement: deprecated_boundaryElement,
6438
6557
  overflow: "auto",
@@ -6747,15 +6866,15 @@ var __template$6 = (cooked, raw) => __freeze$6(__defProp$6(cooked, "raw", {
6747
6866
  var _a$6, _b$3, _c$1, _d;
6748
6867
  const keyframe = styled.keyframes(_a$6 || (_a$6 = __template$6(["\n 0% {\n background-position: 100%;\n }\n 100% {\n background-position: -100%;\n }\n"])));
6749
6868
  const animation = styled.css(_b$3 || (_b$3 = __template$6(["\n background-image: linear-gradient(\n to right,\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-to),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from),\n var(--card-skeleton-color-from)\n );\n background-position: 100%;\n background-size: 200% 100%;\n background-attachment: fixed;\n animation-name: ", ";\n animation-timing-function: ease-in-out;\n animation-iteration-count: infinite;\n animation-duration: 2000ms;\n"])), keyframe);
6750
- const skeletonStyle = styled.css(_d || (_d = __template$6(["\n opacity: ", ";\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ", "\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n"])), _ref9 => {
6869
+ const skeletonStyle = styled.css(_d || (_d = __template$6(["\n opacity: ", ";\n transition: opacity 200ms ease-in;\n\n @media screen and (prefers-reduced-motion: no-preference) {\n ", "\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n background-color: var(--card-skeleton-color-from);\n }\n"])), _ref10 => {
6751
6870
  let {
6752
6871
  $visible
6753
- } = _ref9;
6872
+ } = _ref10;
6754
6873
  return $visible ? 1 : 0;
6755
- }, _ref10 => {
6874
+ }, _ref11 => {
6756
6875
  let {
6757
6876
  $animated
6758
- } = _ref10;
6877
+ } = _ref11;
6759
6878
  return $animated ? animation : styled.css(_c$1 || (_c$1 = __template$6(["\n background-color: var(--card-skeleton-color-from);\n "])));
6760
6879
  });
6761
6880
  const Root$4 = styled__default.default(Box)(responsiveRadiusStyle, skeletonStyle);
@@ -7140,12 +7259,12 @@ function ToastProvider(props) {
7140
7259
  paddingY,
7141
7260
  children: /* @__PURE__ */jsxRuntime.jsx(framerMotion.AnimatePresence, {
7142
7261
  initial: false,
7143
- children: state.map(_ref11 => {
7262
+ children: state.map(_ref12 => {
7144
7263
  let {
7145
7264
  dismiss,
7146
7265
  id,
7147
7266
  params
7148
- } = _ref11;
7267
+ } = _ref12;
7149
7268
  return /* @__PURE__ */jsxRuntime.jsx(framerMotion.motion.div, {
7150
7269
  animate: {
7151
7270
  opacity: 1,
@@ -7653,6 +7772,7 @@ exports.Card = Card;
7653
7772
  exports.Checkbox = Checkbox;
7654
7773
  exports.Code = Code;
7655
7774
  exports.CodeSkeleton = CodeSkeleton;
7775
+ exports.ConditionalWrapper = ConditionalWrapper;
7656
7776
  exports.Container = Container;
7657
7777
  exports.Dialog = Dialog;
7658
7778
  exports.DialogContext = DialogContext;