@sanity/ui 0.37.20 → 0.37.22

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 (217) 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/spinner/spinner.d.ts +1 -1
  44. package/lib/dts/src/primitives/spinner/spinner.d.ts.map +1 -1
  45. package/lib/dts/src/primitives/spinner/styles.d.ts +9 -0
  46. package/lib/dts/src/primitives/spinner/styles.d.ts.map +1 -0
  47. package/lib/dts/src/primitives/stack/stack.d.ts.map +1 -1
  48. package/lib/dts/src/primitives/stack/styles.d.ts +1 -1
  49. package/lib/dts/src/primitives/stack/styles.d.ts.map +1 -1
  50. package/lib/dts/src/primitives/text/text.d.ts.map +1 -1
  51. package/lib/dts/src/primitives/textArea/textArea.d.ts.map +1 -1
  52. package/lib/dts/src/primitives/textInput/textInput.d.ts.map +1 -1
  53. package/lib/dts/src/primitives/tooltip/tooltip.d.ts.map +1 -1
  54. package/lib/dts/src/primitives/types.d.ts +1 -1
  55. package/lib/dts/src/primitives/types.d.ts.map +1 -1
  56. package/lib/dts/src/styles/border/types.d.ts +5 -5
  57. package/lib/dts/src/styles/border/types.d.ts.map +1 -1
  58. package/lib/dts/src/styles/box/types.d.ts +4 -4
  59. package/lib/dts/src/styles/box/types.d.ts.map +1 -1
  60. package/lib/dts/src/styles/flex/flexItemStyle.d.ts.map +1 -1
  61. package/lib/dts/src/styles/flex/types.d.ts +6 -6
  62. package/lib/dts/src/styles/flex/types.d.ts.map +1 -1
  63. package/lib/dts/src/styles/font/responsiveFont.d.ts.map +1 -1
  64. package/lib/dts/src/styles/font/types.d.ts +3 -3
  65. package/lib/dts/src/styles/font/types.d.ts.map +1 -1
  66. package/lib/dts/src/styles/grid/types.d.ts +14 -14
  67. package/lib/dts/src/styles/grid/types.d.ts.map +1 -1
  68. package/lib/dts/src/styles/helpers.d.ts +4 -4
  69. package/lib/dts/src/styles/helpers.d.ts.map +1 -1
  70. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts +12 -12
  71. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts.map +1 -1
  72. package/lib/dts/src/styles/input/textInputStyle.d.ts +2 -7
  73. package/lib/dts/src/styles/input/textInputStyle.d.ts.map +1 -1
  74. package/lib/dts/src/styles/margin/types.d.ts +7 -7
  75. package/lib/dts/src/styles/margin/types.d.ts.map +1 -1
  76. package/lib/dts/src/styles/padding/types.d.ts +7 -7
  77. package/lib/dts/src/styles/padding/types.d.ts.map +1 -1
  78. package/lib/dts/src/styles/radius/types.d.ts +1 -1
  79. package/lib/dts/src/styles/radius/types.d.ts.map +1 -1
  80. package/lib/dts/src/styles/shadow/shadowStyle.d.ts.map +1 -1
  81. package/lib/dts/src/styles/shadow/types.d.ts +1 -1
  82. package/lib/dts/src/styles/shadow/types.d.ts.map +1 -1
  83. package/lib/dts/src/theme/studioTheme/color.d.ts.map +1 -1
  84. package/lib/dts/src/utils/elementQuery/elementQuery.d.ts.map +1 -1
  85. package/lib/dts/src/utils/index.d.ts +1 -0
  86. package/lib/dts/src/utils/index.d.ts.map +1 -1
  87. package/lib/dts/src/utils/resizeObserver.d.ts +6 -0
  88. package/lib/dts/src/utils/resizeObserver.d.ts.map +1 -0
  89. package/lib/dts/src/utils/virtualList/virtualList.d.ts.map +1 -1
  90. package/lib/sanity-ui.js +630 -751
  91. package/lib/sanity-ui.js.map +1 -1
  92. package/lib/sanity-ui.modern.js +610 -737
  93. package/lib/sanity-ui.modern.js.map +1 -1
  94. package/lib/sanity-ui.module.js +626 -745
  95. package/lib/sanity-ui.module.js.map +1 -1
  96. package/package.json +11 -11
  97. package/src/__workshop__/color/overview.tsx +11 -9
  98. package/src/components/autocomplete/__workshop__/async.tsx +12 -14
  99. package/src/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -36
  100. package/src/components/autocomplete/autocomplete.tsx +2 -2
  101. package/src/components/breadcrumbs/breadcrumbs.tsx +2 -3
  102. package/src/components/dialog/dialog.tsx +9 -17
  103. package/src/components/dialog/styles.ts +4 -4
  104. package/src/components/hotkeys/hotkeys.tsx +1 -3
  105. package/src/components/menu/__workshop__/constrainedInBoundary.tsx +14 -11
  106. package/src/components/menu/__workshop__/groups.tsx +1 -1
  107. package/src/components/menu/menuGroup.tsx +2 -3
  108. package/src/components/menu/menuItem.tsx +3 -3
  109. package/src/components/skeleton/skeleton.tsx +1 -10
  110. package/src/components/skeleton/textSkeleton.tsx +7 -7
  111. package/src/hooks/index.ts +1 -2
  112. package/src/hooks/useElementRect/useElementRect.ts +16 -4
  113. package/src/hooks/useResponsiveProp.ts +10 -0
  114. package/src/index.ts +0 -1
  115. package/src/primitives/_selectable/selectable.tsx +4 -5
  116. package/src/primitives/avatar/avatar.tsx +5 -7
  117. package/src/primitives/avatar/avatarCounter.tsx +11 -12
  118. package/src/primitives/avatar/avatarStack.tsx +10 -15
  119. package/src/primitives/avatar/styles.ts +2 -2
  120. package/src/primitives/badge/badge.tsx +2 -3
  121. package/src/primitives/box/box.tsx +25 -26
  122. package/src/primitives/button/__workshop__/props.tsx +2 -0
  123. package/src/primitives/button/button.tsx +10 -22
  124. package/src/primitives/card/card.tsx +7 -8
  125. package/src/primitives/checkbox/__workshop__/example.tsx +2 -4
  126. package/src/primitives/checkbox/__workshop__/props.tsx +2 -4
  127. package/src/primitives/checkbox/__workshop__/readOnly.tsx +2 -4
  128. package/src/primitives/code/__workshop__/props.tsx +1 -1
  129. package/src/primitives/code/code.tsx +1 -2
  130. package/src/primitives/container/container.tsx +1 -10
  131. package/src/primitives/container/styles.ts +2 -2
  132. package/src/primitives/container/types.ts +1 -1
  133. package/src/primitives/flex/flex.tsx +5 -6
  134. package/src/primitives/grid/__workshop__/responsive.tsx +12 -13
  135. package/src/primitives/grid/grid.tsx +8 -9
  136. package/src/primitives/heading/__workshop__/opticalAlignment.tsx +7 -19
  137. package/src/primitives/heading/heading.tsx +2 -3
  138. package/src/primitives/inline/inline.tsx +6 -12
  139. package/src/primitives/inline/styles.ts +2 -2
  140. package/src/primitives/inline/types.ts +1 -1
  141. package/src/primitives/kbd/kbd.tsx +1 -2
  142. package/src/primitives/label/label.tsx +3 -4
  143. package/src/primitives/popover/__workshop__/index.ts +5 -10
  144. package/src/primitives/popover/__workshop__/{MarginsStory.tsx → margins.tsx} +1 -1
  145. package/src/primitives/popover/__workshop__/{MatchReferenceWidthStory.tsx → matchReferenceWidth.tsx} +0 -0
  146. package/src/primitives/popover/__workshop__/{PlainStory.tsx → plain.tsx} +14 -12
  147. package/src/primitives/popover/__workshop__/{RecursiveStory.tsx → recursive.tsx} +1 -4
  148. package/src/primitives/popover/__workshop__/rightAligned.tsx +57 -0
  149. package/src/primitives/popover/popover.tsx +10 -29
  150. package/src/primitives/select/select.tsx +9 -9
  151. package/src/primitives/select/styles.ts +4 -10
  152. package/src/primitives/spinner/spinner.tsx +8 -19
  153. package/src/primitives/spinner/styles.ts +43 -0
  154. package/src/primitives/stack/stack.tsx +1 -2
  155. package/src/primitives/stack/styles.ts +3 -3
  156. package/src/primitives/text/__workshop__/opticalAlignment.tsx +5 -15
  157. package/src/primitives/text/text.tsx +2 -3
  158. package/src/primitives/textArea/__workshop__/plain.tsx +18 -23
  159. package/src/primitives/textArea/textArea.tsx +5 -21
  160. package/src/primitives/textInput/__workshop__/clearButton.tsx +8 -14
  161. package/src/primitives/textInput/__workshop__/index.ts +2 -2
  162. package/src/primitives/textInput/__workshop__/plain.tsx +32 -39
  163. package/src/primitives/textInput/__workshop__/tones.tsx +95 -234
  164. package/src/primitives/textInput/__workshop__/typed.tsx +2 -8
  165. package/src/primitives/textInput/textInput.tsx +12 -47
  166. package/src/primitives/tooltip/__workshop__/props.tsx +2 -7
  167. package/src/primitives/tooltip/tooltip.tsx +9 -19
  168. package/src/primitives/types.ts +1 -1
  169. package/src/styles/border/borderStyle.ts +6 -6
  170. package/src/styles/border/types.ts +5 -5
  171. package/src/styles/box/boxStyle.ts +5 -5
  172. package/src/styles/box/types.ts +4 -4
  173. package/src/styles/flex/flexItemStyle.ts +4 -5
  174. package/src/styles/flex/flexStyle.ts +6 -6
  175. package/src/styles/flex/types.ts +6 -6
  176. package/src/styles/font/responsiveFont.ts +4 -2
  177. package/src/styles/font/textAlignStyle.ts +2 -2
  178. package/src/styles/font/types.ts +3 -4
  179. package/src/styles/grid/gridItemStyle.ts +7 -7
  180. package/src/styles/grid/gridStyle.ts +9 -9
  181. package/src/styles/grid/types.ts +14 -14
  182. package/src/styles/helpers.ts +9 -9
  183. package/src/styles/input/responsiveInputPaddingStyle.ts +27 -24
  184. package/src/styles/input/textInputStyle.ts +80 -92
  185. package/src/styles/margin/marginStyle.ts +8 -8
  186. package/src/styles/margin/marginsStyle.test.ts +1 -1
  187. package/src/styles/margin/types.ts +7 -7
  188. package/src/styles/padding/paddingStyle.test.ts +1 -1
  189. package/src/styles/padding/paddingStyle.ts +8 -8
  190. package/src/styles/padding/types.ts +7 -7
  191. package/src/styles/radius/radiusStyle.ts +2 -2
  192. package/src/styles/radius/types.ts +1 -1
  193. package/src/styles/shadow/shadowStyle.ts +5 -2
  194. package/src/styles/shadow/types.ts +1 -1
  195. package/src/theme/studioTheme/color.ts +14 -15
  196. package/src/theme/studioTheme/fonts.ts +4 -4
  197. package/src/utils/elementQuery/elementQuery.tsx +18 -5
  198. package/src/utils/index.ts +1 -0
  199. package/src/utils/layer/layerProvider.tsx +2 -2
  200. package/src/{observers → utils}/resizeObserver.ts +3 -1
  201. package/src/utils/virtualList/virtualList.tsx +1 -3
  202. package/lib/dts/src/hooks/useArrayProp.d.ts +0 -7
  203. package/lib/dts/src/hooks/useArrayProp.d.ts.map +0 -1
  204. package/lib/dts/src/hooks/useElementSize.d.ts +0 -7
  205. package/lib/dts/src/hooks/useElementSize.d.ts.map +0 -1
  206. package/lib/dts/src/observers/elementSizeObserver.d.ts +0 -37
  207. package/lib/dts/src/observers/elementSizeObserver.d.ts.map +0 -1
  208. package/lib/dts/src/observers/index.d.ts +0 -3
  209. package/lib/dts/src/observers/index.d.ts.map +0 -1
  210. package/lib/dts/src/observers/resizeObserver.d.ts +0 -5
  211. package/lib/dts/src/observers/resizeObserver.d.ts.map +0 -1
  212. package/src/hooks/useArrayProp.ts +0 -23
  213. package/src/hooks/useElementSize.ts +0 -18
  214. package/src/observers/elementSizeObserver.ts +0 -116
  215. package/src/observers/index.ts +0 -2
  216. package/src/primitives/popover/__workshop__/RightAlignedStory.tsx +0 -60
  217. 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,
