@sanity/ui 0.37.20 → 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 +570 -731
  87. package/lib/sanity-ui.js.map +1 -1
  88. package/lib/sanity-ui.modern.js +591 -762
  89. package/lib/sanity-ui.modern.js.map +1 -1
  90. package/lib/sanity-ui.module.js +566 -725
  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 +1 -3
  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];
5268
5162
 
5269
- var elementSize = useElementSize(element);
5270
- var width = React.useMemo(function () {
5271
- var _elementSize$border$w;
5163
+ React.useEffect(function () {
5164
+ if (!element) return;
5165
+
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,7 +5720,7 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function VirtualList(props, ref)
5819
5720
  scrollEl.addEventListener('scroll', _handleScroll, {
5820
5721
  passive: true
5821
5722
  });
5822
- var ro = new _ResizeObserver(function (entries) {
5723
+ var ro = new ResizeObserver(function (entries) {
5823
5724
  setScrollHeight(entries[0].contentRect.height);
5824
5725
  });
5825
5726
  ro.observe(scrollEl);
@@ -6136,7 +6037,7 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {
6136
6037
  _props$tone = props.tone,
6137
6038
  tone = _props$tone === void 0 ? 'inherit' : _props$tone,
6138
6039
  _props$width = props.width,
6139
- widthProp = _props$width === void 0 ? 0 : _props$width,
6040
+ width = _props$width === void 0 ? 0 : _props$width,
6140
6041
  _props$zOffset = props.zOffset,
6141
6042
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.popover.zOffset : _props$zOffset,
6142
6043
  restProps = _objectWithoutPropertiesLoose(props, _excluded$n);
@@ -6157,7 +6058,6 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {
6157
6058
  setArrowElement = _useState3[1];
6158
6059
 
6159
6060
  var popperReferenceElement = referenceElementProp || referenceElement;
6160
- var width = useArrayProp(matchReferenceWidth ? 'auto' : widthProp);
6161
6061
  var modifiers = usePopoverModifiers({
6162
6062
  allowedAutoPlacements: allowedAutoPlacements,
6163
6063
  arrow: arrow,
@@ -6198,21 +6098,13 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {
6198
6098
  var popoverStyle = React.useMemo(function () {
6199
6099
  return _extends({}, style, styles.popper);
6200
6100
  }, [style, styles]);
6201
- var updateTimeoutRef = React.useRef(null);
6202
6101
  React.useEffect(function () {
6203
- if (updateTimeoutRef.current) {
6204
- clearTimeout(updateTimeoutRef.current);
6205
- updateTimeoutRef.current = null;
6206
- }
6207
-
6208
- updateTimeoutRef.current = setTimeout(function () {
6209
- if (forceUpdate) {
6210
- try {
6211
- forceUpdate();
6212
- } catch (_) {// ignore caught error
6213
- }
6102
+ if (forceUpdate) {
6103
+ try {
6104
+ forceUpdate();
6105
+ } catch (_) {// ignore caught error
6214
6106
  }
6215
- }, 0);
6107
+ }
6216
6108
  }, [content, forceUpdate, open, popperReferenceElement]);
6217
6109
 
6218
6110
  if (disabled) {
@@ -6228,13 +6120,13 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {
6228
6120
  zOffset: zOffset
6229
6121
  }, attributes.popper), /*#__PURE__*/React__default["default"].createElement(PopoverCard, {
6230
6122
  "$constrainSize": constrainSize,
6231
- "$width": width,
6232
6123
  "data-ui": "PopoverCard",
6233
6124
  padding: padding,
6234
6125
  radius: radius,
6235
6126
  scheme: scheme,
6236
6127
  shadow: shadow,
6237
- tone: tone
6128
+ tone: tone,
6129
+ width: width
6238
6130
  }, arrow && /*#__PURE__*/React__default["default"].createElement(PopoverArrow, {
6239
6131
  ref: setArrowElement,
6240
6132
  style: styles.arrow
@@ -6353,7 +6245,7 @@ function inputTextSizeStyle(props) {
6353
6245
  var theme = props.theme,
6354
6246
  $fontSize = props.$fontSize;
6355
6247
  var sizes = theme.sanity.fonts.text.sizes;
6356
- return _responsive(theme.sanity.media, $fontSize, function (sizeIndex) {
6248
+ return responsive(theme.sanity.media, getResponsiveProp($fontSize), function (sizeIndex) {
6357
6249
  return textSize(sizes[sizeIndex] || sizes[2]);
6358
6250
  });
6359
6251
  }
@@ -6405,10 +6297,10 @@ var Select = /*#__PURE__*/React.forwardRef(function Select(props, forwardedRef)
6405
6297
  "data-read-only": !disabled && readOnly ? '' : undefined,
6406
6298
  "data-ui": "Select"
6407
6299
  }, restProps, {
6408
- "$fontSize": useArrayProp(fontSize),
6409
- "$padding": useArrayProp(padding),
6410
- "$radius": useArrayProp(radius),
6411
- "$space": useArrayProp(space),
6300
+ "$fontSize": fontSize,
6301
+ "$padding": padding,
6302
+ "$radius": radius,
6303
+ "$space": space,
6412
6304
  disabled: disabled || readOnly,
6413
6305
  ref: ref
6414
6306
  }), children), /*#__PURE__*/React__default["default"].createElement(IconBox, {
@@ -6436,7 +6328,7 @@ function responsiveStackSpaceStyle(props) {
6436
6328
  var _theme$sanity = theme.sanity,
6437
6329
  media = _theme$sanity.media,
6438
6330
  space = _theme$sanity.space;
6439
- return _responsive(media, props.$space, function (spaceIndex) {
6331
+ return responsive(media, getResponsiveProp(props.$space), function (spaceIndex) {
6440
6332
  return {
6441
6333
  gridGap: rem(space[spaceIndex])
6442
6334
  };
@@ -6458,13 +6350,13 @@ var Stack = /*#__PURE__*/React.forwardRef(function Stack(props, ref) {
6458
6350
  "data-as": typeof as === 'string' ? as : undefined,
6459
6351
  "data-ui": "Stack"
6460
6352
  }, restProps, {
6461
- "$space": useArrayProp(space),
6353
+ "$space": space,
6462
6354
  forwardedAs: as,
6463
6355
  ref: ref
6464
6356
  }));
6465
6357
  });
6466
6358
 
6467
- 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;
6468
6360
  /* Root */
6469
6361
 
6470
6362
  function switchBaseStyles() {
@@ -6508,7 +6400,7 @@ function switchThumbStyles(props) {
6508
6400
  var checkedOffset = trackWidth - trackPadding * 2 - size;
6509
6401
  var indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding;
6510
6402
  var checked = $indeterminate !== true && props.$checked === true;
6511
- 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));
6512
6404
  }
6513
6405
 
6514
6406
  var _excluded$j = ["checked", "className", "disabled", "indeterminate", "readOnly", "style"];
@@ -6557,7 +6449,7 @@ var Switch = /*#__PURE__*/React.forwardRef(function Switch(props, forwardedRef)
6557
6449
  })));
6558
6450
  });
6559
6451
 
6560
- var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius", "weight"];
6452
+ var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius"];
6561
6453
 
6562
6454
  var _templateObject$f;
6563
6455
  var Root$d = styled__default["default"].span(textInputRootStyle);
@@ -6580,46 +6472,32 @@ var TextArea = /*#__PURE__*/React.forwardRef(function TextArea(props, forwardedR
6580
6472
  padding = _props$padding === void 0 ? 3 : _props$padding,
6581
6473
  _props$radius = props.radius,
6582
6474
  radius = _props$radius === void 0 ? 1 : _props$radius,
6583
- weight = props.weight,
6584
6475
  restProps = _objectWithoutPropertiesLoose(props, _excluded$i);
6585
6476
 
6586
6477
  var ref = useForwardedRef(forwardedRef);
6587
- var rootTheme = useRootTheme();
6588
6478
  useCustomValidity(ref, customValidity);
6589
6479
  return /*#__PURE__*/React__default["default"].createElement(Root$d, {
6590
6480
  "data-ui": "TextArea"
6591
6481
  }, /*#__PURE__*/React__default["default"].createElement(InputRoot$1, null, /*#__PURE__*/React__default["default"].createElement(Input$1, _extends({
6592
- "data-as": "textarea",
6593
- "data-scheme": rootTheme.scheme,
6594
- "data-tone": rootTheme.tone
6482
+ "data-as": "textarea"
6595
6483
  }, restProps, {
6596
- "$fontSize": useArrayProp(fontSize),
6597
- "$padding": useArrayProp(padding),
6598
- "$scheme": rootTheme.scheme,
6599
- "$space": useArrayProp(0),
6600
- "$tone": rootTheme.tone,
6601
- "$weight": weight,
6484
+ "$fontSize": fontSize,
6485
+ "$padding": padding,
6602
6486
  disabled: disabled,
6603
6487
  ref: ref
6604
6488
  })), /*#__PURE__*/React__default["default"].createElement(Presentation$1, {
6605
6489
  "$border": border,
6606
- "$radius": useArrayProp(radius),
6607
- "$scheme": rootTheme.scheme,
6608
- "$tone": rootTheme.tone,
6609
- "data-scheme": rootTheme.scheme,
6610
- "data-tone": rootTheme.tone
6490
+ "$radius": radius
6611
6491
  })));
6612
6492
  });
6613
6493
 
6614
- 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"];
6615
6495
 
6616
- 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;
6617
6497
  var CLEAR_BUTTON_BOX_STYLE = {
6618
6498
  zIndex: 2
6619
6499
  };
6620
- var Root$c = styled__default["default"](Card).attrs({
6621
- forwardedAs: 'span'
6622
- })(textInputRootStyle);
6500
+ var Root$c = styled__default["default"].span(textInputRootStyle);
6623
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"])));
6624
6502
  var Prefix = styled__default["default"](Card).attrs({
6625
6503
  forwardedAs: 'span'
@@ -6630,8 +6508,7 @@ var Suffix = styled__default["default"](Card).attrs({
6630
6508
  var Input = styled__default["default"].input(responsiveInputPaddingStyle, textInputBaseStyle, textInputFontSizeStyle);
6631
6509
  var Presentation = styled__default["default"].span(responsiveRadiusStyle, textInputRepresentationStyle);
6632
6510
  var LeftBox = styled__default["default"](Box)(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n"])));
6633
- var RightBox = styled__default["default"](Box)(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n right: 0;\n"])));
6634
- 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"])));
6635
6512
  /**
6636
6513
  * @public
6637
6514
  */
@@ -6643,7 +6520,7 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6643
6520
  _props$disabled = props.disabled,
6644
6521
  disabled = _props$disabled === void 0 ? false : _props$disabled,
6645
6522
  _props$fontSize = props.fontSize,
6646
- fontSizeProp = _props$fontSize === void 0 ? 2 : _props$fontSize,
6523
+ fontSize = _props$fontSize === void 0 ? 2 : _props$fontSize,
6647
6524
  icon = props.icon,
6648
6525
  iconRight = props.iconRight,
6649
6526
  onClear = props.onClear,
@@ -6654,20 +6531,16 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6654
6531
  radiusProp = _props$radius === void 0 ? 1 : _props$radius,
6655
6532
  readOnly = props.readOnly,
6656
6533
  _props$space = props.space,
6657
- spaceProp = _props$space === void 0 ? 3 : _props$space,
6534
+ space = _props$space === void 0 ? 3 : _props$space,
6658
6535
  suffix = props.suffix,
6659
6536
  customValidity = props.customValidity,
6660
6537
  _props$type = props.type,
6661
6538
  type = _props$type === void 0 ? 'text' : _props$type,
6662
- weight = props.weight,
6663
6539
  restProps = _objectWithoutPropertiesLoose(props, _excluded$h);
6664
6540
 
6665
6541
  var ref = useForwardedRef(forwardedRef);
6666
- var rootTheme = useRootTheme();
6667
- var fontSize = useArrayProp(fontSizeProp);
6668
- var padding = useArrayProp(paddingProp);
6669
- var radius = useArrayProp(radiusProp);
6670
- var space = useArrayProp(spaceProp); // Transient properties
6542
+ var padding = useResponsiveProp(paddingProp);
6543
+ var radius = useResponsiveProp(radiusProp); // Transient properties
6671
6544
 
6672
6545
  var $hasClearButton = Boolean(clearButton);
6673
6546
  var $hasIcon = Boolean(icon);
@@ -6706,21 +6579,17 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6706
6579
  "$border": border,
6707
6580
  "$hasPrefix": $hasPrefix,
6708
6581
  "$hasSuffix": $hasSuffix,
6709
- "$radius": radius,
6710
- "$scheme": rootTheme.scheme,
6711
- "$tone": rootTheme.tone,
6712
- "data-scheme": rootTheme.scheme,
6713
- "data-tone": rootTheme.tone
6582
+ "$radius": radius
6714
6583
  }, icon && /*#__PURE__*/React__default["default"].createElement(LeftBox, {
6715
6584
  padding: padding
6716
6585
  }, /*#__PURE__*/React__default["default"].createElement(Text, {
6717
6586
  size: fontSize
6718
- }, /*#__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, {
6719
6588
  padding: padding
6720
6589
  }, /*#__PURE__*/React__default["default"].createElement(Text, {
6721
6590
  size: fontSize
6722
6591
  }, /*#__PURE__*/React.isValidElement(iconRight) && iconRight, ReactIs.isValidElementType(iconRight) && /*#__PURE__*/React.createElement(iconRight))));
6723
- }, [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)
6724
6593
 
6725
6594
  var clearButtonBoxPadding = React.useMemo(function () {
6726
6595
  return padding.map(function (v) {
@@ -6771,21 +6640,15 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6771
6640
  }, /*#__PURE__*/React__default["default"].createElement("span", null, suffix));
6772
6641
  }, [radius, suffix]);
6773
6642
  return /*#__PURE__*/React__default["default"].createElement(Root$c, {
6774
- "data-ui": "TextInput",
6775
- tone: rootTheme.tone
6643
+ "data-ui": "TextInput"
6776
6644
  }, prefixNode, /*#__PURE__*/React__default["default"].createElement(InputRoot, null, /*#__PURE__*/React__default["default"].createElement(Input, _extends({
6777
- "data-as": "input",
6778
- "data-scheme": rootTheme.scheme,
6779
- "data-tone": rootTheme.tone
6645
+ "data-as": "input"
6780
6646
  }, restProps, {
6781
- "$fontSize": fontSize,
6782
6647
  "$iconLeft": $hasIcon,
6783
6648
  "$iconRight": $hasIconRight || $hasClearButton,
6784
6649
  "$padding": padding,
6785
- "$scheme": rootTheme.scheme,
6786
6650
  "$space": space,
6787
- "$tone": rootTheme.tone,
6788
- "$weight": weight,
6651
+ "$fontSize": fontSize,
6789
6652
  disabled: disabled,
6790
6653
  readOnly: readOnly,
6791
6654
  ref: ref,
@@ -6833,7 +6696,7 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(props, ref) {
6833
6696
  children = props.children,
6834
6697
  content = props.content,
6835
6698
  disabled = props.disabled,
6836
- fallbackPlacementsProp = props.fallbackPlacements,
6699
+ fallbackPlacements = props.fallbackPlacements,
6837
6700
  _props$placement = props.placement,
6838
6701
  placement = _props$placement === void 0 ? 'bottom' : _props$placement,
6839
6702
  portal = props.portal,
@@ -6842,7 +6705,6 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(props, ref) {
6842
6705
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.tooltip.zOffset : _props$zOffset,
6843
6706
  restProps = _objectWithoutPropertiesLoose(props, _excluded$g);
6844
6707
 
6845
- var fallbackPlacements = useArrayProp(fallbackPlacementsProp);
6846
6708
  var forwardedRef = useForwardedRef(ref);
6847
6709
 
6848
6710
  var _useState = React.useState(null),
@@ -6924,21 +6786,13 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(props, ref) {
6924
6786
  window.removeEventListener('mousemove', handleWindowMouseMove);
6925
6787
  };
6926
6788
  }, [isOpen, referenceElement]);
6927
- var updateTimeoutRef = React.useRef(null);
6928
6789
  React.useEffect(function () {
6929
- if (updateTimeoutRef.current) {
6930
- clearTimeout(updateTimeoutRef.current);
6931
- updateTimeoutRef.current = null;
6932
- }
6933
-
6934
- updateTimeoutRef.current = setTimeout(function () {
6935
- if (forceUpdate) {
6936
- try {
6937
- forceUpdate();
6938
- } catch (_) {// ignore caught error
6939
- }
6790
+ if (forceUpdate) {
6791
+ try {
6792
+ forceUpdate();
6793
+ } catch (_) {// ignore caught error
6940
6794
  }
6941
- }, 0);
6795
+ }
6942
6796
  }, [forceUpdate, content]); // Close when `disabled` changes to `true`
6943
6797
 
6944
6798
  React.useEffect(function () {
@@ -7220,7 +7074,7 @@ var InnerAutocomplete = /*#__PURE__*/React.forwardRef(function InnerAutocomplete
7220
7074
  var popoverMouseWithinRef = React.useRef(false);
7221
7075
  var listBoxId = id + "-listbox";
7222
7076
  var options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY;
7223
- var padding = useArrayProp(paddingProp);
7077
+ var padding = useResponsiveProp(paddingProp);
7224
7078
  var currentOption = React.useMemo(function () {
7225
7079
  return value !== null ? options.find(function (o) {
7226
7080
  return o.value === value;
@@ -7652,11 +7506,9 @@ var Breadcrumbs = /*#__PURE__*/React.forwardRef(function Breadcrumbs(props, ref)
7652
7506
  maxLength = props.maxLength,
7653
7507
  separator = props.separator,
7654
7508
  _props$space = props.space,
7655
- spaceRaw = _props$space === void 0 ? 2 : _props$space,
7509
+ space = _props$space === void 0 ? 2 : _props$space,
7656
7510
  restProps = _objectWithoutPropertiesLoose(props, _excluded$e);
7657
7511
 
7658
- var space = useArrayProp(spaceRaw);
7659
-
7660
7512
  var _useState = React.useState(false),
7661
7513
  open = _useState[0],
7662
7514
  setOpen = _useState[1];
@@ -7746,13 +7598,13 @@ function dialogStyle(_ref) {
7746
7598
  alignItems: 'center',
7747
7599
  justifyContent: 'center',
7748
7600
  outline: 'none',
7749
- background: color.shadow.umbra
7601
+ background: color.shadow.penumbra
7750
7602
  };
7751
7603
  }
7752
7604
  function responsiveDialogPositionStyle(props) {
7753
7605
  var theme = props.theme;
7754
7606
  var media = theme.sanity.media;
7755
- return _responsive(media, props.$position, function (position) {
7607
+ return responsive(media, getResponsiveProp(props.$position), function (position) {
7756
7608
  return {
7757
7609
  '&&': {
7758
7610
  position: position
@@ -7800,13 +7652,10 @@ var DialogCard = /*#__PURE__*/React.forwardRef(function DialogCard(props, ref) {
7800
7652
  id = props.id,
7801
7653
  onClickOutside = props.onClickOutside,
7802
7654
  onClose = props.onClose,
7803
- radiusProp = props.radius,
7655
+ radius = props.radius,
7804
7656
  scheme = props.scheme,
7805
- shadowProp = props.shadow,
7806
- widthProp = props.width;
7807
- var radius = useArrayProp(radiusProp);
7808
- var shadow = useArrayProp(shadowProp);
7809
- var width = useArrayProp(widthProp);
7657
+ shadow = props.shadow,
7658
+ width = props.width;
7810
7659
  var forwardedRef = useForwardedRef(ref);
7811
7660
 
7812
7661
  var _useState = React.useState(null),
@@ -7893,7 +7742,7 @@ var Dialog = /*#__PURE__*/React.forwardRef(function Dialog(props, ref) {
7893
7742
  _props$__unstable_hid = props.__unstable_hideCloseButton,
7894
7743
  hideCloseButton = _props$__unstable_hid === void 0 ? false : _props$__unstable_hid,
7895
7744
  _props$cardRadius = props.cardRadius,
7896
- cardRadiusProp = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7745
+ cardRadius = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7897
7746
  _props$cardShadow = props.cardShadow,
7898
7747
  cardShadow = _props$cardShadow === void 0 ? 4 : _props$cardShadow,
7899
7748
  children = props.children,
@@ -7904,22 +7753,17 @@ var Dialog = /*#__PURE__*/React.forwardRef(function Dialog(props, ref) {
7904
7753
  onClickOutside = props.onClickOutside,
7905
7754
  onClose = props.onClose,
7906
7755
  _props$padding = props.padding,
7907
- paddingProp = _props$padding === void 0 ? 4 : _props$padding,
7756
+ padding = _props$padding === void 0 ? 4 : _props$padding,
7908
7757
  portal = props.portal,
7909
7758
  _props$position = props.position,
7910
- positionProp = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7759
+ position = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7911
7760
  scheme = props.scheme,
7912
7761
  _props$width = props.width,
7913
- widthProp = _props$width === void 0 ? 0 : _props$width,
7762
+ width = _props$width === void 0 ? 0 : _props$width,
7914
7763
  _props$zOffset = props.zOffset,
7915
- 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,
7916
7765
  restProps = _objectWithoutPropertiesLoose(props, _excluded$d);
7917
7766
 
7918
- var cardRadius = useArrayProp(cardRadiusProp);
7919
- var padding = useArrayProp(paddingProp);
7920
- var position = useArrayProp(positionProp);
7921
- var width = useArrayProp(widthProp);
7922
- var zOffset = useArrayProp(zOffsetProp);
7923
7767
  var preDivRef = React.useRef(null);
7924
7768
  var postDivRef = React.useRef(null);
7925
7769
  var cardRef = React.useRef(null);
@@ -8014,11 +7858,9 @@ var Hotkeys = /*#__PURE__*/React.forwardRef(function Hotkeys(props, ref) {
8014
7858
  padding = props.padding,
8015
7859
  radius = props.radius,
8016
7860
  _props$space = props.space,
8017
- spaceProp = _props$space === void 0 ? 1 : _props$space,
7861
+ space = _props$space === void 0 ? 1 : _props$space,
8018
7862
  restProps = _objectWithoutPropertiesLoose(props, _excluded$c);
8019
7863
 
8020
- var space = useArrayProp(spaceProp);
8021
-
8022
7864
  if (!keys || keys.length === 0) {
8023
7865
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
8024
7866
  }
@@ -8632,7 +8474,7 @@ function selectableColorStyle(props) {
8632
8474
  * @internal
8633
8475
  */
8634
8476
 
8635
- var Selectable = styled__default["default"](Box)(responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8477
+ var Selectable = styled__default["default"](Box)(responsiveBorderStyle, responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8636
8478
 
8637
8479
  function useMenu() {
8638
8480
  var value = React.useContext(MenuContext);
@@ -8665,7 +8507,8 @@ function MenuGroup(props) {
8665
8507
  onClick = props.onClick,
8666
8508
  _props$padding = props.padding,
8667
8509
  padding = _props$padding === void 0 ? 3 : _props$padding,
8668
- popover = props.popover,
8510
+ _props$popover = props.popover,
8511
+ popover = _props$popover === void 0 ? {} : _props$popover,
8669
8512
  _props$radius = props.radius,
8670
8513
  radius = _props$radius === void 0 ? 2 : _props$radius,
8671
8514
  _props$space = props.space,
@@ -8779,7 +8622,7 @@ function MenuGroup(props) {
8779
8622
  "aria-pressed": as === 'button' ? withinMenu : undefined,
8780
8623
  "data-pressed": as !== 'button' ? withinMenu : undefined,
8781
8624
  "data-selected": !withinMenu && active ? '' : undefined,
8782
- "$radius": useArrayProp(radius),
8625
+ "$radius": radius,
8783
8626
  "$tone": tone,
8784
8627
  onClick: handleClick,
8785
8628
  onKeyDown: handleKeyDown,
@@ -8885,13 +8728,13 @@ var MenuItem = /*#__PURE__*/React.forwardRef(function MenuItem(props, forwardedR
8885
8728
  "data-selected": active ? '' : undefined,
8886
8729
  "data-disabled": disabled ? '' : undefined,
8887
8730
  forwardedAs: as,
8888
- "$radius": useArrayProp(radius),
8889
- "$padding": useArrayProp(0),
8731
+ "$radius": radius,
8890
8732
  "$tone": tone,
8891
8733
  disabled: disabled,
8892
8734
  onClick: handleClick,
8893
8735
  onMouseEnter: onItemMouseEnter,
8894
8736
  onMouseLeave: onItemMouseLeave,
8737
+ padding: 0,
8895
8738
  ref: setRef,
8896
8739
  role: "menuitem",
8897
8740
  tabIndex: -1,
@@ -8973,7 +8816,7 @@ var Skeleton = /*#__PURE__*/React.forwardRef(function Skeleton(props, ref) {
8973
8816
  }, [delay]);
8974
8817
  return /*#__PURE__*/React__default["default"].createElement(Root$4, _extends({}, restProps, {
8975
8818
  "$animated": animated,
8976
- "$radius": useArrayProp(radius),
8819
+ "$radius": radius,
8977
8820
  "$visible": visible,
8978
8821
  ref: ref
8979
8822
  }));
@@ -8989,15 +8832,13 @@ var Root$3 = styled__default["default"](Skeleton)(function (_ref) {
8989
8832
  theme = _ref.theme;
8990
8833
  var media = theme.sanity.media;
8991
8834
  var font = theme.sanity.fonts[$style];
8992
-
8993
- var styles = _responsive(media, $size, function (sizeIndex) {
8835
+ var styles = responsive(media, $size, function (sizeIndex) {
8994
8836
  var fontSize = font.sizes[sizeIndex];
8995
8837
  var capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight;
8996
8838
  return {
8997
8839
  height: capHeight
8998
8840
  };
8999
8841
  });
9000
-
9001
8842
  return styles;
9002
8843
  });
9003
8844
  /**
@@ -9010,7 +8851,7 @@ var TextSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props, re
9010
8851
  size = _props$size === void 0 ? 2 : _props$size,
9011
8852
  restProps = _objectWithoutPropertiesLoose(props, _excluded$7);
9012
8853
 
9013
- var $size = useArrayProp(size);
8854
+ var $size = useResponsiveProp(size);
9014
8855
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
9015
8856
  "$size": $size,
9016
8857
  ref: ref,
@@ -9027,7 +8868,7 @@ var LabelSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props, r
9027
8868
  size = _props$size2 === void 0 ? 2 : _props$size2,
9028
8869
  restProps = _objectWithoutPropertiesLoose(props, _excluded2);
9029
8870
 
9030
- var $size = useArrayProp(size);
8871
+ var $size = useResponsiveProp(size);
9031
8872
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
9032
8873
  "$size": $size,
9033
8874
  ref: ref,
@@ -9044,7 +8885,7 @@ var HeadingSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props,
9044
8885
  size = _props$size3 === void 0 ? 2 : _props$size3,
9045
8886
  restProps = _objectWithoutPropertiesLoose(props, _excluded3);
9046
8887
 
9047
- var $size = useArrayProp(size);
8888
+ var $size = useResponsiveProp(size);
9048
8889
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
9049
8890
  "$size": $size,
9050
8891
  ref: ref,
@@ -9061,7 +8902,7 @@ var CodeSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props, re
9061
8902
  size = _props$size4 === void 0 ? 2 : _props$size4,
9062
8903
  restProps = _objectWithoutPropertiesLoose(props, _excluded4);
9063
8904
 
9064
- var $size = useArrayProp(size);
8905
+ var $size = useResponsiveProp(size);
9065
8906
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
9066
8907
  "$size": $size,
9067
8908
  ref: ref,
@@ -9974,6 +9815,7 @@ exports.Popover = Popover;
9974
9815
  exports.Portal = Portal;
9975
9816
  exports.PortalProvider = PortalProvider;
9976
9817
  exports.Radio = Radio;
9818
+ exports.ResizeObserver = RO;
9977
9819
  exports.Select = Select;
9978
9820
  exports.Skeleton = Skeleton;
9979
9821
  exports.Spinner = Spinner;
@@ -9995,21 +9837,18 @@ exports.Tooltip = Tooltip;
9995
9837
  exports.Tree = Tree;
9996
9838
  exports.TreeItem = TreeItem;
9997
9839
  exports.VirtualList = VirtualList;
9998
- exports._ResizeObserver = _ResizeObserver;
9999
- exports._elementSizeObserver = _elementSizeObserver;
10000
- exports._fillCSSObject = _fillCSSObject;
10001
- exports._getArrayProp = _getArrayProp;
10002
- exports._getResponsiveSpace = _getResponsiveSpace;
10003
9840
  exports._hasFocus = _hasFocus;
10004
9841
  exports._isEnterToClickElement = _isEnterToClickElement;
10005
9842
  exports._isScrollable = _isScrollable;
10006
9843
  exports._raf = _raf;
10007
9844
  exports._raf2 = _raf2;
10008
- exports._responsive = _responsive;
10009
9845
  exports.attemptFocus = attemptFocus;
10010
9846
  exports.createColorTheme = createColorTheme;
9847
+ exports.fillCSSObject = fillCSSObject;
10011
9848
  exports.focusFirstDescendant = focusFirstDescendant;
10012
9849
  exports.focusLastDescendant = focusLastDescendant;
9850
+ exports.getResponsiveProp = getResponsiveProp;
9851
+ exports.getResponsiveSpace = getResponsiveSpace;
10013
9852
  exports.hexToRgb = hexToRgb;
10014
9853
  exports.hslToRgb = hslToRgb;
10015
9854
  exports.isFocusable = isFocusable;
@@ -10022,6 +9861,7 @@ exports.isHTMLTextAreaElement = isHTMLTextAreaElement;
10022
9861
  exports.multiply = multiply$1;
10023
9862
  exports.parseColor = parseColor;
10024
9863
  exports.rem = rem;
9864
+ exports.responsive = responsive;
10025
9865
  exports.responsiveCodeFontStyle = responsiveCodeFontStyle;
10026
9866
  exports.responsiveHeadingFont = responsiveHeadingFont;
10027
9867
  exports.responsiveLabelFont = responsiveLabelFont;
@@ -10032,19 +9872,18 @@ exports.rgbToHsl = rgbToHsl;
10032
9872
  exports.rgba = rgba;
10033
9873
  exports.screen = screen$1;
10034
9874
  exports.studioTheme = studioTheme;
10035
- exports.useArrayProp = useArrayProp;
10036
9875
  exports.useBoundaryElement = useBoundaryElement;
10037
9876
  exports.useClickOutside = useClickOutside;
10038
9877
  exports.useCustomValidity = useCustomValidity;
10039
9878
  exports.useDialog = useDialog;
10040
9879
  exports.useElementRect = useElementRect;
10041
- exports.useElementSize = useElementSize;
10042
9880
  exports.useForwardedRef = useForwardedRef;
10043
9881
  exports.useGlobalKeyDown = useGlobalKeyDown;
10044
9882
  exports.useLayer = useLayer;
10045
9883
  exports.useMediaIndex = useMediaIndex;
10046
9884
  exports.usePortal = usePortal;
10047
9885
  exports.usePrefersDark = usePrefersDark;
9886
+ exports.useResponsiveProp = useResponsiveProp;
10048
9887
  exports.useRootTheme = useRootTheme;
10049
9888
  exports.useTheme = useTheme;
10050
9889
  exports.useToast = useToast;