@sanity/ui 0.37.19 → 0.37.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/lib/dts/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  2. package/lib/dts/src/components/dialog/dialog.d.ts.map +1 -1
  3. package/lib/dts/src/components/dialog/styles.d.ts +1 -1
  4. package/lib/dts/src/components/dialog/styles.d.ts.map +1 -1
  5. package/lib/dts/src/components/hotkeys/hotkeys.d.ts.map +1 -1
  6. package/lib/dts/src/components/menu/menuGroup.d.ts.map +1 -1
  7. package/lib/dts/src/components/skeleton/skeleton.d.ts.map +1 -1
  8. package/lib/dts/src/hooks/index.d.ts +1 -2
  9. package/lib/dts/src/hooks/index.d.ts.map +1 -1
  10. package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts +1 -1
  11. package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts.map +1 -1
  12. package/lib/dts/src/hooks/useResponsiveProp.d.ts +6 -0
  13. package/lib/dts/src/hooks/useResponsiveProp.d.ts.map +1 -0
  14. package/lib/dts/src/index.d.ts +0 -1
  15. package/lib/dts/src/index.d.ts.map +1 -1
  16. package/lib/dts/src/primitives/_selectable/selectable.d.ts +2 -1
  17. package/lib/dts/src/primitives/_selectable/selectable.d.ts.map +1 -1
  18. package/lib/dts/src/primitives/avatar/avatar.d.ts.map +1 -1
  19. package/lib/dts/src/primitives/avatar/avatarCounter.d.ts.map +1 -1
  20. package/lib/dts/src/primitives/avatar/avatarStack.d.ts.map +1 -1
  21. package/lib/dts/src/primitives/avatar/styles.d.ts.map +1 -1
  22. package/lib/dts/src/primitives/badge/badge.d.ts.map +1 -1
  23. package/lib/dts/src/primitives/box/box.d.ts.map +1 -1
  24. package/lib/dts/src/primitives/button/button.d.ts.map +1 -1
  25. package/lib/dts/src/primitives/card/card.d.ts.map +1 -1
  26. package/lib/dts/src/primitives/code/code.d.ts.map +1 -1
  27. package/lib/dts/src/primitives/container/container.d.ts.map +1 -1
  28. package/lib/dts/src/primitives/container/styles.d.ts.map +1 -1
  29. package/lib/dts/src/primitives/container/types.d.ts +1 -1
  30. package/lib/dts/src/primitives/container/types.d.ts.map +1 -1
  31. package/lib/dts/src/primitives/flex/flex.d.ts.map +1 -1
  32. package/lib/dts/src/primitives/grid/grid.d.ts.map +1 -1
  33. package/lib/dts/src/primitives/heading/heading.d.ts.map +1 -1
  34. package/lib/dts/src/primitives/inline/inline.d.ts.map +1 -1
  35. package/lib/dts/src/primitives/inline/styles.d.ts.map +1 -1
  36. package/lib/dts/src/primitives/inline/types.d.ts +1 -1
  37. package/lib/dts/src/primitives/inline/types.d.ts.map +1 -1
  38. package/lib/dts/src/primitives/kbd/kbd.d.ts.map +1 -1
  39. package/lib/dts/src/primitives/label/label.d.ts.map +1 -1
  40. package/lib/dts/src/primitives/popover/popover.d.ts.map +1 -1
  41. package/lib/dts/src/primitives/select/styles.d.ts +1 -5
  42. package/lib/dts/src/primitives/select/styles.d.ts.map +1 -1
  43. package/lib/dts/src/primitives/stack/stack.d.ts.map +1 -1
  44. package/lib/dts/src/primitives/stack/styles.d.ts +1 -1
  45. package/lib/dts/src/primitives/stack/styles.d.ts.map +1 -1
  46. package/lib/dts/src/primitives/text/text.d.ts.map +1 -1
  47. package/lib/dts/src/primitives/textArea/textArea.d.ts.map +1 -1
  48. package/lib/dts/src/primitives/textInput/textInput.d.ts.map +1 -1
  49. package/lib/dts/src/primitives/tooltip/tooltip.d.ts.map +1 -1
  50. package/lib/dts/src/primitives/types.d.ts +1 -1
  51. package/lib/dts/src/primitives/types.d.ts.map +1 -1
  52. package/lib/dts/src/styles/border/types.d.ts +5 -5
  53. package/lib/dts/src/styles/border/types.d.ts.map +1 -1
  54. package/lib/dts/src/styles/box/types.d.ts +4 -4
  55. package/lib/dts/src/styles/box/types.d.ts.map +1 -1
  56. package/lib/dts/src/styles/flex/flexItemStyle.d.ts.map +1 -1
  57. package/lib/dts/src/styles/flex/types.d.ts +6 -6
  58. package/lib/dts/src/styles/flex/types.d.ts.map +1 -1
  59. package/lib/dts/src/styles/font/responsiveFont.d.ts.map +1 -1
  60. package/lib/dts/src/styles/font/types.d.ts +3 -3
  61. package/lib/dts/src/styles/font/types.d.ts.map +1 -1
  62. package/lib/dts/src/styles/grid/types.d.ts +14 -14
  63. package/lib/dts/src/styles/grid/types.d.ts.map +1 -1
  64. package/lib/dts/src/styles/helpers.d.ts +4 -4
  65. package/lib/dts/src/styles/helpers.d.ts.map +1 -1
  66. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts +12 -12
  67. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts.map +1 -1
  68. package/lib/dts/src/styles/input/textInputStyle.d.ts +2 -7
  69. package/lib/dts/src/styles/input/textInputStyle.d.ts.map +1 -1
  70. package/lib/dts/src/styles/margin/types.d.ts +7 -7
  71. package/lib/dts/src/styles/margin/types.d.ts.map +1 -1
  72. package/lib/dts/src/styles/padding/types.d.ts +7 -7
  73. package/lib/dts/src/styles/padding/types.d.ts.map +1 -1
  74. package/lib/dts/src/styles/radius/types.d.ts +1 -1
  75. package/lib/dts/src/styles/radius/types.d.ts.map +1 -1
  76. package/lib/dts/src/styles/shadow/shadowStyle.d.ts.map +1 -1
  77. package/lib/dts/src/styles/shadow/types.d.ts +1 -1
  78. package/lib/dts/src/styles/shadow/types.d.ts.map +1 -1
  79. package/lib/dts/src/theme/studioTheme/color.d.ts.map +1 -1
  80. package/lib/dts/src/utils/elementQuery/elementQuery.d.ts.map +1 -1
  81. package/lib/dts/src/utils/index.d.ts +1 -0
  82. package/lib/dts/src/utils/index.d.ts.map +1 -1
  83. package/lib/dts/src/utils/resizeObserver.d.ts +6 -0
  84. package/lib/dts/src/utils/resizeObserver.d.ts.map +1 -0
  85. package/lib/dts/src/utils/virtualList/virtualList.d.ts.map +1 -1
  86. package/lib/sanity-ui.js +574 -734
  87. package/lib/sanity-ui.js.map +1 -1
  88. package/lib/sanity-ui.modern.js +595 -765
  89. package/lib/sanity-ui.modern.js.map +1 -1
  90. package/lib/sanity-ui.module.js +570 -728
  91. package/lib/sanity-ui.module.js.map +1 -1
  92. package/package.json +11 -11
  93. package/src/__workshop__/color/overview.tsx +11 -9
  94. package/src/components/autocomplete/__workshop__/async.tsx +12 -14
  95. package/src/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -36
  96. package/src/components/autocomplete/autocomplete.tsx +2 -2
  97. package/src/components/breadcrumbs/breadcrumbs.tsx +2 -3
  98. package/src/components/dialog/dialog.tsx +9 -17
  99. package/src/components/dialog/styles.ts +4 -4
  100. package/src/components/hotkeys/hotkeys.tsx +1 -3
  101. package/src/components/menu/__workshop__/constrainedInBoundary.tsx +14 -11
  102. package/src/components/menu/__workshop__/groups.tsx +1 -1
  103. package/src/components/menu/menuGroup.tsx +2 -3
  104. package/src/components/menu/menuItem.tsx +3 -3
  105. package/src/components/skeleton/skeleton.tsx +1 -10
  106. package/src/components/skeleton/textSkeleton.tsx +7 -7
  107. package/src/hooks/index.ts +1 -2
  108. package/src/hooks/useElementRect/useElementRect.ts +16 -4
  109. package/src/hooks/useResponsiveProp.ts +10 -0
  110. package/src/index.ts +0 -1
  111. package/src/primitives/_selectable/selectable.tsx +4 -5
  112. package/src/primitives/avatar/avatar.tsx +5 -7
  113. package/src/primitives/avatar/avatarCounter.tsx +11 -12
  114. package/src/primitives/avatar/avatarStack.tsx +10 -15
  115. package/src/primitives/avatar/styles.ts +2 -2
  116. package/src/primitives/badge/badge.tsx +2 -3
  117. package/src/primitives/box/box.tsx +25 -26
  118. package/src/primitives/button/button.tsx +10 -22
  119. package/src/primitives/card/card.tsx +7 -8
  120. package/src/primitives/checkbox/__workshop__/example.tsx +2 -4
  121. package/src/primitives/checkbox/__workshop__/props.tsx +2 -4
  122. package/src/primitives/checkbox/__workshop__/readOnly.tsx +2 -4
  123. package/src/primitives/code/__workshop__/props.tsx +1 -1
  124. package/src/primitives/code/code.tsx +1 -2
  125. package/src/primitives/container/container.tsx +1 -10
  126. package/src/primitives/container/styles.ts +2 -2
  127. package/src/primitives/container/types.ts +1 -1
  128. package/src/primitives/flex/flex.tsx +5 -6
  129. package/src/primitives/grid/__workshop__/responsive.tsx +12 -13
  130. package/src/primitives/grid/grid.tsx +8 -9
  131. package/src/primitives/heading/__workshop__/opticalAlignment.tsx +7 -19
  132. package/src/primitives/heading/heading.tsx +2 -3
  133. package/src/primitives/inline/inline.tsx +6 -12
  134. package/src/primitives/inline/styles.ts +2 -2
  135. package/src/primitives/inline/types.ts +1 -1
  136. package/src/primitives/kbd/kbd.tsx +1 -2
  137. package/src/primitives/label/label.tsx +3 -4
  138. package/src/primitives/popover/__workshop__/index.ts +5 -10
  139. package/src/primitives/popover/__workshop__/{MarginsStory.tsx → margins.tsx} +1 -1
  140. package/src/primitives/popover/__workshop__/{MatchReferenceWidthStory.tsx → matchReferenceWidth.tsx} +0 -0
  141. package/src/primitives/popover/__workshop__/{PlainStory.tsx → plain.tsx} +14 -12
  142. package/src/primitives/popover/__workshop__/{RecursiveStory.tsx → recursive.tsx} +1 -4
  143. package/src/primitives/popover/__workshop__/rightAligned.tsx +57 -0
  144. package/src/primitives/popover/popover.tsx +10 -29
  145. package/src/primitives/select/select.tsx +9 -9
  146. package/src/primitives/select/styles.ts +4 -10
  147. package/src/primitives/stack/stack.tsx +1 -2
  148. package/src/primitives/stack/styles.ts +3 -3
  149. package/src/primitives/text/__workshop__/opticalAlignment.tsx +5 -15
  150. package/src/primitives/text/text.tsx +2 -3
  151. package/src/primitives/textArea/__workshop__/plain.tsx +18 -23
  152. package/src/primitives/textArea/textArea.tsx +5 -21
  153. package/src/primitives/textInput/__workshop__/clearButton.tsx +8 -14
  154. package/src/primitives/textInput/__workshop__/index.ts +2 -2
  155. package/src/primitives/textInput/__workshop__/plain.tsx +32 -39
  156. package/src/primitives/textInput/__workshop__/tones.tsx +95 -234
  157. package/src/primitives/textInput/__workshop__/typed.tsx +2 -8
  158. package/src/primitives/textInput/textInput.tsx +12 -47
  159. package/src/primitives/tooltip/__workshop__/props.tsx +2 -7
  160. package/src/primitives/tooltip/tooltip.tsx +9 -19
  161. package/src/primitives/types.ts +1 -1
  162. package/src/styles/border/borderStyle.ts +6 -6
  163. package/src/styles/border/types.ts +5 -5
  164. package/src/styles/box/boxStyle.ts +5 -5
  165. package/src/styles/box/types.ts +4 -4
  166. package/src/styles/flex/flexItemStyle.ts +4 -5
  167. package/src/styles/flex/flexStyle.ts +6 -6
  168. package/src/styles/flex/types.ts +6 -6
  169. package/src/styles/font/responsiveFont.ts +4 -2
  170. package/src/styles/font/textAlignStyle.ts +2 -2
  171. package/src/styles/font/types.ts +3 -4
  172. package/src/styles/grid/gridItemStyle.ts +7 -7
  173. package/src/styles/grid/gridStyle.ts +9 -9
  174. package/src/styles/grid/types.ts +14 -14
  175. package/src/styles/helpers.ts +9 -9
  176. package/src/styles/input/responsiveInputPaddingStyle.ts +27 -24
  177. package/src/styles/input/textInputStyle.ts +80 -92
  178. package/src/styles/margin/marginStyle.ts +8 -8
  179. package/src/styles/margin/marginsStyle.test.ts +1 -1
  180. package/src/styles/margin/types.ts +7 -7
  181. package/src/styles/padding/paddingStyle.test.ts +1 -1
  182. package/src/styles/padding/paddingStyle.ts +8 -8
  183. package/src/styles/padding/types.ts +7 -7
  184. package/src/styles/radius/radiusStyle.ts +2 -2
  185. package/src/styles/radius/types.ts +1 -1
  186. package/src/styles/shadow/shadowStyle.ts +5 -2
  187. package/src/styles/shadow/types.ts +1 -1
  188. package/src/theme/studioTheme/color.ts +14 -15
  189. package/src/theme/studioTheme/fonts.ts +4 -4
  190. package/src/utils/elementQuery/elementQuery.tsx +18 -5
  191. package/src/utils/index.ts +1 -0
  192. package/src/utils/layer/layerProvider.tsx +2 -2
  193. package/src/{observers → utils}/resizeObserver.ts +3 -1
  194. package/src/utils/virtualList/virtualList.tsx +7 -8
  195. package/lib/dts/src/hooks/useArrayProp.d.ts +0 -7
  196. package/lib/dts/src/hooks/useArrayProp.d.ts.map +0 -1
  197. package/lib/dts/src/hooks/useElementSize.d.ts +0 -7
  198. package/lib/dts/src/hooks/useElementSize.d.ts.map +0 -1
  199. package/lib/dts/src/observers/elementSizeObserver.d.ts +0 -37
  200. package/lib/dts/src/observers/elementSizeObserver.d.ts.map +0 -1
  201. package/lib/dts/src/observers/index.d.ts +0 -3
  202. package/lib/dts/src/observers/index.d.ts.map +0 -1
  203. package/lib/dts/src/observers/resizeObserver.d.ts +0 -5
  204. package/lib/dts/src/observers/resizeObserver.d.ts.map +0 -1
  205. package/src/hooks/useArrayProp.ts +0 -23
  206. package/src/hooks/useElementSize.ts +0 -18
  207. package/src/observers/elementSizeObserver.ts +0 -116
  208. package/src/observers/index.ts +0 -2
  209. package/src/primitives/popover/__workshop__/RightAlignedStory.tsx +0 -60
  210. package/src/primitives/popover/__workshop__/TestStory.tsx +0 -79
package/lib/sanity-ui.js CHANGED
@@ -2,11 +2,11 @@ var autoId = require('@reach/auto-id');
2
2
  var React = require('react');
3
3
  var ReactIs = require('react-is');
4
4
  var styled = require('styled-components');
5
- var resizeObserver = require('@juggle/resize-observer');
6
5
  var color$1 = require('@sanity/color');
7
6
  var icons = require('@sanity/icons');
8
7
  var Refractor = require('react-refractor');
9
8
  var reactPopper = require('react-popper');
9
+ var resizeObserver = require('@juggle/resize-observer');
10
10
  var ReactDOM = require('react-dom');
11
11
  var maxSizeModifier = require('popper-max-size-modifier');
12
12
  var framerMotion = require('framer-motion');
@@ -119,215 +119,6 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
119
119
  var EMPTY_ARRAY = [];
120
120
  var EMPTY_RECORD = {};
121
121
 