@@ -2934,7 +2639,7 @@ globalScope[key$7] = globalScope[key$7] || /*#__PURE__*/React.createContext(null
2934
2639
 
2935
2640
  var ThemeContext = globalScope[key$7];
2936
2641
 
2937
- var _excluded$H = ["color", "layer"];
2642
+ var _excluded$I = ["color", "layer"];
2938
2643
  /**
2939
2644
  * @public
2940
2645
  */
@@ -2953,7 +2658,7 @@ function ThemeProvider(props) {
2953
2658
 
2954
2659
  var rootColor = themeProp.color,
2955
2660
  rootLayer = themeProp.layer,
2956
- restTheme = _objectWithoutPropertiesLoose(themeProp, _excluded$H);
2661
+ restTheme = _objectWithoutPropertiesLoose(themeProp, _excluded$I);
2957
2662
 
2958
2663
  var colorScheme = rootColor[scheme] || rootColor.light;
2959
2664
  var color = colorScheme[tone] || colorScheme["default"];
@@ -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
- };
3114
- };
3115
-
3116
- return {
3117
- getCurrentIndex: getCurrentIndex,
3118
- subscribe: subscribe
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
+ }
3032
+ };
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;
3050
+ return {
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
  }
@@ -3811,7 +3714,7 @@ function textBaseStyle(props) {
3811
3714
  return styled.css(_templateObject$C || (_templateObject$C = _taggedTemplateLiteralLoose(["\n color: var(--card-fg-color);\n\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow: 0 0 0 1px var(--card-bg-color), 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ", ";\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), $accent && styled.css(_templateObject2$m || (_templateObject2$m = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && styled.css(_templateObject3$d || (_templateObject3$d = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), theme.sanity.fonts.code.family, weights.bold);
3812
3715
  }
3813
3716
 
3814
- var _excluded$G = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
3717
+ var _excluded$H = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
3815
3718
 
3816
3719
  var _templateObject$B;
3817
3720
  var Root$E = styled__default["default"].div(responsiveTextFont, responsiveTextAlignStyle, textBaseStyle);
@@ -3831,7 +3734,7 @@ var Text = /*#__PURE__*/React.forwardRef(function Text(props, ref) {
3831
3734
  size = _props$size === void 0 ? 2 : _props$size,
3832
3735
  textOverflow = props.textOverflow,
3833
3736
  weight = props.weight,
3834
- restProps = _objectWithoutPropertiesLoose(props, _excluded$G);
3737
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$H);
3835
3738
 
3836
3739
  var children = childrenProp;
3837
3740
 
@@ -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),
@@ -3991,7 +3894,7 @@ function avatarStrokeStyle() {
3991
3894
  };
3992
3895
  }
3993
3896
 
3994
- var _excluded$F = ["as", "color", "src", "title", "initials", "onImageLoadError", "arrowPosition", "animateArrowFrom", "status", "size"];
3897
+ var _excluded$G = ["as", "color", "src", "title", "initials", "onImageLoadError", "arrowPosition", "animateArrowFrom", "status", "size"];
3995
3898
  var Root$D = styled__default["default"].div(responsiveAvatarSizeStyle, avatarStyle.root);
3996
3899
  var Arrow = styled__default["default"].div(avatarStyle.arrow);
3997
3900
  var BgStroke = styled__default["default"].ellipse(avatarStyle.bgStroke);
@@ -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,
4018
- restProps = _objectWithoutPropertiesLoose(props, _excluded$F);
3919
+ sizeProp = props.size,
3920
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$G);
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$F = ["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,
4214
- restProps = _objectWithoutPropertiesLoose(props, _excluded$E);
4108
+ size = _props$size === void 0 ? 0 : _props$size,
4109
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$F);
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, {
@@ -4241,7 +4135,7 @@ var AvatarStack = /*#__PURE__*/React.forwardRef(function AvatarStack(props, ref)
4241
4135
  }));
4242
4136
  });
