@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
@@ -1,12 +1,12 @@
1
1
  import { useId } from '@reach/auto-id';
2
- import React, { useMemo, useState, useRef, useEffect, createContext, useContext, useLayoutEffect, forwardRef, useCallback, cloneElement, isValidElement, createElement, useReducer, Children, Fragment, memo } from 'react';
2
+ import React, { useState, useRef, useEffect, createContext, useContext, useMemo, useLayoutEffect, forwardRef, useCallback, cloneElement, isValidElement, createElement, useReducer, Children, Fragment, memo } from 'react';
3
3
  import ReactIs, { isElement, isFragment, isValidElementType } from 'react-is';
4
4
  import styled, { ThemeProvider as ThemeProvider$1, useTheme as useTheme$1, css, keyframes } from 'styled-components';
5
- import { ResizeObserver } from '@juggle/resize-observer';
6
5
  import { white as white$1, black as black$1, hues } from '@sanity/color';
7
6
  import { SpinnerIcon, CheckmarkIcon, RemoveIcon, SelectIcon, CloseIcon, ChevronDownIcon, ChevronRightIcon, ToggleArrowRightIcon } from '@sanity/icons';
8
7
  import Refractor from 'react-refractor';
9
8
  import { usePopper } from 'react-popper';
9
+ import { ResizeObserver as ResizeObserver$1 } from '@juggle/resize-observer';
10
10
  import ReactDOM from 'react-dom';
11
11
  import maxSizeModifier from 'popper-max-size-modifier';
12
12
  import { AnimatePresence, motion } from 'framer-motion';
@@ -110,215 +110,6 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
110
110
  var EMPTY_ARRAY = [];
111
111
  var EMPTY_RECORD = {};
112
112
 
