@sanity/ui 0.37.19 → 0.37.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/lib/dts/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  2. package/lib/dts/src/components/dialog/dialog.d.ts.map +1 -1
  3. package/lib/dts/src/components/dialog/styles.d.ts +1 -1
  4. package/lib/dts/src/components/dialog/styles.d.ts.map +1 -1
  5. package/lib/dts/src/components/hotkeys/hotkeys.d.ts.map +1 -1
  6. package/lib/dts/src/components/menu/menuGroup.d.ts.map +1 -1
  7. package/lib/dts/src/components/skeleton/skeleton.d.ts.map +1 -1
  8. package/lib/dts/src/hooks/index.d.ts +1 -2
  9. package/lib/dts/src/hooks/index.d.ts.map +1 -1
  10. package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts +1 -1
  11. package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts.map +1 -1
  12. package/lib/dts/src/hooks/useResponsiveProp.d.ts +6 -0
  13. package/lib/dts/src/hooks/useResponsiveProp.d.ts.map +1 -0
  14. package/lib/dts/src/index.d.ts +0 -1
  15. package/lib/dts/src/index.d.ts.map +1 -1
  16. package/lib/dts/src/primitives/_selectable/selectable.d.ts +2 -1
  17. package/lib/dts/src/primitives/_selectable/selectable.d.ts.map +1 -1
  18. package/lib/dts/src/primitives/avatar/avatar.d.ts.map +1 -1
  19. package/lib/dts/src/primitives/avatar/avatarCounter.d.ts.map +1 -1
  20. package/lib/dts/src/primitives/avatar/avatarStack.d.ts.map +1 -1
  21. package/lib/dts/src/primitives/avatar/styles.d.ts.map +1 -1
  22. package/lib/dts/src/primitives/badge/badge.d.ts.map +1 -1
  23. package/lib/dts/src/primitives/box/box.d.ts.map +1 -1
  24. package/lib/dts/src/primitives/button/button.d.ts.map +1 -1
  25. package/lib/dts/src/primitives/card/card.d.ts.map +1 -1
  26. package/lib/dts/src/primitives/code/code.d.ts.map +1 -1
  27. package/lib/dts/src/primitives/container/container.d.ts.map +1 -1
  28. package/lib/dts/src/primitives/container/styles.d.ts.map +1 -1
  29. package/lib/dts/src/primitives/container/types.d.ts +1 -1
  30. package/lib/dts/src/primitives/container/types.d.ts.map +1 -1
  31. package/lib/dts/src/primitives/flex/flex.d.ts.map +1 -1
  32. package/lib/dts/src/primitives/grid/grid.d.ts.map +1 -1
  33. package/lib/dts/src/primitives/heading/heading.d.ts.map +1 -1
  34. package/lib/dts/src/primitives/inline/inline.d.ts.map +1 -1
  35. package/lib/dts/src/primitives/inline/styles.d.ts.map +1 -1
  36. package/lib/dts/src/primitives/inline/types.d.ts +1 -1
  37. package/lib/dts/src/primitives/inline/types.d.ts.map +1 -1
  38. package/lib/dts/src/primitives/kbd/kbd.d.ts.map +1 -1
  39. package/lib/dts/src/primitives/label/label.d.ts.map +1 -1
  40. package/lib/dts/src/primitives/popover/popover.d.ts.map +1 -1
  41. package/lib/dts/src/primitives/select/styles.d.ts +1 -5
  42. package/lib/dts/src/primitives/select/styles.d.ts.map +1 -1
  43. package/lib/dts/src/primitives/stack/stack.d.ts.map +1 -1
  44. package/lib/dts/src/primitives/stack/styles.d.ts +1 -1
  45. package/lib/dts/src/primitives/stack/styles.d.ts.map +1 -1
  46. package/lib/dts/src/primitives/text/text.d.ts.map +1 -1
  47. package/lib/dts/src/primitives/textArea/textArea.d.ts.map +1 -1
  48. package/lib/dts/src/primitives/textInput/textInput.d.ts.map +1 -1
  49. package/lib/dts/src/primitives/tooltip/tooltip.d.ts.map +1 -1
  50. package/lib/dts/src/primitives/types.d.ts +1 -1
  51. package/lib/dts/src/primitives/types.d.ts.map +1 -1
  52. package/lib/dts/src/styles/border/types.d.ts +5 -5
  53. package/lib/dts/src/styles/border/types.d.ts.map +1 -1
  54. package/lib/dts/src/styles/box/types.d.ts +4 -4
  55. package/lib/dts/src/styles/box/types.d.ts.map +1 -1
  56. package/lib/dts/src/styles/flex/flexItemStyle.d.ts.map +1 -1
  57. package/lib/dts/src/styles/flex/types.d.ts +6 -6
  58. package/lib/dts/src/styles/flex/types.d.ts.map +1 -1
  59. package/lib/dts/src/styles/font/responsiveFont.d.ts.map +1 -1
  60. package/lib/dts/src/styles/font/types.d.ts +3 -3
  61. package/lib/dts/src/styles/font/types.d.ts.map +1 -1
  62. package/lib/dts/src/styles/grid/types.d.ts +14 -14
  63. package/lib/dts/src/styles/grid/types.d.ts.map +1 -1
  64. package/lib/dts/src/styles/helpers.d.ts +4 -4
  65. package/lib/dts/src/styles/helpers.d.ts.map +1 -1
  66. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts +12 -12
  67. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts.map +1 -1
  68. package/lib/dts/src/styles/input/textInputStyle.d.ts +2 -7
  69. package/lib/dts/src/styles/input/textInputStyle.d.ts.map +1 -1
  70. package/lib/dts/src/styles/margin/types.d.ts +7 -7
  71. package/lib/dts/src/styles/margin/types.d.ts.map +1 -1
  72. package/lib/dts/src/styles/padding/types.d.ts +7 -7
  73. package/lib/dts/src/styles/padding/types.d.ts.map +1 -1
  74. package/lib/dts/src/styles/radius/types.d.ts +1 -1
  75. package/lib/dts/src/styles/radius/types.d.ts.map +1 -1
  76. package/lib/dts/src/styles/shadow/shadowStyle.d.ts.map +1 -1
  77. package/lib/dts/src/styles/shadow/types.d.ts +1 -1
  78. package/lib/dts/src/styles/shadow/types.d.ts.map +1 -1
  79. package/lib/dts/src/theme/studioTheme/color.d.ts.map +1 -1
  80. package/lib/dts/src/utils/elementQuery/elementQuery.d.ts.map +1 -1
  81. package/lib/dts/src/utils/index.d.ts +1 -0
  82. package/lib/dts/src/utils/index.d.ts.map +1 -1
  83. package/lib/dts/src/utils/resizeObserver.d.ts +6 -0
  84. package/lib/dts/src/utils/resizeObserver.d.ts.map +1 -0
  85. package/lib/dts/src/utils/virtualList/virtualList.d.ts.map +1 -1
  86. package/lib/sanity-ui.js +574 -734
  87. package/lib/sanity-ui.js.map +1 -1
  88. package/lib/sanity-ui.modern.js +595 -765
  89. package/lib/sanity-ui.modern.js.map +1 -1
  90. package/lib/sanity-ui.module.js +570 -728
  91. package/lib/sanity-ui.module.js.map +1 -1
  92. package/package.json +11 -11
  93. package/src/__workshop__/color/overview.tsx +11 -9
  94. package/src/components/autocomplete/__workshop__/async.tsx +12 -14
  95. package/src/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -36
  96. package/src/components/autocomplete/autocomplete.tsx +2 -2
  97. package/src/components/breadcrumbs/breadcrumbs.tsx +2 -3
  98. package/src/components/dialog/dialog.tsx +9 -17
  99. package/src/components/dialog/styles.ts +4 -4
  100. package/src/components/hotkeys/hotkeys.tsx +1 -3
  101. package/src/components/menu/__workshop__/constrainedInBoundary.tsx +14 -11
  102. package/src/components/menu/__workshop__/groups.tsx +1 -1
  103. package/src/components/menu/menuGroup.tsx +2 -3
  104. package/src/components/menu/menuItem.tsx +3 -3
  105. package/src/components/skeleton/skeleton.tsx +1 -10
  106. package/src/components/skeleton/textSkeleton.tsx +7 -7
  107. package/src/hooks/index.ts +1 -2
  108. package/src/hooks/useElementRect/useElementRect.ts +16 -4
  109. package/src/hooks/useResponsiveProp.ts +10 -0
  110. package/src/index.ts +0 -1
  111. package/src/primitives/_selectable/selectable.tsx +4 -5
  112. package/src/primitives/avatar/avatar.tsx +5 -7
  113. package/src/primitives/avatar/avatarCounter.tsx +11 -12
  114. package/src/primitives/avatar/avatarStack.tsx +10 -15
  115. package/src/primitives/avatar/styles.ts +2 -2
  116. package/src/primitives/badge/badge.tsx +2 -3
  117. package/src/primitives/box/box.tsx +25 -26
  118. package/src/primitives/button/button.tsx +10 -22
  119. package/src/primitives/card/card.tsx +7 -8
  120. package/src/primitives/checkbox/__workshop__/example.tsx +2 -4
  121. package/src/primitives/checkbox/__workshop__/props.tsx +2 -4
  122. package/src/primitives/checkbox/__workshop__/readOnly.tsx +2 -4
  123. package/src/primitives/code/__workshop__/props.tsx +1 -1
  124. package/src/primitives/code/code.tsx +1 -2
  125. package/src/primitives/container/container.tsx +1 -10
  126. package/src/primitives/container/styles.ts +2 -2
  127. package/src/primitives/container/types.ts +1 -1
  128. package/src/primitives/flex/flex.tsx +5 -6
  129. package/src/primitives/grid/__workshop__/responsive.tsx +12 -13
  130. package/src/primitives/grid/grid.tsx +8 -9
  131. package/src/primitives/heading/__workshop__/opticalAlignment.tsx +7 -19
  132. package/src/primitives/heading/heading.tsx +2 -3
  133. package/src/primitives/inline/inline.tsx +6 -12
  134. package/src/primitives/inline/styles.ts +2 -2
  135. package/src/primitives/inline/types.ts +1 -1
  136. package/src/primitives/kbd/kbd.tsx +1 -2
  137. package/src/primitives/label/label.tsx +3 -4
  138. package/src/primitives/popover/__workshop__/index.ts +5 -10
  139. package/src/primitives/popover/__workshop__/{MarginsStory.tsx → margins.tsx} +1 -1
  140. package/src/primitives/popover/__workshop__/{MatchReferenceWidthStory.tsx → matchReferenceWidth.tsx} +0 -0
  141. package/src/primitives/popover/__workshop__/{PlainStory.tsx → plain.tsx} +14 -12
  142. package/src/primitives/popover/__workshop__/{RecursiveStory.tsx → recursive.tsx} +1 -4
  143. package/src/primitives/popover/__workshop__/rightAligned.tsx +57 -0
  144. package/src/primitives/popover/popover.tsx +10 -29
  145. package/src/primitives/select/select.tsx +9 -9
  146. package/src/primitives/select/styles.ts +4 -10
  147. package/src/primitives/stack/stack.tsx +1 -2
  148. package/src/primitives/stack/styles.ts +3 -3
  149. package/src/primitives/text/__workshop__/opticalAlignment.tsx +5 -15
  150. package/src/primitives/text/text.tsx +2 -3
  151. package/src/primitives/textArea/__workshop__/plain.tsx +18 -23
  152. package/src/primitives/textArea/textArea.tsx +5 -21
  153. package/src/primitives/textInput/__workshop__/clearButton.tsx +8 -14
  154. package/src/primitives/textInput/__workshop__/index.ts +2 -2
  155. package/src/primitives/textInput/__workshop__/plain.tsx +32 -39
  156. package/src/primitives/textInput/__workshop__/tones.tsx +95 -234
  157. package/src/primitives/textInput/__workshop__/typed.tsx +2 -8
  158. package/src/primitives/textInput/textInput.tsx +12 -47
  159. package/src/primitives/tooltip/__workshop__/props.tsx +2 -7
  160. package/src/primitives/tooltip/tooltip.tsx +9 -19
  161. package/src/primitives/types.ts +1 -1
  162. package/src/styles/border/borderStyle.ts +6 -6
  163. package/src/styles/border/types.ts +5 -5
  164. package/src/styles/box/boxStyle.ts +5 -5
  165. package/src/styles/box/types.ts +4 -4
  166. package/src/styles/flex/flexItemStyle.ts +4 -5
  167. package/src/styles/flex/flexStyle.ts +6 -6
  168. package/src/styles/flex/types.ts +6 -6
  169. package/src/styles/font/responsiveFont.ts +4 -2
  170. package/src/styles/font/textAlignStyle.ts +2 -2
  171. package/src/styles/font/types.ts +3 -4
  172. package/src/styles/grid/gridItemStyle.ts +7 -7
  173. package/src/styles/grid/gridStyle.ts +9 -9
  174. package/src/styles/grid/types.ts +14 -14
  175. package/src/styles/helpers.ts +9 -9
  176. package/src/styles/input/responsiveInputPaddingStyle.ts +27 -24
  177. package/src/styles/input/textInputStyle.ts +80 -92
  178. package/src/styles/margin/marginStyle.ts +8 -8
  179. package/src/styles/margin/marginsStyle.test.ts +1 -1
  180. package/src/styles/margin/types.ts +7 -7
  181. package/src/styles/padding/paddingStyle.test.ts +1 -1
  182. package/src/styles/padding/paddingStyle.ts +8 -8
  183. package/src/styles/padding/types.ts +7 -7
  184. package/src/styles/radius/radiusStyle.ts +2 -2
  185. package/src/styles/radius/types.ts +1 -1
  186. package/src/styles/shadow/shadowStyle.ts +5 -2
  187. package/src/styles/shadow/types.ts +1 -1
  188. package/src/theme/studioTheme/color.ts +14 -15
  189. package/src/theme/studioTheme/fonts.ts +4 -4
  190. package/src/utils/elementQuery/elementQuery.tsx +18 -5
  191. package/src/utils/index.ts +1 -0
  192. package/src/utils/layer/layerProvider.tsx +2 -2
  193. package/src/{observers → utils}/resizeObserver.ts +3 -1
  194. package/src/utils/virtualList/virtualList.tsx +7 -8
  195. package/lib/dts/src/hooks/useArrayProp.d.ts +0 -7
  196. package/lib/dts/src/hooks/useArrayProp.d.ts.map +0 -1
  197. package/lib/dts/src/hooks/useElementSize.d.ts +0 -7
  198. package/lib/dts/src/hooks/useElementSize.d.ts.map +0 -1
  199. package/lib/dts/src/observers/elementSizeObserver.d.ts +0 -37
  200. package/lib/dts/src/observers/elementSizeObserver.d.ts.map +0 -1
  201. package/lib/dts/src/observers/index.d.ts +0 -3
  202. package/lib/dts/src/observers/index.d.ts.map +0 -1
  203. package/lib/dts/src/observers/resizeObserver.d.ts +0 -5
  204. package/lib/dts/src/observers/resizeObserver.d.ts.map +0 -1
  205. package/src/hooks/useArrayProp.ts +0 -23
  206. package/src/hooks/useElementSize.ts +0 -18
  207. package/src/observers/elementSizeObserver.ts +0 -116
  208. package/src/observers/index.ts +0 -2
  209. package/src/primitives/popover/__workshop__/RightAlignedStory.tsx +0 -60
  210. package/src/primitives/popover/__workshop__/TestStory.tsx +0 -79