4243
4137
 
4244
- var _excluded$D = ["as", "column", "columnStart", "columnEnd", "display", "flex", "height", "margin", "marginX", "marginY", "marginTop", "marginRight", "marginBottom", "marginLeft", "overflow", "padding", "paddingX", "paddingY", "paddingTop", "paddingRight", "paddingBottom", "paddingLeft", "row", "rowStart", "rowEnd", "sizing"];
4138
+ var _excluded$E = ["as", "column", "columnStart", "columnEnd", "display", "flex", "height", "margin", "marginX", "marginY", "marginTop", "marginRight", "marginBottom", "marginLeft", "overflow", "padding", "paddingX", "paddingY", "paddingTop", "paddingRight", "paddingBottom", "paddingLeft", "row", "rowStart", "rowEnd", "sizing"];
4245
4139
  var Root$A = styled__default["default"].div(boxStyle, flexItemStyle, responsiveBoxStyle, responsiveGridItemStyle, responsiveMarginStyle, responsivePaddingStyle);
4246
4140
  /**
4247
4141
  * @public
@@ -4278,37 +4172,37 @@ var Box = /*#__PURE__*/React.forwardRef(function Box(props, ref) {
4278
4172
  rowStart = props.rowStart,
4279
4173
  rowEnd = props.rowEnd,
4280
4174
  sizing = props.sizing,
4281
- restProps = _objectWithoutPropertiesLoose(props, _excluded$D);
4175
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$E);
4282
4176
 
4283
4177
  return /*#__PURE__*/React__default["default"].createElement(Root$A, _extends({
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);
@@ -4323,7 +4217,7 @@ function labelBaseStyle(props) {
4323
4217
  return styled.css(_templateObject$y || (_templateObject$y = _taggedTemplateLiteralLoose(["\n text-transform: uppercase;\n\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), $accent && styled.css(_templateObject2$l || (_templateObject2$l = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && styled.css(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), fonts.code.family);
4324
4218
  }
4325
4219
 
4326
- var _excluded$C = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
4220
+ var _excluded$D = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
4327
4221
 
4328
4222
  var _templateObject$x;
4329
4223
  var Root$z = styled__default["default"].div(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle);
@@ -4342,7 +4236,7 @@ var Label = /*#__PURE__*/React.forwardRef(function Label(props, ref) {
4342
4236
  size = _props$size === void 0 ? 2 : _props$size,
4343
4237
  textOverflow = props.textOverflow,
4344
4238
  weight = props.weight,
4345
- restProps = _objectWithoutPropertiesLoose(props, _excluded$C);
4239
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$D);
4346
4240
 
4347
4241
  var children = childrenProp;
4348
4242
 
@@ -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);
@@ -4381,7 +4275,7 @@ function badgeStyle(props) {
4381
4275
  };
4382
4276
  }
4383
4277
 
4384
- var _excluded$B = ["children", "fontSize", "mode", "padding", "radius", "tone"];
4278
+ var _excluded$C = ["children", "fontSize", "mode", "padding", "radius", "tone"];
4385
4279
  var Root$y = styled__default["default"](Box)(responsiveRadiusStyle, badgeStyle);
4386
4280
  /**
4387
4281
  * @public
@@ -4398,22 +4292,22 @@ var Badge = /*#__PURE__*/React.forwardRef(function Badge(props, ref) {
4398
4292
  radius = _props$radius === void 0 ? 2 : _props$radius,
4399
4293
  _props$tone = props.tone,
4400
4294
  tone = _props$tone === void 0 ? 'default' : _props$tone,
4401
- restProps = _objectWithoutPropertiesLoose(props, _excluded$B);
4295
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$C);
4402
4296
 
4403
4297
  return /*#__PURE__*/React__default["default"].createElement(Root$y, _extends({
4404
4298
  "data-ui": "Badge"
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
4413
4307
  }, children));
4414
4308
  });
4415
4309
 
4416
- var _excluded$A = ["align", "as", "direction", "gap", "justify", "wrap"];
4310
+ var _excluded$B = ["align", "as", "direction", "gap", "justify", "wrap"];
4417
4311
  var Root$x = styled__default["default"](Box)(flexItemStyle, responsiveFlexStyle);
4418
4312
  /**
4419
4313
  * @public
@@ -4427,32 +4321,72 @@ var Flex = /*#__PURE__*/React.forwardRef(function Flex(props, ref) {
4427
4321
  gap = props.gap,
4428
4322
  justify = props.justify,
4429
4323
  wrap = props.wrap,
4430
- restProps = _objectWithoutPropertiesLoose(props, _excluded$A);
4324
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$B);
4431
4325
 
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
  }));
4443
4337
  });
4444
4338
 
4445
4339
  var _templateObject$w, _templateObject2$k;
4446
- var rotate$1 = styled.keyframes(_templateObject$w || (_templateObject$w = _taggedTemplateLiteralLoose(["\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n"])));
4447
- var Root$w = styled__default["default"](Text)(_templateObject2$k || (_templateObject2$k = _taggedTemplateLiteralLoose(["\n & > span > svg {\n animation: ", " 500ms linear infinite;\n }\n"])), rotate$1);
4340
+ var rotate$1 = styled.keyframes(_templateObject$w || (_templateObject$w = _taggedTemplateLiteralLoose(["\nfrom {\n transform: rotate(0deg);\n}\n\nto {\n transform: rotate(360deg);\n}\n"])));
4341
+ function spinnerStyle(props) {
4342
+ var $muted = props.$muted;
4343
+ return styled.css(_templateObject2$k || (_templateObject2$k = _taggedTemplateLiteralLoose(["\n animation: ", " 500ms linear infinite;\n color: ", ";\n "])), rotate$1, $muted ? 'var(--card-muted-fg-color)' : 'var(--card-fg-color)');
4344
+ }
4345
+ function spinnerSizeStyle(props) {
4346
+ var $size = props.$size;
4347
+ var _props$theme$sanity = props.theme.sanity,
4348
+ fonts = _props$theme$sanity.fonts,
4349
+ media = _props$theme$sanity.media;
4350
+ return responsive(media, $size, function (size) {
4351
+ var _fonts$text$sizes$siz = fonts.text.sizes[size],
4352
+ ascenderHeight = _fonts$text$sizes$siz.ascenderHeight,
4353
+ descenderHeight = _fonts$text$sizes$siz.descenderHeight,
4354
+ lineHeight = _fonts$text$sizes$siz.lineHeight,
4355
+ iconSize = _fonts$text$sizes$siz.iconSize;
4356
+ var capHeight = lineHeight - ascenderHeight - descenderHeight;
4357
+ return {
4358
+ width: rem(capHeight),
4359
+ height: rem(capHeight),
4360
+ '& > svg': {
4361
+ display: 'block',
4362
+ width: rem(iconSize),
4363
+ height: rem(iconSize),
4364
+ margin: (capHeight - iconSize) / 2
4365
+ }
4366
+ };
4367
+ });
4368
+ }
4369
+
4370
+ var _excluded$A = ["muted", "size"];
4371
+ var Root$w = styled__default["default"].div(spinnerStyle, spinnerSizeStyle);
4448
4372
  /**
4449
4373
  * @public
4450
4374
  */
4451
4375
 
4452
4376
  var Spinner = /*#__PURE__*/React.forwardRef(function Spinner(props, ref) {
4377
+ var muted = props.muted,
4378
+ _props$size = props.size,
4379
+ size = _props$size === void 0 ? 2 : _props$size,
4380
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$A);
4381
+
4382
+ var $size = React.useMemo(function () {
4383
+ return Array.isArray(size) ? size : [size];
4384
+ }, [size]);
4453
4385
  return /*#__PURE__*/React__default["default"].createElement(Root$w, _extends({
4454
4386
  "data-ui": "Spinner"
4455
- }, props, {
4387
+ }, restProps, {
4388
+ "$muted": muted,
4389
+ "$size": $size,
4456
4390
  ref: ref
4457
4391
  }), /*#__PURE__*/React__default["default"].createElement(icons.SpinnerIcon, null));
4458
4392
  });
@@ -4565,23 +4499,23 @@ var Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
4565
4499
  icon = props.icon,
4566
4500
  iconRight = props.iconRight,
4567
4501
  _props$justify = props.justify,
