@sanity/ui 2.0.0-beta.8 → 2.0.0-gamma.1

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
@@ -6,6 +6,7 @@ Object.defineProperty(exports, '__esModule', {
6
6
  var theme = require('@sanity/ui/theme');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
  var react = require('react');
9
+ var ReactIs = require('react-is');
9
10
  var styled = require('styled-components');
10
11
  var icons = require('@sanity/icons');
11
12
  var Refractor = require('react-refractor');
@@ -17,6 +18,7 @@ function _interopDefaultCompat(e) {
17
18
  default: e
18
19
  };
19
20
  }
21
+ var ReactIs__default = /*#__PURE__*/_interopDefaultCompat(ReactIs);
20
22
  var styled__default = /*#__PURE__*/_interopDefaultCompat(styled);
21
23
  var Refractor__default = /*#__PURE__*/_interopDefaultCompat(Refractor);
22
24
  const createColorTheme = theme.createColorTheme;
@@ -29,363 +31,25 @@ const rgbToHsl = theme.rgbToHsl;
29
31
  const rgba = theme.rgba;
30
32
  const screen = theme.screen;
31
33
  const studioTheme = theme.buildTheme();
32
- function getDefaultExportFromCjs(x) {
33
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
34
- }
35
- var reactIs = {
36
- exports: {}
37
- };
38
- var reactIs_development = {};
39
-
40
- /**
41
- * @license React
42
- * react-is.development.js
43
- *
44
- * Copyright (c) Facebook, Inc. and its affiliates.
45
- *
46
- * This source code is licensed under the MIT license found in the
47
- * LICENSE file in the root directory of this source tree.
48
- */
49
-
50
- var hasRequiredReactIs_development;
51
- function requireReactIs_development() {
52
- if (hasRequiredReactIs_development) return reactIs_development;
53
- hasRequiredReactIs_development = 1;
54
- if (process.env.NODE_ENV !== "production") {
55
- (function () {
56
- // ATTENTION
57
- // When adding new symbols to this file,
58
- // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
59
- // The Symbol used to tag the ReactElement-like types.
60
- var REACT_ELEMENT_TYPE = Symbol.for('react.element');
61
- var REACT_PORTAL_TYPE = Symbol.for('react.portal');
62
- var REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');
63
- var REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');
64
- var REACT_PROFILER_TYPE = Symbol.for('react.profiler');
65
- var REACT_PROVIDER_TYPE = Symbol.for('react.provider');
66
- var REACT_CONTEXT_TYPE = Symbol.for('react.context');
67
- var REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');
68
- var REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');
69
- var REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');
70
- var REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');
71
- var REACT_MEMO_TYPE = Symbol.for('react.memo');
72
- var REACT_LAZY_TYPE = Symbol.for('react.lazy');
73
- var REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');
74
-
75
- // -----------------------------------------------------------------------------
76
-
77
- var enableScopeAPI = false; // Experimental Create Event Handle API.
78
- var enableCacheElement = false;
79
- var enableTransitionTracing = false; // No known bugs, but needs performance testing
80
-
81
- var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber
82
- // stuff. Intended to enable React core members to more easily debug scheduling
83
- // issues in DEV builds.
84
-
85
- var enableDebugTracing = false; // Track which Fiber(s) schedule render work.
86
-
87
- var REACT_MODULE_REFERENCE;
88
- {
89
- REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');
90
- }
91
- function isValidElementType(type) {
92
- if (typeof type === 'string' || typeof type === 'function') {
93
- return true;
94
- } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
95
-
96
- if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing) {
97
- return true;
98
- }
99
- if (typeof type === 'object' && type !== null) {
100
- if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE ||
101
- // This needs to include all possible module reference object
102
- // types supported by any Flight configuration anywhere since
103
- // we don't know which Flight build this will end up being used
104
- // with.
105
- type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {
106
- return true;
107
- }
108
- }
109
- return false;
110
- }
111
- function typeOf(object) {
112
- if (typeof object === 'object' && object !== null) {
113
- var $$typeof = object.$$typeof;
114
- switch ($$typeof) {
115
- case REACT_ELEMENT_TYPE:
116
- var type = object.type;
117
- switch (type) {
118
- case REACT_FRAGMENT_TYPE:
119
- case REACT_PROFILER_TYPE:
120
- case REACT_STRICT_MODE_TYPE:
121
- case REACT_SUSPENSE_TYPE:
122
- case REACT_SUSPENSE_LIST_TYPE:
123
- return type;
124
- default:
125
- var $$typeofType = type && type.$$typeof;
126
- switch ($$typeofType) {
127
- case REACT_SERVER_CONTEXT_TYPE:
128
- case REACT_CONTEXT_TYPE:
129
- case REACT_FORWARD_REF_TYPE:
130
- case REACT_LAZY_TYPE:
131
- case REACT_MEMO_TYPE:
132
- case REACT_PROVIDER_TYPE:
133
- return $$typeofType;
134
- default:
135
- return $$typeof;
136
- }
137
- }
138
- case REACT_PORTAL_TYPE:
139
- return $$typeof;
140
- }
141
- }
142
- return undefined;
143
- }
144
- var ContextConsumer = REACT_CONTEXT_TYPE;
145
- var ContextProvider = REACT_PROVIDER_TYPE;
146
- var Element = REACT_ELEMENT_TYPE;
147
- var ForwardRef = REACT_FORWARD_REF_TYPE;
148
- var Fragment = REACT_FRAGMENT_TYPE;
149
- var Lazy = REACT_LAZY_TYPE;
150
- var Memo = REACT_MEMO_TYPE;
151
- var Portal = REACT_PORTAL_TYPE;
152
- var Profiler = REACT_PROFILER_TYPE;
153
- var StrictMode = REACT_STRICT_MODE_TYPE;
154
- var Suspense = REACT_SUSPENSE_TYPE;
155
- var SuspenseList = REACT_SUSPENSE_LIST_TYPE;
156
- var hasWarnedAboutDeprecatedIsAsyncMode = false;
157
- var hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated
158
-
159
- function isAsyncMode(object) {
160
- {
161
- if (!hasWarnedAboutDeprecatedIsAsyncMode) {
162
- hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint
163
-
164
- console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');
165
- }
166
- }
167
- return false;
168
- }
169
- function isConcurrentMode(object) {
170
- {
171
- if (!hasWarnedAboutDeprecatedIsConcurrentMode) {
172
- hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint
173
-
174
- console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');
175
- }
176
- }
177
- return false;
178
- }
179
- function isContextConsumer(object) {
180
- return typeOf(object) === REACT_CONTEXT_TYPE;
181
- }
182
- function isContextProvider(object) {
183
- return typeOf(object) === REACT_PROVIDER_TYPE;
184
- }
185
- function isElement(object) {
186
- return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
187
- }
188
- function isForwardRef(object) {
189
- return typeOf(object) === REACT_FORWARD_REF_TYPE;
190
- }
191
- function isFragment(object) {
192
- return typeOf(object) === REACT_FRAGMENT_TYPE;
193
- }
194
- function isLazy(object) {
195
- return typeOf(object) === REACT_LAZY_TYPE;
196
- }
197
- function isMemo(object) {
198
- return typeOf(object) === REACT_MEMO_TYPE;
199
- }
200
- function isPortal(object) {
201
- return typeOf(object) === REACT_PORTAL_TYPE;
202
- }
203
- function isProfiler(object) {
204
- return typeOf(object) === REACT_PROFILER_TYPE;
205
- }
206
- function isStrictMode(object) {
207
- return typeOf(object) === REACT_STRICT_MODE_TYPE;
208
- }
209
- function isSuspense(object) {
210
- return typeOf(object) === REACT_SUSPENSE_TYPE;
211
- }
212
- function isSuspenseList(object) {
213
- return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;
214
- }
215
- reactIs_development.ContextConsumer = ContextConsumer;
216
- reactIs_development.ContextProvider = ContextProvider;
217
- reactIs_development.Element = Element;
218
- reactIs_development.ForwardRef = ForwardRef;
219
- reactIs_development.Fragment = Fragment;
220
- reactIs_development.Lazy = Lazy;
221
- reactIs_development.Memo = Memo;
222
- reactIs_development.Portal = Portal;
223
- reactIs_development.Profiler = Profiler;
224
- reactIs_development.StrictMode = StrictMode;
225
- reactIs_development.Suspense = Suspense;
226
- reactIs_development.SuspenseList = SuspenseList;
227
- reactIs_development.isAsyncMode = isAsyncMode;
228
- reactIs_development.isConcurrentMode = isConcurrentMode;
229
- reactIs_development.isContextConsumer = isContextConsumer;
230
- reactIs_development.isContextProvider = isContextProvider;
231
- reactIs_development.isElement = isElement;
232
- reactIs_development.isForwardRef = isForwardRef;
233
- reactIs_development.isFragment = isFragment;
234
- reactIs_development.isLazy = isLazy;
235
- reactIs_development.isMemo = isMemo;
236
- reactIs_development.isPortal = isPortal;
237
- reactIs_development.isProfiler = isProfiler;
238
- reactIs_development.isStrictMode = isStrictMode;
239
- reactIs_development.isSuspense = isSuspense;
240
- reactIs_development.isSuspenseList = isSuspenseList;
241
- reactIs_development.isValidElementType = isValidElementType;
242
- reactIs_development.typeOf = typeOf;
243
- })();
244
- }
245
- return reactIs_development;
246
- }
247
- var reactIs_production_min = {};
248
-
249
- /**
250
- * @license React
251
- * react-is.production.min.js
252
- *
253
- * Copyright (c) Facebook, Inc. and its affiliates.
254
- *
255
- * This source code is licensed under the MIT license found in the
256
- * LICENSE file in the root directory of this source tree.
257
- */
258
-
259
- var hasRequiredReactIs_production_min;
260
- function requireReactIs_production_min() {
261
- if (hasRequiredReactIs_production_min) return reactIs_production_min;
262
- hasRequiredReactIs_production_min = 1;
263
- var b = Symbol.for("react.element"),
264
- c = Symbol.for("react.portal"),
265
- d = Symbol.for("react.fragment"),
266
- e = Symbol.for("react.strict_mode"),
267
- f = Symbol.for("react.profiler"),
268
- g = Symbol.for("react.provider"),
269
- h = Symbol.for("react.context"),
270
- k = Symbol.for("react.server_context"),
271
- l = Symbol.for("react.forward_ref"),
272
- m = Symbol.for("react.suspense"),
273
- n = Symbol.for("react.suspense_list"),
274
- p = Symbol.for("react.memo"),
275
- q = Symbol.for("react.lazy"),
276
- t = Symbol.for("react.offscreen"),
277
- u;
278
- u = Symbol.for("react.module.reference");
279
- function v(a) {
280
- if ("object" === typeof a && null !== a) {
281
- var r = a.$$typeof;
282
- switch (r) {
283
- case b:
284
- switch (a = a.type, a) {
285
- case d:
286
- case f:
287
- case e:
288
- case m:
289
- case n:
290
- return a;
291
- default:
292
- switch (a = a && a.$$typeof, a) {
293
- case k:
294
- case h:
295
- case l:
296
- case q:
297
- case p:
298
- case g:
299
- return a;
300
- default:
301
- return r;
302
- }
303
- }
304
- case c:
305
- return r;
306
- }
307
- }
308
- }
309
- reactIs_production_min.ContextConsumer = h;
310
- reactIs_production_min.ContextProvider = g;
311
- reactIs_production_min.Element = b;
312
- reactIs_production_min.ForwardRef = l;
313
- reactIs_production_min.Fragment = d;
314
- reactIs_production_min.Lazy = q;
315
- reactIs_production_min.Memo = p;
316
- reactIs_production_min.Portal = c;
317
- reactIs_production_min.Profiler = f;
318
- reactIs_production_min.StrictMode = e;
319
- reactIs_production_min.Suspense = m;
320
- reactIs_production_min.SuspenseList = n;
321
- reactIs_production_min.isAsyncMode = function () {
322
- return !1;
323
- };
324
- reactIs_production_min.isConcurrentMode = function () {
325
- return !1;
326
- };
327
- reactIs_production_min.isContextConsumer = function (a) {
328
- return v(a) === h;
329
- };
330
- reactIs_production_min.isContextProvider = function (a) {
331
- return v(a) === g;
332
- };
333
- reactIs_production_min.isElement = function (a) {
334
- return "object" === typeof a && null !== a && a.$$typeof === b;
335
- };
336
- reactIs_production_min.isForwardRef = function (a) {
337
- return v(a) === l;
338
- };
339
- reactIs_production_min.isFragment = function (a) {
340
- return v(a) === d;
341
- };
342
- reactIs_production_min.isLazy = function (a) {
343
- return v(a) === q;
344
- };
345
- reactIs_production_min.isMemo = function (a) {
346
- return v(a) === p;
347
- };
348
- reactIs_production_min.isPortal = function (a) {
349
- return v(a) === c;
350
- };
351
- reactIs_production_min.isProfiler = function (a) {
352
- return v(a) === f;
353
- };
354
- reactIs_production_min.isStrictMode = function (a) {
355
- return v(a) === e;
356
- };
357
- reactIs_production_min.isSuspense = function (a) {
358
- return v(a) === m;
359
- };
360
- reactIs_production_min.isSuspenseList = function (a) {
361
- return v(a) === n;
362
- };
363
- reactIs_production_min.isValidElementType = function (a) {
364
- return "string" === typeof a || "function" === typeof a || a === d || a === f || a === e || a === m || a === n || a === t || "object" === typeof a && null !== a && (a.$$typeof === q || a.$$typeof === p || a.$$typeof === g || a.$$typeof === h || a.$$typeof === l || a.$$typeof === u || void 0 !== a.getModuleId) ? !0 : !1;
365
- };
366
- reactIs_production_min.typeOf = v;
367
- return reactIs_production_min;
368
- }
369
- if (process.env.NODE_ENV === 'production') {
370
- reactIs.exports = requireReactIs_production_min();
371
- } else {
372
- reactIs.exports = requireReactIs_development();
373
- }
374
- var reactIsExports = reactIs.exports;
375
- var ReactIs = /*@__PURE__*/getDefaultExportFromCjs(reactIsExports);
376
34
  const EMPTY_ARRAY = [];