@@ -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,
@@ -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
- };
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
+ }
3105
3023
  };
3106
-
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;
3107
3041
  return {
3108
- getCurrentIndex: getCurrentIndex,
3109
- subscribe: subscribe
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
  }
@@ -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),
@@ -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,
3910
+ sizeProp = props.size,
4009
3911
  restProps = _objectWithoutPropertiesLoose(props, _excluded$F);
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$E = ["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,
4099
+ size = _props$size === void 0 ? 0 : _props$size,
4205
4100
  restProps = _objectWithoutPropertiesLoose(props, _excluded$E);
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, {
@@ -4275,31 +4169,31 @@ var Box = /*#__PURE__*/forwardRef(function Box(props, ref) {
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);
@@ -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);
@@ -4396,8 +4290,8 @@ var Badge = /*#__PURE__*/forwardRef(function Badge(props, ref) {
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
@@ -4423,11 +4317,11 @@ var Flex = /*#__PURE__*/forwardRef(function Flex(props, ref) {
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
  }));
@@ -4556,23 +4450,23 @@ var Button = /*#__PURE__*/forwardRef(function Button(props, ref) {
4556
4450
  icon = props.icon,
4557
4451
  iconRight = props.iconRight,
4558
4452
  _props$justify = props.justify,
4559
- justifyProp = _props$justify === void 0 ? 'center' : _props$justify,
4453
+ justify = _props$justify === void 0 ? 'center' : _props$justify,
4560
4454
  loading = props.loading,
4561
4455
  _props$mode = props.mode,
4562
4456
  mode = _props$mode === void 0 ? 'default' : _props$mode,
4563
4457
  _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,
4458
+ padding = _props$padding === void 0 ? 3 : _props$padding,
4459
+ paddingX = props.paddingX,
4460
+ paddingY = props.paddingY,
4461
+ paddingTop = props.paddingTop,
4462
+ paddingBottom = props.paddingBottom,
4463
+ paddingLeft = props.paddingLeft,
4464
+ paddingRight = props.paddingRight,
4571
4465
  _props$radius = props.radius,
4572
- radiusProp = _props$radius === void 0 ? 2 : _props$radius,
4466
+ radius = _props$radius === void 0 ? 2 : _props$radius,
4573
4467
  selected = props.selected,
4574
4468
  _props$space = props.space,
4575
- spaceProp = _props$space === void 0 ? 3 : _props$space,
4469
+ space = _props$space === void 0 ? 3 : _props$space,
4576
4470
  text = props.text,
4577
4471
  textAlign = props.textAlign,
4578
4472
  _props$tone = props.tone,
@@ -4581,16 +4475,6 @@ var Button = /*#__PURE__*/forwardRef(function Button(props, ref) {
4581
4475
  type = _props$type === void 0 ? 'button' : _props$type,
4582
4476
  restProps = _objectWithoutPropertiesLoose(props, _excluded$z);
4583
4477
 
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
4478
  var theme = useTheme();
4595
4479
  var boxProps = useMemo(function () {
4596
4480
  return {
@@ -4712,15 +4596,15 @@ var Card = /*#__PURE__*/forwardRef(function Card(props, ref) {
4712
4596
  "data-ui": "Card",
4713
4597
  "data-tone": tone
4714
4598
  }, restProps, {
4715
- "$border": useArrayProp(border),
4716
- "$borderTop": useArrayProp(borderTop),
4717
- "$borderRight": useArrayProp(borderRight),
4718
- "$borderBottom": useArrayProp(borderBottom),
4719
- "$borderLeft": useArrayProp(borderLeft),
4599
+ "$border": border,
4600
+ "$borderTop": borderTop,
4601
+ "$borderRight": borderRight,
4602
+ "$borderBottom": borderBottom,
4603
+ "$borderLeft": borderLeft,
4720
4604
  "$checkered": checkered,
4721
4605
  "$focusRing": focusRing,
4722
- "$radius": useArrayProp(radius),
4723
- "$shadow": useArrayProp(shadow),
4606
+ "$radius": radius,
4607
+ "$shadow": shadow,
4724
4608
  "$tone": tone,
4725
4609
  "data-checkered": checkered ? '' : undefined,
4726
4610
  "data-pressed": pressed ? '' : undefined,
@@ -4943,7 +4827,7 @@ var Code = /*#__PURE__*/forwardRef(function Code(props, ref) {
4943
4827
  return /*#__PURE__*/React.createElement(Root$s, _extends({
4944
4828
  "data-ui": "Code"
4945
4829
  }, restProps, {
4946
- "$size": useArrayProp(size),
4830
+ "$size": size,
4947
4831
  "$weight": weight,
4948
4832
  ref: ref
4949
4833
  }), !(language && registered) && /*#__PURE__*/React.createElement("code", null, children), language && registered && /*#__PURE__*/React.createElement(Refractor, {
@@ -4965,7 +4849,7 @@ function responsiveContainerWidthStyle(props) {
4965
4849
  var _theme$sanity = theme.sanity,
4966
4850
  container = _theme$sanity.container,
4967
4851
  media = _theme$sanity.media;
4968
- return _responsive(media, props.$width, function (val) {
4852
+ return responsive(media, getResponsiveProp(props.$width), function (val) {
4969
4853
  return {
4970
4854
  maxWidth: val === 'auto' ? 'none' : rem(container[val])
4971
4855
  };
@@ -4987,7 +4871,7 @@ var Container = /*#__PURE__*/forwardRef(function Container(props, ref) {
4987
4871
  return /*#__PURE__*/React.createElement(Root$r, _extends({
4988
4872
  "data-ui": "Container"
4989
4873
  }, restProps, {
4990
- "$width": useArrayProp(width),
4874
+ "$width": width,
4991
4875
  forwardedAs: as,
4992
4876
  ref: ref
4993
4877
  }));
@@ -5016,14 +4900,14 @@ var Grid = /*#__PURE__*/forwardRef(function Grid(props, ref) {
5016
4900
  "data-as": typeof as === 'string' ? as : undefined,
5017
4901
  "data-ui": "Grid"
5018
4902
  }, 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),
4903
+ "$autoRows": autoRows,
4904
+ "$autoCols": autoCols,
4905
+ "$autoFlow": autoFlow,
4906
+ "$columns": columns,
4907
+ "$gap": gap,
4908
+ "$gapX": gapX,
4909
+ "$gapY": gapY,
4910
+ "$rows": rows,
5027
4911
  forwardedAs: as,
5028
4912
  ref: ref
5029
4913
  }), children);
@@ -5069,9 +4953,9 @@ var Heading = /*#__PURE__*/forwardRef(function Heading(props, ref) {
5069
4953
  "data-ui": "Heading"
5070
4954
  }, restProps, {
5071
4955
  "$accent": accent,
5072
- "$align": useArrayProp(align),
4956
+ "$align": align,
5073
4957
  "$muted": muted,
5074
- "$size": useArrayProp(size),
4958
+ "$size": size,
5075
4959
  "$weight": weight,
5076
4960
  ref: ref
5077
4961
  }), /*#__PURE__*/React.createElement("span", null, children));
@@ -5091,7 +4975,7 @@ function inlineBaseStyle() {
5091
4975
  }
5092
4976
  function inlineSpaceStyle(props) {
5093
4977
  var theme = props.theme;
5094
- return _responsive(theme.sanity.media, props.$space, function (spaceIndex) {
4978
+ return responsive(theme.sanity.media, getResponsiveProp(props.$space), function (spaceIndex) {
5095
4979
  var space = rem(theme.sanity.space[spaceIndex]);
5096
4980
  return {
5097
4981
  margin: "-" + space + " 0 0 -" + space,
@@ -5114,20 +4998,18 @@ var Inline = /*#__PURE__*/forwardRef(function Inline(props, ref) {
5114
4998
  space = props.space,
5115
4999
  restProps = _objectWithoutPropertiesLoose(props, _excluded$s);
5116
5000
 
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]);
5001
+ var children = childrenToElementArray(childrenProp).filter(Boolean);
5124
5002
  return /*#__PURE__*/React.createElement(Root$o, _extends({
5125
5003
  "data-ui": "Inline"
5126
5004
  }, restProps, {
5127
- "$space": useArrayProp(space),
5005
+ "$space": space,
5128
5006
  forwardedAs: as,
5129
5007
  ref: ref
5130
- }), children);
5008
+ }), children.map(function (child, idx) {
5009
+ return /*#__PURE__*/React.createElement("div", {
5010
+ key: idx
5011
+ }, child);
5012
+ }));
5131
5013
  });
5132
5014
 
5133
5015
  var _excluded$r = ["children", "fontSize", "padding", "radius"];
@@ -5156,7 +5038,7 @@ var KBD = /*#__PURE__*/forwardRef(function KBD(props, ref) {
5156
5038
  return /*#__PURE__*/React.createElement(Root$n, _extends({
5157
5039
  "data-ui": "KBD"
5158
5040
  }, restProps, {
5159
- "$radius": useArrayProp(radius),
5041
+ "$radius": radius,
5160
5042
  ref: ref
5161
5043
  }), /*#__PURE__*/React.createElement(Box, {
5162
5044
  as: "span",
@@ -5210,6 +5092,12 @@ function useBoundaryElement() {
5210
5092
  return value || DEFAULT_VALUE;
5211
5093
  }
5212
5094
 
5095
+ /**
5096
+ * @internal
5097
+ */
5098
+
5099
+ var RO = typeof window !== 'undefined' && window.ResizeObserver ? window.ResizeObserver : ResizeObserver$1;
5100
+
5213
5101
  function findMaxBreakpoints(media, width) {
5214
5102
  var ret = [];
5215
5103
 
@@ -5251,18 +5139,31 @@ var ElementQuery = /*#__PURE__*/forwardRef(function ElementQuery(props, ref) {
5251
5139
  media = _props$media === void 0 ? theme.sanity.media : _props$media,
5252
5140
  restProps = _objectWithoutPropertiesLoose(props, _excluded$q);
5253
5141
 
5142
+ var _useState = useState(function () {
5143
+ return window.innerWidth;
5144
+ }),
5145
+ width = _useState[0],
5146
+ setWidth = _useState[1];
5147
+
5254
5148
  var forwardedRef = useForwardedRef(ref);
5255
5149
 
5256
- var _useState = useState(null),
5257
- element = _useState[0],
5258
- setElement = _useState[1];
5150
+ var _useState2 = useState(null),
5151
+ element = _useState2[0],
5152
+ setElement = _useState2[1];
5153
+
5154
+ useEffect(function () {
5155
+ if (!element) return;
5259
5156
 
5260
- var elementSize = useElementSize(element);
5261
- var width = useMemo(function () {
5262
- var _elementSize$border$w;
5157
+ var handleResizeEntries = function handleResizeEntries(entries) {
5158
+ setWidth(entries[0].contentRect.width);
5159
+ };
5263
5160
 
5264
- return (_elementSize$border$w = elementSize == null ? void 0 : elementSize.border.width) != null ? _elementSize$border$w : window.innerWidth;
5265
- }, [elementSize]);
5161
+ var ro = new RO(handleResizeEntries);
5162
+ ro.observe(element);
5163
+ return function () {
5164
+ return ro.disconnect();
5165
+ };
5166
+ }, [element]);
5266
5167
  var max = useMemo(function () {
5267
5168
  return findMaxBreakpoints(media, width);
5268
5169
  }, [media, width]);
@@ -5368,7 +5269,7 @@ function LayerProvider(props) {
5368
5269
  _props$zOffset = props.zOffset,
5369
5270
  zOffsetProp = _props$zOffset === void 0 ? 0 : _props$zOffset;
5370
5271
  var parent = useContext(LayerContext);
5371
- var zOffset = useArrayProp(zOffsetProp);
5272
+ var zOffset = useResponsiveProp(zOffsetProp);
5372
5273
  var maxMediaIndex = zOffset.length - 1;
5373
5274
  var mediaIndex = Math.min(useMediaIndex(), maxMediaIndex);
5374
5275
  var zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex];
@@ -5810,16 +5711,17 @@ var VirtualList = /*#__PURE__*/forwardRef(function VirtualList(props, ref) {
5810
5711
  scrollEl.addEventListener('scroll', _handleScroll, {
5811
5712
  passive: true
5812
5713
  });
5813
-
5814
- var disposeElementSizeListener = _elementSizeObserver.subscribe(scrollEl, function (scrollElementSize) {
5815
- setScrollHeight(scrollElementSize.content.height);
5714
+ var ro = new ResizeObserver(function (entries) {
5715
+ setScrollHeight(entries[0].contentRect.height);
5816
5716
  });
5717
+ ro.observe(scrollEl);
5817
5718
 
5818
5719
  _handleScroll();
5819
5720
 
5820
5721
  return function () {
5821
5722
  scrollEl.removeEventListener('scroll', _handleScroll);
5822
- disposeElementSizeListener();
5723
+ ro.unobserve(scrollEl);
5724
+ ro.disconnect();
5823
5725
  };
5824
5726
  }
5825
5727
 
@@ -6126,7 +6028,7 @@ var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6126
6028
  _props$tone = props.tone,
6127
6029
  tone = _props$tone === void 0 ? 'inherit' : _props$tone,
6128
6030
  _props$width = props.width,
6129
- widthProp = _props$width === void 0 ? 0 : _props$width,
6031
+ width = _props$width === void 0 ? 0 : _props$width,
6130
6032
  _props$zOffset = props.zOffset,
6131
6033
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.popover.zOffset : _props$zOffset,
6132
6034
  restProps = _objectWithoutPropertiesLoose(props, _excluded$n);
@@ -6147,7 +6049,6 @@ var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6147
6049
  setArrowElement = _useState3[1];
6148
6050
 
6149
6051
  var popperReferenceElement = referenceElementProp || referenceElement;
6150
- var width = useArrayProp(matchReferenceWidth ? 'auto' : widthProp);
6151
6052
  var modifiers = usePopoverModifiers({
6152
6053
  allowedAutoPlacements: allowedAutoPlacements,
6153
6054
  arrow: arrow,
@@ -6188,21 +6089,13 @@ var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6188
6089
  var popoverStyle = useMemo(function () {
6189
6090
  return _extends({}, style, styles.popper);
6190
6091
  }, [style, styles]);
6191
- var updateTimeoutRef = useRef(null);
6192
6092
  useEffect(function () {
6193
- if (updateTimeoutRef.current) {
6194
- clearTimeout(updateTimeoutRef.current);
6195
- updateTimeoutRef.current = null;
6196
- }
6197
-
6198
- updateTimeoutRef.current = setTimeout(function () {
6199
- if (forceUpdate) {
6200
- try {
6201
- forceUpdate();
6202
- } catch (_) {// ignore caught error
6203
- }
6093
+ if (forceUpdate) {
6094
+ try {
6095
+ forceUpdate();
6096
+ } catch (_) {// ignore caught error
6204
6097
  }
6205
- }, 0);
6098
+ }
6206
6099
  }, [content, forceUpdate, open, popperReferenceElement]);
6207
6100
 
6208
6101
  if (disabled) {
@@ -6218,13 +6111,13 @@ var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6218
6111
  zOffset: zOffset
6219
6112
  }, attributes.popper), /*#__PURE__*/React.createElement(PopoverCard, {
6220
6113
  "$constrainSize": constrainSize,
6221
- "$width": width,
6222
6114
  "data-ui": "PopoverCard",
6223
6115
  padding: padding,
6224
6116
  radius: radius,
6225
6117
  scheme: scheme,
6226
6118
  shadow: shadow,
6227
- tone: tone
6119
+ tone: tone,
6120
+ width: width
6228
6121
  }, arrow && /*#__PURE__*/React.createElement(PopoverArrow, {
6229
6122
  ref: setArrowElement,
6230
6123
  style: styles.arrow
@@ -6343,7 +6236,7 @@ function inputTextSizeStyle(props) {
6343
6236
  var theme = props.theme,
6344
6237
  $fontSize = props.$fontSize;
6345
6238
  var sizes = theme.sanity.fonts.text.sizes;
6346
- return _responsive(theme.sanity.media, $fontSize, function (sizeIndex) {
6239
+ return responsive(theme.sanity.media, getResponsiveProp($fontSize), function (sizeIndex) {
6347
6240
  return textSize(sizes[sizeIndex] || sizes[2]);
6348
6241
  });
6349
6242
  }
@@ -6395,10 +6288,10 @@ var Select = /*#__PURE__*/forwardRef(function Select(props, forwardedRef) {
6395
6288
  "data-read-only": !disabled && readOnly ? '' : undefined,
6396
6289
  "data-ui": "Select"
6397
6290
  }, restProps, {
6398
- "$fontSize": useArrayProp(fontSize),
6399
- "$padding": useArrayProp(padding),
6400
- "$radius": useArrayProp(radius),
6401
- "$space": useArrayProp(space),
6291
+ "$fontSize": fontSize,
6292
+ "$padding": padding,
6293
+ "$radius": radius,
6294
+ "$space": space,
6402
6295
  disabled: disabled || readOnly,
6403
6296
  ref: ref
6404
6297
  }), children), /*#__PURE__*/React.createElement(IconBox, {
@@ -6426,7 +6319,7 @@ function responsiveStackSpaceStyle(props) {
6426
6319
  var _theme$sanity = theme.sanity,
6427
6320
  media = _theme$sanity.media,
6428
6321
  space = _theme$sanity.space;
6429
- return _responsive(media, props.$space, function (spaceIndex) {
6322
+ return responsive(media, getResponsiveProp(props.$space), function (spaceIndex) {
6430
6323
  return {
6431
6324
  gridGap: rem(space[spaceIndex])
6432
6325
  };
@@ -6448,13 +6341,13 @@ var Stack = /*#__PURE__*/forwardRef(function Stack(props, ref) {
6448
6341
  "data-as": typeof as === 'string' ? as : undefined,
6449
6342
  "data-ui": "Stack"
6450
6343
  }, restProps, {
6451
- "$space": useArrayProp(space),
6344
+ "$space": space,
6452
6345
  forwardedAs: as,
6453
6346
  ref: ref
6454
6347
  }));
6455
6348
  });
6456
6349
 
6457
- var _templateObject$g, _templateObject2$b, _templateObject3$6, _templateObject4$4, _templateObject5$3, _templateObject6$2, _templateObject7;
6350
+ var _templateObject$g, _templateObject2$b, _templateObject3$6, _templateObject4$4, _templateObject5$3, _templateObject6$1, _templateObject7;
6458
6351
  /* Root */
6459
6352
 
6460
6353
  function switchBaseStyles() {
@@ -6498,7 +6391,7 @@ function switchThumbStyles(props) {
6498
6391
  var checkedOffset = trackWidth - trackPadding * 2 - size;
6499
6392
  var indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding;
6500
6393
  var checked = $indeterminate !== true && props.$checked === true;
6501
- 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));
6394
+ 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));
6502
6395
  }
6503
6396
 
6504
6397
  var _excluded$j = ["checked", "className", "disabled", "indeterminate", "readOnly", "style"];
@@ -6547,7 +6440,7 @@ var Switch = /*#__PURE__*/forwardRef(function Switch(props, forwardedRef) {
6547
6440
  })));
6548
6441
  });
6549
6442
 
6550
- var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius", "weight"];
6443
+ var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius"];
6551
6444
 
6552
6445
  var _templateObject$f;
6553
6446
  var Root$d = styled.span(textInputRootStyle);
@@ -6570,46 +6463,32 @@ var TextArea = /*#__PURE__*/forwardRef(function TextArea(props, forwardedRef) {
6570
6463
  padding = _props$padding === void 0 ? 3 : _props$padding,
6571
6464
  _props$radius = props.radius,
6572
6465
  radius = _props$radius === void 0 ? 1 : _props$radius,
6573
- weight = props.weight,
6574
6466
  restProps = _objectWithoutPropertiesLoose(props, _excluded$i);
6575
6467
 
6576
6468
  var ref = useForwardedRef(forwardedRef);
6577
- var rootTheme = useRootTheme();
6578
6469
  useCustomValidity(ref, customValidity);
6579
6470
  return /*#__PURE__*/React.createElement(Root$d, {
6580
6471
  "data-ui": "TextArea"
6581
6472
  }, /*#__PURE__*/React.createElement(InputRoot$1, null, /*#__PURE__*/React.createElement(Input$1, _extends({
6582
- "data-as": "textarea",
6583
- "data-scheme": rootTheme.scheme,
6584
- "data-tone": rootTheme.tone
6473
+ "data-as": "textarea"
6585
6474
  }, restProps, {
6586
- "$fontSize": useArrayProp(fontSize),
6587
- "$padding": useArrayProp(padding),
6588
- "$scheme": rootTheme.scheme,
6589
- "$space": useArrayProp(0),
6590
- "$tone": rootTheme.tone,
6591
- "$weight": weight,
6475
+ "$fontSize": fontSize,
6476
+ "$padding": padding,
6592
6477
  disabled: disabled,
6593
6478
  ref: ref
6594
6479
  })), /*#__PURE__*/React.createElement(Presentation$1, {
6595
6480
  "$border": border,
6596
- "$radius": useArrayProp(radius),
6597
- "$scheme": rootTheme.scheme,
6598
- "$tone": rootTheme.tone,
6599
- "data-scheme": rootTheme.scheme,
6600
- "data-tone": rootTheme.tone
6481
+ "$radius": radius
6601
6482
  })));
6602
6483
  });
6603
6484
 
6604
- var _excluded$h = ["border", "clearButton", "disabled", "fontSize", "icon", "iconRight", "onClear", "padding", "prefix", "radius", "readOnly", "space", "suffix", "customValidity", "type", "weight"];
6485
+ var _excluded$h = ["border", "clearButton", "disabled", "fontSize", "icon", "iconRight", "onClear", "padding", "prefix", "radius", "readOnly", "space", "suffix", "customValidity", "type"];
6605
6486
 
6606
- var _templateObject$e, _templateObject2$a, _templateObject3$5, _templateObject4$3, _templateObject5$2, _templateObject6$1;
6487
+ var _templateObject$e, _templateObject2$a, _templateObject3$5, _templateObject4$3, _templateObject5$2;
6607
6488
  var CLEAR_BUTTON_BOX_STYLE = {
6608
6489
  zIndex: 2
6609
6490
  };
6610
- var Root$c = styled(Card).attrs({
6611
- forwardedAs: 'span'
6612
- })(textInputRootStyle);
6491
+ var Root$c = styled.span(textInputRootStyle);
6613
6492
  var InputRoot = styled.span(_templateObject$e || (_templateObject$e = _taggedTemplateLiteralLoose(["\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n"])));
6614
6493
  var Prefix = styled(Card).attrs({
6615
6494
  forwardedAs: 'span'
@@ -6620,8 +6499,7 @@ var Suffix = styled(Card).attrs({
6620
6499
  var Input = styled.input(responsiveInputPaddingStyle, textInputBaseStyle, textInputFontSizeStyle);
6621
6500
  var Presentation = styled.span(responsiveRadiusStyle, textInputRepresentationStyle);
6622
6501
  var LeftBox = styled(Box)(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n"])));
6623
- var RightBox = styled(Box)(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n right: 0;\n"])));
6624
- var RightCard = styled(Card)(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteralLoose(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
6502
+ var RightCard = styled(Card)(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
6625
6503
  /**
6626
6504
  * @public
6627
6505
  */
@@ -6633,7 +6511,7 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6633
6511
  _props$disabled = props.disabled,
6634
6512
  disabled = _props$disabled === void 0 ? false : _props$disabled,
6635
6513
  _props$fontSize = props.fontSize,
6636
- fontSizeProp = _props$fontSize === void 0 ? 2 : _props$fontSize,
6514
+ fontSize = _props$fontSize === void 0 ? 2 : _props$fontSize,
6637
6515
  icon = props.icon,
6638
6516
  iconRight = props.iconRight,
6639
6517
  onClear = props.onClear,
@@ -6644,20 +6522,16 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6644
6522
  radiusProp = _props$radius === void 0 ? 1 : _props$radius,
6645
6523
  readOnly = props.readOnly,
6646
6524
  _props$space = props.space,
6647
- spaceProp = _props$space === void 0 ? 3 : _props$space,
6525
+ space = _props$space === void 0 ? 3 : _props$space,
6648
6526
  suffix = props.suffix,
6649
6527
  customValidity = props.customValidity,
6650
6528
  _props$type = props.type,
6651
6529
  type = _props$type === void 0 ? 'text' : _props$type,
6652
- weight = props.weight,
6653
6530
  restProps = _objectWithoutPropertiesLoose(props, _excluded$h);
6654
6531
 
6655
6532
  var ref = useForwardedRef(forwardedRef);
6656
- var rootTheme = useRootTheme();
6657
- var fontSize = useArrayProp(fontSizeProp);
6658
- var padding = useArrayProp(paddingProp);
6659
- var radius = useArrayProp(radiusProp);
6660
- var space = useArrayProp(spaceProp); // Transient properties
6533
+ var padding = useResponsiveProp(paddingProp);
6534
+ var radius = useResponsiveProp(radiusProp); // Transient properties
6661
6535
 
6662
6536
  var $hasClearButton = Boolean(clearButton);
6663
6537
  var $hasIcon = Boolean(icon);
@@ -6696,21 +6570,17 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6696
6570
  "$border": border,
6697
6571
  "$hasPrefix": $hasPrefix,
6698
6572
  "$hasSuffix": $hasSuffix,
6699
- "$radius": radius,
6700
- "$scheme": rootTheme.scheme,
6701
- "$tone": rootTheme.tone,
6702
- "data-scheme": rootTheme.scheme,
6703
- "data-tone": rootTheme.tone
6573
+ "$radius": radius
6704
6574
  }, icon && /*#__PURE__*/React.createElement(LeftBox, {
6705
6575
  padding: padding
6706
6576
  }, /*#__PURE__*/React.createElement(Text, {
6707
6577
  size: fontSize
6708
- }, /*#__PURE__*/isValidElement(icon) && icon, isValidElementType(icon) && /*#__PURE__*/createElement(icon))), !$hasClearButton && iconRight && /*#__PURE__*/React.createElement(RightBox, {
6578
+ }, /*#__PURE__*/isValidElement(icon) && icon, isValidElementType(icon) && /*#__PURE__*/createElement(icon))), !$hasClearButton && iconRight && /*#__PURE__*/React.createElement(RightCard, {
6709
6579
  padding: padding
6710
6580
  }, /*#__PURE__*/React.createElement(Text, {
6711
6581
  size: fontSize
6712
6582
  }, /*#__PURE__*/isValidElement(iconRight) && iconRight, isValidElementType(iconRight) && /*#__PURE__*/createElement(iconRight))));
6713
- }, [border, fontSize, icon, iconRight, padding, radius, rootTheme, $hasClearButton, $hasPrefix, $hasSuffix]); // Render clear button (memoized)
6583
+ }, [border, fontSize, icon, iconRight, padding, radius, $hasClearButton, $hasPrefix, $hasSuffix]); // Render clear button (memoized)
6714
6584
 
6715
6585
  var clearButtonBoxPadding = useMemo(function () {
6716
6586
  return padding.map(function (v) {
@@ -6761,21 +6631,15 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6761
6631
  }, /*#__PURE__*/React.createElement("span", null, suffix));
6762
6632
  }, [radius, suffix]);
6763
6633
  return /*#__PURE__*/React.createElement(Root$c, {
6764
- "data-ui": "TextInput",
6765
- tone: rootTheme.tone
6634
+ "data-ui": "TextInput"
6766
6635
  }, prefixNode, /*#__PURE__*/React.createElement(InputRoot, null, /*#__PURE__*/React.createElement(Input, _extends({
6767
- "data-as": "input",
6768
- "data-scheme": rootTheme.scheme,
6769
- "data-tone": rootTheme.tone
6636
+ "data-as": "input"
6770
6637
  }, restProps, {
6771
- "$fontSize": fontSize,
6772
6638
  "$iconLeft": $hasIcon,
6773
6639
  "$iconRight": $hasIconRight || $hasClearButton,
6774
6640
  "$padding": padding,
6775
- "$scheme": rootTheme.scheme,
6776
6641
  "$space": space,
6777
- "$tone": rootTheme.tone,
6778
- "$weight": weight,
6642
+ "$fontSize": fontSize,
6779
6643
  disabled: disabled,
6780
6644
  readOnly: readOnly,
6781
6645
  ref: ref,
@@ -6823,7 +6687,7 @@ var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
6823
6687
  children = props.children,
6824
6688
  content = props.content,
6825
6689
  disabled = props.disabled,
6826
- fallbackPlacementsProp = props.fallbackPlacements,
6690
+ fallbackPlacements = props.fallbackPlacements,
6827
6691
  _props$placement = props.placement,
6828
6692
  placement = _props$placement === void 0 ? 'bottom' : _props$placement,
6829
6693
  portal = props.portal,
@@ -6832,7 +6696,6 @@ var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
6832
6696
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.tooltip.zOffset : _props$zOffset,
6833
6697
  restProps = _objectWithoutPropertiesLoose(props, _excluded$g);
6834
6698
 
6835
- var fallbackPlacements = useArrayProp(fallbackPlacementsProp);
6836
6699
  var forwardedRef = useForwardedRef(ref);
6837
6700
 
6838
6701
  var _useState = useState(null),
@@ -6914,21 +6777,13 @@ var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
6914
6777
  window.removeEventListener('mousemove', handleWindowMouseMove);
6915
6778
  };
6916
6779
  }, [isOpen, referenceElement]);
6917
- var updateTimeoutRef = useRef(null);
6918
6780
  useEffect(function () {
6919
- if (updateTimeoutRef.current) {
6920
- clearTimeout(updateTimeoutRef.current);
6921
- updateTimeoutRef.current = null;
6922
- }
6923
-
6924
- updateTimeoutRef.current = setTimeout(function () {
6925
- if (forceUpdate) {
6926
- try {
6927
- forceUpdate();
6928
- } catch (_) {// ignore caught error
6929
- }
6781
+ if (forceUpdate) {
6782
+ try {
6783
+ forceUpdate();
6784
+ } catch (_) {// ignore caught error
6930
6785
  }
6931
- }, 0);
6786
+ }
6932
6787
  }, [forceUpdate, content]); // Close when `disabled` changes to `true`
6933
6788
 
6934
6789
  useEffect(function () {
@@ -7210,7 +7065,7 @@ var InnerAutocomplete = /*#__PURE__*/forwardRef(function InnerAutocomplete(props
7210
7065
  var popoverMouseWithinRef = useRef(false);
7211
7066
  var listBoxId = id + "-listbox";
7212
7067
  var options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY;
7213
- var padding = useArrayProp(paddingProp);
7068
+ var padding = useResponsiveProp(paddingProp);
7214
7069
  var currentOption = useMemo(function () {
7215
7070
  return value !== null ? options.find(function (o) {
7216
7071
  return o.value === value;
@@ -7642,11 +7497,9 @@ var Breadcrumbs = /*#__PURE__*/forwardRef(function Breadcrumbs(props, ref) {
7642
7497
  maxLength = props.maxLength,
7643
7498
  separator = props.separator,
7644
7499
  _props$space = props.space,
7645
- spaceRaw = _props$space === void 0 ? 2 : _props$space,
7500
+ space = _props$space === void 0 ? 2 : _props$space,
7646
7501
  restProps = _objectWithoutPropertiesLoose(props, _excluded$e);
7647
7502
 
7648
- var space = useArrayProp(spaceRaw);
7649
-
7650
7503
  var _useState = useState(false),
7651
7504
  open = _useState[0],
7652
7505
  setOpen = _useState[1];
@@ -7736,13 +7589,13 @@ function dialogStyle(_ref) {
7736
7589
  alignItems: 'center',
7737
7590
  justifyContent: 'center',
7738
7591
  outline: 'none',
7739
- background: color.shadow.umbra
7592
+ background: color.shadow.penumbra
7740
7593
  };
7741
7594
  }
7742
7595
  function responsiveDialogPositionStyle(props) {
7743
7596
  var theme = props.theme;
7744
7597
  var media = theme.sanity.media;
7745
- return _responsive(media, props.$position, function (position) {
7598
+ return responsive(media, getResponsiveProp(props.$position), function (position) {
7746
7599
  return {
7747
7600
  '&&': {
7748
7601
  position: position
@@ -7790,13 +7643,10 @@ var DialogCard = /*#__PURE__*/forwardRef(function DialogCard(props, ref) {
7790
7643
  id = props.id,
7791
7644
  onClickOutside = props.onClickOutside,
7792
7645
  onClose = props.onClose,
7793
- radiusProp = props.radius,
7646
+ radius = props.radius,
7794
7647
  scheme = props.scheme,
7795
- shadowProp = props.shadow,
7796
- widthProp = props.width;
7797
- var radius = useArrayProp(radiusProp);
7798
- var shadow = useArrayProp(shadowProp);
7799
- var width = useArrayProp(widthProp);
7648
+ shadow = props.shadow,
7649
+ width = props.width;
7800
7650
  var forwardedRef = useForwardedRef(ref);
7801
7651
 
7802
7652
  var _useState = useState(null),
@@ -7883,7 +7733,7 @@ var Dialog = /*#__PURE__*/forwardRef(function Dialog(props, ref) {
7883
7733
  _props$__unstable_hid = props.__unstable_hideCloseButton,
7884
7734
  hideCloseButton = _props$__unstable_hid === void 0 ? false : _props$__unstable_hid,
7885
7735
  _props$cardRadius = props.cardRadius,
7886
- cardRadiusProp = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7736
+ cardRadius = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7887
7737
  _props$cardShadow = props.cardShadow,
7888
7738
  cardShadow = _props$cardShadow === void 0 ? 4 : _props$cardShadow,
7889
7739
  children = props.children,
@@ -7894,22 +7744,17 @@ var Dialog = /*#__PURE__*/forwardRef(function Dialog(props, ref) {
7894
7744
  onClickOutside = props.onClickOutside,
7895
7745
  onClose = props.onClose,
7896
7746
  _props$padding = props.padding,
7897
- paddingProp = _props$padding === void 0 ? 4 : _props$padding,
7747
+ padding = _props$padding === void 0 ? 4 : _props$padding,
7898
7748
  portal = props.portal,
7899
7749
  _props$position = props.position,
7900
- positionProp = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7750
+ position = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7901
7751
  scheme = props.scheme,
7902
7752
  _props$width = props.width,
7903
- widthProp = _props$width === void 0 ? 0 : _props$width,
7753
+ width = _props$width === void 0 ? 0 : _props$width,
7904
7754
  _props$zOffset = props.zOffset,
7905
- zOffsetProp = _props$zOffset === void 0 ? dialog.zOffset || ((_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.dialog.zOffset) : _props$zOffset,
7755
+ zOffset = _props$zOffset === void 0 ? dialog.zOffset || ((_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.dialog.zOffset) : _props$zOffset,
7906
7756
  restProps = _objectWithoutPropertiesLoose(props, _excluded$d);
7907
7757
 
7908
- var cardRadius = useArrayProp(cardRadiusProp);
7909
- var padding = useArrayProp(paddingProp);
7910
- var position = useArrayProp(positionProp);
7911
- var width = useArrayProp(widthProp);
7912
- var zOffset = useArrayProp(zOffsetProp);
7913
7758
  var preDivRef = useRef(null);
7914
7759
  var postDivRef = useRef(null);
7915
7760
  var cardRef = useRef(null);
@@ -8004,11 +7849,9 @@ var Hotkeys = /*#__PURE__*/forwardRef(function Hotkeys(props, ref) {
8004
7849
  padding = props.padding,
8005
7850
  radius = props.radius,
8006
7851
  _props$space = props.space,
8007
- spaceProp = _props$space === void 0 ? 1 : _props$space,
7852
+ space = _props$space === void 0 ? 1 : _props$space,
8008
7853
  restProps = _objectWithoutPropertiesLoose(props, _excluded$c);
8009
7854
 
8010
- var space = useArrayProp(spaceProp);
8011
-
8012
7855
  if (!keys || keys.length === 0) {
8013
7856
  return /*#__PURE__*/React.createElement(React.Fragment, null);
8014
7857
  }
@@ -8622,7 +8465,7 @@ function selectableColorStyle(props) {
8622
8465
  * @internal
8623
8466
  */
8624
8467
 
8625
- var Selectable = styled(Box)(responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8468
+ var Selectable = styled(Box)(responsiveBorderStyle, responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8626
8469
 
8627
8470
  function useMenu() {
8628
8471
  var value = useContext(MenuContext);
@@ -8655,7 +8498,8 @@ function MenuGroup(props) {
8655
8498
  onClick = props.onClick,
8656
8499
  _props$padding = props.padding,
8657
8500
  padding = _props$padding === void 0 ? 3 : _props$padding,
8658
- popover = props.popover,
8501
+ _props$popover = props.popover,
8502
+ popover = _props$popover === void 0 ? {} : _props$popover,
8659
8503
  _props$radius = props.radius,
8660
8504
  radius = _props$radius === void 0 ? 2 : _props$radius,
8661
8505
  _props$space = props.space,
@@ -8769,7 +8613,7 @@ function MenuGroup(props) {
8769
8613
  "aria-pressed": as === 'button' ? withinMenu : undefined,
8770
8614
  "data-pressed": as !== 'button' ? withinMenu : undefined,
8771
8615
  "data-selected": !withinMenu && active ? '' : undefined,
8772
- "$radius": useArrayProp(radius),
8616
+ "$radius": radius,
8773
8617
  "$tone": tone,
8774
8618
  onClick: handleClick,
8775
8619
  onKeyDown: handleKeyDown,
@@ -8875,13 +8719,13 @@ var MenuItem = /*#__PURE__*/forwardRef(function MenuItem(props, forwardedRef) {
8875
8719
  "data-selected": active ? '' : undefined,
8876
8720
  "data-disabled": disabled ? '' : undefined,
8877
8721
  forwardedAs: as,
8878
- "$radius": useArrayProp(radius),
8879
- "$padding": useArrayProp(0),
8722
+ "$radius": radius,
8880
8723
  "$tone": tone,
8881
8724
  disabled: disabled,
8882
8725
  onClick: handleClick,
8883
8726
  onMouseEnter: onItemMouseEnter,
8884
8727
  onMouseLeave: onItemMouseLeave,
8728
+ padding: 0,
8885
8729
  ref: setRef,
8886
8730
  role: "menuitem",
8887
8731
  tabIndex: -1,
@@ -8963,7 +8807,7 @@ var Skeleton = /*#__PURE__*/forwardRef(function Skeleton(props, ref) {
8963
8807
  }, [delay]);
8964
8808
  return /*#__PURE__*/React.createElement(Root$4, _extends({}, restProps, {
8965
8809
  "$animated": animated,
8966
- "$radius": useArrayProp(radius),
8810
+ "$radius": radius,
8967
8811
  "$visible": visible,
8968
8812
  ref: ref
8969
8813
  }));
@@ -8979,15 +8823,13 @@ var Root$3 = styled(Skeleton)(function (_ref) {
8979
8823
  theme = _ref.theme;
8980
8824
  var media = theme.sanity.media;
8981
8825
  var font = theme.sanity.fonts[$style];
8982
-
8983
- var styles = _responsive(media, $size, function (sizeIndex) {
8826
+ var styles = responsive(media, $size, function (sizeIndex) {
8984
8827
  var fontSize = font.sizes[sizeIndex];
8985
8828
  var capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight;
8986
8829
  return {
8987
8830
  height: capHeight
8988
8831
  };
8989
8832
  });
8990
-
8991
8833
  return styles;
8992
8834
  });
8993
8835
  /**
@@ -9000,7 +8842,7 @@ var TextSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref) {
9000
8842
  size = _props$size === void 0 ? 2 : _props$size,
9001
8843
  restProps = _objectWithoutPropertiesLoose(props, _excluded$7);
9002
8844
 
9003
- var $size = useArrayProp(size);
8845
+ var $size = useResponsiveProp(size);
9004
8846
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
9005
8847
  "$size": $size,
9006
8848
  ref: ref,
@@ -9017,7 +8859,7 @@ var LabelSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref) {
9017
8859
  size = _props$size2 === void 0 ? 2 : _props$size2,
9018
8860
  restProps = _objectWithoutPropertiesLoose(props, _excluded2);
9019
8861
 
9020
- var $size = useArrayProp(size);
8862
+ var $size = useResponsiveProp(size);
9021
8863
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
9022
8864
  "$size": $size,
9023
8865
  ref: ref,
@@ -9034,7 +8876,7 @@ var HeadingSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref)
9034
8876
  size = _props$size3 === void 0 ? 2 : _props$size3,
9035
8877
  restProps = _objectWithoutPropertiesLoose(props, _excluded3);
9036
8878
 
9037
- var $size = useArrayProp(size);
8879
+ var $size = useResponsiveProp(size);
9038
8880
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
9039
8881
  "$size": $size,
9040
8882
  ref: ref,
@@ -9051,7 +8893,7 @@ var CodeSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref) {
9051
8893
  size = _props$size4 === void 0 ? 2 : _props$size4,
9052
8894
  restProps = _objectWithoutPropertiesLoose(props, _excluded4);
9053
8895
 
9054
- var $size = useArrayProp(size);
8896
+ var $size = useResponsiveProp(size);
9055
8897
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
9056
8898
  "$size": $size,
9057
8899
  ref: ref,
@@ -9925,5 +9767,5 @@ var TreeItem = /*#__PURE__*/memo(function TreeItem(props) {
9925
9767
  }, children)));
9926
9768
  });
9927
9769
 
9928
- 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 };
9770
+ 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 };
9929
9771
  //# sourceMappingURL=sanity-ui.module.js.map