113
- /**
114
- * @internal
115
- */
116
-
117
- function _fillCSSObject(keys, value) {
118
- return keys.reduce(function (style, key) {
119
- style[key] = value;
120
- return style;
121
- }, {});
122
- }
123
- /**
124
- * @public
125
- */
126
-
127
- function rem(pixelValue) {
128
- if (pixelValue === 0) return 0;
129
- return pixelValue / 16 + "rem";
130
- }
131
- /**
132
- * @internal
133
- */
134
-
135
- function _responsive(media, values, callback) {
136
- var statements = values.map(callback);
137
- return statements.map(function (statement, mediaIndex) {
138
- var _ref;
139
-
140
- if (mediaIndex === 0) return statement;
141
- return _ref = {}, _ref["@media screen and (min-width: " + media[mediaIndex - 1] + "px)"] = statement, _ref;
142
- });
143
- }
144
- /**
145
- * @internal
146
- */
147
-
148
- function _getArrayProp(val, defaultVal) {
149
- if (val === undefined) return defaultVal || EMPTY_ARRAY;
150
- return Array.isArray(val) ? val : [val];
151
- }
152
- /**
153
- * @internal
154
- */
155
-
156
- function _getResponsiveSpace(theme, props, spaceIndexes) {
157
- if (spaceIndexes === void 0) {
158
- spaceIndexes = EMPTY_ARRAY;
159
- }
160
-
161
- if (!Array.isArray(spaceIndexes)) {
162
- throw new Error('the property must be array of numbers');
163
- }
164
-
165
- if (spaceIndexes.length === 0) {
166
- return null;
167
- }
168
-
169
- return _responsive(theme.sanity.media, spaceIndexes, function (spaceIndex) {
170
- return _fillCSSObject(props, rem(theme.sanity.space[spaceIndex]));
171
- });
172
- }
173
-
174
- /**
175
- * A utility function getting responsive font styles.
176
- * @internal
177
- */
178
-
179
- function responsiveFont(fontKey, props) {
180
- var $size = props.$size,
181
- $weight = props.$weight,
182
- theme = props.theme;
183
- var _theme$sanity = theme.sanity,
184
- fonts = _theme$sanity.fonts,
185
- media = _theme$sanity.media;
186
- var _fonts$fontKey = fonts[fontKey],
187
- family = _fonts$fontKey.family,
188
- sizes = _fonts$fontKey.sizes,
189
- weights = _fonts$fontKey.weights;
190
- var fontWeight = $weight && weights[$weight] || weights.regular; // @todo: make this configurable
191
-
192
- var defaultSize = sizes[2];
193
- var base = {
194
- position: 'relative',
195
- fontFamily: family,
196
- fontWeight: fontWeight,
197
- padding: '1px 0',
198
- margin: 0,
199
- '&:before': {
200
- content: '""',
201
- display: 'block',
202
- height: 0
203
- },
204
- '&:after': {
205
- content: '""',
206
- display: 'block',
207
- height: 0
208
- },
209
- '& > code, & > span': {
210
- display: 'block'
211
- },
212
- '&:not([hidden])': {
213
- display: 'block'
214
- }
215
- };
216
-
217
- var resp = _responsive(media, $size, function (sizeIndex) {
218
- return fontSize(sizes[sizeIndex] || defaultSize);
219
- });
220
-
221
- return [base].concat(resp);
222
- }
223
- function fontSize(size) {
224
- var ascenderHeight = size.ascenderHeight,
225
- descenderHeight = size.descenderHeight,
226
- fontSize = size.fontSize,
227
- iconSize = size.iconSize,
228
- letterSpacing = size.letterSpacing,
229
- lineHeight = size.lineHeight;
230
- var negHeight = ascenderHeight + descenderHeight;
231
- var capHeight = lineHeight - negHeight;
232
- var iconOffset = (capHeight - iconSize) / 2;
233
- var customIconSize = Math.floor(fontSize * 1.125 / 2) * 2 + 1;
234
- var customIconOffset = (capHeight - customIconSize) / 2;
235
- return {
236
- fontSize: rem(fontSize),
237
- lineHeight: "calc(" + lineHeight + " / " + fontSize + ")",
238
- letterSpacing: rem(letterSpacing),
239
- transform: "translateY(" + rem(descenderHeight) + ")",
240
- '&:before': {
241
- marginTop: "calc(" + rem(0 - negHeight) + " - 1px)"
242
- },
243
- '&:after': {
244
- marginBottom: '-1px'
245
- },
246
- '& svg:not([data-sanity-icon])': {
247
- fontSize: "calc(" + customIconSize + " / 16 * 1rem)",
248
- margin: rem(customIconOffset)
249
- },
250
- '& [data-sanity-icon]': {
251
- fontSize: "calc(" + iconSize + " / 16 * 1rem)",
252
- margin: rem(iconOffset)
253
- }
254
- };
255
- }
256
-
257
- /**
258
- * Get responsive CSS for the `code` font style.
259
- * @internal
260
- */
261
-
262
- function responsiveCodeFontStyle(props) {
263
- return responsiveFont('code', props);
264
- }
265
-
266
- /**
267
- * Get responsive CSS for the `heading` font style.
268
- * @internal
269
- */
270
-
271
- function responsiveHeadingFont(props) {
272
- return responsiveFont('heading', props);
273
- }
274
-
275
- /**
276
- * Get responsive CSS for the `label` font style.
277
- * @internal
278
- */
279
-
280
- function responsiveLabelFont(props) {
281
- return responsiveFont('label', props);
282
- }
283
-
284
- /**
285
- * Get responsive text align styles.
286
- * @internal
287
- */
288
-
289
- function responsiveTextAlignStyle(props) {
290
- var theme = props.theme;
291
- return _responsive(theme.sanity.media, props.$align, function (textAlign) {
292
- return {
293
- textAlign: textAlign
294
- };
295
- });
296
- }
297
-
298
- /**
299
- * Get responsive CSS for the `text` font style.
300
- * @internal
301
- */
302
-
303
- function responsiveTextFont(props) {
304
- return responsiveFont('text', props);
305
- }
306
-
307
- /**
308
- * This API might change. DO NOT USE IN PRODUCTION.
309
- * @beta
310
- */
311
-
312
- function useArrayProp(val, defaultVal) {
313
- var __perf_hash__ = JSON.stringify(val != null ? val : defaultVal);
314
-
315
- return useMemo(function () {
316
- return _getArrayProp(val, defaultVal);
317
- }, // Improve performance: Keep object identify for a given hash of the value
318
- // eslint-disable-next-line react-hooks/exhaustive-deps
319
- [__perf_hash__]);
320
- }
321
-
322
113
  function _getElements(element, elementsArg) {
323
114
  var ret = [element];
324
115
 
@@ -420,110 +211,26 @@ function useClickOutside(listener, elementsArg, boundaryElement) {
420
211
  }
421
212
 
422
213
  /**
423
- * @internal
424
- */
425
-
426
- var _ResizeObserver = typeof window !== 'undefined' && window.ResizeObserver ? window.ResizeObserver : ResizeObserver;
427
-
428
- // NOTE: this should NOT have size effects
429
-
430
- /**
431
- * @internal
432
- */
433
-
434
- var _elementSizeObserver = _createElementSizeObserver();
435
-
436
- function _createElementRectValueListener() {
437
- return {
438
- subscribe: function subscribe(element, subscriber) {
439
- var resizeObserver = new _ResizeObserver(function (_ref) {
440
- var entry = _ref[0];
441
- subscriber({
442
- _contentRect: entry.contentRect,
443
- border: {
444
- width: entry.borderBoxSize[0].inlineSize,
445
- height: entry.borderBoxSize[0].blockSize
446
- },
447
- content: {
448
- width: entry.contentRect.width,
449
- height: entry.contentRect.height
450
- }
451
- });
452
- });
453
- resizeObserver.observe(element);
454
- return function () {
455
- resizeObserver.unobserve(element);
456
- resizeObserver.disconnect();
457
- };
458
- }
459
- };
460
- }
461
-
462
- function _createElementSizeObserver() {
463
- var disposeCache = new WeakMap();
464
- var subscribersCache = new WeakMap();
465
- return {
466
- subscribe: function subscribe(element, subscriber) {
467
- var subscribers = subscribersCache.get(element) || [];
468
- var dispose = disposeCache.get(element);
469
-
470
- if (!subscribersCache.has(element)) {
471
- subscribersCache.set(element, subscribers);
472
-
473
- var listener = _createElementRectValueListener(); // listen
474
-
475
-
476
- dispose = listener.subscribe(element, function (elementRect) {
477
- for (var _iterator = _createForOfIteratorHelperLoose(subscribers), _step; !(_step = _iterator()).done;) {
478
- var sub = _step.value;
479
- sub(elementRect);
480
- }
481
- });
482
- }
483
-
484
- subscribers.push(subscriber);
485
- return function () {
486
- // dispose
487
- var idx = subscribers.indexOf(subscriber);
488
-
489
- if (idx > -1) {
490
- subscribers.splice(idx, 1);
491
- }
492
-
493
- if (subscribers.length === 0) {
494
- // unlisten
495
- if (dispose) dispose();
496
- }
497
- };
498
- }
499
- };
500
- }
501
-
502
- /**
503
- * Subscribe to the size of a DOM element.
214
+ * Subscribe to the rect of a DOM element.
504
215
  * @beta
505
216
  */
506
217
 
507
- function useElementSize(element) {
218
+ function useElementRect(element) {
508
219
  var _useState = useState(null),
509
- size = _useState[0],
510
- setSize = _useState[1];
220
+ rect = _useState[0],
221
+ setRect = _useState[1];
511
222
 
512
223
  useEffect(function () {
513
224
  if (!element) return undefined;
514
- return _elementSizeObserver.subscribe(element, setSize);
225
+ var ro = new ResizeObserver(function (entries) {
226
+ setRect(entries[0].contentRect);
227
+ });
228
+ ro.observe(element);
229
+ return function () {
230
+ return ro.disconnect();
231
+ };
515
232
  }, [element]);
516
- return size;
517
- }
518
-
519
- /**
520
- * Subscribe to the rect of a DOM element.
521
- * @deprecated Use `useElementSize` instead
522
- */
523
-
524
- function useElementRect(element) {
525
- var elementSize = useElementSize(element);
526
- return (elementSize == null ? void 0 : elementSize._contentRect) || null;
233
+ return rect;
527
234
  }
528
235
 
529
236
  /**
@@ -1975,20 +1682,18 @@ var color = createColorTheme({
1975
1682
  name = _ref.name;
1976
1683
 
1977
1684
  if (name === 'default') {
1978
- var _tints = hues.gray;
1979
-
1980
- var _skeletonFrom = dark ? _tints[900].hex : _tints[100].hex;
1685
+ var _skeletonFrom = dark ? hues.gray[900].hex : hues.gray[100].hex;
1981
1686
 
1982
1687
  return {
1983
1688
  fg: dark ? white$1.hex : black$1.hex,
1984
1689
  bg: dark ? black$1.hex : white$1.hex,
1985
- border: _tints[dark ? 800 : 200].hex,
1690
+ border: hues.gray[dark ? 800 : 200].hex,
1986
1691
  focusRing: hues.blue[dark ? 500 : 500].hex,
1987
1692
  shadow: {
1988
- outline: rgba(_tints[500].hex, 0.4),
1989
- umbra: dark ? rgba(_tints[950].hex, 0.4) : rgba(_tints[500].hex, 0.2),
1990
- penumbra: dark ? rgba(_tints[950].hex, 0.28) : rgba(_tints[500].hex, 0.14),
1991
- ambient: dark ? rgba(_tints[950].hex, 0.24) : rgba(_tints[500].hex, 0.12)
1693
+ outline: rgba(hues.gray[500].hex, 0.4),
1694
+ umbra: rgba(dark ? black$1.hex : hues.gray[500].hex, 0.2),
1695
+ penumbra: rgba(dark ? black$1.hex : hues.gray[500].hex, 0.14),
1696
+ ambient: rgba(dark ? black$1.hex : hues.gray[500].hex, 0.12)
1992
1697
  },
1993
1698
  skeleton: {
1994
1699
  from: _skeletonFrom,
@@ -1998,18 +1703,18 @@ var color = createColorTheme({
1998
1703
  }
1999
1704
 
2000
1705
  if (name === 'transparent') {
2001
- var _tints2 = tones["default"];
2002
- var _skeletonFrom2 = _tints2[dark ? 800 : 200].hex;
1706
+ var _tints = tones["default"];
1707
+ var _skeletonFrom2 = _tints[dark ? 800 : 200].hex;
2003
1708
  return {
2004
- fg: _tints2[dark ? 100 : 900].hex,
2005
- bg: _tints2[dark ? 950 : 50].hex,
2006
- border: _tints2[dark ? 800 : 300].hex,
1709
+ fg: _tints[dark ? 100 : 900].hex,
1710
+ bg: _tints[dark ? 950 : 50].hex,
1711
+ border: _tints[dark ? 800 : 300].hex,
2007
1712
  focusRing: hues.blue[500].hex,
2008
1713
  shadow: {
2009
- outline: rgba(_tints2[500].hex, 0.4),
2010
- umbra: dark ? rgba(_tints2[900].hex, 0.4) : rgba(_tints2[500].hex, 0.2),
2011
- penumbra: dark ? rgba(_tints2[900].hex, 0.28) : rgba(_tints2[500].hex, 0.14),
2012
- ambient: dark ? rgba(_tints2[900].hex, 0.24) : rgba(_tints2[500].hex, 0.12)
1714
+ outline: rgba(_tints[500].hex, dark ? 0.2 : 0.4),
1715
+ umbra: rgba(dark ? black$1.hex : _tints[500].hex, 0.2),
1716
+ penumbra: rgba(dark ? black$1.hex : _tints[500].hex, 0.14),
1717
+ ambient: rgba(dark ? black$1.hex : _tints[500].hex, 0.12)
2013
1718
  },
2014
1719
  skeleton: {
2015
1720
  from: _skeletonFrom2,
@@ -2026,10 +1731,10 @@ var color = createColorTheme({
2026
1731
  border: tints[dark ? 800 : 200].hex,
2027
1732
  focusRing: tints[500].hex,
2028
1733
  shadow: {
2029
- outline: rgba(tints[500].hex, 0.4),
2030
- umbra: dark ? rgba(tints[900].hex, 0.4) : rgba(tints[500].hex, 0.2),
2031
- penumbra: dark ? rgba(tints[900].hex, 0.28) : rgba(tints[500].hex, 0.14),
2032
- ambient: dark ? rgba(tints[900].hex, 0.24) : rgba(tints[500].hex, 0.12)
1734
+ outline: rgba(tints[500].hex, dark ? 0.2 : 0.4),
1735
+ umbra: rgba(dark ? black$1.hex : tints[500].hex, 0.2),
1736
+ penumbra: rgba(dark ? black$1.hex : tints[500].hex, 0.14),
1737
+ ambient: rgba(dark ? black$1.hex : tints[500].hex, 0.12)
2033
1738
  },
2034
1739
  skeleton: {
2035
1740
  from: skeletonFrom,
@@ -2695,15 +2400,15 @@ var fonts = {
2695
2400
  lineHeight: 33,
2696
2401
  letterSpacing: 0
2697
2402
  }, {
2698
- ascenderHeight: 8,
2699
- descenderHeight: 8,
2403
+ ascenderHeight: 9,
2404
+ descenderHeight: 7,
2700
2405
  fontSize: 33,
2701
2406
  iconSize: 49,
2702
2407
  lineHeight: 39,
2703
2408
  letterSpacing: 0
2704
2409
  }, {
2705
- ascenderHeight: 9,
2706
- descenderHeight: 9,
2410
+ ascenderHeight: 10,
2411
+ descenderHeight: 8,
2707
2412
  fontSize: 38,
2708
2413
  iconSize: 53,
2709
2414
  lineHeight: 45,
@@ -2925,7 +2630,7 @@ globalScope[key$7] = globalScope[key$7] || /*#__PURE__*/createContext(null);
2925
2630
 
2926
2631
  var ThemeContext = globalScope[key$7];
2927
2632
 
2928
- var _excluded$H = ["color", "layer"];
2633
+ var _excluded$I = ["color", "layer"];
2929
2634
  /**
2930
2635
  * @public
2931
2636
  */
@@ -2944,7 +2649,7 @@ function ThemeProvider(props) {
2944
2649
 
2945
2650
  var rootColor = themeProp.color,
2946
2651
  rootLayer = themeProp.layer,
2947
- restTheme = _objectWithoutPropertiesLoose(themeProp, _excluded$H);
2652
+ restTheme = _objectWithoutPropertiesLoose(themeProp, _excluded$I);
2948
2653
 
2949
2654
  var colorScheme = rootColor[scheme] || rootColor.light;
2950
2655
  var color = colorScheme[tone] || colorScheme["default"];
@@ -3095,122 +2800,325 @@ function _createMediaManager(media) {
3095
2800
  for (var _iterator2 = _createForOfIteratorHelperLoose(sizes), _step2; !(_step2 = _iterator2()).done;) {
3096
2801
  _loop();
3097
2802
  }
3098
-
3099
- return function () {
3100
- for (var _iterator3 = _createForOfIteratorHelperLoose(disposeFns), _step3; !(_step3 = _iterator3()).done;) {
3101
- var disposeFn = _step3.value;
3102
- disposeFn();
3103
- }
3104
- };
3105
- };
3106
-
3107
- return {
3108
- getCurrentIndex: getCurrentIndex,
3109
- subscribe: subscribe
2803
+
2804
+ return function () {
2805
+ for (var _iterator3 = _createForOfIteratorHelperLoose(disposeFns), _step3; !(_step3 = _iterator3()).done;) {
2806
+ var disposeFn = _step3.value;
2807
+ disposeFn();
2808
+ }
2809
+ };
2810
+ };
2811
+
2812
+ return {
2813
+ getCurrentIndex: getCurrentIndex,
2814
+ subscribe: subscribe
2815
+ };
2816
+ }
2817
+ /**
2818
+ * @internal
2819
+ */
2820
+
2821
+
2822
+ function _getMediaManager(media) {
2823
+ var manager = MEDIA_MANAGER_CACHE.get(media);
2824
+
2825
+ if (!manager) {
2826
+ manager = _createMediaManager(media);
2827
+ MEDIA_MANAGER_CACHE.set(media, manager);
2828
+ }
2829
+
2830
+ return manager;
2831
+ }
2832
+
2833
+ /**
2834
+ * This API might change. DO NOT USE IN PRODUCTION.
2835
+ * @beta
2836
+ */
2837
+
2838
+ function useMediaIndex() {
2839
+ var theme = useTheme();
2840
+ var media = theme.sanity.media;
2841
+ var manager = useMemo(function () {
2842
+ return _getMediaManager(media);
2843
+ }, [media]);
2844
+
2845
+ var _useState = useState(manager.getCurrentIndex),
2846
+ index = _useState[0],
2847
+ setIndex = _useState[1];
2848
+
2849
+ useEffect(function () {
2850
+ return manager.subscribe(setIndex);
2851
+ }, [manager]);
2852
+ return index;
2853
+ }
2854
+
2855
+ /**
2856
+ * @public
2857
+ */
2858
+
2859
+ function usePrefersDark() {
2860
+ var mq = useMemo(function () {
2861
+ if (typeof window === 'undefined') return undefined;
2862
+ return window.matchMedia('(prefers-color-scheme: dark)');
2863
+ }, []);
2864
+
2865
+ var _useState = useState((mq == null ? void 0 : mq.matches) || false),
2866
+ dark = _useState[0],
2867
+ setDark = _useState[1];
2868
+
2869
+ useEffect(function () {
2870
+ if (!mq) return undefined;
2871
+ setDark(mq.matches);
2872
+
2873
+ var handleChange = function handleChange() {
2874
+ return setDark(mq.matches);
2875
+ };
2876
+
2877
+ mq.addEventListener('change', handleChange);
2878
+ return function () {
2879
+ return mq.removeEventListener('change', handleChange);
2880
+ };
2881
+ }, [mq]);
2882
+ return dark;
2883
+ }
2884
+
2885
+ /**
2886
+ * @beta
2887
+ */
2888
+
2889
+ var useIsomorphicEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
2890
+
2891
+ /**
2892
+ * @beta
2893
+ */
2894
+
2895
+ function useForwardedRef(ref) {
2896
+ var innerRef = useRef(null);
2897
+ useIsomorphicEffect(function () {
2898
+ if (!ref) return;
2899
+
2900
+ if (typeof ref === 'function') {
2901
+ ref(innerRef.current);
2902
+ } else {
2903
+ ref.current = innerRef.current;
2904
+ }
2905
+ });
2906
+ return innerRef;
2907
+ }
2908
+
2909
+ /**
2910
+ * @beta
2911
+ */
2912
+
2913
+ function useCustomValidity(ref, customValidity) {
2914
+ useEffect(function () {
2915
+ if (ref.current) {
2916
+ ref.current.setCustomValidity(customValidity || '');
2917
+ }
2918
+ }, [customValidity, ref]);
2919
+ }
2920
+
2921
+ /**
2922
+ * @internal
2923
+ */
2924
+
2925
+ function fillCSSObject(propKeys, value) {
2926
+ return propKeys.reduce(function (obj, propKey) {
2927
+ obj[propKey] = value;
2928
+ return obj;
2929
+ }, {});
2930
+ }
2931
+ /**
2932
+ * @public
2933
+ */
2934
+
2935
+ function rem(pixelValue) {
2936
+ if (pixelValue === 0) return 0;
2937
+ return pixelValue / 16 + "rem";
2938
+ }
2939
+ /**
2940
+ * @internal
2941
+ */
2942
+
2943
+ function responsive(media, values, callback) {
2944
+ var statements = values.map(callback);
2945
+ return statements.map(function (statement, mediaIndex) {
2946
+ var _ref;
2947
+
2948
+ if (mediaIndex === 0) return statement;
2949
+ return _ref = {}, _ref["@media screen and (min-width: " + media[mediaIndex - 1] + "px)"] = statement, _ref;
2950
+ });
2951
+ }
2952
+ /**
2953
+ * @internal
2954
+ */
2955
+
2956
+ function getResponsiveProp(val, defaultVal) {
2957
+ if (val === undefined) return defaultVal || EMPTY_ARRAY;
2958
+ return Array.isArray(val) ? val : [val];
2959
+ }
2960
+ /**
2961
+ * @internal
2962
+ */
2963
+
2964
+ function getResponsiveSpace(theme, props, spaceIndexes) {
2965
+ if (spaceIndexes === void 0) {
2966
+ spaceIndexes = EMPTY_ARRAY;
2967
+ }
2968
+
2969
+ if (!Array.isArray(spaceIndexes)) {
2970
+ throw new Error('the property must be array of numbers');
2971
+ }
2972
+
2973
+ if (spaceIndexes.length === 0) {
2974
+ return null;
2975
+ }
2976
+
2977
+ return responsive(theme.sanity.media, spaceIndexes, function (spaceIndex) {
2978
+ return fillCSSObject(props, rem(theme.sanity.space[spaceIndex]));
2979
+ });
2980
+ }
2981
+
2982
+ /**
2983
+ * A utility function getting responsive font styles.
2984
+ * @internal
2985
+ */
2986
+
2987
+ function responsiveFont(fontKey, props) {
2988
+ var $size = props.$size,
2989
+ $weight = props.$weight,
2990
+ theme = props.theme;
2991
+ var _theme$sanity = theme.sanity,
2992
+ fonts = _theme$sanity.fonts,
2993
+ media = _theme$sanity.media;
2994
+ var _fonts$fontKey = fonts[fontKey],
2995
+ family = _fonts$fontKey.family,
2996
+ sizes = _fonts$fontKey.sizes,
2997
+ weights = _fonts$fontKey.weights;
2998
+ var fontWeight = $weight && weights[$weight] || weights.regular; // @todo: make this configurable
2999
+
3000
+ var defaultSize = sizes[2];
3001
+ var base = {
3002
+ position: 'relative',
3003
+ fontFamily: family,
3004
+ fontWeight: fontWeight,
3005
+ padding: '1px 0',
3006
+ margin: 0,
3007
+ '&:before': {
3008
+ content: '""',
3009
+ display: 'block',
3010
+ height: 0
3011
+ },
3012
+ '&:after': {
3013
+ content: '""',
3014
+ display: 'block',
3015
+ height: 0
3016
+ },
3017
+ '& > code, & > span': {
3018
+ display: 'block'
3019
+ },
3020
+ '&:not([hidden])': {
3021
+ display: 'block'
3022
+ }
3023
+ };
3024
+ var resp = responsive(media, getResponsiveProp($size), function (sizeIndex) {
3025
+ return fontSize(sizes[sizeIndex] || defaultSize);
3026
+ });
3027
+ return [base].concat(resp);
3028
+ }
3029
+ function fontSize(size) {
3030
+ var ascenderHeight = size.ascenderHeight,
3031
+ descenderHeight = size.descenderHeight,
3032
+ fontSize = size.fontSize,
3033
+ iconSize = size.iconSize,
3034
+ letterSpacing = size.letterSpacing,
3035
+ lineHeight = size.lineHeight;
3036
+ var negHeight = ascenderHeight + descenderHeight;
3037
+ var capHeight = lineHeight - negHeight;
3038
+ var iconOffset = (capHeight - iconSize) / 2;
3039
+ var customIconSize = Math.floor(fontSize * 1.125 / 2) * 2 + 1;
3040
+ var customIconOffset = (capHeight - customIconSize) / 2;
3041
+ return {
3042
+ fontSize: rem(fontSize),
3043
+ lineHeight: "calc(" + lineHeight + " / " + fontSize + ")",
3044
+ letterSpacing: rem(letterSpacing),
3045
+ transform: "translateY(" + rem(descenderHeight) + ")",
3046
+ '&:before': {
3047
+ marginTop: "calc(" + rem(0 - negHeight) + " - 1px)"
3048
+ },
3049
+ '&:after': {
3050
+ marginBottom: '-1px'
3051
+ },
3052
+ '& svg:not([data-sanity-icon])': {
3053
+ fontSize: "calc(" + customIconSize + " / 16 * 1rem)",
3054
+ margin: rem(customIconOffset)
3055
+ },
3056
+ '& [data-sanity-icon]': {
3057
+ fontSize: "calc(" + iconSize + " / 16 * 1rem)",
3058
+ margin: rem(iconOffset)
3059
+ }
3110
3060
  };
3111
3061
  }
3062
+
3112
3063
  /**
3064
+ * Get responsive CSS for the `code` font style.
3113
3065
  * @internal
3114
3066
  */
3115
3067
 
3116
-
3117
- function _getMediaManager(media) {
3118
- var manager = MEDIA_MANAGER_CACHE.get(media);
3119
-
3120
- if (!manager) {
3121
- manager = _createMediaManager(media);
3122
- MEDIA_MANAGER_CACHE.set(media, manager);
3123
- }
3124
-
3125
- return manager;
3068
+ function responsiveCodeFontStyle(props) {
3069
+ return responsiveFont('code', props);
3126
3070
  }
3127
3071
 
3128
3072
  /**
3129
- * This API might change. DO NOT USE IN PRODUCTION.
3130
- * @beta
3073
+ * Get responsive CSS for the `heading` font style.
3074
+ * @internal
3131
3075
  */
3132
3076
 
3133
- function useMediaIndex() {
3134
- var theme = useTheme();
3135
- var media = theme.sanity.media;
3136
- var manager = useMemo(function () {
3137
- return _getMediaManager(media);
3138
- }, [media]);
3139
-
3140
- var _useState = useState(manager.getCurrentIndex),
3141
- index = _useState[0],
3142
- setIndex = _useState[1];
3143
-
3144
- useEffect(function () {
3145
- return manager.subscribe(setIndex);
3146
- }, [manager]);
3147
- return index;
3077
+ function responsiveHeadingFont(props) {
3078
+ return responsiveFont('heading', props);
3148
3079
  }
3149
3080
 
3150
3081
  /**
3151
- * @public
3082
+ * Get responsive CSS for the `label` font style.
3083
+ * @internal
3152
3084
  */
3153
3085
 
3154
- function usePrefersDark() {
3155
- var mq = useMemo(function () {
3156
- if (typeof window === 'undefined') return undefined;
3157
- return window.matchMedia('(prefers-color-scheme: dark)');
3158
- }, []);
3159
-
3160
- var _useState = useState((mq == null ? void 0 : mq.matches) || false),
3161
- dark = _useState[0],
3162
- setDark = _useState[1];
3163
-
3164
- useEffect(function () {
3165
- if (!mq) return undefined;
3166
- setDark(mq.matches);
3167
-
3168
- var handleChange = function handleChange() {
3169
- return setDark(mq.matches);
3170
- };
3171
-
3172
- mq.addEventListener('change', handleChange);
3173
- return function () {
3174
- return mq.removeEventListener('change', handleChange);
3175
- };
3176
- }, [mq]);
3177
- return dark;
3086
+ function responsiveLabelFont(props) {
3087
+ return responsiveFont('label', props);
3178
3088
  }
3179
3089
 
3180
3090
  /**
3181
- * @beta
3091
+ * Get responsive text align styles.
3092
+ * @internal
3182
3093
  */
3183
3094
 
3184
- var useIsomorphicEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
3095
+ function responsiveTextAlignStyle(props) {
3096
+ var theme = props.theme;
3097
+ return responsive(theme.sanity.media, getResponsiveProp(props.$align), function (textAlign) {
3098
+ return {
3099
+ textAlign: textAlign
3100
+ };
3101
+ });
3102
+ }
3185
3103
 
3186
3104
  /**
3187
- * @beta
3105
+ * Get responsive CSS for the `text` font style.
3106
+ * @internal
3188
3107
  */
3189
3108
 
3190
- function useForwardedRef(ref) {
3191
- var innerRef = useRef(null);
3192
- useIsomorphicEffect(function () {
3193
- if (!ref) return;
3194
-
3195
- if (typeof ref === 'function') {
3196
- ref(innerRef.current);
3197
- } else {
3198
- ref.current = innerRef.current;
3199
- }
3200
- });
3201
- return innerRef;
3109
+ function responsiveTextFont(props) {
3110
+ return responsiveFont('text', props);
3202
3111
  }
3203
3112
 
3204
3113
  /**
3114
+ * This API might change. DO NOT USE IN PRODUCTION.
3205
3115
  * @beta
3206
3116
  */
3207
3117
 
3208
- function useCustomValidity(ref, customValidity) {
3209
- useEffect(function () {
3210
- if (ref.current) {
3211
- ref.current.setCustomValidity(customValidity || '');
3212
- }
3213
- }, [customValidity, ref]);
3118
+ function useResponsiveProp(val, defaultVal) {
3119
+ return useMemo(function () {
3120
+ return getResponsiveProp(val, defaultVal);
3121
+ }, [defaultVal, val]);
3214
3122
  }
3215
3123
 
3216
3124
  var BORDER_VALUE = '1px solid var(--card-border-color)';
@@ -3221,7 +3129,7 @@ function responsiveBorderStyle() {
3221
3129
  function border(props) {
3222
3130
  var theme = props.theme;
3223
3131
  var media = theme.sanity.media;
3224
- return _responsive(media, props.$border, function (value) {
3132
+ return responsive(media, getResponsiveProp(props.$border), function (value) {
3225
3133
  return value ? {
3226
3134
  '&&': {
3227
3135
  border: BORDER_VALUE
@@ -3237,7 +3145,7 @@ function border(props) {
3237
3145
  function borderTop(props) {
3238
3146
  var theme = props.theme;
3239
3147
  var media = theme.sanity.media;
3240
- return _responsive(media, props.$borderTop, function (value) {
3148
+ return responsive(media, getResponsiveProp(props.$borderTop), function (value) {
3241
3149
  return value ? {
3242
3150
  '&&': {
3243
3151
  borderTop: BORDER_VALUE
@@ -3253,7 +3161,7 @@ function borderTop(props) {
3253
3161
  function borderRight(props) {
3254
3162
  var theme = props.theme;
3255
3163
  var media = theme.sanity.media;
3256
- return _responsive(media, props.$borderRight, function (value) {
3164
+ return responsive(media, getResponsiveProp(props.$borderRight), function (value) {
3257
3165
  return value ? {
3258
3166
  '&&': {
3259
3167
  borderRight: BORDER_VALUE
@@ -3269,7 +3177,7 @@ function borderRight(props) {
3269
3177
  function borderBottom(props) {
3270
3178
  var theme = props.theme;
3271
3179
  var media = theme.sanity.media;
3272
- return _responsive(media, props.$borderBottom, function (value) {
3180
+ return responsive(media, getResponsiveProp(props.$borderBottom), function (value) {
3273
3181
  return value ? {
3274
3182
  '&&': {
3275
3183
  borderBottom: BORDER_VALUE
@@ -3285,7 +3193,7 @@ function borderBottom(props) {
3285
3193
  function borderLeft(props) {
3286
3194
  var theme = props.theme;
3287
3195
  var media = theme.sanity.media;
3288
- return _responsive(media, props.$borderLeft, function (value) {
3196
+ return responsive(media, getResponsiveProp(props.$borderLeft), function (value) {
3289
3197
  return value ? {
3290
3198
  '&&': {
3291
3199
  borderLeft: BORDER_VALUE
@@ -3321,7 +3229,7 @@ function responsiveBoxStyle() {
3321
3229
  function responsiveBoxDisplayStyle(props) {
3322
3230
  var theme = props.theme;
3323
3231
  var media = theme.sanity.media;
3324
- return _responsive(media, props.$display, function (display) {
3232
+ return responsive(media, getResponsiveProp(props.$display), function (display) {
3325
3233
  return {
3326
3234
  '&:not([hidden])': {
3327
3235
  display: display
@@ -3333,7 +3241,7 @@ function responsiveBoxDisplayStyle(props) {
3333
3241
  function responsiveBoxSizingStyle(props) {
3334
3242
  var theme = props.theme;
3335
3243
  var media = theme.sanity.media;
3336
- return _responsive(media, props.$sizing, function (sizing) {
3244
+ return responsive(media, getResponsiveProp(props.$sizing), function (sizing) {
3337
3245
  return {
3338
3246
  boxSizing: BOX_SIZING[sizing]
3339
3247
  };
@@ -3343,7 +3251,7 @@ function responsiveBoxSizingStyle(props) {
3343
3251
  function responsiveBoxHeightStyle(props) {
3344
3252
  var theme = props.theme;
3345
3253
  var media = theme.sanity.media;
3346
- return _responsive(media, props.$height, function (height) {
3254
+ return responsive(media, getResponsiveProp(props.$height), function (height) {
3347
3255
  return {
3348
3256
  height: BOX_HEIGHT[height]
3349
3257
  };
@@ -3353,7 +3261,7 @@ function responsiveBoxHeightStyle(props) {
3353
3261
  function responsiveBoxOverflowStyle(props) {
3354
3262
  var theme = props.theme;
3355
3263
  var media = theme.sanity.media;
3356
- return _responsive(media, props.$overflow, function (overflow) {
3264
+ return responsive(media, getResponsiveProp(props.$overflow), function (overflow) {
3357
3265
  return {
3358
3266
  overflow: overflow
3359
3267
  };
@@ -3371,7 +3279,7 @@ function responsiveFlexStyle() {
3371
3279
  function responsiveFlexAlignStyle(props) {
3372
3280
  var theme = props.theme;
3373
3281
  var media = theme.sanity.media;
3374
- return _responsive(media, props.$align, function (align) {
3282
+ return responsive(media, getResponsiveProp(props.$align), function (align) {
3375
3283
  return {
3376
3284
  alignItems: align
3377
3285
  };
@@ -3383,7 +3291,7 @@ function responsiveFlexGapStyle(props) {
3383
3291
  var _theme$sanity = theme.sanity,
3384
3292
  media = _theme$sanity.media,
3385
3293
  space = _theme$sanity.space;
3386
- return _responsive(media, props.$gap, function (gap) {
3294
+ return responsive(media, getResponsiveProp(props.$gap), function (gap) {
3387
3295
  return {
3388
3296
  gap: gap ? rem(space[gap]) : undefined
3389
3297
  };
@@ -3393,7 +3301,7 @@ function responsiveFlexGapStyle(props) {
3393
3301
  function responsiveFlexWrapStyle(props) {
3394
3302
  var theme = props.theme;
3395
3303
  var media = theme.sanity.media;
3396
- return _responsive(media, props.$wrap, function (wrap) {
3304
+ return responsive(media, getResponsiveProp(props.$wrap), function (wrap) {
3397
3305
  return {
3398
3306
  flexWrap: wrap
3399
3307
  };
@@ -3402,7 +3310,7 @@ function responsiveFlexWrapStyle(props) {
3402
3310
  function responsiveFlexJustifyStyle(props) {
3403
3311
  var theme = props.theme;
3404
3312
  var media = theme.sanity.media;
3405
- return _responsive(media, props.$justify, function (justify) {
3313
+ return responsive(media, getResponsiveProp(props.$justify), function (justify) {
3406
3314
  return {
3407
3315
  justifyContent: justify
3408
3316
  };
@@ -3411,7 +3319,7 @@ function responsiveFlexJustifyStyle(props) {
3411
3319
  function responsiveFlexDirectionStyle(props) {
3412
3320
  var theme = props.theme;
3413
3321
  var media = theme.sanity.media;
3414
- return _responsive(media, props.$direction, function (direction) {
3322
+ return responsive(media, getResponsiveProp(props.$direction), function (direction) {
3415
3323
  return {
3416
3324
  flexDirection: direction
3417
3325
  };
@@ -3428,8 +3336,7 @@ function flexItemStyle() {
3428
3336
  function responsiveFlexItemStyle(props) {
3429
3337
  var theme = props.theme;
3430
3338
  var media = theme.sanity.media;
3431
- if (!props.$flex) return EMPTY_ARRAY;
3432
- return _responsive(media, props.$flex, function (flex) {
3339
+ return responsive(media, getResponsiveProp(props.$flex), function (flex) {
3433
3340
  return {
3434
3341
  flex: flex
3435
3342
  };
@@ -3476,7 +3383,7 @@ function responsiveGridStyle() {
3476
3383
  function responsiveGridAutoFlowStyle(props) {
3477
3384
  var theme = props.theme;
3478
3385
  var media = theme.sanity.media;
3479
- return _responsive(media, props.$autoFlow, function (autoFlow) {
3386
+ return responsive(media, getResponsiveProp(props.$autoFlow), function (autoFlow) {
3480
3387
  return {
3481
3388
  gridAutoFlow: autoFlow
3482
3389
  };
@@ -3486,7 +3393,7 @@ function responsiveGridAutoFlowStyle(props) {
3486
3393
  function responsiveGridAutoRowsStyle(props) {
3487
3394
  var theme = props.theme;
3488
3395
  var media = theme.sanity.media;
3489
- return _responsive(media, props.$autoRows, function (autoRows) {
3396
+ return responsive(media, getResponsiveProp(props.$autoRows), function (autoRows) {
3490
3397
  return {
3491
3398
  gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows]
3492
3399
  };
@@ -3496,7 +3403,7 @@ function responsiveGridAutoRowsStyle(props) {
3496
3403
  function responsiveGridAutoColsStyle(props) {
3497
3404
  var theme = props.theme;
3498
3405
  var media = theme.sanity.media;
3499
- return _responsive(media, props.$autoCols, function (autoCols) {
3406
+ return responsive(media, getResponsiveProp(props.$autoCols), function (autoCols) {
3500
3407
  return {
3501
3408
  gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols]
3502
3409
  };
@@ -3506,7 +3413,7 @@ function responsiveGridAutoColsStyle(props) {
3506
3413
  function responsiveGridColumnsStyle(props) {
3507
3414
  var theme = props.theme;
3508
3415
  var media = theme.sanity.media;
3509
- return _responsive(media, props.$columns, function (columns) {
3416
+ return responsive(media, getResponsiveProp(props.$columns), function (columns) {
3510
3417
  return {
3511
3418
  gridTemplateColumns: columns && "repeat(" + columns + ",minmax(0,1fr));"
3512
3419
  };
@@ -3516,7 +3423,7 @@ function responsiveGridColumnsStyle(props) {
3516
3423
  function responsiveGridRowsStyle(props) {
3517
3424
  var theme = props.theme;
3518
3425
  var media = theme.sanity.media;
3519
- return _responsive(media, props.$rows, function (rows) {
3426
+ return responsive(media, getResponsiveProp(props.$rows), function (rows) {
3520
3427
  return {
3521
3428
  gridTemplateRows: rows && "repeat(" + rows + ",minmax(0,1fr));"
3522
3429
  };
@@ -3528,7 +3435,7 @@ function responsiveGridGapStyle(props) {
3528
3435
  var _theme$sanity = theme.sanity,
3529
3436
  media = _theme$sanity.media,
3530
3437
  space = _theme$sanity.space;
3531
- return _responsive(media, props.$gap, function (gap) {
3438
+ return responsive(media, getResponsiveProp(props.$gap), function (gap) {
3532
3439
  return {
3533
3440
  gridGap: gap ? rem(space[gap]) : undefined
3534
3441
  };
@@ -3540,7 +3447,7 @@ function responsiveGridGapXStyle(props) {
3540
3447
  var _theme$sanity2 = theme.sanity,
3541
3448
  media = _theme$sanity2.media,
3542
3449
  space = _theme$sanity2.space;
3543
- return _responsive(media, props.$gapX, function (gapX) {
3450
+ return responsive(media, getResponsiveProp(props.$gapX), function (gapX) {
3544
3451
  return {
3545
3452
  columnGap: gapX ? rem(space[gapX]) : undefined
3546
3453
  };
@@ -3552,7 +3459,7 @@ function responsiveGridGapYStyle(props) {
3552
3459
  var _theme$sanity3 = theme.sanity,
3553
3460
  media = _theme$sanity3.media,
3554
3461
  space = _theme$sanity3.space;
3555
- return _responsive(media, props.$gapY, function (gapY) {
3462
+ return responsive(media, getResponsiveProp(props.$gapY), function (gapY) {
3556
3463
  return {
3557
3464
  rowGap: gapY ? rem(space[gapY]) : undefined
3558
3465
  };
@@ -3574,7 +3481,7 @@ var GRID_ITEM_COLUMN = {
3574
3481
  function responsiveGridItemRowStyle(props) {
3575
3482
  var theme = props.theme;
3576
3483
  var media = theme.sanity.media;
3577
- return _responsive(media, props.$row, function (row) {
3484
+ return responsive(media, getResponsiveProp(props.$row), function (row) {
3578
3485
  if (typeof row === 'number') {
3579
3486
  return {
3580
3487
  gridRow: "span " + row + " / span " + row
@@ -3590,7 +3497,7 @@ function responsiveGridItemRowStyle(props) {
3590
3497
  function responsiveGridItemRowStartStyle(props) {
3591
3498
  var theme = props.theme;
3592
3499
  var media = theme.sanity.media;
3593
- return _responsive(media, props.$rowStart, function (rowStart) {
3500
+ return responsive(media, getResponsiveProp(props.$rowStart), function (rowStart) {
3594
3501
  return {
3595
3502
  gridRowStart: rowStart
3596
3503
  };
@@ -3600,7 +3507,7 @@ function responsiveGridItemRowStartStyle(props) {
3600
3507
  function responsiveGridItemRowEndStyle(props) {
3601
3508
  var theme = props.theme;
3602
3509
  var media = theme.sanity.media;
3603
- return _responsive(media, props.$rowEnd, function (rowEnd) {
3510
+ return responsive(media, getResponsiveProp(props.$rowEnd), function (rowEnd) {
3604
3511
  return {
3605
3512
  gridRowEnd: rowEnd
3606
3513
  };
@@ -3610,7 +3517,7 @@ function responsiveGridItemRowEndStyle(props) {
3610
3517
  function responsiveGridItemColumnStyle(props) {
3611
3518
  var theme = props.theme;
3612
3519
  var media = theme.sanity.media;
3613
- return _responsive(media, props.$column, function (column) {
3520
+ return responsive(media, getResponsiveProp(props.$column), function (column) {
3614
3521
  if (typeof column === 'number') {
3615
3522
  return {
3616
3523
  gridColumn: "span " + column + " / span " + column
@@ -3626,7 +3533,7 @@ function responsiveGridItemColumnStyle(props) {
3626
3533
  function responsiveGridItemColumnStartStyle(props) {
3627
3534
  var theme = props.theme;
3628
3535
  var media = theme.sanity.media;
3629
- return _responsive(media, props.$columnStart, function (columnStart) {
3536
+ return responsive(media, getResponsiveProp(props.$columnStart), function (columnStart) {
3630
3537
  return {
3631
3538
  gridColumnStart: columnStart
3632
3539
  };
@@ -3636,7 +3543,7 @@ function responsiveGridItemColumnStartStyle(props) {
3636
3543
  function responsiveGridItemColumnEndStyle(props) {
3637
3544
  var theme = props.theme;
3638
3545
  var media = theme.sanity.media;
3639
- return _responsive(media, props.$columnEnd, function (columnEnd) {
3546
+ return responsive(media, getResponsiveProp(props.$columnEnd), function (columnEnd) {
3640
3547
  return {
3641
3548
  gridColumnEnd: columnEnd
3642
3549
  };
@@ -3644,36 +3551,36 @@ function responsiveGridItemColumnEndStyle(props) {
3644
3551
  }
3645
3552
 
3646
3553
  function responsiveInputPaddingStyle(props) {
3647
- var $fontSize = props.$fontSize,
3648
- $iconLeft = props.$iconLeft,
3554
+ var $iconLeft = props.$iconLeft,
3649
3555
  $iconRight = props.$iconRight,
3650
- $padding = props.$padding,
3651
- $space = props.$space,
3652
3556
  theme = props.theme;
3653
3557
  var _theme$sanity = theme.sanity,
3654
3558
  fonts = _theme$sanity.fonts,
3655
3559
  media = _theme$sanity.media,
3656
3560
  spaceScale = _theme$sanity.space;
3657
- var len = Math.max($padding.length, $space.length, $fontSize.length);
3561
+ var padding = getResponsiveProp(props.$padding, [0]);
3562
+ var space = getResponsiveProp(props.$space, [0]);
3563
+ var size = getResponsiveProp(props.$fontSize, [0]);
3564
+ var len = Math.max(padding.length, space.length, size.length);
3658
3565
  var _padding = [];
3659
3566
  var _space = [];
3660
- var _fontSize = [];
3567
+ var _size = [];
3661
3568
 
3662
3569
  for (var i = 0; i < len; i += 1) {
3663
- _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i];
3664
- _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i];
3665
- _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i];
3570
+ _padding[i] = padding[i] === undefined ? _padding[i - 1] : padding[i];
3571
+ _space[i] = space[i] === undefined ? _space[i - 1] : space[i];
3572
+ _size[i] = size[i] === undefined ? _size[i - 1] : size[i];
3666
3573
  }
3667
3574
 
3668
- return _responsive(media, _padding, function (_, i) {
3669
- var size = fonts.text.sizes[_fontSize[i]] || fonts.text.sizes[2];
3670
- var emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight;
3575
+ return responsive(media, _padding, function (_, i) {
3576
+ var fontSize = fonts.text.sizes[_size[i]] || fonts.text.sizes[2];
3577
+ var emSize = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight;
3671
3578
  var p = spaceScale[_padding[i]];
3672
3579
  var s = spaceScale[_space[i]];
3673
3580
  var styles = {
3674
- paddingTop: rem(p - size.ascenderHeight),
3581
+ paddingTop: rem(p - fontSize.ascenderHeight),
3675
3582
  paddingRight: rem(p),
3676
- paddingBottom: rem(p - size.descenderHeight),
3583
+ paddingBottom: rem(p - fontSize.descenderHeight),
3677
3584
  paddingLeft: rem(p)
3678
3585
  };
3679
3586
  if ($iconRight) styles.paddingRight = rem(p + emSize + s);
@@ -3694,19 +3601,17 @@ function textInputRootStyle() {
3694
3601
  }
3695
3602
  function textInputBaseStyle(props) {
3696
3603
  var theme = props.theme,
3697
- $scheme = props.$scheme,
3698
- $tone = props.$tone,
3699
3604
  $weight = props.$weight;
3700
3605
  var font = theme.sanity.fonts.text;
3701
3606
  var color = theme.sanity.color.input;
3702
- return 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);
3607
+ return 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);
3703
3608
  }
3704
3609
  function textInputFontSizeStyle(props) {
3705
3610
  var theme = props.theme;
3706
3611
  var _theme$sanity = theme.sanity,
3707
3612
  fonts = _theme$sanity.fonts,
3708
3613
  media = _theme$sanity.media;
3709
- return _responsive(media, props.$fontSize, function (sizeIndex) {
3614
+ return responsive(media, getResponsiveProp(props.$fontSize, [2]), function (sizeIndex) {
3710
3615
  var size = fonts.text.sizes[sizeIndex] || fonts.text.sizes[2];
3711
3616
  return {
3712
3617
  fontSize: rem(size.fontSize),
@@ -3718,14 +3623,12 @@ function textInputRepresentationStyle(props) {
3718
3623
  var $border = props.$border,
3719
3624
  $hasPrefix = props.$hasPrefix,
3720
3625
  $hasSuffix = props.$hasSuffix,
3721
- $scheme = props.$scheme,
3722
- $tone = props.$tone,
3723
3626
  theme = props.theme;
3724
3627
  var _theme$sanity2 = theme.sanity,
3725
3628
  focusRing = _theme$sanity2.focusRing,
3726
3629
  input = _theme$sanity2.input;
3727
3630
  var color = theme.sanity.color.input;
3728
- return 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({
3631
+ return 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({
3729
3632
  color: color["default"].enabled.border,
3730
3633
  width: input.border.width
3731
3634
  }) : undefined, color.invalid.enabled.bg, color.invalid.enabled.fg, $border ? focusRingBorderStyle({
@@ -3740,20 +3643,20 @@ function textInputRepresentationStyle(props) {
3740
3643
  }), color["default"].disabled.bg, color["default"].disabled.fg, $border ? focusRingBorderStyle({
3741
3644
  color: color["default"].disabled.border,
3742
3645
  width: input.border.width
3743
- }) : 'none', color["default"].readOnly.bg, color["default"].readOnly.fg, color["default"].hovered.bg, color["default"].hovered.fg, $border ? focusRingBorderStyle({
3646
+ }) : 'none', color["default"].hovered.bg, color["default"].hovered.fg, $border ? focusRingBorderStyle({
3744
3647
  color: color["default"].hovered.border,
3745
3648
  width: input.border.width
3746
- }) : 'none');
3649
+ }) : 'none', color["default"].readOnly.bg, color["default"].readOnly.fg);
3747
3650
  }
3748
3651
 
3749
3652
  function responsiveMarginStyle(props) {
3750
3653
  var theme = props.theme;
3751
- 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);
3654
+ 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);
3752
3655
  }
3753
3656
 
3754
3657
  function responsivePaddingStyle(props) {
3755
3658
  var theme = props.theme;
3756
- 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);
3659
+ 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);
3757
3660
  }
3758
3661
 
3759
3662
  function responsiveRadiusStyle(props) {
@@ -3761,7 +3664,7 @@ function responsiveRadiusStyle(props) {
3761
3664
  var _theme$sanity = theme.sanity,
3762
3665
  media = _theme$sanity.media,
3763
3666
  radius = _theme$sanity.radius;
3764
- return _responsive(media, props.$radius, function (radiusIndex) {
3667
+ return responsive(media, getResponsiveProp(props.$radius), function (radiusIndex) {
3765
3668
  return {
3766
3669
  borderRadius: rem(radius[radiusIndex])
3767
3670
  };
@@ -3788,7 +3691,7 @@ function responsiveShadowStyle(props) {
3788
3691
  var _theme$sanity = theme.sanity,
3789
3692
  media = _theme$sanity.media,
3790
3693
  shadows = _theme$sanity.shadows;
3791
- return _responsive(media, props.$shadow, function (shadow) {
3694
+ return responsive(media, getResponsiveProp(props.$shadow), function (shadow) {
3792
3695
  return shadowStyle(shadows[shadow]);
3793
3696
  });
3794
3697
  }
@@ -3802,7 +3705,7 @@ function textBaseStyle(props) {
3802
3705
  return 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 && css(_templateObject2$m || (_templateObject2$m = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && css(_templateObject3$d || (_templateObject3$d = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), theme.sanity.fonts.code.family, weights.bold);
3803
3706
  }
3804
3707
 
3805
- var _excluded$G = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
3708
+ var _excluded$H = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
3806
3709
 
3807
3710
  var _templateObject$B;
3808
3711
  var Root$E = styled.div(responsiveTextFont, responsiveTextAlignStyle, textBaseStyle);
@@ -3822,7 +3725,7 @@ var Text = /*#__PURE__*/forwardRef(function Text(props, ref) {
3822
3725
  size = _props$size === void 0 ? 2 : _props$size,
3823
3726
  textOverflow = props.textOverflow,
3824
3727
  weight = props.weight,
3825
- restProps = _objectWithoutPropertiesLoose(props, _excluded$G);
3728
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$H);
3826
3729
 
3827
3730
  var children = childrenProp;
3828
3731
 
@@ -3834,10 +3737,10 @@ var Text = /*#__PURE__*/forwardRef(function Text(props, ref) {
3834
3737
  "data-ui": "Text"
3835
3738
  }, restProps, {
3836
3739
  "$accent": accent,
3837
- "$align": useArrayProp(align),
3740
+ "$align": align,
3838
3741
  "$muted": muted,
3839
3742
  ref: ref,
3840
- "$size": useArrayProp(size),
3743
+ "$size": size,
3841
3744
  "$weight": weight
3842
3745
  }), /*#__PURE__*/React.createElement("span", null, children));
3843
3746
  });
@@ -3933,7 +3836,7 @@ function responsiveAvatarSizeStyle(props) {
3933
3836
  var _theme$sanity = theme.sanity,
3934
3837
  avatar = _theme$sanity.avatar,
3935
3838
  media = _theme$sanity.media;
3936
- return _responsive(media, props.$size, function (size) {
3839
+ return responsive(media, props.$size, function (size) {
3937
3840
  var avatarSize = avatar.sizes[size] || avatar.sizes[0];
3938
3841
  return {
3939
3842
  width: rem(avatarSize.size),
@@ -3982,7 +3885,7 @@ function avatarStrokeStyle() {
3982
3885
  };
3983
3886
  }
3984
3887
 
3985
- var _excluded$F = ["as", "color", "src", "title", "initials", "onImageLoadError", "arrowPosition", "animateArrowFrom", "status", "size"];
3888
+ var _excluded$G = ["as", "color", "src", "title", "initials", "onImageLoadError", "arrowPosition", "animateArrowFrom", "status", "size"];
3986
3889
  var Root$D = styled.div(responsiveAvatarSizeStyle, avatarStyle.root);
3987
3890
  var Arrow = styled.div(avatarStyle.arrow);
3988
3891
  var BgStroke = styled.ellipse(avatarStyle.bgStroke);
@@ -4004,12 +3907,11 @@ var Avatar = /*#__PURE__*/forwardRef(function Avatar(props, ref) {
4004
3907
  animateArrowFrom = props.animateArrowFrom,
4005
3908
  _props$status = props.status,
4006
3909
  status = _props$status === void 0 ? 'online' : _props$status,
4007
- _props$size = props.size,
4008
- sizeProp = _props$size === void 0 ? 0 : _props$size,
4009
- restProps = _objectWithoutPropertiesLoose(props, _excluded$F);
3910
+ sizeProp = props.size,
3911
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$G);
4010
3912
 
4011
3913
  var as = ReactIs.isValidElementType(asProp) ? asProp : 'div';
4012
- var size = useArrayProp(sizeProp);
3914
+ var size = useResponsiveProp(sizeProp, [0]);
4013
3915
  var theme = useTheme();
4014
3916
  var color = theme.sanity.color.spot[colorKey] || theme.sanity.color.spot.gray; // @todo: remove this
4015
3917
 
@@ -4049,11 +3951,6 @@ var Avatar = /*#__PURE__*/forwardRef(function Avatar(props, ref) {
4049
3951
  onImageLoadError(new Error('Avatar: the image failed to load'));
4050
3952
  }
4051
3953
  }, [onImageLoadError]);
4052
- var initialsSize = useMemo(function () {
4053
- return size.map(function (s) {
4054
- return s === 0 ? 0 : s + 1;
4055
- });
4056
- }, [size]);
4057
3954
  return /*#__PURE__*/React.createElement(Root$D, _extends({
4058
3955
  as: as,
4059
3956
  "data-as": typeof as === 'string' ? as : undefined,
@@ -4107,18 +4004,20 @@ var Avatar = /*#__PURE__*/forwardRef(function Avatar(props, ref) {
4107
4004
  vectorEffect: "non-scaling-stroke"
4108
4005
  })), (imageFailed || !src) && initials && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Initials, null, /*#__PURE__*/React.createElement(Text, {
4109
4006
  as: "span",
4110
- size: initialsSize
4007
+ size: size.map(function (s) {
4008
+ return s === 0 ? 0 : s + 1;
4009
+ })
4111
4010
  }, /*#__PURE__*/React.createElement("strong", null, initials)))));
4112
4011
  });
4113
4012
 
4114
4013
  var _templateObject$A;
4115
4014
 
4116
- function _responsiveAvatarCounterSizeStyle(props) {
4015
+ function responsiveAvatarCounterSizeStyle(props) {
4117
4016
  var theme = props.theme;
4118
4017
  var _theme$sanity = theme.sanity,
4119
4018
  avatar = _theme$sanity.avatar,
4120
4019
  media = _theme$sanity.media;
4121
- return _responsive(media, props.$size, function (size) {
4020
+ return responsive(media, props.$size, function (size) {
4122
4021
  var avatarSize = avatar.sizes[size];
4123
4022
  if (!avatarSize) return EMPTY_RECORD;
4124
4023
  return {
@@ -4129,12 +4028,12 @@ function _responsiveAvatarCounterSizeStyle(props) {
4129
4028
  });
4130
4029
  }
4131
4030
 
4132
- function _avatarCounterBaseStyle(props) {
4031
+ function avatarCounterBaseStyle(props) {
4133
4032
  var theme = props.theme;
4134
4033
  return 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]));
4135
4034
  }
4136
4035
 
4137
- var Root$C = styled.div(_responsiveAvatarCounterSizeStyle, _avatarCounterBaseStyle);
4036
+ var Root$C = styled.div(responsiveAvatarCounterSizeStyle, avatarCounterBaseStyle);
4138
4037
  /**
4139
4038
  * @public
4140
4039
  */
@@ -4143,19 +4042,15 @@ var AvatarCounter = /*#__PURE__*/forwardRef(function AvatarCounter(props, ref) {
4143
4042
  var count = props.count,
4144
4043
  _props$size = props.size,
4145
4044
  sizeProp = _props$size === void 0 ? 0 : _props$size;
4146
- var size = useArrayProp(sizeProp);
4147
- var counterSize = useMemo(function () {
4148
- return size.map(function (s) {
4149
- return s === 0 ? 0 : s + 1;
4150
- });
4151
- }, [size]);
4045
+ var size = useResponsiveProp(sizeProp, [0]);
4152
4046
  return /*#__PURE__*/React.createElement(Root$C, {
4153
4047
  "$size": size,
4154
- "data-ui": "AvatarCounter",
4155
4048
  ref: ref
4156
4049
  }, /*#__PURE__*/React.createElement(Text, {
4157
4050
  as: "span",
4158
- size: counterSize
4051
+ size: size.map(function (s) {
4052
+ return s === 0 ? 0 : s + 1;
4053
+ })
4159
4054
  }, /*#__PURE__*/React.createElement("strong", null, count)));
4160
4055
  });
4161
4056
 
@@ -4166,7 +4061,7 @@ function childrenToElementArray(children) {
4166
4061
  });
4167
4062
  }
4168
4063
 
4169
- var _excluded$E = ["children", "maxLength", "size"];
4064
+ var _excluded$F = ["children", "maxLength", "size", "tone"];
4170
4065
 
4171
4066
  var _templateObject$z;
4172
4067
  var BASE_STYLES = 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"])));
@@ -4180,7 +4075,7 @@ function responsiveAvatarStackSizeStyle(props) {
4180
4075
  var _theme$sanity = theme.sanity,
4181
4076
  avatar = _theme$sanity.avatar,
4182
4077
  media = _theme$sanity.media;
4183
- return _responsive(media, props.$size, function (size) {
4078
+ return responsive(media, getResponsiveProp(props.size), function (size) {
4184
4079
  var avatarSize = avatar.sizes[size];
4185
4080
  if (!avatarSize) return EMPTY_RECORD;
4186
4081
  return {
@@ -4201,14 +4096,13 @@ var AvatarStack = /*#__PURE__*/forwardRef(function AvatarStack(props, ref) {
4201
4096
  _props$maxLength = props.maxLength,
4202
4097
  maxLengthProp = _props$maxLength === void 0 ? 4 : _props$maxLength,
4203
4098
  _props$size = props.size,
4204
- sizeProp = _props$size === void 0 ? 0 : _props$size,
4205
- restProps = _objectWithoutPropertiesLoose(props, _excluded$E);
4099
+ size = _props$size === void 0 ? 0 : _props$size,
4100
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$F);
4206
4101
 
4102
+ var maxLength = Math.max(maxLengthProp, 0);
4207
4103
  var children = childrenToElementArray(childrenProp).filter(function (child) {
4208
4104
  return typeof child !== 'string';
4209
4105
  });
4210
- var maxLength = Math.max(maxLengthProp, 0);
4211
- var size = useArrayProp(sizeProp);
4212
4106
  var len = children.length;
4213
4107
  var visibleCount = maxLength - 1;
4214
4108
  var extraCount = len - visibleCount;
@@ -4217,7 +4111,7 @@ var AvatarStack = /*#__PURE__*/forwardRef(function AvatarStack(props, ref) {
4217
4111
  "data-ui": "AvatarStack"
4218
4112
  }, restProps, {
4219
4113
  ref: ref,
4220
- "$size": size
4114
+ size: size
4221
4115
  }), len === 0 && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(AvatarCounter, {
4222
4116
  count: len
4223
4117
  })), len !== 0 && extraCount > 1 && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(AvatarCounter, {
@@ -4232,7 +4126,7 @@ var AvatarStack = /*#__PURE__*/forwardRef(function AvatarStack(props, ref) {
4232
4126
  }));
4233
4127
  });
4234
4128
 
4235
- 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"];
4129
+ 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"];
4236
4130
  var Root$A = styled.div(boxStyle, flexItemStyle, responsiveBoxStyle, responsiveGridItemStyle, responsiveMarginStyle, responsivePaddingStyle);
4237
4131
  /**
4238
4132
  * @public
@@ -4269,37 +4163,37 @@ var Box = /*#__PURE__*/forwardRef(function Box(props, ref) {
4269
4163
  rowStart = props.rowStart,
4270
4164
  rowEnd = props.rowEnd,
4271
4165
  sizing = props.sizing,
4272
- restProps = _objectWithoutPropertiesLoose(props, _excluded$D);
4166
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$E);
4273
4167
 
4274
4168
  return /*#__PURE__*/React.createElement(Root$A, _extends({
4275
4169
  "data-as": typeof asProp === 'string' ? asProp : undefined,
4276
4170
  "data-ui": "Box"
4277
4171
  }, restProps, {
4278
- "$column": useArrayProp(column),
4279
- "$columnStart": useArrayProp(columnStart),
4280
- "$columnEnd": useArrayProp(columnEnd),
4281
- "$display": useArrayProp(display),
4282
- "$flex": useArrayProp(flex),
4283
- "$height": useArrayProp(height),
4284
- "$margin": useArrayProp(margin),
4285
- "$marginX": useArrayProp(marginX),
4286
- "$marginY": useArrayProp(marginY),
4287
- "$marginTop": useArrayProp(marginTop),
4288
- "$marginRight": useArrayProp(marginRight),
4289
- "$marginBottom": useArrayProp(marginBottom),
4290
- "$marginLeft": useArrayProp(marginLeft),
4291
- "$overflow": useArrayProp(overflow),
4292
- "$padding": useArrayProp(padding),
4293
- "$paddingX": useArrayProp(paddingX),
4294
- "$paddingY": useArrayProp(paddingY),
4295
- "$paddingTop": useArrayProp(paddingTop),
4296
- "$paddingRight": useArrayProp(paddingRight),
4297
- "$paddingBottom": useArrayProp(paddingBottom),
4298
- "$paddingLeft": useArrayProp(paddingLeft),
4299
- "$row": useArrayProp(row),
4300
- "$rowStart": useArrayProp(rowStart),
4301
- "$rowEnd": useArrayProp(rowEnd),
4302
- "$sizing": useArrayProp(sizing),
4172
+ "$column": column,
4173
+ "$columnStart": columnStart,
4174
+ "$columnEnd": columnEnd,
4175
+ "$display": display,
4176
+ "$flex": flex,
4177
+ "$height": height,
4178
+ "$margin": margin,
4179
+ "$marginX": marginX,
4180
+ "$marginY": marginY,
4181
+ "$marginTop": marginTop,
4182
+ "$marginRight": marginRight,
4183
+ "$marginBottom": marginBottom,
4184
+ "$marginLeft": marginLeft,
4185
+ "$overflow": overflow,
4186
+ "$padding": padding,
4187
+ "$paddingX": paddingX,
4188
+ "$paddingY": paddingY,
4189
+ "$paddingTop": paddingTop,
4190
+ "$paddingRight": paddingRight,
4191
+ "$paddingBottom": paddingBottom,
4192
+ "$paddingLeft": paddingLeft,
4193
+ "$row": row,
4194
+ "$rowStart": rowStart,
4195
+ "$rowEnd": rowEnd,
4196
+ "$sizing": sizing,
4303
4197
  as: asProp,
4304
4198
  ref: ref
4305
4199
  }), props.children);
@@ -4314,7 +4208,7 @@ function labelBaseStyle(props) {
4314
4208
  return 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 && css(_templateObject2$l || (_templateObject2$l = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && css(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), fonts.code.family);
4315
4209
  }
4316
4210
 
4317
- var _excluded$C = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
4211
+ var _excluded$D = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
4318
4212
 
4319
4213
  var _templateObject$x;
4320
4214
  var Root$z = styled.div(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle);
@@ -4333,7 +4227,7 @@ var Label = /*#__PURE__*/forwardRef(function Label(props, ref) {
4333
4227
  size = _props$size === void 0 ? 2 : _props$size,
4334
4228
  textOverflow = props.textOverflow,
4335
4229
  weight = props.weight,
4336
- restProps = _objectWithoutPropertiesLoose(props, _excluded$C);
4230
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$D);
4337
4231
 
4338
4232
  var children = childrenProp;
4339
4233
 
@@ -4347,9 +4241,9 @@ var Label = /*#__PURE__*/forwardRef(function Label(props, ref) {
4347
4241
  "data-ui": "Label"
4348
4242
  }, restProps, {
4349
4243
  "$accent": accent,
4350
- "$align": useArrayProp(align),
4244
+ "$align": align,
4351
4245
  "$muted": muted,
4352
- "$size": useArrayProp(size),
4246
+ "$size": size,
4353
4247
  "$weight": weight,
4354
4248
  ref: ref
4355
4249
  }), children);
@@ -4372,7 +4266,7 @@ function badgeStyle(props) {
4372
4266
  };
4373
4267
  }
4374
4268
 
4375
- var _excluded$B = ["children", "fontSize", "mode", "padding", "radius", "tone"];
4269
+ var _excluded$C = ["children", "fontSize", "mode", "padding", "radius", "tone"];
4376
4270
  var Root$y = styled(Box)(responsiveRadiusStyle, badgeStyle);
4377
4271
  /**
4378
4272
  * @public
@@ -4389,22 +4283,22 @@ var Badge = /*#__PURE__*/forwardRef(function Badge(props, ref) {
4389
4283
  radius = _props$radius === void 0 ? 2 : _props$radius,
4390
4284
  _props$tone = props.tone,
4391
4285
  tone = _props$tone === void 0 ? 'default' : _props$tone,
4392
- restProps = _objectWithoutPropertiesLoose(props, _excluded$B);
4286
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$C);
4393
4287
 
4394
4288
  return /*#__PURE__*/React.createElement(Root$y, _extends({
4395
4289
  "data-ui": "Badge"
4396
4290
  }, restProps, {
4397
4291
  "$mode": mode,
4398
4292
  "$tone": tone,
4399
- "$radius": useArrayProp(radius),
4400
- padding: useArrayProp(padding),
4293
+ "$radius": radius,
4294
+ padding: padding,
4401
4295
  ref: ref
4402
4296
  }), /*#__PURE__*/React.createElement(Label, {
4403
4297
  size: fontSize
4404
4298
  }, children));
4405
4299
  });
4406
4300
 
4407
- var _excluded$A = ["align", "as", "direction", "gap", "justify", "wrap"];
4301
+ var _excluded$B = ["align", "as", "direction", "gap", "justify", "wrap"];
4408
4302
  var Root$x = styled(Box)(flexItemStyle, responsiveFlexStyle);
4409
4303
  /**
4410
4304
  * @public
@@ -4418,32 +4312,72 @@ var Flex = /*#__PURE__*/forwardRef(function Flex(props, ref) {
4418
4312
  gap = props.gap,
4419
4313
  justify = props.justify,
4420
4314
  wrap = props.wrap,
4421
- restProps = _objectWithoutPropertiesLoose(props, _excluded$A);
4315
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$B);
4422
4316
 
4423
4317
  return /*#__PURE__*/React.createElement(Root$x, _extends({
4424
4318
  "data-ui": "Flex"
4425
4319
  }, restProps, {
4426
- "$align": useArrayProp(align),
4427
- "$direction": useArrayProp(direction),
4428
- "$gap": useArrayProp(gap),
4429
- "$justify": useArrayProp(justify),
4430
- "$wrap": useArrayProp(wrap),
4320
+ "$align": align,
4321
+ "$direction": direction,
4322
+ "$gap": gap,
4323
+ "$justify": justify,
4324
+ "$wrap": wrap,
4431
4325
  forwardedAs: as,
4432
4326
  ref: ref
4433
4327
  }));
4434
4328
  });
4435
4329
 
4436
4330
  var _templateObject$w, _templateObject2$k;
4437
- var rotate$1 = keyframes(_templateObject$w || (_templateObject$w = _taggedTemplateLiteralLoose(["\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n"])));
4438
- var Root$w = styled(Text)(_templateObject2$k || (_templateObject2$k = _taggedTemplateLiteralLoose(["\n & > span > svg {\n animation: ", " 500ms linear infinite;\n }\n"])), rotate$1);
4331
+ var rotate$1 = keyframes(_templateObject$w || (_templateObject$w = _taggedTemplateLiteralLoose(["\nfrom {\n transform: rotate(0deg);\n}\n\nto {\n transform: rotate(360deg);\n}\n"])));
4332
+ function spinnerStyle(props) {
4333
+ var $muted = props.$muted;
4334
+ return 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)');
4335
+ }
4336
+ function spinnerSizeStyle(props) {
4337
+ var $size = props.$size;
4338
+ var _props$theme$sanity = props.theme.sanity,
4339
+ fonts = _props$theme$sanity.fonts,
4340
+ media = _props$theme$sanity.media;
4341
+ return responsive(media, $size, function (size) {
4342
+ var _fonts$text$sizes$siz = fonts.text.sizes[size],
4343
+ ascenderHeight = _fonts$text$sizes$siz.ascenderHeight,
4344
+ descenderHeight = _fonts$text$sizes$siz.descenderHeight,
4345
+ lineHeight = _fonts$text$sizes$siz.lineHeight,
4346
+ iconSize = _fonts$text$sizes$siz.iconSize;
4347
+ var capHeight = lineHeight - ascenderHeight - descenderHeight;
4348
+ return {
4349
+ width: rem(capHeight),
4350
+ height: rem(capHeight),
4351
+ '& > svg': {
4352
+ display: 'block',
4353
+ width: rem(iconSize),
4354
+ height: rem(iconSize),
4355
+ margin: (capHeight - iconSize) / 2
4356
+ }
4357
+ };
4358
+ });
4359
+ }
4360
+
4361
+ var _excluded$A = ["muted", "size"];
4362
+ var Root$w = styled.div(spinnerStyle, spinnerSizeStyle);
4439
4363
  /**
4440
4364
  * @public
4441
4365
  */
4442
4366
 
4443
4367
  var Spinner = /*#__PURE__*/forwardRef(function Spinner(props, ref) {
4368
+ var muted = props.muted,
4369
+ _props$size = props.size,
4370
+ size = _props$size === void 0 ? 2 : _props$size,
4371
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$A);
4372
+
4373
+ var $size = useMemo(function () {
4374
+ return Array.isArray(size) ? size : [size];
4375
+ }, [size]);
4444
4376
  return /*#__PURE__*/React.createElement(Root$w, _extends({
4445
4377
  "data-ui": "Spinner"
4446
- }, props, {
4378
+ }, restProps, {
4379
+ "$muted": muted,
4380
+ "$size": $size,
4447
4381
  ref: ref
4448
4382
  }), /*#__PURE__*/React.createElement(SpinnerIcon, null));
4449
4383
  });
@@ -4556,23 +4490,23 @@ var Button = /*#__PURE__*/forwardRef(function Button(props, ref) {
4556
4490
  icon = props.icon,
4557
4491
  iconRight = props.iconRight,
4558
4492
  _props$justify = props.justify,
4559
- justifyProp = _props$justify === void 0 ? 'center' : _props$justify,
4493
+ justify = _props$justify === void 0 ? 'center' : _props$justify,
4560
4494
  loading = props.loading,
4561
4495
  _props$mode = props.mode,
4562
4496
  mode = _props$mode === void 0 ? 'default' : _props$mode,
4563
4497
  _props$padding = props.padding,
4564
- paddingProp = _props$padding === void 0 ? 3 : _props$padding,
4565
- paddingXProp = props.paddingX,
4566
- paddingYProp = props.paddingY,
4567
- paddingTopProp = props.paddingTop,
4568
- paddingBottomProp = props.paddingBottom,
4569
- paddingLeftProp = props.paddingLeft,
4570
- paddingRightProp = props.paddingRight,
4498
+ padding = _props$padding === void 0 ? 3 : _props$padding,
4499
+ paddingX = props.paddingX,
4500
+ paddingY = props.paddingY,
4501
+ paddingTop = props.paddingTop,
4502
+ paddingBottom = props.paddingBottom,
4503
+ paddingLeft = props.paddingLeft,
4504
+ paddingRight = props.paddingRight,
4571
4505
  _props$radius = props.radius,
4572
- radiusProp = _props$radius === void 0 ? 2 : _props$radius,
4506
+ radius = _props$radius === void 0 ? 2 : _props$radius,
4573
4507
  selected = props.selected,
4574
4508
  _props$space = props.space,
4575
- spaceProp = _props$space === void 0 ? 3 : _props$space,
4509
+ space = _props$space === void 0 ? 3 : _props$space,
4576
4510
  text = props.text,
4577
4511
  textAlign = props.textAlign,
4578
4512
  _props$tone = props.tone,
@@ -4581,16 +4515,6 @@ var Button = /*#__PURE__*/forwardRef(function Button(props, ref) {
4581
4515
  type = _props$type === void 0 ? 'button' : _props$type,
4582
4516
  restProps = _objectWithoutPropertiesLoose(props, _excluded$z);
4583
4517
 
4584
- var justify = useArrayProp(justifyProp);
4585
- var padding = useArrayProp(paddingProp);
4586
- var paddingX = useArrayProp(paddingXProp);
4587
- var paddingY = useArrayProp(paddingYProp);
4588
- var paddingTop = useArrayProp(paddingTopProp);
4589
- var paddingBottom = useArrayProp(paddingBottomProp);
4590
- var paddingLeft = useArrayProp(paddingLeftProp);
4591
- var paddingRight = useArrayProp(paddingRightProp);
4592
- var radius = useArrayProp(radiusProp);
4593
- var space = useArrayProp(spaceProp);
4594
4518
  var theme = useTheme();
4595
4519
  var boxProps = useMemo(function () {
4596
4520
  return {
@@ -4712,15 +4636,15 @@ var Card = /*#__PURE__*/forwardRef(function Card(props, ref) {
4712
4636
  "data-ui": "Card",
4713
4637
  "data-tone": tone
4714
4638
  }, restProps, {
4715
- "$border": useArrayProp(border),
4716
- "$borderTop": useArrayProp(borderTop),
4717
- "$borderRight": useArrayProp(borderRight),
4718
- "$borderBottom": useArrayProp(borderBottom),
4719
- "$borderLeft": useArrayProp(borderLeft),
4639
+ "$border": border,
4640
+ "$borderTop": borderTop,
4641
+ "$borderRight": borderRight,
4642
+ "$borderBottom": borderBottom,
4643
+ "$borderLeft": borderLeft,
4720
4644
  "$checkered": checkered,
4721
4645
  "$focusRing": focusRing,
4722
- "$radius": useArrayProp(radius),
4723
- "$shadow": useArrayProp(shadow),
4646
+ "$radius": radius,
4647
+ "$shadow": shadow,
4724
4648
  "$tone": tone,
4725
4649
  "data-checkered": checkered ? '' : undefined,
4726
4650
  "data-pressed": pressed ? '' : undefined,
@@ -4943,7 +4867,7 @@ var Code = /*#__PURE__*/forwardRef(function Code(props, ref) {
4943
4867
  return /*#__PURE__*/React.createElement(Root$s, _extends({
4944
4868
  "data-ui": "Code"
4945
4869
  }, restProps, {
4946
- "$size": useArrayProp(size),
4870
+ "$size": size,
4947
4871
  "$weight": weight,
4948
4872
  ref: ref
4949
4873
  }), !(language && registered) && /*#__PURE__*/React.createElement("code", null, children), language && registered && /*#__PURE__*/React.createElement(Refractor, {
@@ -4965,7 +4889,7 @@ function responsiveContainerWidthStyle(props) {
4965
4889
  var _theme$sanity = theme.sanity,
4966
4890
  container = _theme$sanity.container,
4967
4891
  media = _theme$sanity.media;
4968
- return _responsive(media, props.$width, function (val) {
4892
+ return responsive(media, getResponsiveProp(props.$width), function (val) {
4969
4893
  return {
4970
4894
  maxWidth: val === 'auto' ? 'none' : rem(container[val])
4971
4895
  };
@@ -4987,7 +4911,7 @@ var Container = /*#__PURE__*/forwardRef(function Container(props, ref) {
4987
4911
  return /*#__PURE__*/React.createElement(Root$r, _extends({
4988
4912
  "data-ui": "Container"
4989
4913
  }, restProps, {
4990
- "$width": useArrayProp(width),
4914
+ "$width": width,
4991
4915
  forwardedAs: as,
4992
4916
  ref: ref
4993
4917
  }));
@@ -5016,14 +4940,14 @@ var Grid = /*#__PURE__*/forwardRef(function Grid(props, ref) {
5016
4940
  "data-as": typeof as === 'string' ? as : undefined,
5017
4941
  "data-ui": "Grid"
5018
4942
  }, restProps, {
5019
- "$autoRows": useArrayProp(autoRows),
5020
- "$autoCols": useArrayProp(autoCols),
5021
- "$autoFlow": useArrayProp(autoFlow),
5022
- "$columns": useArrayProp(columns),
5023
- "$gap": useArrayProp(gap),
5024
- "$gapX": useArrayProp(gapX),
5025
- "$gapY": useArrayProp(gapY),
5026
- "$rows": useArrayProp(rows),
4943
+ "$autoRows": autoRows,
4944
+ "$autoCols": autoCols,
4945
+ "$autoFlow": autoFlow,
4946
+ "$columns": columns,
4947
+ "$gap": gap,
4948
+ "$gapX": gapX,
4949
+ "$gapY": gapY,
4950
+ "$rows": rows,
5027
4951
  forwardedAs: as,
5028
4952
  ref: ref
5029
4953
  }), children);
@@ -5069,9 +4993,9 @@ var Heading = /*#__PURE__*/forwardRef(function Heading(props, ref) {
5069
4993
  "data-ui": "Heading"
5070
4994
  }, restProps, {
5071
4995
  "$accent": accent,
5072
- "$align": useArrayProp(align),
4996
+ "$align": align,
5073
4997
  "$muted": muted,
5074
- "$size": useArrayProp(size),
4998
+ "$size": size,
5075
4999
  "$weight": weight,
5076
5000
  ref: ref
5077
5001
  }), /*#__PURE__*/React.createElement("span", null, children));
@@ -5091,7 +5015,7 @@ function inlineBaseStyle() {
5091
5015
  }
5092
5016
  function inlineSpaceStyle(props) {
5093
5017
  var theme = props.theme;
5094
- return _responsive(theme.sanity.media, props.$space, function (spaceIndex) {
5018
+ return responsive(theme.sanity.media, getResponsiveProp(props.$space), function (spaceIndex) {
5095
5019
  var space = rem(theme.sanity.space[spaceIndex]);
5096
5020
  return {
5097
5021
  margin: "-" + space + " 0 0 -" + space,
@@ -5114,20 +5038,18 @@ var Inline = /*#__PURE__*/forwardRef(function Inline(props, ref) {
5114
5038
  space = props.space,
5115
5039
  restProps = _objectWithoutPropertiesLoose(props, _excluded$s);
5116
5040
 
5117
- var children = useMemo(function () {
5118
- return childrenToElementArray(childrenProp).filter(Boolean).map(function (child, idx) {
5119
- return /*#__PURE__*/React.createElement("div", {
5120
- key: idx
5121
- }, child);
5122
- });
5123
- }, [childrenProp]);
5041
+ var children = childrenToElementArray(childrenProp).filter(Boolean);
5124
5042
  return /*#__PURE__*/React.createElement(Root$o, _extends({
5125
5043
  "data-ui": "Inline"
5126
5044
  }, restProps, {
5127
- "$space": useArrayProp(space),
5045
+ "$space": space,
5128
5046
  forwardedAs: as,
5129
5047
  ref: ref
5130
- }), children);
5048
+ }), children.map(function (child, idx) {
5049
+ return /*#__PURE__*/React.createElement("div", {
5050
+ key: idx
5051
+ }, child);
5052
+ }));
5131
5053
  });
5132
5054
 
5133
5055
  var _excluded$r = ["children", "fontSize", "padding", "radius"];
@@ -5156,7 +5078,7 @@ var KBD = /*#__PURE__*/forwardRef(function KBD(props, ref) {
5156
5078
  return /*#__PURE__*/React.createElement(Root$n, _extends({
5157
5079
  "data-ui": "KBD"
5158
5080
  }, restProps, {
5159
- "$radius": useArrayProp(radius),
5081
+ "$radius": radius,
5160
5082
  ref: ref
5161
5083
  }), /*#__PURE__*/React.createElement(Box, {
5162
5084
  as: "span",
@@ -5210,6 +5132,12 @@ function useBoundaryElement() {
5210
5132
  return value || DEFAULT_VALUE;
5211
5133
  }
5212
5134
 
5135
+ /**
5136
+ * @internal
5137
+ */
5138
+
5139
+ var RO = typeof window !== 'undefined' && window.ResizeObserver ? window.ResizeObserver : ResizeObserver$1;
5140
+
5213
5141
  function findMaxBreakpoints(media, width) {
5214
5142
  var ret = [];
5215
5143
 
@@ -5251,18 +5179,31 @@ var ElementQuery = /*#__PURE__*/forwardRef(function ElementQuery(props, ref) {
5251
5179
  media = _props$media === void 0 ? theme.sanity.media : _props$media,
5252
5180
  restProps = _objectWithoutPropertiesLoose(props, _excluded$q);
5253
5181
 
5182
+ var _useState = useState(function () {
5183
+ return window.innerWidth;
5184
+ }),
5185
+ width = _useState[0],
5186
+ setWidth = _useState[1];
5187
+
5254
5188
  var forwardedRef = useForwardedRef(ref);
5255
5189
 
5256
- var _useState = useState(null),
5257
- element = _useState[0],
5258
- setElement = _useState[1];
5190
+ var _useState2 = useState(null),
5191
+ element = _useState2[0],
5192
+ setElement = _useState2[1];
5259
5193
 
5260
- var elementSize = useElementSize(element);
5261
- var width = useMemo(function () {
5262
- var _elementSize$border$w;
5194
+ useEffect(function () {
5195
+ if (!element) return;
5196
+
5197
+ var handleResizeEntries = function handleResizeEntries(entries) {
5198
+ setWidth(entries[0].contentRect.width);
5199
+ };
5263
5200
 
5264
- return (_elementSize$border$w = elementSize == null ? void 0 : elementSize.border.width) != null ? _elementSize$border$w : window.innerWidth;
5265
- }, [elementSize]);
5201
+ var ro = new RO(handleResizeEntries);
5202
+ ro.observe(element);
5203
+ return function () {
5204
+ return ro.disconnect();
5205
+ };
5206
+ }, [element]);
5266
5207
  var max = useMemo(function () {
5267
5208
  return findMaxBreakpoints(media, width);
5268
5209
  }, [media, width]);
@@ -5368,7 +5309,7 @@ function LayerProvider(props) {
5368
5309
  _props$zOffset = props.zOffset,
5369
5310
  zOffsetProp = _props$zOffset === void 0 ? 0 : _props$zOffset;
5370
5311
  var parent = useContext(LayerContext);
5371
- var zOffset = useArrayProp(zOffsetProp);
5312
+ var zOffset = useResponsiveProp(zOffsetProp);
5372
5313
  var maxMediaIndex = zOffset.length - 1;
5373
5314
  var mediaIndex = Math.min(useMediaIndex(), maxMediaIndex);
5374
5315
  var zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex];
@@ -5810,7 +5751,7 @@ var VirtualList = /*#__PURE__*/forwardRef(function VirtualList(props, ref) {
5810
5751
  scrollEl.addEventListener('scroll', _handleScroll, {
5811
5752
  passive: true
5812
5753
  });
5813
- var ro = new _ResizeObserver(function (entries) {
5754
+ var ro = new ResizeObserver(function (entries) {
5814
5755
  setScrollHeight(entries[0].contentRect.height);
5815
5756
  });
5816
5757
  ro.observe(scrollEl);
@@ -6127,7 +6068,7 @@ var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6127
6068
  _props$tone = props.tone,
6128
6069
  tone = _props$tone === void 0 ? 'inherit' : _props$tone,
6129
6070
  _props$width = props.width,
6130
- widthProp = _props$width === void 0 ? 0 : _props$width,
6071
+ width = _props$width === void 0 ? 0 : _props$width,
6131
6072
  _props$zOffset = props.zOffset,
6132
6073
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.popover.zOffset : _props$zOffset,
6133
6074
  restProps = _objectWithoutPropertiesLoose(props, _excluded$n);
@@ -6148,7 +6089,6 @@ var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6148
6089
  setArrowElement = _useState3[1];
6149
6090
 
6150
6091
  var popperReferenceElement = referenceElementProp || referenceElement;
6151
- var width = useArrayProp(matchReferenceWidth ? 'auto' : widthProp);
6152
6092
  var modifiers = usePopoverModifiers({
6153
6093
  allowedAutoPlacements: allowedAutoPlacements,
6154
6094
  arrow: arrow,
@@ -6189,21 +6129,13 @@ var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6189
6129
  var popoverStyle = useMemo(function () {
6190
6130
  return _extends({}, style, styles.popper);
6191
6131
  }, [style, styles]);
6192
- var updateTimeoutRef = useRef(null);
6193
6132
  useEffect(function () {
6194
- if (updateTimeoutRef.current) {
6195
- clearTimeout(updateTimeoutRef.current);
6196
- updateTimeoutRef.current = null;
6197
- }
6198
-
6199
- updateTimeoutRef.current = setTimeout(function () {
6200
- if (forceUpdate) {
6201
- try {
6202
- forceUpdate();
6203
- } catch (_) {// ignore caught error
6204
- }
6133
+ if (forceUpdate) {
6134
+ try {
6135
+ forceUpdate();
6136
+ } catch (_) {// ignore caught error
6205
6137
  }
6206
- }, 0);
6138
+ }
6207
6139
  }, [content, forceUpdate, open, popperReferenceElement]);
6208
6140
 
6209
6141
  if (disabled) {
@@ -6219,13 +6151,13 @@ var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6219
6151
  zOffset: zOffset
6220
6152
  }, attributes.popper), /*#__PURE__*/React.createElement(PopoverCard, {
6221
6153
  "$constrainSize": constrainSize,
6222
- "$width": width,
6223
6154
  "data-ui": "PopoverCard",
6224
6155
  padding: padding,
6225
6156
  radius: radius,
6226
6157
  scheme: scheme,
6227
6158
  shadow: shadow,
6228
- tone: tone
6159
+ tone: tone,
6160
+ width: width
6229
6161
  }, arrow && /*#__PURE__*/React.createElement(PopoverArrow, {
6230
6162
  ref: setArrowElement,
6231
6163
  style: styles.arrow
@@ -6344,7 +6276,7 @@ function inputTextSizeStyle(props) {
6344
6276
  var theme = props.theme,
6345
6277
  $fontSize = props.$fontSize;
6346
6278
  var sizes = theme.sanity.fonts.text.sizes;
6347
- return _responsive(theme.sanity.media, $fontSize, function (sizeIndex) {
6279
+ return responsive(theme.sanity.media, getResponsiveProp($fontSize), function (sizeIndex) {
6348
6280
  return textSize(sizes[sizeIndex] || sizes[2]);
6349
6281
  });
6350
6282
  }
@@ -6396,10 +6328,10 @@ var Select = /*#__PURE__*/forwardRef(function Select(props, forwardedRef) {
6396
6328
  "data-read-only": !disabled && readOnly ? '' : undefined,
6397
6329
  "data-ui": "Select"
6398
6330
  }, restProps, {
6399
- "$fontSize": useArrayProp(fontSize),
6400
- "$padding": useArrayProp(padding),
6401
- "$radius": useArrayProp(radius),
6402
- "$space": useArrayProp(space),
6331
+ "$fontSize": fontSize,
6332
+ "$padding": padding,
6333
+ "$radius": radius,
6334
+ "$space": space,
6403
6335
  disabled: disabled || readOnly,
6404
6336
  ref: ref
6405
6337
  }), children), /*#__PURE__*/React.createElement(IconBox, {
@@ -6427,7 +6359,7 @@ function responsiveStackSpaceStyle(props) {
6427
6359
  var _theme$sanity = theme.sanity,
6428
6360
  media = _theme$sanity.media,
6429
6361
  space = _theme$sanity.space;
6430
- return _responsive(media, props.$space, function (spaceIndex) {
6362
+ return responsive(media, getResponsiveProp(props.$space), function (spaceIndex) {
6431
6363
  return {
6432
6364
  gridGap: rem(space[spaceIndex])
6433
6365
  };
@@ -6449,13 +6381,13 @@ var Stack = /*#__PURE__*/forwardRef(function Stack(props, ref) {
6449
6381
  "data-as": typeof as === 'string' ? as : undefined,
6450
6382
  "data-ui": "Stack"
6451
6383
  }, restProps, {
6452
- "$space": useArrayProp(space),
6384
+ "$space": space,
6453
6385
  forwardedAs: as,
6454
6386
  ref: ref
6455
6387
  }));
6456
6388
  });
6457
6389
 
6458
- var _templateObject$g, _templateObject2$b, _templateObject3$6, _templateObject4$4, _templateObject5$3, _templateObject6$2, _templateObject7;
6390
+ var _templateObject$g, _templateObject2$b, _templateObject3$6, _templateObject4$4, _templateObject5$3, _templateObject6$1, _templateObject7;
6459
6391
  /* Root */
6460
6392
 
6461
6393
  function switchBaseStyles() {
@@ -6499,7 +6431,7 @@ function switchThumbStyles(props) {
6499
6431
  var checkedOffset = trackWidth - trackPadding * 2 - size;
6500
6432
  var indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding;
6501
6433
  var checked = $indeterminate !== true && props.$checked === true;
6502
- return 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 && css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), checkedOffset), $indeterminate && css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), indeterminateOffset));
6434
+ return 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 && css(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), checkedOffset), $indeterminate && css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), indeterminateOffset));
6503
6435
  }
6504
6436
 
6505
6437
  var _excluded$j = ["checked", "className", "disabled", "indeterminate", "readOnly", "style"];
@@ -6548,7 +6480,7 @@ var Switch = /*#__PURE__*/forwardRef(function Switch(props, forwardedRef) {
6548
6480
  })));
6549
6481
  });
6550
6482
 
6551
- var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius", "weight"];
6483
+ var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius"];
6552
6484
 
6553
6485
  var _templateObject$f;
6554
6486
  var Root$d = styled.span(textInputRootStyle);
@@ -6571,46 +6503,32 @@ var TextArea = /*#__PURE__*/forwardRef(function TextArea(props, forwardedRef) {
6571
6503
  padding = _props$padding === void 0 ? 3 : _props$padding,
6572
6504
  _props$radius = props.radius,
6573
6505
  radius = _props$radius === void 0 ? 1 : _props$radius,
6574
- weight = props.weight,
6575
6506
  restProps = _objectWithoutPropertiesLoose(props, _excluded$i);
6576
6507
 
6577
6508
  var ref = useForwardedRef(forwardedRef);
6578
- var rootTheme = useRootTheme();
6579
6509
  useCustomValidity(ref, customValidity);
6580
6510
  return /*#__PURE__*/React.createElement(Root$d, {
6581
6511
  "data-ui": "TextArea"
6582
6512
  }, /*#__PURE__*/React.createElement(InputRoot$1, null, /*#__PURE__*/React.createElement(Input$1, _extends({
6583
- "data-as": "textarea",
6584
- "data-scheme": rootTheme.scheme,
6585
- "data-tone": rootTheme.tone
6513
+ "data-as": "textarea"
6586
6514
  }, restProps, {
6587
- "$fontSize": useArrayProp(fontSize),
6588
- "$padding": useArrayProp(padding),
6589
- "$scheme": rootTheme.scheme,
6590
- "$space": useArrayProp(0),
6591
- "$tone": rootTheme.tone,
6592
- "$weight": weight,
6515
+ "$fontSize": fontSize,
6516
+ "$padding": padding,
6593
6517
  disabled: disabled,
6594
6518
  ref: ref
6595
6519
  })), /*#__PURE__*/React.createElement(Presentation$1, {
6596
6520
  "$border": border,
6597
- "$radius": useArrayProp(radius),
6598
- "$scheme": rootTheme.scheme,
6599
- "$tone": rootTheme.tone,
6600
- "data-scheme": rootTheme.scheme,
6601
- "data-tone": rootTheme.tone
6521
+ "$radius": radius
6602
6522
  })));
6603
6523
  });
6604
6524
 
6605
- var _excluded$h = ["border", "clearButton", "disabled", "fontSize", "icon", "iconRight", "onClear", "padding", "prefix", "radius", "readOnly", "space", "suffix", "customValidity", "type", "weight"];
6525
+ var _excluded$h = ["border", "clearButton", "disabled", "fontSize", "icon", "iconRight", "onClear", "padding", "prefix", "radius", "readOnly", "space", "suffix", "customValidity", "type"];
6606
6526
 
6607
- var _templateObject$e, _templateObject2$a, _templateObject3$5, _templateObject4$3, _templateObject5$2, _templateObject6$1;
6527
+ var _templateObject$e, _templateObject2$a, _templateObject3$5, _templateObject4$3, _templateObject5$2;
6608
6528
  var CLEAR_BUTTON_BOX_STYLE = {
6609
6529
  zIndex: 2
6610
6530
  };
6611
- var Root$c = styled(Card).attrs({
6612
- forwardedAs: 'span'
6613
- })(textInputRootStyle);
6531
+ var Root$c = styled.span(textInputRootStyle);
6614
6532
  var InputRoot = styled.span(_templateObject$e || (_templateObject$e = _taggedTemplateLiteralLoose(["\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n"])));
6615
6533
  var Prefix = styled(Card).attrs({
6616
6534
  forwardedAs: 'span'
@@ -6621,8 +6539,7 @@ var Suffix = styled(Card).attrs({
6621
6539
  var Input = styled.input(responsiveInputPaddingStyle, textInputBaseStyle, textInputFontSizeStyle);
6622
6540
  var Presentation = styled.span(responsiveRadiusStyle, textInputRepresentationStyle);
6623
6541
  var LeftBox = styled(Box)(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n"])));
6624
- var RightBox = styled(Box)(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n right: 0;\n"])));
6625
- var RightCard = styled(Card)(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteralLoose(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
6542
+ var RightCard = styled(Card)(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
6626
6543
  /**
6627
6544
  * @public
6628
6545
  */
@@ -6634,7 +6551,7 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6634
6551
  _props$disabled = props.disabled,
6635
6552
  disabled = _props$disabled === void 0 ? false : _props$disabled,
6636
6553
  _props$fontSize = props.fontSize,
6637
- fontSizeProp = _props$fontSize === void 0 ? 2 : _props$fontSize,
6554
+ fontSize = _props$fontSize === void 0 ? 2 : _props$fontSize,
6638
6555
  icon = props.icon,
6639
6556
  iconRight = props.iconRight,
6640
6557
  onClear = props.onClear,
@@ -6645,20 +6562,16 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6645
6562
  radiusProp = _props$radius === void 0 ? 1 : _props$radius,
6646
6563
  readOnly = props.readOnly,
6647
6564
  _props$space = props.space,
6648
- spaceProp = _props$space === void 0 ? 3 : _props$space,
6565
+ space = _props$space === void 0 ? 3 : _props$space,
6649
6566
  suffix = props.suffix,
6650
6567
  customValidity = props.customValidity,
6651
6568
  _props$type = props.type,
6652
6569
  type = _props$type === void 0 ? 'text' : _props$type,
6653
- weight = props.weight,
6654
6570
  restProps = _objectWithoutPropertiesLoose(props, _excluded$h);
6655
6571
 
6656
6572
  var ref = useForwardedRef(forwardedRef);
6657
- var rootTheme = useRootTheme();
6658
- var fontSize = useArrayProp(fontSizeProp);
6659
- var padding = useArrayProp(paddingProp);
6660
- var radius = useArrayProp(radiusProp);
6661
- var space = useArrayProp(spaceProp); // Transient properties
6573
+ var padding = useResponsiveProp(paddingProp);
6574
+ var radius = useResponsiveProp(radiusProp); // Transient properties
6662
6575
 
6663
6576
  var $hasClearButton = Boolean(clearButton);
6664
6577
  var $hasIcon = Boolean(icon);
@@ -6697,21 +6610,17 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6697
6610
  "$border": border,
6698
6611
  "$hasPrefix": $hasPrefix,
6699
6612
  "$hasSuffix": $hasSuffix,
6700
- "$radius": radius,
6701
- "$scheme": rootTheme.scheme,
6702
- "$tone": rootTheme.tone,
6703
- "data-scheme": rootTheme.scheme,
6704
- "data-tone": rootTheme.tone
6613
+ "$radius": radius
6705
6614
  }, icon && /*#__PURE__*/React.createElement(LeftBox, {
6706
6615
  padding: padding
6707
6616
  }, /*#__PURE__*/React.createElement(Text, {
6708
6617
  size: fontSize
6709
- }, /*#__PURE__*/isValidElement(icon) && icon, isValidElementType(icon) && /*#__PURE__*/createElement(icon))), !$hasClearButton && iconRight && /*#__PURE__*/React.createElement(RightBox, {
6618
+ }, /*#__PURE__*/isValidElement(icon) && icon, isValidElementType(icon) && /*#__PURE__*/createElement(icon))), !$hasClearButton && iconRight && /*#__PURE__*/React.createElement(RightCard, {
6710
6619
  padding: padding
6711
6620
  }, /*#__PURE__*/React.createElement(Text, {
6712
6621
  size: fontSize
6713
6622
  }, /*#__PURE__*/isValidElement(iconRight) && iconRight, isValidElementType(iconRight) && /*#__PURE__*/createElement(iconRight))));
6714
- }, [border, fontSize, icon, iconRight, padding, radius, rootTheme, $hasClearButton, $hasPrefix, $hasSuffix]); // Render clear button (memoized)
6623
+ }, [border, fontSize, icon, iconRight, padding, radius, $hasClearButton, $hasPrefix, $hasSuffix]); // Render clear button (memoized)
6715
6624
 
6716
6625
  var clearButtonBoxPadding = useMemo(function () {
6717
6626
  return padding.map(function (v) {
@@ -6762,21 +6671,15 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6762
6671
  }, /*#__PURE__*/React.createElement("span", null, suffix));
6763
6672
  }, [radius, suffix]);
6764
6673
  return /*#__PURE__*/React.createElement(Root$c, {
6765
- "data-ui": "TextInput",
6766
- tone: rootTheme.tone
6674
+ "data-ui": "TextInput"
6767
6675
  }, prefixNode, /*#__PURE__*/React.createElement(InputRoot, null, /*#__PURE__*/React.createElement(Input, _extends({
6768
- "data-as": "input",
6769
- "data-scheme": rootTheme.scheme,
6770
- "data-tone": rootTheme.tone
6676
+ "data-as": "input"
6771
6677
  }, restProps, {
6772
- "$fontSize": fontSize,
6773
6678
  "$iconLeft": $hasIcon,
6774
6679
  "$iconRight": $hasIconRight || $hasClearButton,
6775
6680
  "$padding": padding,
6776
- "$scheme": rootTheme.scheme,
6777
6681
  "$space": space,
6778
- "$tone": rootTheme.tone,
6779
- "$weight": weight,
6682
+ "$fontSize": fontSize,
6780
6683
  disabled: disabled,
6781
6684
  readOnly: readOnly,
6782
6685
  ref: ref,
@@ -6824,7 +6727,7 @@ var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
6824
6727
  children = props.children,
6825
6728
  content = props.content,
6826
6729
  disabled = props.disabled,
6827
- fallbackPlacementsProp = props.fallbackPlacements,
6730
+ fallbackPlacements = props.fallbackPlacements,
6828
6731
  _props$placement = props.placement,
6829
6732
  placement = _props$placement === void 0 ? 'bottom' : _props$placement,
6830
6733
  portal = props.portal,
@@ -6833,7 +6736,6 @@ var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
6833
6736
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.tooltip.zOffset : _props$zOffset,
6834
6737
  restProps = _objectWithoutPropertiesLoose(props, _excluded$g);
6835
6738
 
6836
- var fallbackPlacements = useArrayProp(fallbackPlacementsProp);
6837
6739
  var forwardedRef = useForwardedRef(ref);
6838
6740
 
6839
6741
  var _useState = useState(null),
@@ -6915,21 +6817,13 @@ var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
6915
6817
  window.removeEventListener('mousemove', handleWindowMouseMove);
6916
6818
  };
6917
6819
  }, [isOpen, referenceElement]);
6918
- var updateTimeoutRef = useRef(null);
6919
6820
  useEffect(function () {
6920
- if (updateTimeoutRef.current) {
6921
- clearTimeout(updateTimeoutRef.current);
6922
- updateTimeoutRef.current = null;
6923
- }
6924
-
6925
- updateTimeoutRef.current = setTimeout(function () {
6926
- if (forceUpdate) {
6927
- try {
6928
- forceUpdate();
6929
- } catch (_) {// ignore caught error
6930
- }
6821
+ if (forceUpdate) {
6822
+ try {
6823
+ forceUpdate();
6824
+ } catch (_) {// ignore caught error
6931
6825
  }
6932
- }, 0);
6826
+ }
6933
6827
  }, [forceUpdate, content]); // Close when `disabled` changes to `true`
6934
6828
 
6935
6829
  useEffect(function () {
@@ -7211,7 +7105,7 @@ var InnerAutocomplete = /*#__PURE__*/forwardRef(function InnerAutocomplete(props
7211
7105
  var popoverMouseWithinRef = useRef(false);
7212
7106
  var listBoxId = id + "-listbox";
7213
7107
  var options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY;
7214
- var padding = useArrayProp(paddingProp);
7108
+ var padding = useResponsiveProp(paddingProp);
7215
7109
  var currentOption = useMemo(function () {
7216
7110
  return value !== null ? options.find(function (o) {
7217
7111
  return o.value === value;
@@ -7643,11 +7537,9 @@ var Breadcrumbs = /*#__PURE__*/forwardRef(function Breadcrumbs(props, ref) {
7643
7537
  maxLength = props.maxLength,
7644
7538
  separator = props.separator,
7645
7539
  _props$space = props.space,
7646
- spaceRaw = _props$space === void 0 ? 2 : _props$space,
7540
+ space = _props$space === void 0 ? 2 : _props$space,
7647
7541
  restProps = _objectWithoutPropertiesLoose(props, _excluded$e);
7648
7542
 
7649
- var space = useArrayProp(spaceRaw);
7650
-
7651
7543
  var _useState = useState(false),
7652
7544
  open = _useState[0],
7653
7545
  setOpen = _useState[1];
@@ -7737,13 +7629,13 @@ function dialogStyle(_ref) {
7737
7629
  alignItems: 'center',
7738
7630
  justifyContent: 'center',
7739
7631
  outline: 'none',
7740
- background: color.shadow.umbra
7632
+ background: color.shadow.penumbra
7741
7633
  };
7742
7634
  }
7743
7635
  function responsiveDialogPositionStyle(props) {
7744
7636
  var theme = props.theme;
7745
7637
  var media = theme.sanity.media;
7746
- return _responsive(media, props.$position, function (position) {
7638
+ return responsive(media, getResponsiveProp(props.$position), function (position) {
7747
7639
  return {
7748
7640
  '&&': {
7749
7641
  position: position
@@ -7791,13 +7683,10 @@ var DialogCard = /*#__PURE__*/forwardRef(function DialogCard(props, ref) {
7791
7683
  id = props.id,
7792
7684
  onClickOutside = props.onClickOutside,
7793
7685
  onClose = props.onClose,
7794
- radiusProp = props.radius,
7686
+ radius = props.radius,
7795
7687
  scheme = props.scheme,
7796
- shadowProp = props.shadow,
7797
- widthProp = props.width;
7798
- var radius = useArrayProp(radiusProp);
7799
- var shadow = useArrayProp(shadowProp);
7800
- var width = useArrayProp(widthProp);
7688
+ shadow = props.shadow,
7689
+ width = props.width;
7801
7690
  var forwardedRef = useForwardedRef(ref);
7802
7691
 
7803
7692
  var _useState = useState(null),
@@ -7884,7 +7773,7 @@ var Dialog = /*#__PURE__*/forwardRef(function Dialog(props, ref) {
7884
7773
  _props$__unstable_hid = props.__unstable_hideCloseButton,
7885
7774
  hideCloseButton = _props$__unstable_hid === void 0 ? false : _props$__unstable_hid,
7886
7775
  _props$cardRadius = props.cardRadius,
7887
- cardRadiusProp = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7776
+ cardRadius = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7888
7777
  _props$cardShadow = props.cardShadow,
7889
7778
  cardShadow = _props$cardShadow === void 0 ? 4 : _props$cardShadow,
7890
7779
  children = props.children,
@@ -7895,22 +7784,17 @@ var Dialog = /*#__PURE__*/forwardRef(function Dialog(props, ref) {
7895
7784
  onClickOutside = props.onClickOutside,
7896
7785
  onClose = props.onClose,
7897
7786
  _props$padding = props.padding,
7898
- paddingProp = _props$padding === void 0 ? 4 : _props$padding,
7787
+ padding = _props$padding === void 0 ? 4 : _props$padding,
7899
7788
  portal = props.portal,
7900
7789
  _props$position = props.position,
7901
- positionProp = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7790
+ position = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7902
7791
  scheme = props.scheme,
7903
7792
  _props$width = props.width,
7904
- widthProp = _props$width === void 0 ? 0 : _props$width,
7793
+ width = _props$width === void 0 ? 0 : _props$width,
7905
7794
  _props$zOffset = props.zOffset,
7906
- zOffsetProp = _props$zOffset === void 0 ? dialog.zOffset || ((_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.dialog.zOffset) : _props$zOffset,
7795
+ zOffset = _props$zOffset === void 0 ? dialog.zOffset || ((_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.dialog.zOffset) : _props$zOffset,
7907
7796
  restProps = _objectWithoutPropertiesLoose(props, _excluded$d);
7908
7797
 
7909
- var cardRadius = useArrayProp(cardRadiusProp);
7910
- var padding = useArrayProp(paddingProp);
7911
- var position = useArrayProp(positionProp);
7912
- var width = useArrayProp(widthProp);
7913
- var zOffset = useArrayProp(zOffsetProp);
7914
7798
  var preDivRef = useRef(null);
7915
7799
  var postDivRef = useRef(null);
7916
7800
  var cardRef = useRef(null);
@@ -8005,11 +7889,9 @@ var Hotkeys = /*#__PURE__*/forwardRef(function Hotkeys(props, ref) {
8005
7889
  padding = props.padding,
8006
7890
  radius = props.radius,
8007
7891
  _props$space = props.space,
8008
- spaceProp = _props$space === void 0 ? 1 : _props$space,
7892
+ space = _props$space === void 0 ? 1 : _props$space,
8009
7893
  restProps = _objectWithoutPropertiesLoose(props, _excluded$c);
8010
7894
 
8011
- var space = useArrayProp(spaceProp);
8012
-
8013
7895
  if (!keys || keys.length === 0) {
8014
7896
  return /*#__PURE__*/React.createElement(React.Fragment, null);
8015
7897
  }
@@ -8623,7 +8505,7 @@ function selectableColorStyle(props) {
8623
8505
  * @internal
8624
8506
  */
8625
8507
 
8626
- var Selectable = styled(Box)(responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8508
+ var Selectable = styled(Box)(responsiveBorderStyle, responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8627
8509
 
8628
8510
  function useMenu() {
8629
8511
  var value = useContext(MenuContext);
@@ -8656,7 +8538,8 @@ function MenuGroup(props) {
8656
8538
  onClick = props.onClick,
8657
8539
  _props$padding = props.padding,
8658
8540
  padding = _props$padding === void 0 ? 3 : _props$padding,
8659
- popover = props.popover,
8541
+ _props$popover = props.popover,
8542
+ popover = _props$popover === void 0 ? {} : _props$popover,
8660
8543
  _props$radius = props.radius,
8661
8544
  radius = _props$radius === void 0 ? 2 : _props$radius,
8662
8545
  _props$space = props.space,
@@ -8770,7 +8653,7 @@ function MenuGroup(props) {
8770
8653
  "aria-pressed": as === 'button' ? withinMenu : undefined,
8771
8654
  "data-pressed": as !== 'button' ? withinMenu : undefined,
8772
8655
  "data-selected": !withinMenu && active ? '' : undefined,
8773
- "$radius": useArrayProp(radius),
8656
+ "$radius": radius,
8774
8657
  "$tone": tone,
8775
8658
  onClick: handleClick,
8776
8659
  onKeyDown: handleKeyDown,
@@ -8876,13 +8759,13 @@ var MenuItem = /*#__PURE__*/forwardRef(function MenuItem(props, forwardedRef) {
8876
8759
  "data-selected": active ? '' : undefined,
8877
8760
  "data-disabled": disabled ? '' : undefined,
8878
8761
  forwardedAs: as,
8879
- "$radius": useArrayProp(radius),
8880
- "$padding": useArrayProp(0),
8762
+ "$radius": radius,
8881
8763
  "$tone": tone,
8882
8764
  disabled: disabled,
8883
8765
  onClick: handleClick,
8884
8766
  onMouseEnter: onItemMouseEnter,
8885
8767
  onMouseLeave: onItemMouseLeave,
8768
+ padding: 0,
8886
8769
  ref: setRef,
8887
8770
  role: "menuitem",
8888
8771
  tabIndex: -1,
@@ -8964,7 +8847,7 @@ var Skeleton = /*#__PURE__*/forwardRef(function Skeleton(props, ref) {
8964
8847
  }, [delay]);
8965
8848
  return /*#__PURE__*/React.createElement(Root$4, _extends({}, restProps, {
8966
8849
  "$animated": animated,
8967
- "$radius": useArrayProp(radius),
8850
+ "$radius": radius,
8968
8851
  "$visible": visible,
8969
8852
  ref: ref
8970
8853
  }));
@@ -8980,15 +8863,13 @@ var Root$3 = styled(Skeleton)(function (_ref) {
8980
8863
  theme = _ref.theme;
8981
8864
  var media = theme.sanity.media;
8982
8865
  var font = theme.sanity.fonts[$style];
8983
-
8984
- var styles = _responsive(media, $size, function (sizeIndex) {
8866
+ var styles = responsive(media, $size, function (sizeIndex) {
8985
8867
  var fontSize = font.sizes[sizeIndex];
8986
8868
  var capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight;
8987
8869
  return {
8988
8870
  height: capHeight
8989
8871
  };
8990
8872
  });
8991
-
8992
8873
  return styles;
8993
8874
  });
8994
8875
  /**
@@ -9001,7 +8882,7 @@ var TextSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref) {
9001
8882
  size = _props$size === void 0 ? 2 : _props$size,
9002
8883
  restProps = _objectWithoutPropertiesLoose(props, _excluded$7);
9003
8884
 
9004
- var $size = useArrayProp(size);
8885
+ var $size = useResponsiveProp(size);
9005
8886
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
9006
8887
  "$size": $size,
9007
8888
  ref: ref,
@@ -9018,7 +8899,7 @@ var LabelSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref) {
9018
8899
  size = _props$size2 === void 0 ? 2 : _props$size2,
9019
8900
  restProps = _objectWithoutPropertiesLoose(props, _excluded2);
9020
8901
 
9021
- var $size = useArrayProp(size);
8902
+ var $size = useResponsiveProp(size);
9022
8903
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
9023
8904
  "$size": $size,
9024
8905
  ref: ref,
@@ -9035,7 +8916,7 @@ var HeadingSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref)
9035
8916
  size = _props$size3 === void 0 ? 2 : _props$size3,
9036
8917
  restProps = _objectWithoutPropertiesLoose(props, _excluded3);
9037
8918
 
9038
- var $size = useArrayProp(size);
8919
+ var $size = useResponsiveProp(size);
9039
8920
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
9040
8921
  "$size": $size,
9041
8922
  ref: ref,
@@ -9052,7 +8933,7 @@ var CodeSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref) {
9052
8933
  size = _props$size4 === void 0 ? 2 : _props$size4,
9053
8934
  restProps = _objectWithoutPropertiesLoose(props, _excluded4);
9054
8935
 
9055
- var $size = useArrayProp(size);
8936
+ var $size = useResponsiveProp(size);
9056
8937
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
9057
8938
  "$size": $size,
9058
8939
  ref: ref,
@@ -9926,5 +9807,5 @@ var TreeItem = /*#__PURE__*/memo(function TreeItem(props) {
9926
9807
  }, children)));
9927
9808
  });
9928
9809
 
9929
- export { Autocomplete, Avatar, AvatarCounter, AvatarStack, Badge, BoundaryElementProvider, Box, Breadcrumbs, Button, Card, Checkbox, Code, CodeSkeleton, Container, Dialog, DialogContext, DialogProvider, ElementQuery, ErrorBoundary, Flex, Grid, Heading, HeadingSkeleton, Hotkeys, Inline, KBD, Label, LabelSkeleton, Layer, LayerProvider, Menu, MenuButton, MenuDivider, MenuGroup, MenuItem, Popover, Portal, PortalProvider, Radio, Select, Skeleton, Spinner, SrOnly, Stack, Switch, Tab, TabList, TabPanel, Text, TextArea, TextInput, TextSkeleton, ThemeColorProvider, ThemeProvider, Toast, ToastProvider, Tooltip, Tree, TreeItem, VirtualList, _ResizeObserver, _elementSizeObserver, _fillCSSObject, _getArrayProp, _getResponsiveSpace, _hasFocus, _isEnterToClickElement, _isScrollable, _raf, _raf2, _responsive, attemptFocus, createColorTheme, focusFirstDescendant, focusLastDescendant, hexToRgb, hslToRgb, isFocusable, isHTMLAnchorElement, isHTMLButtonElement, isHTMLElement, isHTMLInputElement, isHTMLSelectElement, isHTMLTextAreaElement, multiply$1 as multiply, parseColor, rem, responsiveCodeFontStyle, responsiveHeadingFont, responsiveLabelFont, responsiveTextAlignStyle, responsiveTextFont, rgbToHex, rgbToHsl, rgba, screen$1 as screen, studioTheme, useArrayProp, useBoundaryElement, useClickOutside, useCustomValidity, useDialog, useElementRect, useElementSize, useForwardedRef, useGlobalKeyDown, useLayer, useMediaIndex, usePortal, usePrefersDark, useRootTheme, useTheme, useToast, useTree };
9810
+ export { Autocomplete, Avatar, AvatarCounter, AvatarStack, Badge, BoundaryElementProvider, Box, Breadcrumbs, Button, Card, Checkbox, Code, CodeSkeleton, Container, Dialog, DialogContext, DialogProvider, ElementQuery, ErrorBoundary, Flex, Grid, Heading, HeadingSkeleton, Hotkeys, Inline, KBD, Label, LabelSkeleton, Layer, LayerProvider, Menu, MenuButton, MenuDivider, MenuGroup, MenuItem, Popover, Portal, PortalProvider, Radio, RO as ResizeObserver, Select, Skeleton, Spinner, SrOnly, Stack, Switch, Tab, TabList, TabPanel, Text, TextArea, TextInput, TextSkeleton, ThemeColorProvider, ThemeProvider, Toast, ToastProvider, Tooltip, Tree, TreeItem, VirtualList, _hasFocus, _isEnterToClickElement, _isScrollable, _raf, _raf2, attemptFocus, createColorTheme, fillCSSObject, focusFirstDescendant, focusLastDescendant, getResponsiveProp, getResponsiveSpace, hexToRgb, hslToRgb, isFocusable, isHTMLAnchorElement, isHTMLButtonElement, isHTMLElement, isHTMLInputElement, isHTMLSelectElement, isHTMLTextAreaElement, multiply$1 as multiply, parseColor, rem, responsive, responsiveCodeFontStyle, responsiveHeadingFont, responsiveLabelFont, responsiveTextAlignStyle, responsiveTextFont, rgbToHex, rgbToHsl, rgba, screen$1 as screen, studioTheme, useBoundaryElement, useClickOutside, useCustomValidity, useDialog, useElementRect, useForwardedRef, useGlobalKeyDown, useLayer, useMediaIndex, usePortal, usePrefersDark, useResponsiveProp, useRootTheme, useTheme, useToast, useTree };
9930
9811
  //# sourceMappingURL=sanity-ui.module.js.map