4568
- justifyProp = _props$justify === void 0 ? 'center' : _props$justify,
4502
+ justify = _props$justify === void 0 ? 'center' : _props$justify,
4569
4503
  loading = props.loading,
4570
4504
  _props$mode = props.mode,
4571
4505
  mode = _props$mode === void 0 ? 'default' : _props$mode,
4572
4506
  _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,
4507
+ padding = _props$padding === void 0 ? 3 : _props$padding,
4508
+ paddingX = props.paddingX,
4509
+ paddingY = props.paddingY,
4510
+ paddingTop = props.paddingTop,
4511
+ paddingBottom = props.paddingBottom,
4512
+ paddingLeft = props.paddingLeft,
4513
+ paddingRight = props.paddingRight,
4580
4514
  _props$radius = props.radius,
4581
- radiusProp = _props$radius === void 0 ? 2 : _props$radius,
4515
+ radius = _props$radius === void 0 ? 2 : _props$radius,
4582
4516
  selected = props.selected,
4583
4517
  _props$space = props.space,
4584
- spaceProp = _props$space === void 0 ? 3 : _props$space,
4518
+ space = _props$space === void 0 ? 3 : _props$space,
4585
4519
  text = props.text,
4586
4520
  textAlign = props.textAlign,
4587
4521
  _props$tone = props.tone,
@@ -4590,16 +4524,6 @@ var Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
4590
4524
  type = _props$type === void 0 ? 'button' : _props$type,
4591
4525
  restProps = _objectWithoutPropertiesLoose(props, _excluded$z);
4592
4526
 
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
4527
  var theme = useTheme();