377
35
  const EMPTY_RECORD = {};
36
+ const POPOVER_MOTION_CONTENT_OPACITY_PROPERTY = "--motion-content-opacity";
378
37
  const POPOVER_MOTION_PROPS = {
379
38
  initial: {
380
39
  opacity: 0.5,
381
- scale: 0.97
40
+ [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: 0,
41
+ scale: 0.97,
42
+ willChange: "transform"
382
43
  },
383
44
  animate: {
384
- opacity: 1,
45
+ opacity: [null, 1, 1],
46
+ [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: [null, null, 1],
385
47
  scale: 1
386
48
  },
387
49
  exit: {
388
- opacity: 0,
50
+ // @ts-expect-error -- passing null a second time is valid: https://github.com/framer/motion/blob/b9ce4c42914c3916ea523609c5b032dfc72718bb/packages/framer-motion/src/animation/utils/keyframes.ts#L34C22-L34C22
51
+ opacity: [null, null, 0],
52
+ [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: [null, 0, 0],
389
53
  scale: 0.97
390
54
  },
391
55
  transition: {
@@ -884,7 +548,7 @@ var gatherActiveObservationsAtDepth = function (depth) {
884
548
  });
885
549
  });
886
550
  };
887
- var process$1 = function () {
551
+ var process = function () {
888
552
  var depth = 0;
889
553
  gatherActiveObservationsAtDepth(depth);
890
554
  while (hasActiveObservations()) {
@@ -965,7 +629,7 @@ var Scheduler = function () {
965
629
  queueResizeObserver(function () {
966
630
  var elementsHaveResized = false;
967
631
  try {
968
- elementsHaveResized = process$1();
632
+ elementsHaveResized = process();
969
633
  } finally {
970
634
  scheduled = false;
971
635
  timeout = until - time();
@@ -1898,7 +1562,7 @@ function textInputRepresentationStyle(props) {
1898
1562
  color,
1899
1563
  input
1900
1564
  } = theme.getTheme_v2(props.theme);
1901
- 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({
1565
+ 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 *:not(:invalid):disabled + & {\n --card-bg-color: ", " !important;\n --card-fg-color: ", " !important;\n --card-icon-color: ", " !important;\n\n &[data-border] {\n --input-box-shadow: ", ";\n }\n }\n\n *:invalid:disabled + & {\n --card-bg-color: ", " !important;\n --card-fg-color: ", " !important;\n --card-icon-color: ", " !important;\n\n &[data-border] {\n --input-box-shadow: ", ";\n }\n }\n\n /* readOnly */\n *:not(:invalid):read-only + & {\n --card-bg-color: ", " !important;\n --card-fg-color: ", " !important;\n }\n\n *:invalid: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 *:invalid:not(:disabled):not(:read-only):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 *:invalid:not(:disabled):not(:read-only):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({
1902
1566
  color: color.input.default.enabled.border,
1903
1567
  width: input.border.width
1904
1568
  }), color.input.invalid.enabled.bg, color.input.invalid.enabled.fg, focusRingBorderStyle({
@@ -1912,12 +1576,18 @@ function textInputRepresentationStyle(props) {
1912
1576
  focusRing: input.text.focusRing
1913
1577
  }), $unstableDisableFocusRing ? void 0 : focusRingStyle({
1914
1578
  focusRing: input.text.focusRing
1915
- }), color.input.default.disabled.bg, color.input.default.disabled.fg, focusRingBorderStyle({
1579
+ }), color.input.default.disabled.bg, color.input.default.disabled.fg, color.input.default.disabled.fg, focusRingBorderStyle({
1916
1580
  color: color.input.default.disabled.border,
1917
1581
  width: input.border.width
1918
- }), color.input.default.readOnly.bg, color.input.default.readOnly.fg, color.input.default.hovered.bg, color.input.default.hovered.fg, focusRingBorderStyle({
1582
+ }), color.input.invalid.disabled.bg, color.input.invalid.disabled.fg, color.input.invalid.disabled.fg, focusRingBorderStyle({
1583
+ color: color.input.invalid.disabled.border,
1584
+ width: input.border.width
1585
+ }), color.input.default.readOnly.bg, color.input.default.readOnly.fg, color.input.invalid.readOnly.bg, color.input.invalid.readOnly.fg, color.input.default.hovered.bg, color.input.default.hovered.fg, color.input.invalid.hovered.bg, color.input.invalid.hovered.fg, focusRingBorderStyle({
1919
1586
  color: color.input.default.hovered.border,
1920
1587
  width: input.border.width
1588
+ }), focusRingBorderStyle({
1589
+ color: color.input.invalid.hovered.border,
1590
+ width: input.border.width
1921
1591
  }));
1922
1592
  }
1923
1593
  function responsiveMarginStyle(props) {
@@ -2203,7 +1873,7 @@ const Avatar = react.forwardRef(function Avatar2(props, ref) {
2203
1873
  const {
2204
1874
  avatar
2205
1875
  } = useTheme_v2();
2206
- const as = ReactIs.isValidElementType(asProp) ? asProp : "div";
1876
+ const as = ReactIs__default.default.isValidElementType(asProp) ? asProp : "div";
2207
1877
  const size = useArrayProp(sizeProp);
2208
1878
  const avatarSize = avatar.sizes[size[0]] || avatar.sizes[0];
2209
1879
  const _sizeRem = avatarSize.size;
@@ -2355,7 +2025,7 @@ const AvatarCounter = react.forwardRef(function AvatarCounter2(props, ref) {
2355
2025
  });
2356
2026
  function childrenToElementArray(children) {
2357
2027
  const childrenArray = Array.isArray(children) ? children : [children];
2358
- return childrenArray.filter(node => reactIsExports.isElement(node) || reactIsExports.isFragment(node) || typeof node === "string");
2028
+ return childrenArray.filter(node => ReactIs.isElement(node) || ReactIs.isFragment(node) || typeof node === "string");
2359
2029
  }
2360
2030
  var __freeze$B = Object.freeze;
2361
2031
  var __defProp$C = Object.defineProperty;
@@ -2840,20 +2510,17 @@ const Button = react.forwardRef(function Button2(props, ref) {
2840
2510
  gap: space,
2841
2511
  children: [icon && /* @__PURE__ */jsxRuntime.jsxs(Text, {
2842
2512
  size: fontSize,
2843
- children: [react.isValidElement(icon) && icon, reactIsExports.isValidElementType(icon) && react.createElement(icon)]
2844
- }), text && /* @__PURE__ */jsxRuntime.jsx(Box, {
2845
- flex: iconRight ? 1 : void 0,
2846
- children: /* @__PURE__ */jsxRuntime.jsx(Text, {
2847
- muted,
2848
- align: textAlign,
2849
- size: fontSize,
2850
- textOverflow: "ellipsis",
2851
- weight: button.textWeight,
2852
- children: text
2853
- })
2513
+ children: [react.isValidElement(icon) && icon, ReactIs.isValidElementType(icon) && react.createElement(icon)]
2514
+ }), text && /* @__PURE__ */jsxRuntime.jsx(Text, {
2515
+ muted,
2516
+ align: textAlign,
2517
+ size: fontSize,
2518
+ textOverflow: "ellipsis",
2519
+ weight: button.textWeight,
2520
+ children: text
2854
2521
  }), iconRight && /* @__PURE__ */jsxRuntime.jsxs(Text, {
2855
2522
  size: fontSize,
2856
- children: [react.isValidElement(iconRight) && iconRight, reactIsExports.isValidElementType(iconRight) && react.createElement(iconRight)]
2523
+ children: [react.isValidElement(iconRight) && iconRight, ReactIs.isValidElementType(iconRight) && react.createElement(iconRight)]
2857
2524
  })]
2858
2525
  })
2859
2526
  }), children && /* @__PURE__ */jsxRuntime.jsx(Box, {
@@ -2925,7 +2592,7 @@ const Card = react.forwardRef(function Card2(props, ref) {
2925
2592
  tone: toneProp = "default",
2926
2593
  ...restProps
2927
2594
  } = props;
2928
- const as = reactIsExports.isValidElementType(asProp) ? asProp : "div";
2595
+ const as = ReactIs.isValidElementType(asProp) ? asProp : "div";
2929
2596
  const rootTheme = useRootTheme();
2930
2597
  const tone = toneProp === "inherit" ? rootTheme.tone : toneProp;
2931
2598
  return /* @__PURE__ */jsxRuntime.jsx(ThemeColorProvider, {
@@ -3277,7 +2944,7 @@ function headingBaseStyle(props) {
3277
2944
  const {
3278
2945
  font
3279
2946
  } = theme.getTheme_v2(props.theme);
3280
- 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);
2947
+ 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 & 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 }\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, font.heading.weights.bold);
3281
2948
  }
3282
2949
  var __freeze$r = Object.freeze;
3283
2950
  var __defProp$s = Object.defineProperty;
@@ -4294,7 +3961,7 @@ var __template$m = (cooked, raw) => __freeze$m(__defProp$m(cooked, "raw", {
4294
3961
  value: __freeze$m(raw || cooked.slice())
4295
3962
  }));
4296
3963
  var _a$m;
4297
- 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"])));
3964
+ 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 & > * {\n opacity: var(", ", 1);\n will-change: opacity;\n }\n"])), POPOVER_MOTION_CONTENT_OPACITY_PROPERTY);
4298
3965
  const PopoverCard = react.memo(react.forwardRef(function PopoverCard2(props, ref) {
4299
3966
  const {
4300
3967
  __unstable_margins: marginsProp,
@@ -4334,8 +4001,9 @@ const PopoverCard = react.memo(react.forwardRef(function PopoverCard2(props, ref
4334
4001
  top: y,
4335
4002
  width,
4336
4003
  zIndex,
4004
+ willChange: animate ? "transform" : void 0,
4337
4005
  ...style
4338
- }), [originX, originY, strategy, style, width, x, y, zIndex]);
4006
+ }), [animate, originX, originY, strategy, style, width, x, y, zIndex]);
4339
4007
  const arrowStyle = react.useMemo(() => ({
4340
4008
  left: arrowX !== null ? arrowX : void 0,
4341
4009
  top: arrowY !== null ? arrowY : void 0,
@@ -4847,9 +4515,9 @@ function switchRepresentationStyles(props) {
4847
4515
  color,
4848
4516
  input
4849
4517
  } = theme.getTheme_v2(props.theme);
4850
- 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({
4518
+ 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\n input:checked[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({
4851
4519
  focusRing: input.switch.focusRing
4852
- }), 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);
4520
+ }), 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, color.input.default.readOnly.fg, color.input.default.readOnly.bg);
4853
4521
  }
4854
4522
  function switchTrackStyles(props) {
4855
4523
  const {
@@ -5064,13 +4732,13 @@ const TextInput = react.forwardRef(function TextInput2(props, forwardedRef) {
5064
4732
  padding,
5065
4733
  children: /* @__PURE__ */jsxRuntime.jsxs(Text, {
5066
4734
  size: fontSize,
5067
- children: [react.isValidElement(icon) && icon, reactIsExports.isValidElementType(icon) && react.createElement(icon)]
4735
+ children: [react.isValidElement(icon) && icon, ReactIs.isValidElementType(icon) && react.createElement(icon)]
5068
4736
  })
5069
4737
  }), !$hasClearButton && iconRight && /* @__PURE__ */jsxRuntime.jsx(RightBox, {
5070
4738
  padding,
5071
4739
  children: /* @__PURE__ */jsxRuntime.jsxs(Text, {
5072
4740
  size: fontSize,
5073
- children: [react.isValidElement(iconRight) && iconRight, reactIsExports.isValidElementType(iconRight) && react.createElement(iconRight)]
4741
+ children: [react.isValidElement(iconRight) && iconRight, ReactIs.isValidElementType(iconRight) && react.createElement(iconRight)]
5074
4742
  })
5075
4743
  })]
5076
4744
  }), [__unstable_disableFocusRing, border, fontSize, icon, iconRight, padding, radius, rootTheme, $hasClearButton, $hasPrefix, $hasSuffix]);
@@ -5182,7 +4850,7 @@ var __template$g = (cooked, raw) => __freeze$g(__defProp$g(cooked, "raw", {
5182
4850
  value: __freeze$g(raw || cooked.slice())
5183
4851
  }));
5184
4852
  var _a$g;
5185
- const MotionCard = styled__default.default(framerMotion.motion(Card))(_a$g || (_a$g = __template$g([""])));
4853
+ const MotionCard = styled__default.default(framerMotion.motion(Card))(_a$g || (_a$g = __template$g(["\n & > * {\n opacity: var(", ", 1);\n will-change: opacity;\n }\n"])), POPOVER_MOTION_CONTENT_OPACITY_PROPERTY);
5186
4854
  const TooltipCard = react.memo(react.forwardRef(function TooltipCard2(props, ref) {
5187
4855
  const {
5188
4856
  animate,
@@ -5204,8 +4872,9 @@ const TooltipCard = react.memo(react.forwardRef(function TooltipCard2(props, ref
5204
4872
  const rootStyle = react.useMemo(() => ({
5205
4873
  originX,
5206
4874
  originY,
4875
+ willChange: animate ? "transform" : void 0,
5207
4876
  ...style
5208
- }), [originX, originY, style]);
4877
+ }), [animate, originX, originY, style]);
5209
4878
  const arrowStyle = react.useMemo(() => ({
5210
4879
  left: arrowX !== null ? arrowX : void 0,
5211
4880
  top: arrowY !== null ? arrowY : void 0,
@@ -6163,7 +5832,7 @@ function responsiveDialogPositionStyle(props) {
6163
5832
  }));
6164
5833
  }
6165
5834
  function animationDialogStyle(props) {
6166
- if (!props.animate) return styled.css(_a$c || (_a$c = __template$c([""])));
5835
+ if (!props.$animate) return styled.css(_a$c || (_a$c = __template$c([""])));
6167
5836
  return styled.css(_b$7 || (_b$7 = __template$c(["\n @keyframes zoomIn {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n }\n @keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n animation: fadeIn 200ms ease-out;\n // Animates the dialog card.\n & > [data-ui='DialogCard'] {\n animation: zoomIn 200ms ease-out;\n }\n "])));
6168
5837
  }
6169
5838
  const key$3 = Symbol.for("@sanity/ui/context/dialog");
@@ -6386,6 +6055,7 @@ const Dialog = react.forwardRef(function Dialog2(props, ref) {
6386
6055
  __unstable_name: portalProp,
6387
6056
  children: /* @__PURE__ */jsxRuntime.jsxs(Root$7, {
6388
6057
  ...restProps,
6058
+ $animate: animate,
6389
6059
  $padding: padding,
6390
6060
  $position: position,
6391
6061
  "aria-labelledby": labelId,
@@ -6398,7 +6068,6 @@ const Dialog = react.forwardRef(function Dialog2(props, ref) {
6398
6068
  ref,
6399
6069
  role: "dialog",
6400
6070
  zOffset,
6401
- animate,
6402
6071
  children: [/* @__PURE__ */jsxRuntime.jsx("div", {
6403
6072
  ref: preDivRef,
6404
6073
  tabIndex: 0
@@ -6874,7 +6543,7 @@ const MenuButton = react.forwardRef(function MenuButton2(props, ref) {
6874
6543
  registerElement,
6875
6544
  shouldFocus
6876
6545
  }), [buttonElement, handleMenuClickOutside, handleMenuEscape, handleItemClick, id, handleBlur, registerElement, shouldFocus]);
6877
- const menu = reactIsExports.isElement(menuProp) ? react.cloneElement(menuProp, menuProps) : null;
6546
+ const menu = ReactIs.isElement(menuProp) ? react.cloneElement(menuProp, menuProps) : null;
6878
6547
  const setButtonRef = react.useCallback(el => {
6879
6548
  if (typeof ref === "function") {
6880
6549
  ref(el);
@@ -6883,7 +6552,7 @@ const MenuButton = react.forwardRef(function MenuButton2(props, ref) {
6883
6552
  }
6884
6553
  setButtonElement(el);
6885
6554
  }, [ref]);
6886
- const button = react.useMemo(() => reactIsExports.isElement(buttonProp) ? react.cloneElement(buttonProp, {
6555
+ const button = react.useMemo(() => ReactIs.isElement(buttonProp) ? react.cloneElement(buttonProp, {
6887
6556
  "data-ui": "MenuButton",
6888
6557
  id,
6889
6558
  onClick: handleButtonClick,
@@ -7070,7 +6739,7 @@ function MenuGroup(props) {
7070
6739
  padding,
7071
6740
  children: [icon && /* @__PURE__ */jsxRuntime.jsxs(Text, {
7072
6741
  size: fontSize,
7073
- children: [react.isValidElement(icon) && icon, reactIsExports.isValidElementType(icon) && react.createElement(icon)]
6742
+ children: [react.isValidElement(icon) && icon, ReactIs.isValidElementType(icon) && react.createElement(icon)]
7074
6743
  }), /* @__PURE__ */jsxRuntime.jsx(Box, {
7075
6744
  flex: 1,
7076
6745
  children: /* @__PURE__ */jsxRuntime.jsx(Text, {
@@ -7173,7 +6842,7 @@ const MenuItem = react.forwardRef(function MenuItem2(props, forwardedRef) {
7173
6842
  ...paddingProps,
7174
6843
  children: [icon && /* @__PURE__ */jsxRuntime.jsxs(Text, {
7175
6844
  size: fontSize,
7176
- children: [react.isValidElement(icon) && icon, reactIsExports.isValidElementType(icon) && react.createElement(icon)]
6845
+ children: [react.isValidElement(icon) && icon, ReactIs.isValidElementType(icon) && react.createElement(icon)]
7177
6846
  }), text && /* @__PURE__ */jsxRuntime.jsx(Box, {
7178
6847
  flex: 1,
7179
6848
  children: /* @__PURE__ */jsxRuntime.jsx(Text, {
@@ -7191,7 +6860,7 @@ const MenuItem = react.forwardRef(function MenuItem2(props, forwardedRef) {
7191
6860
  }
7192
6861
  }), iconRight && /* @__PURE__ */jsxRuntime.jsxs(Text, {
7193
6862
  size: fontSize,
7194
- children: [react.isValidElement(iconRight) && iconRight, reactIsExports.isValidElementType(iconRight) && react.createElement(iconRight)]
6863
+ children: [react.isValidElement(iconRight) && iconRight, ReactIs.isValidElementType(iconRight) && react.createElement(iconRight)]
7195
6864
  })]
7196
6865
  }), children && /* @__PURE__ */jsxRuntime.jsx(Box, {
7197
6866
  as: "span",
@@ -7448,13 +7117,19 @@ const STATUS_CARD_TONE = {
7448
7117
  success: "positive",
7449
7118
  info: "primary"
7450
7119
  };
7120
+ const BUTTON_TONE = {
7121
+ error: "critical",
7122
+ warning: "caution",
7123
+ success: "positive",
7124
+ info: "primary"
7125
+ };
7451
7126
  const ROLES = {
7452
7127
  error: "alert",
7453
7128
  warning: "alert",
7454
7129
  success: "alert",
7455
7130
  info: "alert"
7456
7131
  };
7457
- const Root$2 = styled__default.default(Card)(_a$3 || (_a$3 = __template$3(["\n pointer-events: all;\n"])));
7132
+ const Root$2 = styled__default.default(Card)(_a$3 || (_a$3 = __template$3(["\n pointer-events: all;\n & > * {\n opacity: var(", ", 1);\n will-change: opacity;\n }\n"])), POPOVER_MOTION_CONTENT_OPACITY_PROPERTY);
7458
7133
  const TextBox = styled__default.default(Flex)(_b$2 || (_b$2 = __template$3(["\n overflow-x: auto;\n"])));
7459
7134
  function Toast(props) {
7460
7135
  const {
@@ -7467,6 +7142,7 @@ function Toast(props) {
7467
7142
  ...restProps
7468
7143
  } = props;
7469
7144
  const cardTone = status ? STATUS_CARD_TONE[status] : "default";
7145
+ const buttonTone = status ? BUTTON_TONE[status] : "default";
7470
7146
  const role = status ? ROLES[status] : "status";
7471
7147
  return /* @__PURE__ */jsxRuntime.jsx(Root$2, {
7472
7148
  "data-ui": "Toast",
@@ -7500,6 +7176,7 @@ function Toast(props) {
7500
7176
  icon: icons.CloseIcon,
7501
7177
  mode: "bleed",
7502
7178
  padding: 2,
7179
+ tone: buttonTone,
7503
7180
  onClick: onClose,
7504
7181
  style: {
7505
7182
  verticalAlign: "top"
@@ -7609,12 +7286,14 @@ function ToastProvider(props) {
7609
7286
  } = _ref12;
7610
7287
  return /* @__PURE__ */jsxRuntime.jsx(framerMotion.motion.div, {
7611
7288
  animate: {
7612
- opacity: 1,
7289
+ opacity: [0, 1, 1],
7290
+ [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: [0, 0, 1],
7613
7291
  y: 0,
7614
7292
  scale: 1
7615
7293
  },
7616
7294
  exit: {
7617
- opacity: 0,
7295
+ opacity: [1, 1, 0],
7296
+ [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: [1, 0, 0],
7618
7297
  scale: 0.5,
7619
7298
  transition: {
7620
7299
  duration: 0.2
@@ -7622,8 +7301,10 @@ function ToastProvider(props) {
7622
7301
  },
7623
7302
  initial: {
7624
7303
  opacity: 0,
7304
+ [POPOVER_MOTION_CONTENT_OPACITY_PROPERTY]: 0,
7625
7305
  y: 32,
7626
- scale: 0.25
7306
+ scale: 0.25,
7307
+ willChange: "transform"
7627
7308
  },
7628
7309
  layout: "position",
7629
7310
  transition: {