122
- /**
123
- * @internal
124
- */
125
-
126
- function _fillCSSObject(keys, value) {
127
- return keys.reduce(function (style, key) {
128
- style[key] = value;
129
- return style;
130
- }, {});
131
- }
132
- /**
133
- * @public
134
- */
135
-
136
- function rem(pixelValue) {
137
- if (pixelValue === 0) return 0;
138
- return pixelValue / 16 + "rem";
139
- }
140
- /**
141
- * @internal
142
- */
143
-
144
- function _responsive(media, values, callback) {
145
- var statements = values.map(callback);
146
- return statements.map(function (statement, mediaIndex) {
147
- var _ref;
148
-
149
- if (mediaIndex === 0) return statement;
150
- return _ref = {}, _ref["@media screen and (min-width: " + media[mediaIndex - 1] + "px)"] = statement, _ref;
151
- });
152
- }
153
- /**
154
- * @internal
155
- */
156
-
157
- function _getArrayProp(val, defaultVal) {
158
- if (val === undefined) return defaultVal || EMPTY_ARRAY;
159
- return Array.isArray(val) ? val : [val];
160
- }
161
- /**
162
- * @internal
163
- */
164
-
165
- function _getResponsiveSpace(theme, props, spaceIndexes) {
166
- if (spaceIndexes === void 0) {
167
- spaceIndexes = EMPTY_ARRAY;
168
- }
169
-
170
- if (!Array.isArray(spaceIndexes)) {
171
- throw new Error('the property must be array of numbers');
172
- }
173
-
174
- if (spaceIndexes.length === 0) {
175
- return null;
176
- }
177
-
178
- return _responsive(theme.sanity.media, spaceIndexes, function (spaceIndex) {
179
- return _fillCSSObject(props, rem(theme.sanity.space[spaceIndex]));
180
- });
181
- }
182
-
183
- /**
184
- * A utility function getting responsive font styles.
185
- * @internal
186
- */
187
-
188
- function responsiveFont(fontKey, props) {
189
- var $size = props.$size,
190
- $weight = props.$weight,
191
- theme = props.theme;
192
- var _theme$sanity = theme.sanity,
193
- fonts = _theme$sanity.fonts,
194
- media = _theme$sanity.media;
195
- var _fonts$fontKey = fonts[fontKey],
196
- family = _fonts$fontKey.family,
197
- sizes = _fonts$fontKey.sizes,
198
- weights = _fonts$fontKey.weights;
199
- var fontWeight = $weight && weights[$weight] || weights.regular; // @todo: make this configurable
200
-
201
- var defaultSize = sizes[2];
202
- var base = {
203
- position: 'relative',
204
- fontFamily: family,
205
- fontWeight: fontWeight,
206
- padding: '1px 0',
207
- margin: 0,
208
- '&:before': {
209
- content: '""',
210
- display: 'block',
211
- height: 0
212
- },
213
- '&:after': {
214
- content: '""',
215
- display: 'block',
216
- height: 0
217
- },
218
- '& > code, & > span': {
219
- display: 'block'
220
- },
221
- '&:not([hidden])': {
222
- display: 'block'
223
- }
224
- };
225
-
226
- var resp = _responsive(media, $size, function (sizeIndex) {
227
- return fontSize(sizes[sizeIndex] || defaultSize);
228
- });
229
-
230
- return [base].concat(resp);
231
- }
232
- function fontSize(size) {
233
- var ascenderHeight = size.ascenderHeight,
234
- descenderHeight = size.descenderHeight,
235
- fontSize = size.fontSize,
236
- iconSize = size.iconSize,
237
- letterSpacing = size.letterSpacing,
238
- lineHeight = size.lineHeight;
239
- var negHeight = ascenderHeight + descenderHeight;
240
- var capHeight = lineHeight - negHeight;
241
- var iconOffset = (capHeight - iconSize) / 2;
242
- var customIconSize = Math.floor(fontSize * 1.125 / 2) * 2 + 1;
243
- var customIconOffset = (capHeight - customIconSize) / 2;
244
- return {
245
- fontSize: rem(fontSize),
246
- lineHeight: "calc(" + lineHeight + " / " + fontSize + ")",
247
- letterSpacing: rem(letterSpacing),
248
- transform: "translateY(" + rem(descenderHeight) + ")",
249
- '&:before': {
250
- marginTop: "calc(" + rem(0 - negHeight) + " - 1px)"
251
- },
252
- '&:after': {
253
- marginBottom: '-1px'
254
- },
255
- '& svg:not([data-sanity-icon])': {
256
- fontSize: "calc(" + customIconSize + " / 16 * 1rem)",
257
- margin: rem(customIconOffset)
258
- },
259
- '& [data-sanity-icon]': {
260
- fontSize: "calc(" + iconSize + " / 16 * 1rem)",
261
- margin: rem(iconOffset)
262
- }
263
- };
264
- }
265
-
266
- /**
267
- * Get responsive CSS for the `code` font style.
268
- * @internal
269
- */
270
-
271
- function responsiveCodeFontStyle(props) {
272
- return responsiveFont('code', props);
273
- }
274
-
275
- /**
276
- * Get responsive CSS for the `heading` font style.
277
- * @internal
278
- */
279
-
280
- function responsiveHeadingFont(props) {
281
- return responsiveFont('heading', props);
282
- }
283
-
284
- /**
285
- * Get responsive CSS for the `label` font style.
286
- * @internal
287
- */
288
-
289
- function responsiveLabelFont(props) {
290
- return responsiveFont('label', props);
291
- }
292
-
293
- /**
294
- * Get responsive text align styles.
295
- * @internal
296
- */
297
-
298
- function responsiveTextAlignStyle(props) {
299
- var theme = props.theme;
300
- return _responsive(theme.sanity.media, props.$align, function (textAlign) {
301
- return {
302
- textAlign: textAlign
303
- };
304
- });
305
- }
306
-
307
- /**
308
- * Get responsive CSS for the `text` font style.
309
- * @internal
310
- */
311
-
312
- function responsiveTextFont(props) {
313
- return responsiveFont('text', props);
314
- }
315
-
316
- /**
317
- * This API might change. DO NOT USE IN PRODUCTION.
318
- * @beta
319
- */
320
-
321
- function useArrayProp(val, defaultVal) {
322
- var __perf_hash__ = JSON.stringify(val != null ? val : defaultVal);
323
-
324
- return React.useMemo(function () {
325
- return _getArrayProp(val, defaultVal);
326
- }, // Improve performance: Keep object identify for a given hash of the value
327
- // eslint-disable-next-line react-hooks/exhaustive-deps
328
- [__perf_hash__]);
329
- }
330
-
331
122
  function _getElements(element, elementsArg) {
332
123
  var ret = [element];
333
124
 
@@ -429,110 +220,26 @@ function useClickOutside(listener, elementsArg, boundaryElement) {
429
220
  }
430
221
 
431
222
  /**
432
- * @internal
433
- */
434
-
435
- var _ResizeObserver = typeof window !== 'undefined' && window.ResizeObserver ? window.ResizeObserver : resizeObserver.ResizeObserver;
436
-
437
- // NOTE: this should NOT have size effects
438
-
439
- /**
440
- * @internal
441
- */
442
-
443
- var _elementSizeObserver = _createElementSizeObserver();
444
-
445
- function _createElementRectValueListener() {
446
- return {
447
- subscribe: function subscribe(element, subscriber) {
448
- var resizeObserver = new _ResizeObserver(function (_ref) {
449
- var entry = _ref[0];
450
- subscriber({
451
- _contentRect: entry.contentRect,
452
- border: {
453
- width: entry.borderBoxSize[0].inlineSize,
454
- height: entry.borderBoxSize[0].blockSize
455
- },
456
- content: {
457
- width: entry.contentRect.width,
458
- height: entry.contentRect.height
459
- }
460
- });
461
- });
462
- resizeObserver.observe(element);
463
- return function () {
464
- resizeObserver.unobserve(element);
465
- resizeObserver.disconnect();
466
- };
467
- }
468
- };
469
- }
470
-
471
- function _createElementSizeObserver() {
472
- var disposeCache = new WeakMap();
473
- var subscribersCache = new WeakMap();
474
- return {
475
- subscribe: function subscribe(element, subscriber) {
476
- var subscribers = subscribersCache.get(element) || [];
477
- var dispose = disposeCache.get(element);
478
-
479
- if (!subscribersCache.has(element)) {
480
- subscribersCache.set(element, subscribers);
481
-
482
- var listener = _createElementRectValueListener(); // listen
483
-
484
-
485
- dispose = listener.subscribe(element, function (elementRect) {
486
- for (var _iterator = _createForOfIteratorHelperLoose(subscribers), _step; !(_step = _iterator()).done;) {
487
- var sub = _step.value;
488
- sub(elementRect);
489
- }
490
- });
491
- }
492
-
493
- subscribers.push(subscriber);
494
- return function () {
495
- // dispose
496
- var idx = subscribers.indexOf(subscriber);
497
-
498
- if (idx > -1) {
499
- subscribers.splice(idx, 1);
500
- }
501
-
502
- if (subscribers.length === 0) {
503
- // unlisten
504
- if (dispose) dispose();
505
- }
506
- };
507
- }
508
- };
509
- }
510
-
511
- /**
512
- * Subscribe to the size of a DOM element.
223
+ * Subscribe to the rect of a DOM element.
513
224
  * @beta
514
225
  */
515
226
 
516
- function useElementSize(element) {
227
+ function useElementRect(element) {
517
228
  var _useState = React.useState(null),
518
- size = _useState[0],
519
- setSize = _useState[1];
229
+ rect = _useState[0],
230
+ setRect = _useState[1];
520
231
 
521
232
  React.useEffect(function () {
522
233
  if (!element) return undefined;
523
- return _elementSizeObserver.subscribe(element, setSize);
234
+ var ro = new ResizeObserver(function (entries) {
235
+ setRect(entries[0].contentRect);
236
+ });
237
+ ro.observe(element);
238
+ return function () {
239
+ return ro.disconnect();
240
+ };
524
241
  }, [element]);
525
- return size;
526
- }
527
-
528
- /**
529
- * Subscribe to the rect of a DOM element.
530
- * @deprecated Use `useElementSize` instead
531
- */
532
-
533
- function useElementRect(element) {
534
- var elementSize = useElementSize(element);
535
- return (elementSize == null ? void 0 : elementSize._contentRect) || null;
242
+ return rect;
536
243
  }
537
244
 
538
245
  /**
@@ -1984,20 +1691,18 @@ var color = createColorTheme({
1984
1691
  name = _ref.name;
1985
1692
 
1986
1693
  if (name === 'default') {
1987
- var _tints = color$1.hues.gray;
1988
-
1989
- var _skeletonFrom = dark ? _tints[900].hex : _tints[100].hex;
1694
+ var _skeletonFrom = dark ? color$1.hues.gray[900].hex : color$1.hues.gray[100].hex;
1990
1695
 
1991
1696
  return {
1992
1697
  fg: dark ? color$1.white.hex : color$1.black.hex,
1993
1698
  bg: dark ? color$1.black.hex : color$1.white.hex,
1994
- border: _tints[dark ? 800 : 200].hex,
1699
+ border: color$1.hues.gray[dark ? 800 : 200].hex,
1995
1700
  focusRing: color$1.hues.blue[dark ? 500 : 500].hex,
1996
1701
  shadow: {
1997
- outline: rgba(_tints[500].hex, 0.4),
1998
- umbra: dark ? rgba(_tints[950].hex, 0.4) : rgba(_tints[500].hex, 0.2),
1999
- penumbra: dark ? rgba(_tints[950].hex, 0.28) : rgba(_tints[500].hex, 0.14),
2000
- ambient: dark ? rgba(_tints[950].hex, 0.24) : rgba(_tints[500].hex, 0.12)
1702
+ outline: rgba(color$1.hues.gray[500].hex, 0.4),
1703
+ umbra: rgba(dark ? color$1.black.hex : color$1.hues.gray[500].hex, 0.2),
1704
+ penumbra: rgba(dark ? color$1.black.hex : color$1.hues.gray[500].hex, 0.14),
1705
+ ambient: rgba(dark ? color$1.black.hex : color$1.hues.gray[500].hex, 0.12)
2001
1706
  },
2002
1707
  skeleton: {
2003
1708
  from: _skeletonFrom,
@@ -2007,18 +1712,18 @@ var color = createColorTheme({
2007
1712
  }
2008
1713
 
2009
1714
  if (name === 'transparent') {
2010
- var _tints2 = tones["default"];
2011
- var _skeletonFrom2 = _tints2[dark ? 800 : 200].hex;
1715
+ var _tints = tones["default"];
1716
+ var _skeletonFrom2 = _tints[dark ? 800 : 200].hex;
2012
1717
  return {
2013
- fg: _tints2[dark ? 100 : 900].hex,
2014
- bg: _tints2[dark ? 950 : 50].hex,
2015
- border: _tints2[dark ? 800 : 300].hex,
1718
+ fg: _tints[dark ? 100 : 900].hex,
1719
+ bg: _tints[dark ? 950 : 50].hex,
1720
+ border: _tints[dark ? 800 : 300].hex,
2016
1721
  focusRing: color$1.hues.blue[500].hex,
2017
1722
  shadow: {
2018
- outline: rgba(_tints2[500].hex, 0.4),
2019
- umbra: dark ? rgba(_tints2[900].hex, 0.4) : rgba(_tints2[500].hex, 0.2),
2020
- penumbra: dark ? rgba(_tints2[900].hex, 0.28) : rgba(_tints2[500].hex, 0.14),
2021
- ambient: dark ? rgba(_tints2[900].hex, 0.24) : rgba(_tints2[500].hex, 0.12)
1723
+ outline: rgba(_tints[500].hex, dark ? 0.2 : 0.4),
1724
+ umbra: rgba(dark ? color$1.black.hex : _tints[500].hex, 0.2),
1725
+ penumbra: rgba(dark ? color$1.black.hex : _tints[500].hex, 0.14),
1726
+ ambient: rgba(dark ? color$1.black.hex : _tints[500].hex, 0.12)
2022
1727
  },
2023
1728
  skeleton: {
2024
1729
  from: _skeletonFrom2,
@@ -2035,10 +1740,10 @@ var color = createColorTheme({
2035
1740
  border: tints[dark ? 800 : 200].hex,
2036
1741
  focusRing: tints[500].hex,
2037
1742
  shadow: {
2038
- outline: rgba(tints[500].hex, 0.4),
2039
- umbra: dark ? rgba(tints[900].hex, 0.4) : rgba(tints[500].hex, 0.2),
2040
- penumbra: dark ? rgba(tints[900].hex, 0.28) : rgba(tints[500].hex, 0.14),
2041
- ambient: dark ? rgba(tints[900].hex, 0.24) : rgba(tints[500].hex, 0.12)
1743
+ outline: rgba(tints[500].hex, dark ? 0.2 : 0.4),
1744
+ umbra: rgba(dark ? color$1.black.hex : tints[500].hex, 0.2),
1745
+ penumbra: rgba(dark ? color$1.black.hex : tints[500].hex, 0.14),
1746
+ ambient: rgba(dark ? color$1.black.hex : tints[500].hex, 0.12)
2042
1747
  },
2043
1748
  skeleton: {
2044
1749
  from: skeletonFrom,
@@ -2704,15 +2409,15 @@ var fonts = {
2704
2409
  lineHeight: 33,
2705
2410
  letterSpacing: 0
2706
2411
  }, {
2707
- ascenderHeight: 8,
2708
- descenderHeight: 8,
2412
+ ascenderHeight: 9,
2413
+ descenderHeight: 7,
2709
2414
  fontSize: 33,
2710
2415
  iconSize: 49,
2711
2416
  lineHeight: 39,
2712
2417
  letterSpacing: 0
2713
2418
  }, {
2714
- ascenderHeight: 9,
2715
- descenderHeight: 9,
2419
+ ascenderHeight: 10,
2420
+ descenderHeight: 8,
2716
2421
  fontSize: 38,
2717
2422
  iconSize: 53,
2718
2423
  lineHeight: 45,
@@ -3104,122 +2809,325 @@ function _createMediaManager(media) {
3104
2809
  for (var _iterator2 = _createForOfIteratorHelperLoose(sizes), _step2; !(_step2 = _iterator2()).done;) {
3105
2810
  _loop();
3106
2811
  }
3107
-
3108
- return function () {
3109
- for (var _iterator3 = _createForOfIteratorHelperLoose(disposeFns), _step3; !(_step3 = _iterator3()).done;) {
3110
- var disposeFn = _step3.value;
3111
- disposeFn();
3112
- }
3113
- };
2812
+
2813
+ return function () {
2814
+ for (var _iterator3 = _createForOfIteratorHelperLoose(disposeFns), _step3; !(_step3 = _iterator3()).done;) {
2815
+ var disposeFn = _step3.value;
2816
+ disposeFn();
2817
+ }
2818
+ };
2819
+ };
2820
+
2821
+ return {
2822
+ getCurrentIndex: getCurrentIndex,
2823
+ subscribe: subscribe
2824
+ };
2825
+ }
2826
+ /**
2827
+ * @internal
2828
+ */
2829
+
2830
+
2831
+ function _getMediaManager(media) {
2832
+ var manager = MEDIA_MANAGER_CACHE.get(media);
2833
+
2834
+ if (!manager) {
2835
+ manager = _createMediaManager(media);
2836
+ MEDIA_MANAGER_CACHE.set(media, manager);
2837
+ }
2838
+
2839
+ return manager;
2840
+ }
2841
+
2842
+ /**
2843
+ * This API might change. DO NOT USE IN PRODUCTION.
2844
+ * @beta
2845
+ */
2846
+
2847
+ function useMediaIndex() {
2848
+ var theme = useTheme();
2849
+ var media = theme.sanity.media;
2850
+ var manager = React.useMemo(function () {
2851
+ return _getMediaManager(media);
2852
+ }, [media]);
2853
+
2854
+ var _useState = React.useState(manager.getCurrentIndex),
2855
+ index = _useState[0],
2856
+ setIndex = _useState[1];
2857
+
2858
+ React.useEffect(function () {
2859
+ return manager.subscribe(setIndex);
2860
+ }, [manager]);
2861
+ return index;
2862
+ }
2863
+
2864
+ /**
2865
+ * @public
2866
+ */
2867
+
2868
+ function usePrefersDark() {
2869
+ var mq = React.useMemo(function () {
2870
+ if (typeof window === 'undefined') return undefined;
2871
+ return window.matchMedia('(prefers-color-scheme: dark)');
2872
+ }, []);
2873
+
2874
+ var _useState = React.useState((mq == null ? void 0 : mq.matches) || false),
2875
+ dark = _useState[0],
2876
+ setDark = _useState[1];
2877
+
2878
+ React.useEffect(function () {
2879
+ if (!mq) return undefined;
2880
+ setDark(mq.matches);
2881
+
2882
+ var handleChange = function handleChange() {
2883
+ return setDark(mq.matches);
2884
+ };
2885
+
2886
+ mq.addEventListener('change', handleChange);
2887
+ return function () {
2888
+ return mq.removeEventListener('change', handleChange);
2889
+ };
2890
+ }, [mq]);
2891
+ return dark;
2892
+ }
2893
+
2894
+ /**
2895
+ * @beta
2896
+ */
2897
+
2898
+ var useIsomorphicEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
2899
+
2900
+ /**
2901
+ * @beta
2902
+ */
2903
+
2904
+ function useForwardedRef(ref) {
2905
+ var innerRef = React.useRef(null);
2906
+ useIsomorphicEffect(function () {
2907
+ if (!ref) return;
2908
+
2909
+ if (typeof ref === 'function') {
2910
+ ref(innerRef.current);
2911
+ } else {
2912
+ ref.current = innerRef.current;
2913
+ }
2914
+ });
2915
+ return innerRef;
2916
+ }
2917
+
2918
+ /**
2919
+ * @beta
2920
+ */
2921
+
2922
+ function useCustomValidity(ref, customValidity) {
2923
+ React.useEffect(function () {
2924
+ if (ref.current) {
2925
+ ref.current.setCustomValidity(customValidity || '');
2926
+ }
2927
+ }, [customValidity, ref]);
2928
+ }
2929
+
2930
+ /**
2931
+ * @internal
2932
+ */
2933
+
2934
+ function fillCSSObject(propKeys, value) {
2935
+ return propKeys.reduce(function (obj, propKey) {
2936
+ obj[propKey] = value;
2937
+ return obj;
2938
+ }, {});
2939
+ }
2940
+ /**
2941
+ * @public
2942
+ */
2943
+
2944
+ function rem(pixelValue) {
2945
+ if (pixelValue === 0) return 0;
2946
+ return pixelValue / 16 + "rem";
2947
+ }
2948
+ /**
2949
+ * @internal
2950
+ */
2951
+
2952
+ function responsive(media, values, callback) {
2953
+ var statements = values.map(callback);
2954
+ return statements.map(function (statement, mediaIndex) {
2955
+ var _ref;
2956
+
2957
+ if (mediaIndex === 0) return statement;
2958
+ return _ref = {}, _ref["@media screen and (min-width: " + media[mediaIndex - 1] + "px)"] = statement, _ref;
2959
+ });
2960
+ }
2961
+ /**
2962
+ * @internal
2963
+ */
2964
+
2965
+ function getResponsiveProp(val, defaultVal) {
2966
+ if (val === undefined) return defaultVal || EMPTY_ARRAY;
2967
+ return Array.isArray(val) ? val : [val];
2968
+ }
2969
+ /**
2970
+ * @internal
2971
+ */
2972
+
2973
+ function getResponsiveSpace(theme, props, spaceIndexes) {
2974
+ if (spaceIndexes === void 0) {
2975
+ spaceIndexes = EMPTY_ARRAY;
2976
+ }
2977
+
2978
+ if (!Array.isArray(spaceIndexes)) {
2979
+ throw new Error('the property must be array of numbers');
2980
+ }
2981
+
2982
+ if (spaceIndexes.length === 0) {
2983
+ return null;
2984
+ }
2985
+
2986
+ return responsive(theme.sanity.media, spaceIndexes, function (spaceIndex) {
2987
+ return fillCSSObject(props, rem(theme.sanity.space[spaceIndex]));
2988
+ });
2989
+ }
2990
+
2991
+ /**
2992
+ * A utility function getting responsive font styles.
2993
+ * @internal
2994
+ */
2995
+
2996
+ function responsiveFont(fontKey, props) {
2997
+ var $size = props.$size,
2998
+ $weight = props.$weight,
2999
+ theme = props.theme;
3000
+ var _theme$sanity = theme.sanity,
3001
+ fonts = _theme$sanity.fonts,
3002
+ media = _theme$sanity.media;
3003
+ var _fonts$fontKey = fonts[fontKey],
3004
+ family = _fonts$fontKey.family,
3005
+ sizes = _fonts$fontKey.sizes,
3006
+ weights = _fonts$fontKey.weights;
3007
+ var fontWeight = $weight && weights[$weight] || weights.regular; // @todo: make this configurable
3008
+
3009
+ var defaultSize = sizes[2];
3010
+ var base = {
3011
+ position: 'relative',
3012
+ fontFamily: family,
3013
+ fontWeight: fontWeight,
3014
+ padding: '1px 0',
3015
+ margin: 0,
3016
+ '&:before': {
3017
+ content: '""',
3018
+ display: 'block',
3019
+ height: 0
3020
+ },
3021
+ '&:after': {
3022
+ content: '""',
3023
+ display: 'block',
3024
+ height: 0
3025
+ },
3026
+ '& > code, & > span': {
3027
+ display: 'block'
3028
+ },
3029
+ '&:not([hidden])': {
3030
+ display: 'block'
3031
+ }
3114
3032
  };
3115
-
3033
+ var resp = responsive(media, getResponsiveProp($size), function (sizeIndex) {
3034
+ return fontSize(sizes[sizeIndex] || defaultSize);
3035
+ });
3036
+ return [base].concat(resp);
3037
+ }
3038
+ function fontSize(size) {
3039
+ var ascenderHeight = size.ascenderHeight,
3040
+ descenderHeight = size.descenderHeight,
3041
+ fontSize = size.fontSize,
3042
+ iconSize = size.iconSize,
3043
+ letterSpacing = size.letterSpacing,
3044
+ lineHeight = size.lineHeight;
3045
+ var negHeight = ascenderHeight + descenderHeight;
3046
+ var capHeight = lineHeight - negHeight;
3047
+ var iconOffset = (capHeight - iconSize) / 2;
3048
+ var customIconSize = Math.floor(fontSize * 1.125 / 2) * 2 + 1;
3049
+ var customIconOffset = (capHeight - customIconSize) / 2;
3116
3050
  return {
3117
- getCurrentIndex: getCurrentIndex,
3118
- subscribe: subscribe
3051
+ fontSize: rem(fontSize),
3052
+ lineHeight: "calc(" + lineHeight + " / " + fontSize + ")",
3053
+ letterSpacing: rem(letterSpacing),
3054
+ transform: "translateY(" + rem(descenderHeight) + ")",
3055
+ '&:before': {
3056
+ marginTop: "calc(" + rem(0 - negHeight) + " - 1px)"
3057
+ },
3058
+ '&:after': {
3059
+ marginBottom: '-1px'
3060
+ },
3061
+ '& svg:not([data-sanity-icon])': {
3062
+ fontSize: "calc(" + customIconSize + " / 16 * 1rem)",
3063
+ margin: rem(customIconOffset)
3064
+ },
3065
+ '& [data-sanity-icon]': {
3066
+ fontSize: "calc(" + iconSize + " / 16 * 1rem)",
3067
+ margin: rem(iconOffset)
3068
+ }
3119
3069
  };
3120
3070
  }
3071
+
3121
3072
  /**
3073
+ * Get responsive CSS for the `code` font style.
3122
3074
  * @internal
3123
3075
  */
3124
3076
 
3125
-
3126
- function _getMediaManager(media) {
3127
- var manager = MEDIA_MANAGER_CACHE.get(media);
3128
-
3129
- if (!manager) {
3130
- manager = _createMediaManager(media);
3131
- MEDIA_MANAGER_CACHE.set(media, manager);
3132
- }
3133
-
3134
- return manager;
3077
+ function responsiveCodeFontStyle(props) {
3078
+ return responsiveFont('code', props);
3135
3079
  }
3136
3080
 
3137
3081
  /**
3138
- * This API might change. DO NOT USE IN PRODUCTION.
3139
- * @beta
3082
+ * Get responsive CSS for the `heading` font style.
3083
+ * @internal
3140
3084
  */
3141
3085
 
3142
- function useMediaIndex() {
3143
- var theme = useTheme();
3144
- var media = theme.sanity.media;
3145
- var manager = React.useMemo(function () {
3146
- return _getMediaManager(media);
3147
- }, [media]);
3148
-
3149
- var _useState = React.useState(manager.getCurrentIndex),
3150
- index = _useState[0],
3151
- setIndex = _useState[1];
3152
-
3153
- React.useEffect(function () {
3154
- return manager.subscribe(setIndex);
3155
- }, [manager]);
3156
- return index;
3086
+ function responsiveHeadingFont(props) {
3087
+ return responsiveFont('heading', props);
3157
3088
  }
3158
3089
 
3159
3090
  /**
3160
- * @public
3091
+ * Get responsive CSS for the `label` font style.
3092
+ * @internal
3161
3093
  */
3162
3094
 
3163
- function usePrefersDark() {
3164
- var mq = React.useMemo(function () {
3165
- if (typeof window === 'undefined') return undefined;
3166
- return window.matchMedia('(prefers-color-scheme: dark)');
3167
- }, []);
3168
-
3169
- var _useState = React.useState((mq == null ? void 0 : mq.matches) || false),
3170
- dark = _useState[0],
3171
- setDark = _useState[1];
3172
-
3173
- React.useEffect(function () {
3174
- if (!mq) return undefined;
3175
- setDark(mq.matches);
3176
-
3177
- var handleChange = function handleChange() {
3178
- return setDark(mq.matches);
3179
- };
3180
-
3181
- mq.addEventListener('change', handleChange);
3182
- return function () {
3183
- return mq.removeEventListener('change', handleChange);
3184
- };
3185
- }, [mq]);
3186
- return dark;
3095
+ function responsiveLabelFont(props) {
3096
+ return responsiveFont('label', props);
3187
3097
  }
3188
3098
 
3189
3099
  /**
3190
- * @beta
3100
+ * Get responsive text align styles.
3101
+ * @internal
3191
3102
  */
3192
3103
 
3193
- var useIsomorphicEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
3104
+ function responsiveTextAlignStyle(props) {
3105
+ var theme = props.theme;
3106
+ return responsive(theme.sanity.media, getResponsiveProp(props.$align), function (textAlign) {
3107
+ return {
3108
+ textAlign: textAlign
3109
+ };
3110
+ });
3111
+ }
3194
3112
 
3195
3113
  /**
3196
- * @beta
3114
+ * Get responsive CSS for the `text` font style.
3115
+ * @internal
3197
3116
  */
3198
3117
 
3199
- function useForwardedRef(ref) {
3200
- var innerRef = React.useRef(null);
3201
- useIsomorphicEffect(function () {
3202
- if (!ref) return;
3203
-
3204
- if (typeof ref === 'function') {
3205
- ref(innerRef.current);
3206
- } else {
3207
- ref.current = innerRef.current;
3208
- }
3209
- });
3210
- return innerRef;
3118
+ function responsiveTextFont(props) {
3119
+ return responsiveFont('text', props);
3211
3120
  }
3212
3121
 
3213
3122
  /**
3123
+ * This API might change. DO NOT USE IN PRODUCTION.
3214
3124
  * @beta
3215
3125
  */
3216
3126
 
3217
- function useCustomValidity(ref, customValidity) {
3218
- React.useEffect(function () {
3219
- if (ref.current) {
3220
- ref.current.setCustomValidity(customValidity || '');
3221
- }
3222
- }, [customValidity, ref]);
3127
+ function useResponsiveProp(val, defaultVal) {
3128
+ return React.useMemo(function () {
3129
+ return getResponsiveProp(val, defaultVal);
3130
+ }, [defaultVal, val]);
3223
3131
  }
3224
3132
 
3225
3133
  var BORDER_VALUE = '1px solid var(--card-border-color)';
@@ -3230,7 +3138,7 @@ function responsiveBorderStyle() {
3230
3138
  function border(props) {
3231
3139
  var theme = props.theme;
3232
3140
  var media = theme.sanity.media;
3233
- return _responsive(media, props.$border, function (value) {
3141
+ return responsive(media, getResponsiveProp(props.$border), function (value) {
3234
3142
  return value ? {
3235
3143
  '&&': {
3236
3144
  border: BORDER_VALUE
@@ -3246,7 +3154,7 @@ function border(props) {
3246
3154
  function borderTop(props) {
3247
3155
  var theme = props.theme;
3248
3156
  var media = theme.sanity.media;
3249
- return _responsive(media, props.$borderTop, function (value) {
3157
+ return responsive(media, getResponsiveProp(props.$borderTop), function (value) {
3250
3158
  return value ? {
3251
3159
  '&&': {
3252
3160
  borderTop: BORDER_VALUE
@@ -3262,7 +3170,7 @@ function borderTop(props) {
3262
3170
  function borderRight(props) {
3263
3171
  var theme = props.theme;
3264
3172
  var media = theme.sanity.media;
3265
- return _responsive(media, props.$borderRight, function (value) {
3173
+ return responsive(media, getResponsiveProp(props.$borderRight), function (value) {
3266
3174
  return value ? {
3267
3175
  '&&': {
3268
3176
  borderRight: BORDER_VALUE
@@ -3278,7 +3186,7 @@ function borderRight(props) {
3278
3186
  function borderBottom(props) {
3279
3187
  var theme = props.theme;
3280
3188
  var media = theme.sanity.media;
3281
- return _responsive(media, props.$borderBottom, function (value) {
3189
+ return responsive(media, getResponsiveProp(props.$borderBottom), function (value) {
3282
3190
  return value ? {
3283
3191
  '&&': {
3284
3192
  borderBottom: BORDER_VALUE
@@ -3294,7 +3202,7 @@ function borderBottom(props) {
3294
3202
  function borderLeft(props) {
3295
3203
  var theme = props.theme;
3296
3204
  var media = theme.sanity.media;
3297
- return _responsive(media, props.$borderLeft, function (value) {
3205
+ return responsive(media, getResponsiveProp(props.$borderLeft), function (value) {
3298
3206
  return value ? {
3299
3207
  '&&': {
3300
3208
  borderLeft: BORDER_VALUE
@@ -3330,7 +3238,7 @@ function responsiveBoxStyle() {
3330
3238
  function responsiveBoxDisplayStyle(props) {
3331
3239
  var theme = props.theme;
3332
3240
  var media = theme.sanity.media;
3333
- return _responsive(media, props.$display, function (display) {
3241
+ return responsive(media, getResponsiveProp(props.$display), function (display) {
3334
3242
  return {
3335
3243
  '&:not([hidden])': {
3336
3244
  display: display
@@ -3342,7 +3250,7 @@ function responsiveBoxDisplayStyle(props) {
3342
3250
  function responsiveBoxSizingStyle(props) {
3343
3251
  var theme = props.theme;
3344
3252
  var media = theme.sanity.media;
3345
- return _responsive(media, props.$sizing, function (sizing) {
3253
+ return responsive(media, getResponsiveProp(props.$sizing), function (sizing) {
3346
3254
  return {
3347
3255
  boxSizing: BOX_SIZING[sizing]
3348
3256
  };
@@ -3352,7 +3260,7 @@ function responsiveBoxSizingStyle(props) {
3352
3260
  function responsiveBoxHeightStyle(props) {
3353
3261
  var theme = props.theme;
3354
3262
  var media = theme.sanity.media;
3355
- return _responsive(media, props.$height, function (height) {
3263
+ return responsive(media, getResponsiveProp(props.$height), function (height) {
3356
3264
  return {
3357
3265
  height: BOX_HEIGHT[height]
3358
3266
  };
@@ -3362,7 +3270,7 @@ function responsiveBoxHeightStyle(props) {
3362
3270
  function responsiveBoxOverflowStyle(props) {
3363
3271
  var theme = props.theme;
3364
3272
  var media = theme.sanity.media;
3365
- return _responsive(media, props.$overflow, function (overflow) {
3273
+ return responsive(media, getResponsiveProp(props.$overflow), function (overflow) {
3366
3274
  return {
3367
3275
  overflow: overflow
3368
3276
  };
@@ -3380,7 +3288,7 @@ function responsiveFlexStyle() {
3380
3288
  function responsiveFlexAlignStyle(props) {
3381
3289
  var theme = props.theme;
3382
3290
  var media = theme.sanity.media;
3383
- return _responsive(media, props.$align, function (align) {
3291
+ return responsive(media, getResponsiveProp(props.$align), function (align) {
3384
3292
  return {
3385
3293
  alignItems: align
3386
3294
  };
@@ -3392,7 +3300,7 @@ function responsiveFlexGapStyle(props) {
3392
3300
  var _theme$sanity = theme.sanity,
3393
3301
  media = _theme$sanity.media,
3394
3302
  space = _theme$sanity.space;
3395
- return _responsive(media, props.$gap, function (gap) {
3303
+ return responsive(media, getResponsiveProp(props.$gap), function (gap) {
3396
3304
  return {
3397
3305
  gap: gap ? rem(space[gap]) : undefined
3398
3306
  };
@@ -3402,7 +3310,7 @@ function responsiveFlexGapStyle(props) {
3402
3310
  function responsiveFlexWrapStyle(props) {
3403
3311
  var theme = props.theme;
3404
3312
  var media = theme.sanity.media;
3405
- return _responsive(media, props.$wrap, function (wrap) {
3313
+ return responsive(media, getResponsiveProp(props.$wrap), function (wrap) {
3406
3314
  return {
3407
3315
  flexWrap: wrap
3408
3316
  };
@@ -3411,7 +3319,7 @@ function responsiveFlexWrapStyle(props) {
3411
3319
  function responsiveFlexJustifyStyle(props) {
3412
3320
  var theme = props.theme;
3413
3321
  var media = theme.sanity.media;
3414
- return _responsive(media, props.$justify, function (justify) {
3322
+ return responsive(media, getResponsiveProp(props.$justify), function (justify) {
3415
3323
  return {
3416
3324
  justifyContent: justify
3417
3325
  };
@@ -3420,7 +3328,7 @@ function responsiveFlexJustifyStyle(props) {
3420
3328
  function responsiveFlexDirectionStyle(props) {
3421
3329
  var theme = props.theme;
3422
3330
  var media = theme.sanity.media;
3423
- return _responsive(media, props.$direction, function (direction) {
3331
+ return responsive(media, getResponsiveProp(props.$direction), function (direction) {
3424
3332
  return {
3425
3333
  flexDirection: direction
3426
3334
  };
@@ -3437,8 +3345,7 @@ function flexItemStyle() {
3437
3345
  function responsiveFlexItemStyle(props) {
3438
3346
  var theme = props.theme;
3439
3347
  var media = theme.sanity.media;
3440
- if (!props.$flex) return EMPTY_ARRAY;
3441
- return _responsive(media, props.$flex, function (flex) {
3348
+ return responsive(media, getResponsiveProp(props.$flex), function (flex) {
3442
3349
  return {
3443
3350
  flex: flex
3444
3351
  };
@@ -3485,7 +3392,7 @@ function responsiveGridStyle() {
3485
3392
  function responsiveGridAutoFlowStyle(props) {
3486
3393
  var theme = props.theme;
3487
3394
  var media = theme.sanity.media;
3488
- return _responsive(media, props.$autoFlow, function (autoFlow) {
3395
+ return responsive(media, getResponsiveProp(props.$autoFlow), function (autoFlow) {
3489
3396
  return {
3490
3397
  gridAutoFlow: autoFlow
3491
3398
  };
@@ -3495,7 +3402,7 @@ function responsiveGridAutoFlowStyle(props) {
3495
3402
  function responsiveGridAutoRowsStyle(props) {
3496
3403
  var theme = props.theme;
3497
3404
  var media = theme.sanity.media;
3498
- return _responsive(media, props.$autoRows, function (autoRows) {
3405
+ return responsive(media, getResponsiveProp(props.$autoRows), function (autoRows) {
3499
3406
  return {
3500
3407
  gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows]
3501
3408
  };
@@ -3505,7 +3412,7 @@ function responsiveGridAutoRowsStyle(props) {
3505
3412
  function responsiveGridAutoColsStyle(props) {
3506
3413
  var theme = props.theme;
3507
3414
  var media = theme.sanity.media;
3508
- return _responsive(media, props.$autoCols, function (autoCols) {
3415
+ return responsive(media, getResponsiveProp(props.$autoCols), function (autoCols) {
3509
3416
  return {
3510
3417
  gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols]
3511
3418
  };
@@ -3515,7 +3422,7 @@ function responsiveGridAutoColsStyle(props) {
3515
3422
  function responsiveGridColumnsStyle(props) {
3516
3423
  var theme = props.theme;
3517
3424
  var media = theme.sanity.media;
3518
- return _responsive(media, props.$columns, function (columns) {
3425
+ return responsive(media, getResponsiveProp(props.$columns), function (columns) {
3519
3426
  return {
3520
3427
  gridTemplateColumns: columns && "repeat(" + columns + ",minmax(0,1fr));"
3521
3428
  };
@@ -3525,7 +3432,7 @@ function responsiveGridColumnsStyle(props) {
3525
3432
  function responsiveGridRowsStyle(props) {
3526
3433
  var theme = props.theme;
3527
3434
  var media = theme.sanity.media;
3528
- return _responsive(media, props.$rows, function (rows) {
3435
+ return responsive(media, getResponsiveProp(props.$rows), function (rows) {
3529
3436
  return {
3530
3437
  gridTemplateRows: rows && "repeat(" + rows + ",minmax(0,1fr));"
3531
3438
  };
@@ -3537,7 +3444,7 @@ function responsiveGridGapStyle(props) {
3537
3444
  var _theme$sanity = theme.sanity,
3538
3445
  media = _theme$sanity.media,
3539
3446
  space = _theme$sanity.space;
3540
- return _responsive(media, props.$gap, function (gap) {
3447
+ return responsive(media, getResponsiveProp(props.$gap), function (gap) {
3541
3448
  return {
3542
3449
  gridGap: gap ? rem(space[gap]) : undefined
3543
3450
  };
@@ -3549,7 +3456,7 @@ function responsiveGridGapXStyle(props) {
3549
3456
  var _theme$sanity2 = theme.sanity,
3550
3457
  media = _theme$sanity2.media,
3551
3458
  space = _theme$sanity2.space;
3552
- return _responsive(media, props.$gapX, function (gapX) {
3459
+ return responsive(media, getResponsiveProp(props.$gapX), function (gapX) {
3553
3460
  return {
3554
3461
  columnGap: gapX ? rem(space[gapX]) : undefined
3555
3462
  };
@@ -3561,7 +3468,7 @@ function responsiveGridGapYStyle(props) {
3561
3468
  var _theme$sanity3 = theme.sanity,
3562
3469
  media = _theme$sanity3.media,
3563
3470
  space = _theme$sanity3.space;
3564
- return _responsive(media, props.$gapY, function (gapY) {
3471
+ return responsive(media, getResponsiveProp(props.$gapY), function (gapY) {
3565
3472
  return {
3566
3473
  rowGap: gapY ? rem(space[gapY]) : undefined
3567
3474
  };
@@ -3583,7 +3490,7 @@ var GRID_ITEM_COLUMN = {
3583
3490
  function responsiveGridItemRowStyle(props) {
3584
3491
  var theme = props.theme;
3585
3492
  var media = theme.sanity.media;
3586
- return _responsive(media, props.$row, function (row) {
3493
+ return responsive(media, getResponsiveProp(props.$row), function (row) {
3587
3494
  if (typeof row === 'number') {
3588
3495
  return {
3589
3496
  gridRow: "span " + row + " / span " + row
@@ -3599,7 +3506,7 @@ function responsiveGridItemRowStyle(props) {
3599
3506
  function responsiveGridItemRowStartStyle(props) {
3600
3507
  var theme = props.theme;
3601
3508
  var media = theme.sanity.media;
3602
- return _responsive(media, props.$rowStart, function (rowStart) {
3509
+ return responsive(media, getResponsiveProp(props.$rowStart), function (rowStart) {
3603
3510
  return {
3604
3511
  gridRowStart: rowStart
3605
3512
  };
@@ -3609,7 +3516,7 @@ function responsiveGridItemRowStartStyle(props) {
3609
3516
  function responsiveGridItemRowEndStyle(props) {
3610
3517
  var theme = props.theme;
3611
3518
  var media = theme.sanity.media;
3612
- return _responsive(media, props.$rowEnd, function (rowEnd) {
3519
+ return responsive(media, getResponsiveProp(props.$rowEnd), function (rowEnd) {
3613
3520
  return {
3614
3521
  gridRowEnd: rowEnd
3615
3522
  };
@@ -3619,7 +3526,7 @@ function responsiveGridItemRowEndStyle(props) {
3619
3526
  function responsiveGridItemColumnStyle(props) {
3620
3527
  var theme = props.theme;
3621
3528
  var media = theme.sanity.media;
3622
- return _responsive(media, props.$column, function (column) {
3529
+ return responsive(media, getResponsiveProp(props.$column), function (column) {
3623
3530
  if (typeof column === 'number') {
3624
3531
  return {
3625
3532
  gridColumn: "span " + column + " / span " + column
@@ -3635,7 +3542,7 @@ function responsiveGridItemColumnStyle(props) {
3635
3542
  function responsiveGridItemColumnStartStyle(props) {
3636
3543
  var theme = props.theme;
3637
3544
  var media = theme.sanity.media;
3638
- return _responsive(media, props.$columnStart, function (columnStart) {
3545
+ return responsive(media, getResponsiveProp(props.$columnStart), function (columnStart) {
3639
3546
  return {
3640
3547
  gridColumnStart: columnStart
3641
3548
  };
@@ -3645,7 +3552,7 @@ function responsiveGridItemColumnStartStyle(props) {
3645
3552
  function responsiveGridItemColumnEndStyle(props) {
3646
3553
  var theme = props.theme;
3647
3554
  var media = theme.sanity.media;
3648
- return _responsive(media, props.$columnEnd, function (columnEnd) {
3555
+ return responsive(media, getResponsiveProp(props.$columnEnd), function (columnEnd) {
3649
3556
  return {
3650
3557
  gridColumnEnd: columnEnd
3651
3558
  };
@@ -3653,36 +3560,36 @@ function responsiveGridItemColumnEndStyle(props) {
3653
3560
  }
3654
3561
 
3655
3562
  function responsiveInputPaddingStyle(props) {
3656
- var $fontSize = props.$fontSize,
3657
- $iconLeft = props.$iconLeft,
3563
+ var $iconLeft = props.$iconLeft,
3658
3564
  $iconRight = props.$iconRight,
3659
- $padding = props.$padding,
3660
- $space = props.$space,
3661
3565
  theme = props.theme;
3662
3566
  var _theme$sanity = theme.sanity,
3663
3567
  fonts = _theme$sanity.fonts,
3664
3568
  media = _theme$sanity.media,
3665
3569
  spaceScale = _theme$sanity.space;
3666
- var len = Math.max($padding.length, $space.length, $fontSize.length);
3570
+ var padding = getResponsiveProp(props.$padding, [0]);
3571
+ var space = getResponsiveProp(props.$space, [0]);
3572
+ var size = getResponsiveProp(props.$fontSize, [0]);
3573
+ var len = Math.max(padding.length, space.length, size.length);
3667
3574
  var _padding = [];
3668
3575
  var _space = [];
3669
- var _fontSize = [];
3576
+ var _size = [];
3670
3577
 
3671
3578
  for (var i = 0; i < len; i += 1) {
3672
- _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i];
3673
- _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i];
3674
- _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i];
3579
+ _padding[i] = padding[i] === undefined ? _padding[i - 1] : padding[i];
3580
+ _space[i] = space[i] === undefined ? _space[i - 1] : space[i];
3581
+ _size[i] = size[i] === undefined ? _size[i - 1] : size[i];
3675
3582
  }
3676
3583
 
3677
- return _responsive(media, _padding, function (_, i) {
3678
- var size = fonts.text.sizes[_fontSize[i]] || fonts.text.sizes[2];
3679
- var emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight;
3584
+ return responsive(media, _padding, function (_, i) {
3585
+ var fontSize = fonts.text.sizes[_size[i]] || fonts.text.sizes[2];
3586
+ var emSize = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight;
3680
3587
  var p = spaceScale[_padding[i]];
3681
3588
  var s = spaceScale[_space[i]];
3682
3589
  var styles = {
3683
- paddingTop: rem(p - size.ascenderHeight),
3590
+ paddingTop: rem(p - fontSize.ascenderHeight),
3684
3591
  paddingRight: rem(p),
3685
- paddingBottom: rem(p - size.descenderHeight),
3592
+ paddingBottom: rem(p - fontSize.descenderHeight),
3686
3593
  paddingLeft: rem(p)
3687
3594
  };
3688
3595
  if ($iconRight) styles.paddingRight = rem(p + emSize + s);
@@ -3703,19 +3610,17 @@ function textInputRootStyle() {
3703
3610
  }
3704
3611
  function textInputBaseStyle(props) {
3705
3612
  var theme = props.theme,
3706
- $scheme = props.$scheme,
3707
- $tone = props.$tone,
3708
3613
  $weight = props.$weight;
3709
3614
  var font = theme.sanity.fonts.text;
3710
3615
  var color = theme.sanity.color.input;
3711
- return styled.css(_templateObject2$n || (_templateObject2$n = _taggedTemplateLiteralLoose(["\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.family, $weight && font.weights[$weight] || font.weights.regular, $scheme, $tone, color["default"].enabled.fg, color["default"].enabled.placeholder, color["default"].enabled.fg, color["default"].enabled.placeholder, color["default"].disabled.fg, color["default"].disabled.placeholder, color.invalid.enabled.fg, color.invalid.enabled.placeholder, color["default"].readOnly.fg, color["default"].readOnly.placeholder);
3616
+ return styled.css(_templateObject2$n || (_templateObject2$n = _taggedTemplateLiteralLoose(["\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n\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 color: var(--input-fg-color);\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 &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\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 "])), color["default"].enabled.fg, color["default"].enabled.placeholder, font.family, $weight && font.weights[$weight] || font.weights.regular, color["default"].enabled.fg, color["default"].enabled.placeholder, color["default"].disabled.fg, color["default"].disabled.placeholder, color.invalid.enabled.fg, color.invalid.enabled.placeholder, color["default"].readOnly.fg, color["default"].readOnly.placeholder);
3712
3617
  }
3713
3618
  function textInputFontSizeStyle(props) {
3714
3619
  var theme = props.theme;
3715
3620
  var _theme$sanity = theme.sanity,
3716
3621
  fonts = _theme$sanity.fonts,
3717
3622
  media = _theme$sanity.media;
3718
- return _responsive(media, props.$fontSize, function (sizeIndex) {
3623
+ return responsive(media, getResponsiveProp(props.$fontSize, [2]), function (sizeIndex) {
3719
3624
  var size = fonts.text.sizes[sizeIndex] || fonts.text.sizes[2];
3720
3625
  return {
3721
3626
  fontSize: rem(size.fontSize),
@@ -3727,14 +3632,12 @@ function textInputRepresentationStyle(props) {
3727
3632
  var $border = props.$border,
3728
3633
  $hasPrefix = props.$hasPrefix,
3729
3634
  $hasSuffix = props.$hasSuffix,
3730
- $scheme = props.$scheme,
3731
- $tone = props.$tone,
3732
3635
  theme = props.theme;
3733
3636
  var _theme$sanity2 = theme.sanity,
3734
3637
  focusRing = _theme$sanity2.focusRing,
3735
3638
  input = _theme$sanity2.input;
3736
3639
  var color = theme.sanity.color.input;
3737
- return styled.css(_templateObject3$e || (_templateObject3$e = _taggedTemplateLiteralLoose(["\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) + & {\n --input-box-shadow: ", ";\n }\n\n /* invalid */\n *:not(:disabled):invalid + & {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n --input-box-shadow: ", ";\n }\n\n /* focused */\n *:not(:disabled):focus + & {\n --input-box-shadow: ", ";\n }\n\n /* disabled */\n *:disabled + & {\n --card-bg-color: ", " !important;\n --card-fg-color: ", " !important;\n --input-box-shadow: ", ";\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 + & {\n --input-box-shadow: ", ";\n }\n }\n }\n "])), $hasPrefix ? 0 : undefined, $hasPrefix ? 0 : undefined, $hasSuffix ? 0 : undefined, $hasSuffix ? 0 : undefined, $scheme, $tone, color["default"].enabled.bg, color["default"].enabled.fg, $border ? focusRingBorderStyle({
3640
+ return styled.css(_templateObject3$e || (_templateObject3$e = _taggedTemplateLiteralLoose(["\n --card-bg-color: ", ";\n --card-fg-color: ", ";\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 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 /* enabled */\n *:not(:disabled) + && {\n --input-box-shadow: ", ";\n }\n\n /* invalid */\n *:not(:disabled):invalid + && {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n --input-box-shadow: ", ";\n }\n\n /* focused */\n *:not(:disabled):focus + && {\n --input-box-shadow: ", ";\n }\n\n /* disabled */\n *:disabled + && {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n --input-box-shadow: ", ";\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 + && {\n --input-box-shadow: ", ";\n }\n }\n\n /* readOnly */\n *:read-only + && {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n }\n "])), color["default"].enabled.bg, color["default"].enabled.fg, $hasPrefix ? 0 : undefined, $hasPrefix ? 0 : undefined, $hasSuffix ? 0 : undefined, $hasSuffix ? 0 : undefined, $border ? focusRingBorderStyle({
3738
3641
  color: color["default"].enabled.border,
3739
3642
  width: input.border.width
3740
3643
  }) : undefined, color.invalid.enabled.bg, color.invalid.enabled.fg, $border ? focusRingBorderStyle({
@@ -3749,20 +3652,20 @@ function textInputRepresentationStyle(props) {
3749
3652
  }), color["default"].disabled.bg, color["default"].disabled.fg, $border ? focusRingBorderStyle({
3750
3653
  color: color["default"].disabled.border,
3751
3654
  width: input.border.width
3752
- }) : 'none', color["default"].readOnly.bg, color["default"].readOnly.fg, color["default"].hovered.bg, color["default"].hovered.fg, $border ? focusRingBorderStyle({
3655
+ }) : 'none', color["default"].hovered.bg, color["default"].hovered.fg, $border ? focusRingBorderStyle({
3753
3656
  color: color["default"].hovered.border,
3754
3657
  width: input.border.width
3755
- }) : 'none');
3658
+ }) : 'none', color["default"].readOnly.bg, color["default"].readOnly.fg);
3756
3659
  }
3757
3660
 
3758
3661
  function responsiveMarginStyle(props) {
3759
3662
  var theme = props.theme;
3760
- return [_getResponsiveSpace(theme, ['margin'], props.$margin), _getResponsiveSpace(theme, ['marginLeft', 'marginRight'], props.$marginX), _getResponsiveSpace(theme, ['marginTop', 'marginBottom'], props.$marginY), _getResponsiveSpace(theme, ['marginTop'], props.$marginTop), _getResponsiveSpace(theme, ['marginRight'], props.$marginRight), _getResponsiveSpace(theme, ['marginBottom'], props.$marginBottom), _getResponsiveSpace(theme, ['marginLeft'], props.$marginLeft)].filter(Boolean);
3663
+ return [getResponsiveSpace(theme, ['margin'], getResponsiveProp(props.$margin)), getResponsiveSpace(theme, ['marginLeft', 'marginRight'], getResponsiveProp(props.$marginX)), getResponsiveSpace(theme, ['marginTop', 'marginBottom'], getResponsiveProp(props.$marginY)), getResponsiveSpace(theme, ['marginTop'], getResponsiveProp(props.$marginTop)), getResponsiveSpace(theme, ['marginRight'], getResponsiveProp(props.$marginRight)), getResponsiveSpace(theme, ['marginBottom'], getResponsiveProp(props.$marginBottom)), getResponsiveSpace(theme, ['marginLeft'], getResponsiveProp(props.$marginLeft))].filter(Boolean);
3761
3664
  }
3762
3665
 
3763
3666
  function responsivePaddingStyle(props) {
3764
3667
  var theme = props.theme;
3765
- return [_getResponsiveSpace(theme, ['padding'], props.$padding), _getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], props.$paddingX), _getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], props.$paddingY), _getResponsiveSpace(theme, ['paddingTop'], props.$paddingTop), _getResponsiveSpace(theme, ['paddingRight'], props.$paddingRight), _getResponsiveSpace(theme, ['paddingBottom'], props.$paddingBottom), _getResponsiveSpace(theme, ['paddingLeft'], props.$paddingLeft)].filter(Boolean);
3668
+ return [getResponsiveSpace(theme, ['padding'], getResponsiveProp(props.$padding)), getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], getResponsiveProp(props.$paddingX)), getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], getResponsiveProp(props.$paddingY)), getResponsiveSpace(theme, ['paddingTop'], getResponsiveProp(props.$paddingTop)), getResponsiveSpace(theme, ['paddingRight'], getResponsiveProp(props.$paddingRight)), getResponsiveSpace(theme, ['paddingBottom'], getResponsiveProp(props.$paddingBottom)), getResponsiveSpace(theme, ['paddingLeft'], getResponsiveProp(props.$paddingLeft))].filter(Boolean);
3766
3669
  }
3767
3670
 
3768
3671
  function responsiveRadiusStyle(props) {
@@ -3770,7 +3673,7 @@ function responsiveRadiusStyle(props) {
3770
3673
  var _theme$sanity = theme.sanity,
3771
3674
  media = _theme$sanity.media,
3772
3675
  radius = _theme$sanity.radius;
3773
- return _responsive(media, props.$radius, function (radiusIndex) {
3676
+ return responsive(media, getResponsiveProp(props.$radius), function (radiusIndex) {
3774
3677
  return {
3775
3678
  borderRadius: rem(radius[radiusIndex])
3776
3679
  };
@@ -3797,7 +3700,7 @@ function responsiveShadowStyle(props) {
3797
3700
  var _theme$sanity = theme.sanity,
3798
3701
  media = _theme$sanity.media,
3799
3702
  shadows = _theme$sanity.shadows;
3800
- return _responsive(media, props.$shadow, function (shadow) {
3703
+ return responsive(media, getResponsiveProp(props.$shadow), function (shadow) {
3801
3704
  return shadowStyle(shadows[shadow]);
3802
3705
  });
3803
3706
  }
@@ -3843,10 +3746,10 @@ var Text = /*#__PURE__*/React.forwardRef(function Text(props, ref) {
3843
3746
  "data-ui": "Text"
3844
3747
  }, restProps, {
3845
3748
  "$accent": accent,
3846
- "$align": useArrayProp(align),
3749
+ "$align": align,
3847
3750
  "$muted": muted,
3848
3751
  ref: ref,
3849
- "$size": useArrayProp(size),
3752
+ "$size": size,
3850
3753
  "$weight": weight
3851
3754
  }), /*#__PURE__*/React__default["default"].createElement("span", null, children));
3852
3755
  });
@@ -3942,7 +3845,7 @@ function responsiveAvatarSizeStyle(props) {
3942
3845
  var _theme$sanity = theme.sanity,
3943
3846
  avatar = _theme$sanity.avatar,
3944
3847
  media = _theme$sanity.media;
3945
- return _responsive(media, props.$size, function (size) {
3848
+ return responsive(media, props.$size, function (size) {
3946
3849
  var avatarSize = avatar.sizes[size] || avatar.sizes[0];
3947
3850
  return {
3948
3851
  width: rem(avatarSize.size),
@@ -4013,12 +3916,11 @@ var Avatar = /*#__PURE__*/React.forwardRef(function Avatar(props, ref) {
4013
3916
  animateArrowFrom = props.animateArrowFrom,
4014
3917
  _props$status = props.status,
4015
3918
  status = _props$status === void 0 ? 'online' : _props$status,
4016
- _props$size = props.size,
4017
- sizeProp = _props$size === void 0 ? 0 : _props$size,
3919
+ sizeProp = props.size,
4018
3920
  restProps = _objectWithoutPropertiesLoose(props, _excluded$F);
4019
3921
 
4020
3922
  var as = ReactIs__default["default"].isValidElementType(asProp) ? asProp : 'div';
4021
- var size = useArrayProp(sizeProp);
3923
+ var size = useResponsiveProp(sizeProp, [0]);
4022
3924
  var theme = useTheme();
4023
3925
  var color = theme.sanity.color.spot[colorKey] || theme.sanity.color.spot.gray; // @todo: remove this
4024
3926
 
@@ -4058,11 +3960,6 @@ var Avatar = /*#__PURE__*/React.forwardRef(function Avatar(props, ref) {
4058
3960
  onImageLoadError(new Error('Avatar: the image failed to load'));
4059
3961
  }
4060
3962
  }, [onImageLoadError]);
4061
- var initialsSize = React.useMemo(function () {
4062
- return size.map(function (s) {
4063
- return s === 0 ? 0 : s + 1;
4064
- });
4065
- }, [size]);
4066
3963
  return /*#__PURE__*/React__default["default"].createElement(Root$D, _extends({
4067
3964
  as: as,
4068
3965
  "data-as": typeof as === 'string' ? as : undefined,
@@ -4116,18 +4013,20 @@ var Avatar = /*#__PURE__*/React.forwardRef(function Avatar(props, ref) {
4116
4013
  vectorEffect: "non-scaling-stroke"
4117
4014
  })), (imageFailed || !src) && initials && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Initials, null, /*#__PURE__*/React__default["default"].createElement(Text, {
4118
4015
  as: "span",
4119
- size: initialsSize
4016
+ size: size.map(function (s) {
4017
+ return s === 0 ? 0 : s + 1;
4018
+ })
4120
4019
  }, /*#__PURE__*/React__default["default"].createElement("strong", null, initials)))));
4121
4020
  });
4122
4021
 
4123
4022
  var _templateObject$A;
4124
4023
 
4125
- function _responsiveAvatarCounterSizeStyle(props) {
4024
+ function responsiveAvatarCounterSizeStyle(props) {
4126
4025
  var theme = props.theme;
4127
4026
  var _theme$sanity = theme.sanity,
4128
4027
  avatar = _theme$sanity.avatar,
4129
4028
  media = _theme$sanity.media;
4130
- return _responsive(media, props.$size, function (size) {
4029
+ return responsive(media, props.$size, function (size) {
4131
4030
  var avatarSize = avatar.sizes[size];
4132
4031
  if (!avatarSize) return EMPTY_RECORD;
4133
4032
  return {
@@ -4138,12 +4037,12 @@ function _responsiveAvatarCounterSizeStyle(props) {
4138
4037
  });
4139
4038
  }
4140
4039
 
4141
- function _avatarCounterBaseStyle(props) {
4040
+ function avatarCounterBaseStyle(props) {
4142
4041
  var theme = props.theme;
4143
4042
  return styled.css(_templateObject$A || (_templateObject$A = _taggedTemplateLiteralLoose(["\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: 0 0 0 1px var(--card-bg-color), inset 0 0 0 1.5px var(--card-hairline-hard-color);\n padding: 0 ", ";\n\n &:not([hidden]) {\n display: flex;\n }\n "])), rem(theme.sanity.space[2]));
4144
4043
  }
4145
4044
 
4146
- var Root$C = styled__default["default"].div(_responsiveAvatarCounterSizeStyle, _avatarCounterBaseStyle);
4045
+ var Root$C = styled__default["default"].div(responsiveAvatarCounterSizeStyle, avatarCounterBaseStyle);
4147
4046
  /**
4148
4047
  * @public
4149
4048
  */
@@ -4152,19 +4051,15 @@ var AvatarCounter = /*#__PURE__*/React.forwardRef(function AvatarCounter(props,
4152
4051
  var count = props.count,
4153
4052
  _props$size = props.size,
4154
4053
  sizeProp = _props$size === void 0 ? 0 : _props$size;
4155
- var size = useArrayProp(sizeProp);
4156
- var counterSize = React.useMemo(function () {
4157
- return size.map(function (s) {
4158
- return s === 0 ? 0 : s + 1;
4159
- });
4160
- }, [size]);
4054
+ var size = useResponsiveProp(sizeProp, [0]);
4161
4055
  return /*#__PURE__*/React__default["default"].createElement(Root$C, {
4162
4056
  "$size": size,
4163
- "data-ui": "AvatarCounter",
4164
4057
  ref: ref
4165
4058
  }, /*#__PURE__*/React__default["default"].createElement(Text, {
4166
4059
  as: "span",
4167
- size: counterSize
4060
+ size: size.map(function (s) {
4061
+ return s === 0 ? 0 : s + 1;
4062
+ })
4168
4063
  }, /*#__PURE__*/React__default["default"].createElement("strong", null, count)));
4169
4064
  });
4170
4065
 
@@ -4175,7 +4070,7 @@ function childrenToElementArray(children) {
4175
4070
  });
4176
4071
  }
4177
4072
 
4178
- var _excluded$E = ["children", "maxLength", "size"];
4073
+ var _excluded$E = ["children", "maxLength", "size", "tone"];
4179
4074
 
4180
4075
  var _templateObject$z;
4181
4076
  var BASE_STYLES = styled.css(_templateObject$z || (_templateObject$z = _taggedTemplateLiteralLoose(["\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n"])));
@@ -4189,7 +4084,7 @@ function responsiveAvatarStackSizeStyle(props) {
4189
4084
  var _theme$sanity = theme.sanity,
4190
4085
  avatar = _theme$sanity.avatar,
4191
4086
  media = _theme$sanity.media;
4192
- return _responsive(media, props.$size, function (size) {
4087
+ return responsive(media, getResponsiveProp(props.size), function (size) {
4193
4088
  var avatarSize = avatar.sizes[size];
4194
4089
  if (!avatarSize) return EMPTY_RECORD;
4195
4090
  return {
@@ -4210,14 +4105,13 @@ var AvatarStack = /*#__PURE__*/React.forwardRef(function AvatarStack(props, ref)
4210
4105
  _props$maxLength = props.maxLength,
4211
4106
  maxLengthProp = _props$maxLength === void 0 ? 4 : _props$maxLength,
4212
4107
  _props$size = props.size,
4213
- sizeProp = _props$size === void 0 ? 0 : _props$size,
4108
+ size = _props$size === void 0 ? 0 : _props$size,
4214
4109
  restProps = _objectWithoutPropertiesLoose(props, _excluded$E);
4215
4110
 
4111
+ var maxLength = Math.max(maxLengthProp, 0);
4216
4112
  var children = childrenToElementArray(childrenProp).filter(function (child) {
4217
4113
  return typeof child !== 'string';
4218
4114
  });
4219
- var maxLength = Math.max(maxLengthProp, 0);
4220
- var size = useArrayProp(sizeProp);
4221
4115
  var len = children.length;
4222
4116
  var visibleCount = maxLength - 1;
4223
4117
  var extraCount = len - visibleCount;
@@ -4226,7 +4120,7 @@ var AvatarStack = /*#__PURE__*/React.forwardRef(function AvatarStack(props, ref)
4226
4120
  "data-ui": "AvatarStack"
4227
4121
  }, restProps, {
4228
4122
  ref: ref,
4229
- "$size": size
4123
+ size: size
4230
4124
  }), len === 0 && /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(AvatarCounter, {
4231
4125
  count: len
4232
4126
  })), len !== 0 && extraCount > 1 && /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(AvatarCounter, {
@@ -4284,31 +4178,31 @@ var Box = /*#__PURE__*/React.forwardRef(function Box(props, ref) {
4284
4178
  "data-as": typeof asProp === 'string' ? asProp : undefined,
4285
4179
  "data-ui": "Box"
4286
4180
  }, restProps, {
4287
- "$column": useArrayProp(column),
4288
- "$columnStart": useArrayProp(columnStart),
4289
- "$columnEnd": useArrayProp(columnEnd),
4290
- "$display": useArrayProp(display),
4291
- "$flex": useArrayProp(flex),
4292
- "$height": useArrayProp(height),
4293
- "$margin": useArrayProp(margin),
4294
- "$marginX": useArrayProp(marginX),
4295
- "$marginY": useArrayProp(marginY),
4296
- "$marginTop": useArrayProp(marginTop),
4297
- "$marginRight": useArrayProp(marginRight),
4298
- "$marginBottom": useArrayProp(marginBottom),
4299
- "$marginLeft": useArrayProp(marginLeft),
4300
- "$overflow": useArrayProp(overflow),
4301
- "$padding": useArrayProp(padding),
4302
- "$paddingX": useArrayProp(paddingX),
4303
- "$paddingY": useArrayProp(paddingY),
4304
- "$paddingTop": useArrayProp(paddingTop),
4305
- "$paddingRight": useArrayProp(paddingRight),
4306
- "$paddingBottom": useArrayProp(paddingBottom),
4307
- "$paddingLeft": useArrayProp(paddingLeft),
4308
- "$row": useArrayProp(row),
4309
- "$rowStart": useArrayProp(rowStart),
4310
- "$rowEnd": useArrayProp(rowEnd),
4311
- "$sizing": useArrayProp(sizing),
4181
+ "$column": column,
4182
+ "$columnStart": columnStart,
4183
+ "$columnEnd": columnEnd,
4184
+ "$display": display,
4185
+ "$flex": flex,
4186
+ "$height": height,
4187
+ "$margin": margin,
4188
+ "$marginX": marginX,
4189
+ "$marginY": marginY,
4190
+ "$marginTop": marginTop,
4191
+ "$marginRight": marginRight,
4192
+ "$marginBottom": marginBottom,
4193
+ "$marginLeft": marginLeft,
4194
+ "$overflow": overflow,
4195
+ "$padding": padding,
4196
+ "$paddingX": paddingX,
4197
+ "$paddingY": paddingY,
4198
+ "$paddingTop": paddingTop,
4199
+ "$paddingRight": paddingRight,
4200
+ "$paddingBottom": paddingBottom,
4201
+ "$paddingLeft": paddingLeft,
4202
+ "$row": row,
4203
+ "$rowStart": rowStart,
4204
+ "$rowEnd": rowEnd,
4205
+ "$sizing": sizing,
4312
4206
  as: asProp,
4313
4207
  ref: ref
4314
4208
  }), props.children);
@@ -4356,9 +4250,9 @@ var Label = /*#__PURE__*/React.forwardRef(function Label(props, ref) {
4356
4250
  "data-ui": "Label"
4357
4251
  }, restProps, {
4358
4252
  "$accent": accent,
4359
- "$align": useArrayProp(align),
4253
+ "$align": align,
4360
4254
  "$muted": muted,
4361
- "$size": useArrayProp(size),
4255
+ "$size": size,
4362
4256
  "$weight": weight,
4363
4257
  ref: ref
4364
4258
  }), children);
@@ -4405,8 +4299,8 @@ var Badge = /*#__PURE__*/React.forwardRef(function Badge(props, ref) {
4405
4299
  }, restProps, {
4406
4300
  "$mode": mode,
4407
4301
  "$tone": tone,
4408
- "$radius": useArrayProp(radius),
4409
- padding: useArrayProp(padding),
4302
+ "$radius": radius,
4303
+ padding: padding,
4410
4304
  ref: ref
4411
4305
  }), /*#__PURE__*/React__default["default"].createElement(Label, {
4412
4306
  size: fontSize
@@ -4432,11 +4326,11 @@ var Flex = /*#__PURE__*/React.forwardRef(function Flex(props, ref) {
4432
4326
  return /*#__PURE__*/React__default["default"].createElement(Root$x, _extends({
4433
4327
  "data-ui": "Flex"
4434
4328
  }, restProps, {
4435
- "$align": useArrayProp(align),
4436
- "$direction": useArrayProp(direction),
4437
- "$gap": useArrayProp(gap),
4438
- "$justify": useArrayProp(justify),
4439
- "$wrap": useArrayProp(wrap),
4329
+ "$align": align,
4330
+ "$direction": direction,
4331
+ "$gap": gap,
4332
+ "$justify": justify,
4333
+ "$wrap": wrap,
4440
4334
  forwardedAs: as,
4441
4335
  ref: ref
4442
4336
  }));
@@ -4565,23 +4459,23 @@ var Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
4565
4459
  icon = props.icon,
4566
4460
  iconRight = props.iconRight,
4567
4461
  _props$justify = props.justify,
4568
- justifyProp = _props$justify === void 0 ? 'center' : _props$justify,
4462
+ justify = _props$justify === void 0 ? 'center' : _props$justify,
4569
4463
  loading = props.loading,
4570
4464
  _props$mode = props.mode,
4571
4465
  mode = _props$mode === void 0 ? 'default' : _props$mode,
4572
4466
  _props$padding = props.padding,
4573
- paddingProp = _props$padding === void 0 ? 3 : _props$padding,
4574
- paddingXProp = props.paddingX,
4575
- paddingYProp = props.paddingY,
4576
- paddingTopProp = props.paddingTop,
4577
- paddingBottomProp = props.paddingBottom,
4578
- paddingLeftProp = props.paddingLeft,
4579
- paddingRightProp = props.paddingRight,
4467
+ padding = _props$padding === void 0 ? 3 : _props$padding,
4468
+ paddingX = props.paddingX,
4469
+ paddingY = props.paddingY,
4470
+ paddingTop = props.paddingTop,
4471
+ paddingBottom = props.paddingBottom,
4472
+ paddingLeft = props.paddingLeft,
4473
+ paddingRight = props.paddingRight,
4580
4474
  _props$radius = props.radius,
4581
- radiusProp = _props$radius === void 0 ? 2 : _props$radius,
4475
+ radius = _props$radius === void 0 ? 2 : _props$radius,
4582
4476
  selected = props.selected,
4583
4477
  _props$space = props.space,
4584
- spaceProp = _props$space === void 0 ? 3 : _props$space,
4478
+ space = _props$space === void 0 ? 3 : _props$space,
4585
4479
  text = props.text,
4586
4480
  textAlign = props.textAlign,
4587
4481
  _props$tone = props.tone,
@@ -4590,16 +4484,6 @@ var Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
4590
4484
  type = _props$type === void 0 ? 'button' : _props$type,
4591
4485
  restProps = _objectWithoutPropertiesLoose(props, _excluded$z);
4592
4486
 
4593
- var justify = useArrayProp(justifyProp);
4594
- var padding = useArrayProp(paddingProp);
4595
- var paddingX = useArrayProp(paddingXProp);
4596
- var paddingY = useArrayProp(paddingYProp);
4597
- var paddingTop = useArrayProp(paddingTopProp);
4598
- var paddingBottom = useArrayProp(paddingBottomProp);
4599
- var paddingLeft = useArrayProp(paddingLeftProp);
4600
- var paddingRight = useArrayProp(paddingRightProp);
4601
- var radius = useArrayProp(radiusProp);
4602
- var space = useArrayProp(spaceProp);
4603
4487
  var theme = useTheme();
4604
4488
  var boxProps = React.useMemo(function () {
4605
4489
  return {
@@ -4721,15 +4605,15 @@ var Card = /*#__PURE__*/React.forwardRef(function Card(props, ref) {
4721
4605
  "data-ui": "Card",
4722
4606
  "data-tone": tone
4723
4607
  }, restProps, {
4724
- "$border": useArrayProp(border),
4725
- "$borderTop": useArrayProp(borderTop),
4726
- "$borderRight": useArrayProp(borderRight),
4727
- "$borderBottom": useArrayProp(borderBottom),
4728
- "$borderLeft": useArrayProp(borderLeft),
4608
+ "$border": border,
4609
+ "$borderTop": borderTop,
4610
+ "$borderRight": borderRight,
4611
+ "$borderBottom": borderBottom,
4612
+ "$borderLeft": borderLeft,
4729
4613
  "$checkered": checkered,
4730
4614
  "$focusRing": focusRing,
4731
- "$radius": useArrayProp(radius),
4732
- "$shadow": useArrayProp(shadow),
4615
+ "$radius": radius,
4616
+ "$shadow": shadow,
4733
4617
  "$tone": tone,
4734
4618
  "data-checkered": checkered ? '' : undefined,
4735
4619
  "data-pressed": pressed ? '' : undefined,
@@ -4952,7 +4836,7 @@ var Code = /*#__PURE__*/React.forwardRef(function Code(props, ref) {
4952
4836
  return /*#__PURE__*/React__default["default"].createElement(Root$s, _extends({
4953
4837
  "data-ui": "Code"
4954
4838
  }, restProps, {
4955
- "$size": useArrayProp(size),
4839
+ "$size": size,
4956
4840
  "$weight": weight,
4957
4841
  ref: ref
4958
4842
  }), !(language && registered) && /*#__PURE__*/React__default["default"].createElement("code", null, children), language && registered && /*#__PURE__*/React__default["default"].createElement(Refractor__default["default"], {
@@ -4974,7 +4858,7 @@ function responsiveContainerWidthStyle(props) {
4974
4858
  var _theme$sanity = theme.sanity,
4975
4859
  container = _theme$sanity.container,
4976
4860
  media = _theme$sanity.media;
4977
- return _responsive(media, props.$width, function (val) {
4861
+ return responsive(media, getResponsiveProp(props.$width), function (val) {
4978
4862
  return {
4979
4863
  maxWidth: val === 'auto' ? 'none' : rem(container[val])
4980
4864
  };
@@ -4996,7 +4880,7 @@ var Container = /*#__PURE__*/React.forwardRef(function Container(props, ref) {
4996
4880
  return /*#__PURE__*/React__default["default"].createElement(Root$r, _extends({
4997
4881
  "data-ui": "Container"
4998
4882
  }, restProps, {
4999
- "$width": useArrayProp(width),
4883
+ "$width": width,
5000
4884
  forwardedAs: as,
5001
4885
  ref: ref
5002
4886
  }));
@@ -5025,14 +4909,14 @@ var Grid = /*#__PURE__*/React.forwardRef(function Grid(props, ref) {
5025
4909
  "data-as": typeof as === 'string' ? as : undefined,
5026
4910
  "data-ui": "Grid"
5027
4911
  }, restProps, {
5028
- "$autoRows": useArrayProp(autoRows),
5029
- "$autoCols": useArrayProp(autoCols),
5030
- "$autoFlow": useArrayProp(autoFlow),
5031
- "$columns": useArrayProp(columns),
5032
- "$gap": useArrayProp(gap),
5033
- "$gapX": useArrayProp(gapX),
5034
- "$gapY": useArrayProp(gapY),
5035
- "$rows": useArrayProp(rows),
4912
+ "$autoRows": autoRows,
4913
+ "$autoCols": autoCols,
4914
+ "$autoFlow": autoFlow,
4915
+ "$columns": columns,
4916
+ "$gap": gap,
4917
+ "$gapX": gapX,
4918
+ "$gapY": gapY,
4919
+ "$rows": rows,
5036
4920
  forwardedAs: as,
5037
4921
  ref: ref
5038
4922
  }), children);
@@ -5078,9 +4962,9 @@ var Heading = /*#__PURE__*/React.forwardRef(function Heading(props, ref) {
5078
4962
  "data-ui": "Heading"
5079
4963
  }, restProps, {
5080
4964
  "$accent": accent,
5081
- "$align": useArrayProp(align),
4965
+ "$align": align,
5082
4966
  "$muted": muted,
5083
- "$size": useArrayProp(size),
4967
+ "$size": size,
5084
4968
  "$weight": weight,
5085
4969
  ref: ref
5086
4970
  }), /*#__PURE__*/React__default["default"].createElement("span", null, children));
@@ -5100,7 +4984,7 @@ function inlineBaseStyle() {
5100
4984
  }
5101
4985
  function inlineSpaceStyle(props) {
5102
4986
  var theme = props.theme;
5103
- return _responsive(theme.sanity.media, props.$space, function (spaceIndex) {
4987
+ return responsive(theme.sanity.media, getResponsiveProp(props.$space), function (spaceIndex) {
5104
4988
  var space = rem(theme.sanity.space[spaceIndex]);
5105
4989
  return {
5106
4990
  margin: "-" + space + " 0 0 -" + space,
@@ -5123,20 +5007,18 @@ var Inline = /*#__PURE__*/React.forwardRef(function Inline(props, ref) {
5123
5007
  space = props.space,
5124
5008
  restProps = _objectWithoutPropertiesLoose(props, _excluded$s);
5125
5009
 
5126
- var children = React.useMemo(function () {
5127
- return childrenToElementArray(childrenProp).filter(Boolean).map(function (child, idx) {
5128
- return /*#__PURE__*/React__default["default"].createElement("div", {
5129
- key: idx
5130
- }, child);
5131
- });
5132
- }, [childrenProp]);
5010
+ var children = childrenToElementArray(childrenProp).filter(Boolean);
5133
5011
  return /*#__PURE__*/React__default["default"].createElement(Root$o, _extends({
5134
5012
  "data-ui": "Inline"
5135
5013
  }, restProps, {
5136
- "$space": useArrayProp(space),
5014
+ "$space": space,
5137
5015
  forwardedAs: as,
5138
5016
  ref: ref
5139
- }), children);
5017
+ }), children.map(function (child, idx) {
5018
+ return /*#__PURE__*/React__default["default"].createElement("div", {
5019
+ key: idx
5020
+ }, child);
5021
+ }));
5140
5022
  });
5141
5023
 
5142
5024
  var _excluded$r = ["children", "fontSize", "padding", "radius"];
@@ -5165,7 +5047,7 @@ var KBD = /*#__PURE__*/React.forwardRef(function KBD(props, ref) {
5165
5047
  return /*#__PURE__*/React__default["default"].createElement(Root$n, _extends({
5166
5048
  "data-ui": "KBD"
5167
5049
  }, restProps, {
5168
- "$radius": useArrayProp(radius),
5050
+ "$radius": radius,
5169
5051
  ref: ref
5170
5052
  }), /*#__PURE__*/React__default["default"].createElement(Box, {
5171
5053
  as: "span",
@@ -5219,6 +5101,12 @@ function useBoundaryElement() {
5219
5101
  return value || DEFAULT_VALUE;
5220
5102
  }
5221
5103
 
5104
+ /**
5105
+ * @internal
5106
+ */
5107
+
5108
+ var RO = typeof window !== 'undefined' && window.ResizeObserver ? window.ResizeObserver : resizeObserver.ResizeObserver;
5109
+
5222
5110
  function findMaxBreakpoints(media, width) {
5223
5111
  var ret = [];
5224
5112
 
@@ -5260,18 +5148,31 @@ var ElementQuery = /*#__PURE__*/React.forwardRef(function ElementQuery(props, re
5260
5148
  media = _props$media === void 0 ? theme.sanity.media : _props$media,
5261
5149
  restProps = _objectWithoutPropertiesLoose(props, _excluded$q);
5262
5150
 
5151
+ var _useState = React.useState(function () {
5152
+ return window.innerWidth;
5153
+ }),
5154
+ width = _useState[0],
5155
+ setWidth = _useState[1];
5156
+
5263
5157
  var forwardedRef = useForwardedRef(ref);
5264
5158
 
5265
- var _useState = React.useState(null),
5266
- element = _useState[0],
5267
- setElement = _useState[1];
5159
+ var _useState2 = React.useState(null),
5160
+ element = _useState2[0],
5161
+ setElement = _useState2[1];
5162
+
5163
+ React.useEffect(function () {
5164
+ if (!element) return;
5268
5165
 
5269
- var elementSize = useElementSize(element);
5270
- var width = React.useMemo(function () {
5271
- var _elementSize$border$w;
5166
+ var handleResizeEntries = function handleResizeEntries(entries) {
5167
+ setWidth(entries[0].contentRect.width);
5168
+ };
5272
5169
 
5273
- return (_elementSize$border$w = elementSize == null ? void 0 : elementSize.border.width) != null ? _elementSize$border$w : window.innerWidth;
5274
- }, [elementSize]);
5170
+ var ro = new RO(handleResizeEntries);
5171
+ ro.observe(element);
5172
+ return function () {
5173
+ return ro.disconnect();
5174
+ };
5175
+ }, [element]);
5275
5176
  var max = React.useMemo(function () {
5276
5177
  return findMaxBreakpoints(media, width);
5277
5178
  }, [media, width]);
@@ -5377,7 +5278,7 @@ function LayerProvider(props) {
5377
5278
  _props$zOffset = props.zOffset,
5378
5279
  zOffsetProp = _props$zOffset === void 0 ? 0 : _props$zOffset;
5379
5280
  var parent = React.useContext(LayerContext);
5380
- var zOffset = useArrayProp(zOffsetProp);
5281
+ var zOffset = useResponsiveProp(zOffsetProp);
5381
5282
  var maxMediaIndex = zOffset.length - 1;
5382
5283
  var mediaIndex = Math.min(useMediaIndex(), maxMediaIndex);
5383
5284
  var zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex];
@@ -5819,16 +5720,17 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function VirtualList(props, ref)
5819
5720
  scrollEl.addEventListener('scroll', _handleScroll, {
5820
5721
  passive: true
5821
5722
  });
5822
-
5823
- var disposeElementSizeListener = _elementSizeObserver.subscribe(scrollEl, function (scrollElementSize) {
5824
- setScrollHeight(scrollElementSize.content.height);
5723
+ var ro = new ResizeObserver(function (entries) {
5724
+ setScrollHeight(entries[0].contentRect.height);
5825
5725
  });
5726
+ ro.observe(scrollEl);
5826
5727
 
5827
5728
  _handleScroll();
5828
5729
 
5829
5730
  return function () {
5830
5731
  scrollEl.removeEventListener('scroll', _handleScroll);
5831
- disposeElementSizeListener();
5732
+ ro.unobserve(scrollEl);
5733
+ ro.disconnect();
5832
5734
  };
5833
5735
  }
5834
5736
 
@@ -6135,7 +6037,7 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {
6135
6037
  _props$tone = props.tone,
6136
6038
  tone = _props$tone === void 0 ? 'inherit' : _props$tone,
6137
6039
  _props$width = props.width,
6138
- widthProp = _props$width === void 0 ? 0 : _props$width,
6040
+ width = _props$width === void 0 ? 0 : _props$width,
6139
6041
  _props$zOffset = props.zOffset,
6140
6042
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.popover.zOffset : _props$zOffset,
6141
6043
  restProps = _objectWithoutPropertiesLoose(props, _excluded$n);
@@ -6156,7 +6058,6 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {
6156
6058
  setArrowElement = _useState3[1];
6157
6059
 
6158
6060
  var popperReferenceElement = referenceElementProp || referenceElement;
6159
- var width = useArrayProp(matchReferenceWidth ? 'auto' : widthProp);
6160
6061
  var modifiers = usePopoverModifiers({
6161
6062
  allowedAutoPlacements: allowedAutoPlacements,
6162
6063
  arrow: arrow,
@@ -6197,21 +6098,13 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {
6197
6098
  var popoverStyle = React.useMemo(function () {
6198
6099
  return _extends({}, style, styles.popper);
6199
6100
  }, [style, styles]);
6200
- var updateTimeoutRef = React.useRef(null);
6201
6101
  React.useEffect(function () {
6202
- if (updateTimeoutRef.current) {
6203
- clearTimeout(updateTimeoutRef.current);
6204
- updateTimeoutRef.current = null;
6205
- }
6206
-
6207
- updateTimeoutRef.current = setTimeout(function () {
6208
- if (forceUpdate) {
6209
- try {
6210
- forceUpdate();
6211
- } catch (_) {// ignore caught error
6212
- }
6102
+ if (forceUpdate) {
6103
+ try {
6104
+ forceUpdate();
6105
+ } catch (_) {// ignore caught error
6213
6106
  }
6214
- }, 0);
6107
+ }
6215
6108
  }, [content, forceUpdate, open, popperReferenceElement]);
6216
6109
 
6217
6110
  if (disabled) {
@@ -6227,13 +6120,13 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {
6227
6120
  zOffset: zOffset
6228
6121
  }, attributes.popper), /*#__PURE__*/React__default["default"].createElement(PopoverCard, {
6229
6122
  "$constrainSize": constrainSize,
6230
- "$width": width,
6231
6123
  "data-ui": "PopoverCard",
6232
6124
  padding: padding,
6233
6125
  radius: radius,
6234
6126
  scheme: scheme,
6235
6127
  shadow: shadow,
6236
- tone: tone
6128
+ tone: tone,
6129
+ width: width
6237
6130
  }, arrow && /*#__PURE__*/React__default["default"].createElement(PopoverArrow, {
6238
6131
  ref: setArrowElement,
6239
6132
  style: styles.arrow
@@ -6352,7 +6245,7 @@ function inputTextSizeStyle(props) {
6352
6245
  var theme = props.theme,
6353
6246
  $fontSize = props.$fontSize;
6354
6247
  var sizes = theme.sanity.fonts.text.sizes;
6355
- return _responsive(theme.sanity.media, $fontSize, function (sizeIndex) {
6248
+ return responsive(theme.sanity.media, getResponsiveProp($fontSize), function (sizeIndex) {
6356
6249
  return textSize(sizes[sizeIndex] || sizes[2]);
6357
6250
  });
6358
6251
  }
@@ -6404,10 +6297,10 @@ var Select = /*#__PURE__*/React.forwardRef(function Select(props, forwardedRef)
6404
6297
  "data-read-only": !disabled && readOnly ? '' : undefined,
6405
6298
  "data-ui": "Select"
6406
6299
  }, restProps, {
6407
- "$fontSize": useArrayProp(fontSize),
6408
- "$padding": useArrayProp(padding),
6409
- "$radius": useArrayProp(radius),
6410
- "$space": useArrayProp(space),
6300
+ "$fontSize": fontSize,
6301
+ "$padding": padding,
6302
+ "$radius": radius,
6303
+ "$space": space,
6411
6304
  disabled: disabled || readOnly,
6412
6305
  ref: ref
6413
6306
  }), children), /*#__PURE__*/React__default["default"].createElement(IconBox, {
@@ -6435,7 +6328,7 @@ function responsiveStackSpaceStyle(props) {
6435
6328
  var _theme$sanity = theme.sanity,
6436
6329
  media = _theme$sanity.media,
6437
6330
  space = _theme$sanity.space;
6438
- return _responsive(media, props.$space, function (spaceIndex) {
6331
+ return responsive(media, getResponsiveProp(props.$space), function (spaceIndex) {
6439
6332
  return {
6440
6333
  gridGap: rem(space[spaceIndex])
6441
6334
  };
@@ -6457,13 +6350,13 @@ var Stack = /*#__PURE__*/React.forwardRef(function Stack(props, ref) {
6457
6350
  "data-as": typeof as === 'string' ? as : undefined,
6458
6351
  "data-ui": "Stack"
6459
6352
  }, restProps, {
6460
- "$space": useArrayProp(space),
6353
+ "$space": space,
6461
6354
  forwardedAs: as,
6462
6355
  ref: ref
6463
6356
  }));
6464
6357
  });
6465
6358
 
6466
- var _templateObject$g, _templateObject2$b, _templateObject3$6, _templateObject4$4, _templateObject5$3, _templateObject6$2, _templateObject7;
6359
+ var _templateObject$g, _templateObject2$b, _templateObject3$6, _templateObject4$4, _templateObject5$3, _templateObject6$1, _templateObject7;
6467
6360
  /* Root */
6468
6361
 
6469
6362
  function switchBaseStyles() {
@@ -6507,7 +6400,7 @@ function switchThumbStyles(props) {
6507
6400
  var checkedOffset = trackWidth - trackPadding * 2 - size;
6508
6401
  var indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding;
6509
6402
  var checked = $indeterminate !== true && props.$checked === true;
6510
- return styled.css(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteralLoose(["\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\n ", "\n\n ", "\n "])), rem(trackPadding), rem(trackPadding), rem(size), rem(size), rem(size / 2), input["switch"].transitionDurationMs, input["switch"].transitionTimingFunction, checked && styled.css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), checkedOffset), $indeterminate && styled.css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), indeterminateOffset));
6403
+ return styled.css(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteralLoose(["\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\n ", "\n\n ", "\n "])), rem(trackPadding), rem(trackPadding), rem(size), rem(size), rem(size / 2), input["switch"].transitionDurationMs, input["switch"].transitionTimingFunction, checked && styled.css(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), checkedOffset), $indeterminate && styled.css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), indeterminateOffset));
6511
6404
  }
6512
6405
 
6513
6406
  var _excluded$j = ["checked", "className", "disabled", "indeterminate", "readOnly", "style"];
@@ -6556,7 +6449,7 @@ var Switch = /*#__PURE__*/React.forwardRef(function Switch(props, forwardedRef)
6556
6449
  })));
6557
6450
  });
6558
6451
 
6559
- var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius", "weight"];
6452
+ var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius"];
6560
6453
 
6561
6454
  var _templateObject$f;
6562
6455
  var Root$d = styled__default["default"].span(textInputRootStyle);
@@ -6579,46 +6472,32 @@ var TextArea = /*#__PURE__*/React.forwardRef(function TextArea(props, forwardedR
6579
6472
  padding = _props$padding === void 0 ? 3 : _props$padding,
6580
6473
  _props$radius = props.radius,
6581
6474
  radius = _props$radius === void 0 ? 1 : _props$radius,
6582
- weight = props.weight,
6583
6475
  restProps = _objectWithoutPropertiesLoose(props, _excluded$i);
6584
6476
 
6585
6477
  var ref = useForwardedRef(forwardedRef);
6586
- var rootTheme = useRootTheme();
6587
6478
  useCustomValidity(ref, customValidity);
6588
6479
  return /*#__PURE__*/React__default["default"].createElement(Root$d, {
6589
6480
  "data-ui": "TextArea"
6590
6481
  }, /*#__PURE__*/React__default["default"].createElement(InputRoot$1, null, /*#__PURE__*/React__default["default"].createElement(Input$1, _extends({
6591
- "data-as": "textarea",
6592
- "data-scheme": rootTheme.scheme,
6593
- "data-tone": rootTheme.tone
6482
+ "data-as": "textarea"
6594
6483
  }, restProps, {
6595
- "$fontSize": useArrayProp(fontSize),
6596
- "$padding": useArrayProp(padding),
6597
- "$scheme": rootTheme.scheme,
6598
- "$space": useArrayProp(0),
6599
- "$tone": rootTheme.tone,
6600
- "$weight": weight,
6484
+ "$fontSize": fontSize,
6485
+ "$padding": padding,
6601
6486
  disabled: disabled,
6602
6487
  ref: ref
6603
6488
  })), /*#__PURE__*/React__default["default"].createElement(Presentation$1, {
6604
6489
  "$border": border,
6605
- "$radius": useArrayProp(radius),
6606
- "$scheme": rootTheme.scheme,
6607
- "$tone": rootTheme.tone,
6608
- "data-scheme": rootTheme.scheme,
6609
- "data-tone": rootTheme.tone
6490
+ "$radius": radius
6610
6491
  })));
6611
6492
  });
6612
6493
 
6613
- var _excluded$h = ["border", "clearButton", "disabled", "fontSize", "icon", "iconRight", "onClear", "padding", "prefix", "radius", "readOnly", "space", "suffix", "customValidity", "type", "weight"];
6494
+ var _excluded$h = ["border", "clearButton", "disabled", "fontSize", "icon", "iconRight", "onClear", "padding", "prefix", "radius", "readOnly", "space", "suffix", "customValidity", "type"];
6614
6495
 
6615
- var _templateObject$e, _templateObject2$a, _templateObject3$5, _templateObject4$3, _templateObject5$2, _templateObject6$1;
6496
+ var _templateObject$e, _templateObject2$a, _templateObject3$5, _templateObject4$3, _templateObject5$2;
6616
6497
  var CLEAR_BUTTON_BOX_STYLE = {
6617
6498
  zIndex: 2
6618
6499
  };
6619
- var Root$c = styled__default["default"](Card).attrs({
6620
- forwardedAs: 'span'
6621
- })(textInputRootStyle);
6500
+ var Root$c = styled__default["default"].span(textInputRootStyle);
6622
6501
  var InputRoot = styled__default["default"].span(_templateObject$e || (_templateObject$e = _taggedTemplateLiteralLoose(["\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n"])));
6623
6502
  var Prefix = styled__default["default"](Card).attrs({
6624
6503
  forwardedAs: 'span'
@@ -6629,8 +6508,7 @@ var Suffix = styled__default["default"](Card).attrs({
6629
6508
  var Input = styled__default["default"].input(responsiveInputPaddingStyle, textInputBaseStyle, textInputFontSizeStyle);
6630
6509
  var Presentation = styled__default["default"].span(responsiveRadiusStyle, textInputRepresentationStyle);
6631
6510
  var LeftBox = styled__default["default"](Box)(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n"])));
6632
- var RightBox = styled__default["default"](Box)(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n right: 0;\n"])));
6633
- var RightCard = styled__default["default"](Card)(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteralLoose(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
6511
+ var RightCard = styled__default["default"](Card)(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
6634
6512
  /**
6635
6513
  * @public
6636
6514
  */
@@ -6642,7 +6520,7 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6642
6520
  _props$disabled = props.disabled,
6643
6521
  disabled = _props$disabled === void 0 ? false : _props$disabled,
6644
6522
  _props$fontSize = props.fontSize,
6645
- fontSizeProp = _props$fontSize === void 0 ? 2 : _props$fontSize,
6523
+ fontSize = _props$fontSize === void 0 ? 2 : _props$fontSize,
6646
6524
  icon = props.icon,
6647
6525
  iconRight = props.iconRight,
6648
6526
  onClear = props.onClear,
@@ -6653,20 +6531,16 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6653
6531
  radiusProp = _props$radius === void 0 ? 1 : _props$radius,
6654
6532
  readOnly = props.readOnly,
6655
6533
  _props$space = props.space,
6656
- spaceProp = _props$space === void 0 ? 3 : _props$space,
6534
+ space = _props$space === void 0 ? 3 : _props$space,
6657
6535
  suffix = props.suffix,
6658
6536
  customValidity = props.customValidity,
6659
6537
  _props$type = props.type,
6660
6538
  type = _props$type === void 0 ? 'text' : _props$type,
6661
- weight = props.weight,
6662
6539
  restProps = _objectWithoutPropertiesLoose(props, _excluded$h);
6663
6540
 
6664
6541
  var ref = useForwardedRef(forwardedRef);
6665
- var rootTheme = useRootTheme();
6666
- var fontSize = useArrayProp(fontSizeProp);
6667
- var padding = useArrayProp(paddingProp);
6668
- var radius = useArrayProp(radiusProp);
6669
- var space = useArrayProp(spaceProp); // Transient properties
6542
+ var padding = useResponsiveProp(paddingProp);
6543
+ var radius = useResponsiveProp(radiusProp); // Transient properties
6670
6544
 
6671
6545
  var $hasClearButton = Boolean(clearButton);
6672
6546
  var $hasIcon = Boolean(icon);
@@ -6705,21 +6579,17 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6705
6579
  "$border": border,
6706
6580
  "$hasPrefix": $hasPrefix,
6707
6581
  "$hasSuffix": $hasSuffix,
6708
- "$radius": radius,
6709
- "$scheme": rootTheme.scheme,
6710
- "$tone": rootTheme.tone,
6711
- "data-scheme": rootTheme.scheme,
6712
- "data-tone": rootTheme.tone
6582
+ "$radius": radius
6713
6583
  }, icon && /*#__PURE__*/React__default["default"].createElement(LeftBox, {
6714
6584
  padding: padding
6715
6585
  }, /*#__PURE__*/React__default["default"].createElement(Text, {
6716
6586
  size: fontSize
6717
- }, /*#__PURE__*/React.isValidElement(icon) && icon, ReactIs.isValidElementType(icon) && /*#__PURE__*/React.createElement(icon))), !$hasClearButton && iconRight && /*#__PURE__*/React__default["default"].createElement(RightBox, {
6587
+ }, /*#__PURE__*/React.isValidElement(icon) && icon, ReactIs.isValidElementType(icon) && /*#__PURE__*/React.createElement(icon))), !$hasClearButton && iconRight && /*#__PURE__*/React__default["default"].createElement(RightCard, {
6718
6588
  padding: padding
6719
6589
  }, /*#__PURE__*/React__default["default"].createElement(Text, {
6720
6590
  size: fontSize
6721
6591
  }, /*#__PURE__*/React.isValidElement(iconRight) && iconRight, ReactIs.isValidElementType(iconRight) && /*#__PURE__*/React.createElement(iconRight))));
6722
- }, [border, fontSize, icon, iconRight, padding, radius, rootTheme, $hasClearButton, $hasPrefix, $hasSuffix]); // Render clear button (memoized)
6592
+ }, [border, fontSize, icon, iconRight, padding, radius, $hasClearButton, $hasPrefix, $hasSuffix]); // Render clear button (memoized)
6723
6593
 
6724
6594
  var clearButtonBoxPadding = React.useMemo(function () {
6725
6595
  return padding.map(function (v) {
@@ -6770,21 +6640,15 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6770
6640
  }, /*#__PURE__*/React__default["default"].createElement("span", null, suffix));
6771
6641
  }, [radius, suffix]);
6772
6642
  return /*#__PURE__*/React__default["default"].createElement(Root$c, {
6773
- "data-ui": "TextInput",
6774
- tone: rootTheme.tone
6643
+ "data-ui": "TextInput"
6775
6644
  }, prefixNode, /*#__PURE__*/React__default["default"].createElement(InputRoot, null, /*#__PURE__*/React__default["default"].createElement(Input, _extends({
6776
- "data-as": "input",
6777
- "data-scheme": rootTheme.scheme,
6778
- "data-tone": rootTheme.tone
6645
+ "data-as": "input"
6779
6646
  }, restProps, {
6780
- "$fontSize": fontSize,
6781
6647
  "$iconLeft": $hasIcon,
6782
6648
  "$iconRight": $hasIconRight || $hasClearButton,
6783
6649
  "$padding": padding,
6784
- "$scheme": rootTheme.scheme,
6785
6650
  "$space": space,
6786
- "$tone": rootTheme.tone,
6787
- "$weight": weight,
6651
+ "$fontSize": fontSize,
6788
6652
  disabled: disabled,
6789
6653
  readOnly: readOnly,
6790
6654
  ref: ref,
@@ -6832,7 +6696,7 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(props, ref) {
6832
6696
  children = props.children,
6833
6697
  content = props.content,
6834
6698
  disabled = props.disabled,
6835
- fallbackPlacementsProp = props.fallbackPlacements,
6699
+ fallbackPlacements = props.fallbackPlacements,
6836
6700
  _props$placement = props.placement,
6837
6701
  placement = _props$placement === void 0 ? 'bottom' : _props$placement,
6838
6702
  portal = props.portal,
@@ -6841,7 +6705,6 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(props, ref) {
6841
6705
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.tooltip.zOffset : _props$zOffset,
6842
6706
  restProps = _objectWithoutPropertiesLoose(props, _excluded$g);
6843
6707
 
6844
- var fallbackPlacements = useArrayProp(fallbackPlacementsProp);
6845
6708
  var forwardedRef = useForwardedRef(ref);
6846
6709
 
6847
6710
  var _useState = React.useState(null),
@@ -6923,21 +6786,13 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(props, ref) {
6923
6786
  window.removeEventListener('mousemove', handleWindowMouseMove);
6924
6787
  };
6925
6788
  }, [isOpen, referenceElement]);
6926
- var updateTimeoutRef = React.useRef(null);
6927
6789
  React.useEffect(function () {
6928
- if (updateTimeoutRef.current) {
6929
- clearTimeout(updateTimeoutRef.current);
6930
- updateTimeoutRef.current = null;
6931
- }
6932
-
6933
- updateTimeoutRef.current = setTimeout(function () {
6934
- if (forceUpdate) {
6935
- try {
6936
- forceUpdate();
6937
- } catch (_) {// ignore caught error
6938
- }
6790
+ if (forceUpdate) {
6791
+ try {
6792
+ forceUpdate();
6793
+ } catch (_) {// ignore caught error
6939
6794
  }
6940
- }, 0);
6795
+ }
6941
6796
  }, [forceUpdate, content]); // Close when `disabled` changes to `true`
6942
6797
 
6943
6798
  React.useEffect(function () {
@@ -7219,7 +7074,7 @@ var InnerAutocomplete = /*#__PURE__*/React.forwardRef(function InnerAutocomplete
7219
7074
  var popoverMouseWithinRef = React.useRef(false);
7220
7075
  var listBoxId = id + "-listbox";
7221
7076
  var options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY;
7222
- var padding = useArrayProp(paddingProp);
7077
+ var padding = useResponsiveProp(paddingProp);
7223
7078
  var currentOption = React.useMemo(function () {
7224
7079
  return value !== null ? options.find(function (o) {
7225
7080
  return o.value === value;
@@ -7651,11 +7506,9 @@ var Breadcrumbs = /*#__PURE__*/React.forwardRef(function Breadcrumbs(props, ref)
7651
7506
  maxLength = props.maxLength,
7652
7507
  separator = props.separator,
7653
7508
  _props$space = props.space,
7654
- spaceRaw = _props$space === void 0 ? 2 : _props$space,
7509
+ space = _props$space === void 0 ? 2 : _props$space,
7655
7510
  restProps = _objectWithoutPropertiesLoose(props, _excluded$e);
7656
7511
 
7657
- var space = useArrayProp(spaceRaw);
7658
-
7659
7512
  var _useState = React.useState(false),
7660
7513
  open = _useState[0],
7661
7514
  setOpen = _useState[1];
@@ -7745,13 +7598,13 @@ function dialogStyle(_ref) {
7745
7598
  alignItems: 'center',
7746
7599
  justifyContent: 'center',
7747
7600
  outline: 'none',
7748
- background: color.shadow.umbra
7601
+ background: color.shadow.penumbra
7749
7602
  };
7750
7603
  }
7751
7604
  function responsiveDialogPositionStyle(props) {
7752
7605
  var theme = props.theme;
7753
7606
  var media = theme.sanity.media;
7754
- return _responsive(media, props.$position, function (position) {
7607
+ return responsive(media, getResponsiveProp(props.$position), function (position) {
7755
7608
  return {
7756
7609
  '&&': {
7757
7610
  position: position
@@ -7799,13 +7652,10 @@ var DialogCard = /*#__PURE__*/React.forwardRef(function DialogCard(props, ref) {
7799
7652
  id = props.id,
7800
7653
  onClickOutside = props.onClickOutside,
7801
7654
  onClose = props.onClose,
7802
- radiusProp = props.radius,
7655
+ radius = props.radius,
7803
7656
  scheme = props.scheme,
7804
- shadowProp = props.shadow,
7805
- widthProp = props.width;
7806
- var radius = useArrayProp(radiusProp);
7807
- var shadow = useArrayProp(shadowProp);
7808
- var width = useArrayProp(widthProp);
7657
+ shadow = props.shadow,
7658
+ width = props.width;
7809
7659
  var forwardedRef = useForwardedRef(ref);
7810
7660
 
7811
7661
  var _useState = React.useState(null),
@@ -7892,7 +7742,7 @@ var Dialog = /*#__PURE__*/React.forwardRef(function Dialog(props, ref) {
7892
7742
  _props$__unstable_hid = props.__unstable_hideCloseButton,
7893
7743
  hideCloseButton = _props$__unstable_hid === void 0 ? false : _props$__unstable_hid,
7894
7744
  _props$cardRadius = props.cardRadius,
7895
- cardRadiusProp = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7745
+ cardRadius = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7896
7746
  _props$cardShadow = props.cardShadow,
7897
7747
  cardShadow = _props$cardShadow === void 0 ? 4 : _props$cardShadow,
7898
7748
  children = props.children,
@@ -7903,22 +7753,17 @@ var Dialog = /*#__PURE__*/React.forwardRef(function Dialog(props, ref) {
7903
7753
  onClickOutside = props.onClickOutside,
7904
7754
  onClose = props.onClose,
7905
7755
  _props$padding = props.padding,
7906
- paddingProp = _props$padding === void 0 ? 4 : _props$padding,
7756
+ padding = _props$padding === void 0 ? 4 : _props$padding,
7907
7757
  portal = props.portal,
7908
7758
  _props$position = props.position,
7909
- positionProp = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7759
+ position = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7910
7760
  scheme = props.scheme,
7911
7761
  _props$width = props.width,
7912
- widthProp = _props$width === void 0 ? 0 : _props$width,
7762
+ width = _props$width === void 0 ? 0 : _props$width,
7913
7763
  _props$zOffset = props.zOffset,
7914
- zOffsetProp = _props$zOffset === void 0 ? dialog.zOffset || ((_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.dialog.zOffset) : _props$zOffset,
7764
+ zOffset = _props$zOffset === void 0 ? dialog.zOffset || ((_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.dialog.zOffset) : _props$zOffset,
7915
7765
  restProps = _objectWithoutPropertiesLoose(props, _excluded$d);
7916
7766
 
7917
- var cardRadius = useArrayProp(cardRadiusProp);
7918
- var padding = useArrayProp(paddingProp);
7919
- var position = useArrayProp(positionProp);
7920
- var width = useArrayProp(widthProp);
7921
- var zOffset = useArrayProp(zOffsetProp);
7922
7767
  var preDivRef = React.useRef(null);
7923
7768
  var postDivRef = React.useRef(null);
7924
7769
  var cardRef = React.useRef(null);
@@ -8013,11 +7858,9 @@ var Hotkeys = /*#__PURE__*/React.forwardRef(function Hotkeys(props, ref) {
8013
7858
  padding = props.padding,
8014
7859
  radius = props.radius,
8015
7860
  _props$space = props.space,
8016
- spaceProp = _props$space === void 0 ? 1 : _props$space,
7861
+ space = _props$space === void 0 ? 1 : _props$space,
8017
7862
  restProps = _objectWithoutPropertiesLoose(props, _excluded$c);
8018
7863
 
8019
- var space = useArrayProp(spaceProp);
8020
-
8021
7864
  if (!keys || keys.length === 0) {
8022
7865
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
8023
7866
  }
@@ -8631,7 +8474,7 @@ function selectableColorStyle(props) {
8631
8474
  * @internal
8632
8475
  */
8633
8476
 
8634
- var Selectable = styled__default["default"](Box)(responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8477
+ var Selectable = styled__default["default"](Box)(responsiveBorderStyle, responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8635
8478
 
8636
8479
  function useMenu() {
8637
8480
  var value = React.useContext(MenuContext);
@@ -8664,7 +8507,8 @@ function MenuGroup(props) {
8664
8507
  onClick = props.onClick,
8665
8508
  _props$padding = props.padding,
8666
8509
  padding = _props$padding === void 0 ? 3 : _props$padding,
8667
- popover = props.popover,
8510
+ _props$popover = props.popover,
8511
+ popover = _props$popover === void 0 ? {} : _props$popover,
8668
8512
  _props$radius = props.radius,
8669
8513
  radius = _props$radius === void 0 ? 2 : _props$radius,
8670
8514
  _props$space = props.space,
@@ -8778,7 +8622,7 @@ function MenuGroup(props) {
8778
8622
  "aria-pressed": as === 'button' ? withinMenu : undefined,
8779
8623
  "data-pressed": as !== 'button' ? withinMenu : undefined,
8780
8624
  "data-selected": !withinMenu && active ? '' : undefined,
8781
- "$radius": useArrayProp(radius),
8625
+ "$radius": radius,
8782
8626
  "$tone": tone,
8783
8627
  onClick: handleClick,
8784
8628
  onKeyDown: handleKeyDown,
@@ -8884,13 +8728,13 @@ var MenuItem = /*#__PURE__*/React.forwardRef(function MenuItem(props, forwardedR
8884
8728
  "data-selected": active ? '' : undefined,
8885
8729
  "data-disabled": disabled ? '' : undefined,
8886
8730
  forwardedAs: as,
8887
- "$radius": useArrayProp(radius),
8888
- "$padding": useArrayProp(0),
8731
+ "$radius": radius,
8889
8732
  "$tone": tone,
8890
8733
  disabled: disabled,
8891
8734
  onClick: handleClick,
8892
8735
  onMouseEnter: onItemMouseEnter,
8893
8736
  onMouseLeave: onItemMouseLeave,
8737
+ padding: 0,
8894
8738
  ref: setRef,
8895
8739
  role: "menuitem",
8896
8740
  tabIndex: -1,
@@ -8972,7 +8816,7 @@ var Skeleton = /*#__PURE__*/React.forwardRef(function Skeleton(props, ref) {
8972
8816
  }, [delay]);
8973
8817
  return /*#__PURE__*/React__default["default"].createElement(Root$4, _extends({}, restProps, {
8974
8818
  "$animated": animated,
8975
- "$radius": useArrayProp(radius),
8819
+ "$radius": radius,
8976
8820
  "$visible": visible,
8977
8821
  ref: ref
8978
8822
  }));
@@ -8988,15 +8832,13 @@ var Root$3 = styled__default["default"](Skeleton)(function (_ref) {
8988
8832
  theme = _ref.theme;
8989
8833
  var media = theme.sanity.media;
8990
8834
  var font = theme.sanity.fonts[$style];
8991
-
8992
- var styles = _responsive(media, $size, function (sizeIndex) {
8835
+ var styles = responsive(media, $size, function (sizeIndex) {
8993
8836
  var fontSize = font.sizes[sizeIndex];
8994
8837
  var capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight;
8995
8838
  return {
8996
8839
  height: capHeight
8997
8840
  };
8998
8841
  });
8999
-
9000
8842
  return styles;
9001
8843
  });
9002
8844
  /**
@@ -9009,7 +8851,7 @@ var TextSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props, re
9009
8851
  size = _props$size === void 0 ? 2 : _props$size,
9010
8852
  restProps = _objectWithoutPropertiesLoose(props, _excluded$7);
9011
8853
 
9012
- var $size = useArrayProp(size);
8854
+ var $size = useResponsiveProp(size);
9013
8855
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
9014
8856
  "$size": $size,
9015
8857
  ref: ref,
@@ -9026,7 +8868,7 @@ var LabelSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props, r
9026
8868
  size = _props$size2 === void 0 ? 2 : _props$size2,
9027
8869
  restProps = _objectWithoutPropertiesLoose(props, _excluded2);
9028
8870
 
9029
- var $size = useArrayProp(size);
8871
+ var $size = useResponsiveProp(size);
9030
8872
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
9031
8873
  "$size": $size,
9032
8874
  ref: ref,
@@ -9043,7 +8885,7 @@ var HeadingSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props,
9043
8885
  size = _props$size3 === void 0 ? 2 : _props$size3,
9044
8886
  restProps = _objectWithoutPropertiesLoose(props, _excluded3);
9045
8887
 
9046
- var $size = useArrayProp(size);
8888
+ var $size = useResponsiveProp(size);
9047
8889
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
9048
8890
  "$size": $size,
9049
8891
  ref: ref,
@@ -9060,7 +8902,7 @@ var CodeSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props, re
9060
8902
  size = _props$size4 === void 0 ? 2 : _props$size4,
9061
8903
  restProps = _objectWithoutPropertiesLoose(props, _excluded4);
9062
8904
 
9063
- var $size = useArrayProp(size);
8905
+ var $size = useResponsiveProp(size);
9064
8906
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
9065
8907
  "$size": $size,
9066
8908
  ref: ref,
@@ -9973,6 +9815,7 @@ exports.Popover = Popover;
9973
9815
  exports.Portal = Portal;
9974
9816
  exports.PortalProvider = PortalProvider;
9975
9817
  exports.Radio = Radio;
9818
+ exports.ResizeObserver = RO;
9976
9819
  exports.Select = Select;
9977
9820
  exports.Skeleton = Skeleton;
9978
9821
  exports.Spinner = Spinner;
@@ -9994,21 +9837,18 @@ exports.Tooltip = Tooltip;
9994
9837
  exports.Tree = Tree;
9995
9838
  exports.TreeItem = TreeItem;
9996
9839
  exports.VirtualList = VirtualList;
9997
- exports._ResizeObserver = _ResizeObserver;
9998
- exports._elementSizeObserver = _elementSizeObserver;
9999
- exports._fillCSSObject = _fillCSSObject;
10000
- exports._getArrayProp = _getArrayProp;
10001
- exports._getResponsiveSpace = _getResponsiveSpace;
10002
9840
  exports._hasFocus = _hasFocus;
10003
9841
  exports._isEnterToClickElement = _isEnterToClickElement;
10004
9842
  exports._isScrollable = _isScrollable;
10005
9843
  exports._raf = _raf;
10006
9844
  exports._raf2 = _raf2;
10007
- exports._responsive = _responsive;
10008
9845
  exports.attemptFocus = attemptFocus;
10009
9846
  exports.createColorTheme = createColorTheme;
9847
+ exports.fillCSSObject = fillCSSObject;
10010
9848
  exports.focusFirstDescendant = focusFirstDescendant;
10011
9849
  exports.focusLastDescendant = focusLastDescendant;
9850
+ exports.getResponsiveProp = getResponsiveProp;
9851
+ exports.getResponsiveSpace = getResponsiveSpace;
10012
9852
  exports.hexToRgb = hexToRgb;
10013
9853
  exports.hslToRgb = hslToRgb;
10014
9854
  exports.isFocusable = isFocusable;
@@ -10021,6 +9861,7 @@ exports.isHTMLTextAreaElement = isHTMLTextAreaElement;
10021
9861
  exports.multiply = multiply$1;
10022
9862
  exports.parseColor = parseColor;
10023
9863
  exports.rem = rem;
9864
+ exports.responsive = responsive;
10024
9865
  exports.responsiveCodeFontStyle = responsiveCodeFontStyle;
10025
9866
  exports.responsiveHeadingFont = responsiveHeadingFont;
10026
9867
  exports.responsiveLabelFont = responsiveLabelFont;
@@ -10031,19 +9872,18 @@ exports.rgbToHsl = rgbToHsl;
10031
9872
  exports.rgba = rgba;
10032
9873
  exports.screen = screen$1;
10033
9874
  exports.studioTheme = studioTheme;
10034
- exports.useArrayProp = useArrayProp;
10035
9875
  exports.useBoundaryElement = useBoundaryElement;
10036
9876
  exports.useClickOutside = useClickOutside;
10037
9877
  exports.useCustomValidity = useCustomValidity;
10038
9878
  exports.useDialog = useDialog;
10039
9879
  exports.useElementRect = useElementRect;
10040
- exports.useElementSize = useElementSize;
10041
9880
  exports.useForwardedRef = useForwardedRef;
10042
9881
  exports.useGlobalKeyDown = useGlobalKeyDown;
10043
9882
  exports.useLayer = useLayer;
10044
9883
  exports.useMediaIndex = useMediaIndex;
10045
9884
  exports.usePortal = usePortal;
10046
9885
  exports.usePrefersDark = usePrefersDark;
9886
+ exports.useResponsiveProp = useResponsiveProp;
10047
9887
  exports.useRootTheme = useRootTheme;
10048
9888
  exports.useTheme = useTheme;
10049
9889
  exports.useToast = useToast;