4604
4528
  var boxProps = React.useMemo(function () {
4605
4529
  return {
@@ -4721,15 +4645,15 @@ var Card = /*#__PURE__*/React.forwardRef(function Card(props, ref) {
4721
4645
  "data-ui": "Card",
4722
4646
  "data-tone": tone
4723
4647
  }, restProps, {
4724
- "$border": useArrayProp(border),
4725
- "$borderTop": useArrayProp(borderTop),
4726
- "$borderRight": useArrayProp(borderRight),
4727
- "$borderBottom": useArrayProp(borderBottom),
4728
- "$borderLeft": useArrayProp(borderLeft),
4648
+ "$border": border,
4649
+ "$borderTop": borderTop,
4650
+ "$borderRight": borderRight,
4651
+ "$borderBottom": borderBottom,
4652
+ "$borderLeft": borderLeft,
4729
4653
  "$checkered": checkered,
4730
4654
  "$focusRing": focusRing,
4731
- "$radius": useArrayProp(radius),
4732
- "$shadow": useArrayProp(shadow),
4655
+ "$radius": radius,
4656
+ "$shadow": shadow,
4733
4657
  "$tone": tone,
4734
4658
  "data-checkered": checkered ? '' : undefined,
4735
4659
  "data-pressed": pressed ? '' : undefined,
@@ -4952,7 +4876,7 @@ var Code = /*#__PURE__*/React.forwardRef(function Code(props, ref) {
4952
4876
  return /*#__PURE__*/React__default["default"].createElement(Root$s, _extends({
4953
4877
  "data-ui": "Code"
4954
4878
  }, restProps, {
4955
- "$size": useArrayProp(size),
4879
+ "$size": size,
4956
4880
  "$weight": weight,
4957
4881
  ref: ref
4958
4882
  }), !(language && registered) && /*#__PURE__*/React__default["default"].createElement("code", null, children), language && registered && /*#__PURE__*/React__default["default"].createElement(Refractor__default["default"], {
@@ -4974,7 +4898,7 @@ function responsiveContainerWidthStyle(props) {
4974
4898
  var _theme$sanity = theme.sanity,
4975
4899
  container = _theme$sanity.container,
4976
4900
  media = _theme$sanity.media;
4977
- return _responsive(media, props.$width, function (val) {
4901
+ return responsive(media, getResponsiveProp(props.$width), function (val) {
4978
4902
  return {
4979
4903
  maxWidth: val === 'auto' ? 'none' : rem(container[val])
4980
4904
  };
@@ -4996,7 +4920,7 @@ var Container = /*#__PURE__*/React.forwardRef(function Container(props, ref) {
4996
4920
  return /*#__PURE__*/React__default["default"].createElement(Root$r, _extends({
4997
4921
  "data-ui": "Container"
4998
4922
  }, restProps, {
4999
- "$width": useArrayProp(width),
4923
+ "$width": width,
5000
4924
  forwardedAs: as,
5001
4925
  ref: ref
5002
4926
  }));
@@ -5025,14 +4949,14 @@ var Grid = /*#__PURE__*/React.forwardRef(function Grid(props, ref) {
5025
4949
  "data-as": typeof as === 'string' ? as : undefined,
5026
4950
  "data-ui": "Grid"
5027
4951
  }, 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),
4952
+ "$autoRows": autoRows,
4953
+ "$autoCols": autoCols,
4954
+ "$autoFlow": autoFlow,
4955
+ "$columns": columns,
4956
+ "$gap": gap,
4957
+ "$gapX": gapX,
4958
+ "$gapY": gapY,
4959
+ "$rows": rows,
5036
4960
  forwardedAs: as,
5037
4961
  ref: ref
5038
4962
  }), children);
@@ -5078,9 +5002,9 @@ var Heading = /*#__PURE__*/React.forwardRef(function Heading(props, ref) {
5078
5002
  "data-ui": "Heading"
5079
5003
  }, restProps, {
5080
5004
  "$accent": accent,
5081
- "$align": useArrayProp(align),
5005
+ "$align": align,
5082
5006
  "$muted": muted,
5083
- "$size": useArrayProp(size),
5007
+ "$size": size,
5084
5008
  "$weight": weight,
5085
5009
  ref: ref
5086
5010
  }), /*#__PURE__*/React__default["default"].createElement("span", null, children));
@@ -5100,7 +5024,7 @@ function inlineBaseStyle() {
5100
5024
  }
5101
5025
  function inlineSpaceStyle(props) {
5102
5026
  var theme = props.theme;
5103
- return _responsive(theme.sanity.media, props.$space, function (spaceIndex) {
5027
+ return responsive(theme.sanity.media, getResponsiveProp(props.$space), function (spaceIndex) {
5104
5028
  var space = rem(theme.sanity.space[spaceIndex]);
5105
5029
  return {
5106
5030
  margin: "-" + space + " 0 0 -" + space,
@@ -5123,20 +5047,18 @@ var Inline = /*#__PURE__*/React.forwardRef(function Inline(props, ref) {
5123
5047
  space = props.space,
5124
5048
  restProps = _objectWithoutPropertiesLoose(props, _excluded$s);
5125
5049
 
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]);
5050
+ var children = childrenToElementArray(childrenProp).filter(Boolean);
5133
5051
  return /*#__PURE__*/React__default["default"].createElement(Root$o, _extends({
5134
5052
  "data-ui": "Inline"
5135
5053
  }, restProps, {
5136
- "$space": useArrayProp(space),
5054
+ "$space": space,
5137
5055
  forwardedAs: as,
5138
5056
  ref: ref
5139
- }), children);
5057
+ }), children.map(function (child, idx) {
5058
+ return /*#__PURE__*/React__default["default"].createElement("div", {
5059
+ key: idx
5060
+ }, child);
5061
+ }));
5140
5062
  });
5141
5063
 
5142
5064
  var _excluded$r = ["children", "fontSize", "padding", "radius"];
@@ -5165,7 +5087,7 @@ var KBD = /*#__PURE__*/React.forwardRef(function KBD(props, ref) {
5165
5087
  return /*#__PURE__*/React__default["default"].createElement(Root$n, _extends({
5166
5088
  "data-ui": "KBD"
5167
5089
  }, restProps, {
5168
- "$radius": useArrayProp(radius),
5090
+ "$radius": radius,
5169
5091
  ref: ref
5170
5092
  }), /*#__PURE__*/React__default["default"].createElement(Box, {
5171
5093
  as: "span",
@@ -5219,6 +5141,12 @@ function useBoundaryElement() {
5219
5141
  return value || DEFAULT_VALUE;
5220
5142
  }
5221
5143
 
5144
+ /**
5145
+ * @internal
5146
+ */
5147
+
5148
+ var RO = typeof window !== 'undefined' && window.ResizeObserver ? window.ResizeObserver : resizeObserver.ResizeObserver;
5149
+
5222
5150
  function findMaxBreakpoints(media, width) {
5223
5151
  var ret = [];
5224
5152
 
@@ -5260,18 +5188,31 @@ var ElementQuery = /*#__PURE__*/React.forwardRef(function ElementQuery(props, re
5260
5188
  media = _props$media === void 0 ? theme.sanity.media : _props$media,
5261
5189
  restProps = _objectWithoutPropertiesLoose(props, _excluded$q);
5262
5190
 
5191
+ var _useState = React.useState(function () {
5192
+ return window.innerWidth;
5193
+ }),
5194
+ width = _useState[0],
5195
+ setWidth = _useState[1];
5196
+
5263
5197
  var forwardedRef = useForwardedRef(ref);
5264
5198
 
5265
- var _useState = React.useState(null),
5266
- element = _useState[0],
5267
- setElement = _useState[1];
5199
+ var _useState2 = React.useState(null),
5200
+ element = _useState2[0],
5201
+ setElement = _useState2[1];
5268
5202
 
5269
- var elementSize = useElementSize(element);
5270
- var width = React.useMemo(function () {
5271
- var _elementSize$border$w;
5203
+ React.useEffect(function () {
5204
+ if (!element) return;
5205
+
5206
+ var handleResizeEntries = function handleResizeEntries(entries) {
5207
+ setWidth(entries[0].contentRect.width);
5208
+ };
5272
5209
 
5273
- return (_elementSize$border$w = elementSize == null ? void 0 : elementSize.border.width) != null ? _elementSize$border$w : window.innerWidth;
5274
- }, [elementSize]);
5210
+ var ro = new RO(handleResizeEntries);
5211
+ ro.observe(element);
5212
+ return function () {
5213
+ return ro.disconnect();
5214
+ };
5215
+ }, [element]);
5275
5216
  var max = React.useMemo(function () {
5276
5217
  return findMaxBreakpoints(media, width);
5277
5218
  }, [media, width]);
@@ -5377,7 +5318,7 @@ function LayerProvider(props) {
5377
5318
  _props$zOffset = props.zOffset,
5378
5319
  zOffsetProp = _props$zOffset === void 0 ? 0 : _props$zOffset;
5379
5320
  var parent = React.useContext(LayerContext);
5380
- var zOffset = useArrayProp(zOffsetProp);
5321
+ var zOffset = useResponsiveProp(zOffsetProp);
5381
5322
  var maxMediaIndex = zOffset.length - 1;
5382
5323
  var mediaIndex = Math.min(useMediaIndex(), maxMediaIndex);
5383
5324
  var zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex];
@@ -5819,7 +5760,7 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function VirtualList(props, ref)
5819
5760
  scrollEl.addEventListener('scroll', _handleScroll, {
5820
5761
  passive: true
5821
5762
  });
5822
- var ro = new _ResizeObserver(function (entries) {
5763
+ var ro = new ResizeObserver(function (entries) {
5823
5764
  setScrollHeight(entries[0].contentRect.height);
5824
5765
  });
5825
5766
  ro.observe(scrollEl);
@@ -6136,7 +6077,7 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {
6136
6077
  _props$tone = props.tone,
6137
6078
  tone = _props$tone === void 0 ? 'inherit' : _props$tone,
6138
6079
  _props$width = props.width,
6139
- widthProp = _props$width === void 0 ? 0 : _props$width,
6080
+ width = _props$width === void 0 ? 0 : _props$width,
6140
6081
  _props$zOffset = props.zOffset,
6141
6082
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.popover.zOffset : _props$zOffset,
6142
6083
  restProps = _objectWithoutPropertiesLoose(props, _excluded$n);
@@ -6157,7 +6098,6 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {
6157
6098
  setArrowElement = _useState3[1];
6158
6099
 
6159
6100
  var popperReferenceElement = referenceElementProp || referenceElement;
6160
- var width = useArrayProp(matchReferenceWidth ? 'auto' : widthProp);
6161
6101
  var modifiers = usePopoverModifiers({
6162
6102
  allowedAutoPlacements: allowedAutoPlacements,
6163
6103
  arrow: arrow,
@@ -6198,21 +6138,13 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {
6198
6138
  var popoverStyle = React.useMemo(function () {
6199
6139
  return _extends({}, style, styles.popper);
6200
6140
  }, [style, styles]);
6201
- var updateTimeoutRef = React.useRef(null);
6202
6141
  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
- }
6142
+ if (forceUpdate) {
6143
+ try {
6144
+ forceUpdate();
6145
+ } catch (_) {// ignore caught error
6214
6146
  }
6215
- }, 0);
6147
+ }
6216
6148
  }, [content, forceUpdate, open, popperReferenceElement]);
6217
6149
 
6218
6150
  if (disabled) {
@@ -6228,13 +6160,13 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {
6228
6160
  zOffset: zOffset
6229
6161
  }, attributes.popper), /*#__PURE__*/React__default["default"].createElement(PopoverCard, {
6230
6162
  "$constrainSize": constrainSize,
6231
- "$width": width,
6232
6163
  "data-ui": "PopoverCard",
6233
6164
  padding: padding,
6234
6165
  radius: radius,
6235
6166
  scheme: scheme,
6236
6167
  shadow: shadow,
6237
- tone: tone
6168
+ tone: tone,
6169
+ width: width
6238
6170
  }, arrow && /*#__PURE__*/React__default["default"].createElement(PopoverArrow, {
6239
6171
  ref: setArrowElement,
6240
6172
  style: styles.arrow
@@ -6353,7 +6285,7 @@ function inputTextSizeStyle(props) {
6353
6285
  var theme = props.theme,
6354
6286
  $fontSize = props.$fontSize;
6355
6287
  var sizes = theme.sanity.fonts.text.sizes;
6356
- return _responsive(theme.sanity.media, $fontSize, function (sizeIndex) {
6288
+ return responsive(theme.sanity.media, getResponsiveProp($fontSize), function (sizeIndex) {
6357
6289
  return textSize(sizes[sizeIndex] || sizes[2]);
6358
6290
  });
6359
6291
  }
@@ -6405,10 +6337,10 @@ var Select = /*#__PURE__*/React.forwardRef(function Select(props, forwardedRef)
6405
6337
  "data-read-only": !disabled && readOnly ? '' : undefined,
6406
6338
  "data-ui": "Select"
6407
6339
  }, restProps, {
6408
- "$fontSize": useArrayProp(fontSize),
6409
- "$padding": useArrayProp(padding),
6410
- "$radius": useArrayProp(radius),
6411
- "$space": useArrayProp(space),
6340
+ "$fontSize": fontSize,
6341
+ "$padding": padding,
6342
+ "$radius": radius,
6343
+ "$space": space,
6412
6344
  disabled: disabled || readOnly,
6413
6345
  ref: ref
6414
6346
  }), children), /*#__PURE__*/React__default["default"].createElement(IconBox, {
@@ -6436,7 +6368,7 @@ function responsiveStackSpaceStyle(props) {
6436
6368
  var _theme$sanity = theme.sanity,
6437
6369
  media = _theme$sanity.media,
6438
6370
  space = _theme$sanity.space;
6439
- return _responsive(media, props.$space, function (spaceIndex) {
6371
+ return responsive(media, getResponsiveProp(props.$space), function (spaceIndex) {
6440
6372
  return {
6441
6373
  gridGap: rem(space[spaceIndex])
6442
6374
  };
@@ -6458,13 +6390,13 @@ var Stack = /*#__PURE__*/React.forwardRef(function Stack(props, ref) {
6458
6390
  "data-as": typeof as === 'string' ? as : undefined,
6459
6391
  "data-ui": "Stack"
6460
6392
  }, restProps, {
6461
- "$space": useArrayProp(space),
6393
+ "$space": space,
6462
6394
  forwardedAs: as,
6463
6395
  ref: ref
6464
6396
  }));
6465
6397
  });
6466
6398
 
6467
- var _templateObject$g, _templateObject2$b, _templateObject3$6, _templateObject4$4, _templateObject5$3, _templateObject6$2, _templateObject7;
6399
+ var _templateObject$g, _templateObject2$b, _templateObject3$6, _templateObject4$4, _templateObject5$3, _templateObject6$1, _templateObject7;
6468
6400
  /* Root */
6469
6401
 
6470
6402
  function switchBaseStyles() {
@@ -6508,7 +6440,7 @@ function switchThumbStyles(props) {
6508
6440
  var checkedOffset = trackWidth - trackPadding * 2 - size;
6509
6441
  var indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding;
6510
6442
  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));
6443
+ 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
6444
  }
6513
6445
 
6514
6446
  var _excluded$j = ["checked", "className", "disabled", "indeterminate", "readOnly", "style"];
@@ -6557,7 +6489,7 @@ var Switch = /*#__PURE__*/React.forwardRef(function Switch(props, forwardedRef)
6557
6489
  })));
6558
6490
  });
6559
6491
 
6560
- var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius", "weight"];
6492
+ var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius"];
6561
6493
 
6562
6494
  var _templateObject$f;
6563
6495
  var Root$d = styled__default["default"].span(textInputRootStyle);
@@ -6580,46 +6512,32 @@ var TextArea = /*#__PURE__*/React.forwardRef(function TextArea(props, forwardedR
6580
6512
  padding = _props$padding === void 0 ? 3 : _props$padding,
6581
6513
  _props$radius = props.radius,
6582
6514
  radius = _props$radius === void 0 ? 1 : _props$radius,
6583
- weight = props.weight,
6584
6515
  restProps = _objectWithoutPropertiesLoose(props, _excluded$i);
6585
6516
 
6586
6517
  var ref = useForwardedRef(forwardedRef);
6587
- var rootTheme = useRootTheme();
6588
6518
  useCustomValidity(ref, customValidity);
6589
6519
  return /*#__PURE__*/React__default["default"].createElement(Root$d, {
6590
6520
  "data-ui": "TextArea"
6591
6521
  }, /*#__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
6522
+ "data-as": "textarea"
6595
6523
  }, restProps, {
6596
- "$fontSize": useArrayProp(fontSize),
6597
- "$padding": useArrayProp(padding),
6598
- "$scheme": rootTheme.scheme,
6599
- "$space": useArrayProp(0),
6600
- "$tone": rootTheme.tone,
6601
- "$weight": weight,
6524
+ "$fontSize": fontSize,
6525
+ "$padding": padding,
6602
6526
  disabled: disabled,
6603
6527
  ref: ref
6604
6528
  })), /*#__PURE__*/React__default["default"].createElement(Presentation$1, {
6605
6529
  "$border": border,
6606
- "$radius": useArrayProp(radius),
6607
- "$scheme": rootTheme.scheme,
6608
- "$tone": rootTheme.tone,
6609
- "data-scheme": rootTheme.scheme,
6610
- "data-tone": rootTheme.tone
6530
+ "$radius": radius
6611
6531
  })));
6612
6532
  });
6613
6533
 
6614
- var _excluded$h = ["border", "clearButton", "disabled", "fontSize", "icon", "iconRight", "onClear", "padding", "prefix", "radius", "readOnly", "space", "suffix", "customValidity", "type", "weight"];
6534
+ var _excluded$h = ["border", "clearButton", "disabled", "fontSize", "icon", "iconRight", "onClear", "padding", "prefix", "radius", "readOnly", "space", "suffix", "customValidity", "type"];
6615
6535
 
6616
- var _templateObject$e, _templateObject2$a, _templateObject3$5, _templateObject4$3, _templateObject5$2, _templateObject6$1;
6536
+ var _templateObject$e, _templateObject2$a, _templateObject3$5, _templateObject4$3, _templateObject5$2;
6617
6537
  var CLEAR_BUTTON_BOX_STYLE = {
6618
6538
  zIndex: 2
6619
6539
  };
6620
- var Root$c = styled__default["default"](Card).attrs({
6621
- forwardedAs: 'span'
6622
- })(textInputRootStyle);
6540
+ var Root$c = styled__default["default"].span(textInputRootStyle);
6623
6541
  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
6542
  var Prefix = styled__default["default"](Card).attrs({
6625
6543
  forwardedAs: 'span'
@@ -6630,8 +6548,7 @@ var Suffix = styled__default["default"](Card).attrs({
6630
6548
  var Input = styled__default["default"].input(responsiveInputPaddingStyle, textInputBaseStyle, textInputFontSizeStyle);
6631
6549
  var Presentation = styled__default["default"].span(responsiveRadiusStyle, textInputRepresentationStyle);
6632
6550
  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"])));
6551
+ 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
6552
  /**
6636
6553
  * @public
6637
6554
  */
@@ -6643,7 +6560,7 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6643
6560
  _props$disabled = props.disabled,
6644
6561
  disabled = _props$disabled === void 0 ? false : _props$disabled,
6645
6562
  _props$fontSize = props.fontSize,
6646
- fontSizeProp = _props$fontSize === void 0 ? 2 : _props$fontSize,
6563
+ fontSize = _props$fontSize === void 0 ? 2 : _props$fontSize,
6647
6564
  icon = props.icon,
6648
6565
  iconRight = props.iconRight,
6649
6566
  onClear = props.onClear,
@@ -6654,20 +6571,16 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6654
6571
  radiusProp = _props$radius === void 0 ? 1 : _props$radius,
6655
6572
  readOnly = props.readOnly,
6656
6573
  _props$space = props.space,
6657
- spaceProp = _props$space === void 0 ? 3 : _props$space,
6574
+ space = _props$space === void 0 ? 3 : _props$space,
6658
6575
  suffix = props.suffix,
6659
6576
  customValidity = props.customValidity,
6660
6577
  _props$type = props.type,
6661
6578
  type = _props$type === void 0 ? 'text' : _props$type,
6662
- weight = props.weight,
6663
6579
  restProps = _objectWithoutPropertiesLoose(props, _excluded$h);
6664
6580
 
6665
6581
  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
6582
+ var padding = useResponsiveProp(paddingProp);
6583
+ var radius = useResponsiveProp(radiusProp); // Transient properties
6671
6584
 
6672
6585
  var $hasClearButton = Boolean(clearButton);
6673
6586
  var $hasIcon = Boolean(icon);
@@ -6706,21 +6619,17 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6706
6619
  "$border": border,
6707
6620
  "$hasPrefix": $hasPrefix,
6708
6621
  "$hasSuffix": $hasSuffix,
6709
- "$radius": radius,
6710
- "$scheme": rootTheme.scheme,
6711
- "$tone": rootTheme.tone,
6712
- "data-scheme": rootTheme.scheme,
6713
- "data-tone": rootTheme.tone
6622
+ "$radius": radius
6714
6623
  }, icon && /*#__PURE__*/React__default["default"].createElement(LeftBox, {
6715
6624
  padding: padding
6716
6625
  }, /*#__PURE__*/React__default["default"].createElement(Text, {
6717
6626
  size: fontSize
6718
- }, /*#__PURE__*/React.isValidElement(icon) && icon, ReactIs.isValidElementType(icon) && /*#__PURE__*/React.createElement(icon))), !$hasClearButton && iconRight && /*#__PURE__*/React__default["default"].createElement(RightBox, {
6627
+ }, /*#__PURE__*/React.isValidElement(icon) && icon, ReactIs.isValidElementType(icon) && /*#__PURE__*/React.createElement(icon))), !$hasClearButton && iconRight && /*#__PURE__*/React__default["default"].createElement(RightCard, {
6719
6628
  padding: padding
6720
6629
  }, /*#__PURE__*/React__default["default"].createElement(Text, {
6721
6630
  size: fontSize
6722
6631
  }, /*#__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)
6632
+ }, [border, fontSize, icon, iconRight, padding, radius, $hasClearButton, $hasPrefix, $hasSuffix]); // Render clear button (memoized)
6724
6633
 
6725
6634
  var clearButtonBoxPadding = React.useMemo(function () {
6726
6635
  return padding.map(function (v) {
@@ -6771,21 +6680,15 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6771
6680
  }, /*#__PURE__*/React__default["default"].createElement("span", null, suffix));
6772
6681
  }, [radius, suffix]);
6773
6682
  return /*#__PURE__*/React__default["default"].createElement(Root$c, {
6774
- "data-ui": "TextInput",
6775
- tone: rootTheme.tone
6683
+ "data-ui": "TextInput"
6776
6684
  }, 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
6685
+ "data-as": "input"
6780
6686
  }, restProps, {
6781
- "$fontSize": fontSize,
6782
6687
  "$iconLeft": $hasIcon,
6783
6688
  "$iconRight": $hasIconRight || $hasClearButton,
6784
6689
  "$padding": padding,
6785
- "$scheme": rootTheme.scheme,
6786
6690
  "$space": space,
6787
- "$tone": rootTheme.tone,
6788
- "$weight": weight,
6691
+ "$fontSize": fontSize,
6789
6692
  disabled: disabled,
6790
6693
  readOnly: readOnly,
6791
6694
  ref: ref,
@@ -6833,7 +6736,7 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(props, ref) {
6833
6736
  children = props.children,
6834
6737
  content = props.content,
6835
6738
  disabled = props.disabled,
6836
- fallbackPlacementsProp = props.fallbackPlacements,
6739
+ fallbackPlacements = props.fallbackPlacements,
6837
6740
  _props$placement = props.placement,
6838
6741
  placement = _props$placement === void 0 ? 'bottom' : _props$placement,
6839
6742
  portal = props.portal,
@@ -6842,7 +6745,6 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(props, ref) {
6842
6745
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.tooltip.zOffset : _props$zOffset,
6843
6746
  restProps = _objectWithoutPropertiesLoose(props, _excluded$g);
6844
6747
 
6845
- var fallbackPlacements = useArrayProp(fallbackPlacementsProp);
6846
6748
  var forwardedRef = useForwardedRef(ref);
6847
6749
 
6848
6750
  var _useState = React.useState(null),
@@ -6924,21 +6826,13 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(props, ref) {
6924
6826
  window.removeEventListener('mousemove', handleWindowMouseMove);
6925
6827
  };
6926
6828
  }, [isOpen, referenceElement]);
6927
- var updateTimeoutRef = React.useRef(null);
6928
6829
  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
- }
6830
+ if (forceUpdate) {
6831
+ try {
6832
+ forceUpdate();
6833
+ } catch (_) {// ignore caught error
6940
6834
  }
6941
- }, 0);
6835
+ }
6942
6836
  }, [forceUpdate, content]); // Close when `disabled` changes to `true`
6943
6837
 
6944
6838
  React.useEffect(function () {
@@ -7220,7 +7114,7 @@ var InnerAutocomplete = /*#__PURE__*/React.forwardRef(function InnerAutocomplete
7220
7114
  var popoverMouseWithinRef = React.useRef(false);
7221
7115
  var listBoxId = id + "-listbox";
7222
7116
  var options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY;
7223
- var padding = useArrayProp(paddingProp);
7117
+ var padding = useResponsiveProp(paddingProp);
7224
7118
  var currentOption = React.useMemo(function () {
7225
7119
  return value !== null ? options.find(function (o) {
7226
7120
  return o.value === value;
@@ -7652,11 +7546,9 @@ var Breadcrumbs = /*#__PURE__*/React.forwardRef(function Breadcrumbs(props, ref)
7652
7546
  maxLength = props.maxLength,
7653
7547
  separator = props.separator,
7654
7548
  _props$space = props.space,
7655
- spaceRaw = _props$space === void 0 ? 2 : _props$space,
7549
+ space = _props$space === void 0 ? 2 : _props$space,
7656
7550
  restProps = _objectWithoutPropertiesLoose(props, _excluded$e);
7657
7551
 
7658
- var space = useArrayProp(spaceRaw);
7659
-
7660
7552
  var _useState = React.useState(false),
7661
7553
  open = _useState[0],
7662
7554
  setOpen = _useState[1];
@@ -7746,13 +7638,13 @@ function dialogStyle(_ref) {
7746
7638
  alignItems: 'center',
7747
7639
  justifyContent: 'center',
7748
7640
  outline: 'none',
7749
- background: color.shadow.umbra
7641
+ background: color.shadow.penumbra
7750
7642
  };
7751
7643
  }
7752
7644
  function responsiveDialogPositionStyle(props) {
7753
7645
  var theme = props.theme;
7754
7646
  var media = theme.sanity.media;
7755
- return _responsive(media, props.$position, function (position) {
7647
+ return responsive(media, getResponsiveProp(props.$position), function (position) {
7756
7648
  return {
7757
7649
  '&&': {
7758
7650
  position: position
@@ -7800,13 +7692,10 @@ var DialogCard = /*#__PURE__*/React.forwardRef(function DialogCard(props, ref) {
7800
7692
  id = props.id,
7801
7693
  onClickOutside = props.onClickOutside,
7802
7694
  onClose = props.onClose,
7803
- radiusProp = props.radius,
7695
+ radius = props.radius,
7804
7696
  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);
7697
+ shadow = props.shadow,
7698
+ width = props.width;
7810
7699
  var forwardedRef = useForwardedRef(ref);
7811
7700
 
7812
7701
  var _useState = React.useState(null),
@@ -7893,7 +7782,7 @@ var Dialog = /*#__PURE__*/React.forwardRef(function Dialog(props, ref) {
7893
7782
  _props$__unstable_hid = props.__unstable_hideCloseButton,
7894
7783
  hideCloseButton = _props$__unstable_hid === void 0 ? false : _props$__unstable_hid,
7895
7784
  _props$cardRadius = props.cardRadius,
7896
- cardRadiusProp = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7785
+ cardRadius = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7897
7786
  _props$cardShadow = props.cardShadow,
7898
7787
  cardShadow = _props$cardShadow === void 0 ? 4 : _props$cardShadow,
7899
7788
  children = props.children,
@@ -7904,22 +7793,17 @@ var Dialog = /*#__PURE__*/React.forwardRef(function Dialog(props, ref) {
7904
7793
  onClickOutside = props.onClickOutside,
7905
7794
  onClose = props.onClose,
7906
7795
  _props$padding = props.padding,
7907
- paddingProp = _props$padding === void 0 ? 4 : _props$padding,
7796
+ padding = _props$padding === void 0 ? 4 : _props$padding,
7908
7797
  portal = props.portal,
7909
7798
  _props$position = props.position,
7910
- positionProp = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7799
+ position = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7911
7800
  scheme = props.scheme,
7912
7801
  _props$width = props.width,
7913
- widthProp = _props$width === void 0 ? 0 : _props$width,
7802
+ width = _props$width === void 0 ? 0 : _props$width,
7914
7803
  _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,
7804
+ zOffset = _props$zOffset === void 0 ? dialog.zOffset || ((_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.dialog.zOffset) : _props$zOffset,
7916
7805
  restProps = _objectWithoutPropertiesLoose(props, _excluded$d);
7917
7806
 
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
7807
  var preDivRef = React.useRef(null);
7924
7808
  var postDivRef = React.useRef(null);
7925
7809
  var cardRef = React.useRef(null);
@@ -8014,11 +7898,9 @@ var Hotkeys = /*#__PURE__*/React.forwardRef(function Hotkeys(props, ref) {
8014
7898
  padding = props.padding,
8015
7899
  radius = props.radius,
8016
7900
  _props$space = props.space,
8017
- spaceProp = _props$space === void 0 ? 1 : _props$space,
7901
+ space = _props$space === void 0 ? 1 : _props$space,
8018
7902
  restProps = _objectWithoutPropertiesLoose(props, _excluded$c);
8019
7903
 
8020
- var space = useArrayProp(spaceProp);
8021
-
8022
7904
  if (!keys || keys.length === 0) {
8023
7905
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
8024
7906
  }
@@ -8632,7 +8514,7 @@ function selectableColorStyle(props) {
8632
8514
  * @internal
8633
8515
  */
8634
8516
 
8635
- var Selectable = styled__default["default"](Box)(responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8517
+ var Selectable = styled__default["default"](Box)(responsiveBorderStyle, responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8636
8518
 
8637
8519
  function useMenu() {
8638
8520
  var value = React.useContext(MenuContext);
@@ -8665,7 +8547,8 @@ function MenuGroup(props) {
8665
8547
  onClick = props.onClick,
8666
8548
  _props$padding = props.padding,
8667
8549
  padding = _props$padding === void 0 ? 3 : _props$padding,
8668
- popover = props.popover,
8550
+ _props$popover = props.popover,
8551
+ popover = _props$popover === void 0 ? {} : _props$popover,
8669
8552
  _props$radius = props.radius,
8670
8553
  radius = _props$radius === void 0 ? 2 : _props$radius,
8671
8554
  _props$space = props.space,
@@ -8779,7 +8662,7 @@ function MenuGroup(props) {
8779
8662
  "aria-pressed": as === 'button' ? withinMenu : undefined,
8780
8663
  "data-pressed": as !== 'button' ? withinMenu : undefined,
8781
8664
  "data-selected": !withinMenu && active ? '' : undefined,
8782
- "$radius": useArrayProp(radius),
8665
+ "$radius": radius,
8783
8666
  "$tone": tone,
8784
8667
  onClick: handleClick,
8785
8668
  onKeyDown: handleKeyDown,
@@ -8885,13 +8768,13 @@ var MenuItem = /*#__PURE__*/React.forwardRef(function MenuItem(props, forwardedR
8885
8768
  "data-selected": active ? '' : undefined,
8886
8769
  "data-disabled": disabled ? '' : undefined,
8887
8770
  forwardedAs: as,
8888
- "$radius": useArrayProp(radius),
8889
- "$padding": useArrayProp(0),
8771
+ "$radius": radius,
8890
8772
  "$tone": tone,
8891
8773
  disabled: disabled,
8892
8774
  onClick: handleClick,
8893
8775
  onMouseEnter: onItemMouseEnter,
8894
8776
  onMouseLeave: onItemMouseLeave,
8777
+ padding: 0,
8895
8778
  ref: setRef,
8896
8779
  role: "menuitem",
8897
8780
  tabIndex: -1,
@@ -8973,7 +8856,7 @@ var Skeleton = /*#__PURE__*/React.forwardRef(function Skeleton(props, ref) {
8973
8856
  }, [delay]);
8974
8857
  return /*#__PURE__*/React__default["default"].createElement(Root$4, _extends({}, restProps, {
8975
8858
  "$animated": animated,
8976
- "$radius": useArrayProp(radius),
8859
+ "$radius": radius,
8977
8860
  "$visible": visible,
8978
8861
  ref: ref
8979
8862
  }));
@@ -8989,15 +8872,13 @@ var Root$3 = styled__default["default"](Skeleton)(function (_ref) {
8989
8872
  theme = _ref.theme;
8990
8873
  var media = theme.sanity.media;
8991
8874
  var font = theme.sanity.fonts[$style];
8992
-
8993
- var styles = _responsive(media, $size, function (sizeIndex) {
8875
+ var styles = responsive(media, $size, function (sizeIndex) {
8994
8876
  var fontSize = font.sizes[sizeIndex];
8995
8877
  var capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight;
8996
8878
  return {
8997
8879
  height: capHeight
8998
8880
  };
8999
8881
  });
9000
-
9001
8882
  return styles;
9002
8883
  });
9003
8884
  /**
@@ -9010,7 +8891,7 @@ var TextSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props, re
9010
8891
  size = _props$size === void 0 ? 2 : _props$size,
9011
8892
  restProps = _objectWithoutPropertiesLoose(props, _excluded$7);
9012
8893
 
9013
- var $size = useArrayProp(size);
8894
+ var $size = useResponsiveProp(size);
9014
8895
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
9015
8896
  "$size": $size,
9016
8897
  ref: ref,
@@ -9027,7 +8908,7 @@ var LabelSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props, r
9027
8908
  size = _props$size2 === void 0 ? 2 : _props$size2,
9028
8909
  restProps = _objectWithoutPropertiesLoose(props, _excluded2);
9029
8910
 
9030
- var $size = useArrayProp(size);
8911
+ var $size = useResponsiveProp(size);
9031
8912
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
9032
8913
  "$size": $size,
9033
8914
  ref: ref,
@@ -9044,7 +8925,7 @@ var HeadingSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props,
9044
8925
  size = _props$size3 === void 0 ? 2 : _props$size3,
9045
8926
  restProps = _objectWithoutPropertiesLoose(props, _excluded3);
9046
8927
 
9047
- var $size = useArrayProp(size);
8928
+ var $size = useResponsiveProp(size);
9048
8929
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
9049
8930
  "$size": $size,
9050
8931
  ref: ref,
@@ -9061,7 +8942,7 @@ var CodeSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props, re
9061
8942
  size = _props$size4 === void 0 ? 2 : _props$size4,
9062
8943
  restProps = _objectWithoutPropertiesLoose(props, _excluded4);
9063
8944
 
9064
- var $size = useArrayProp(size);
8945
+ var $size = useResponsiveProp(size);
9065
8946
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
9066
8947
  "$size": $size,
9067
8948
  ref: ref,
@@ -9974,6 +9855,7 @@ exports.Popover = Popover;
9974
9855
  exports.Portal = Portal;
9975
9856
  exports.PortalProvider = PortalProvider;
9976
9857
  exports.Radio = Radio;
9858
+ exports.ResizeObserver = RO;
9977
9859
  exports.Select = Select;
9978
9860
  exports.Skeleton = Skeleton;
9979
9861
  exports.Spinner = Spinner;
@@ -9995,21 +9877,18 @@ exports.Tooltip = Tooltip;
9995
9877
  exports.Tree = Tree;
9996
9878
  exports.TreeItem = TreeItem;
9997
9879
  exports.VirtualList = VirtualList;
9998
- exports._ResizeObserver = _ResizeObserver;
9999
- exports._elementSizeObserver = _elementSizeObserver;
10000
- exports._fillCSSObject = _fillCSSObject;
10001
- exports._getArrayProp = _getArrayProp;
10002
- exports._getResponsiveSpace = _getResponsiveSpace;
10003
9880
  exports._hasFocus = _hasFocus;
10004
9881
  exports._isEnterToClickElement = _isEnterToClickElement;
10005
9882
  exports._isScrollable = _isScrollable;
10006
9883
  exports._raf = _raf;
10007
9884
  exports._raf2 = _raf2;
10008
- exports._responsive = _responsive;
10009
9885
  exports.attemptFocus = attemptFocus;
10010
9886
  exports.createColorTheme = createColorTheme;
9887
+ exports.fillCSSObject = fillCSSObject;
10011
9888
  exports.focusFirstDescendant = focusFirstDescendant;
10012
9889
  exports.focusLastDescendant = focusLastDescendant;
9890
+ exports.getResponsiveProp = getResponsiveProp;
9891
+ exports.getResponsiveSpace = getResponsiveSpace;
10013
9892
  exports.hexToRgb = hexToRgb;
10014
9893
  exports.hslToRgb = hslToRgb;
10015
9894
  exports.isFocusable = isFocusable;
@@ -10022,6 +9901,7 @@ exports.isHTMLTextAreaElement = isHTMLTextAreaElement;
10022
9901
  exports.multiply = multiply$1;
10023
9902
  exports.parseColor = parseColor;
10024
9903
  exports.rem = rem;
9904
+ exports.responsive = responsive;
10025
9905
  exports.responsiveCodeFontStyle = responsiveCodeFontStyle;
10026
9906
  exports.responsiveHeadingFont = responsiveHeadingFont;
10027
9907
  exports.responsiveLabelFont = responsiveLabelFont;
@@ -10032,19 +9912,18 @@ exports.rgbToHsl = rgbToHsl;
10032
9912
  exports.rgba = rgba;
10033
9913
  exports.screen = screen$1;
10034
9914
  exports.studioTheme = studioTheme;
10035
- exports.useArrayProp = useArrayProp;
10036
9915
  exports.useBoundaryElement = useBoundaryElement;
10037
9916
  exports.useClickOutside = useClickOutside;
10038
9917
  exports.useCustomValidity = useCustomValidity;
10039
9918
  exports.useDialog = useDialog;
10040
9919
  exports.useElementRect = useElementRect;
10041
- exports.useElementSize = useElementSize;
10042
9920
  exports.useForwardedRef = useForwardedRef;
10043
9921
  exports.useGlobalKeyDown = useGlobalKeyDown;
10044
9922
  exports.useLayer = useLayer;
10045
9923
  exports.useMediaIndex = useMediaIndex;
10046
9924
  exports.usePortal = usePortal;
10047
9925
  exports.usePrefersDark = usePrefersDark;
9926
+ exports.useResponsiveProp = useResponsiveProp;
10048
9927
  exports.useRootTheme = useRootTheme;
10049
9928
  exports.useTheme = useTheme;
10050
9929
  exports.useToast = useToast;