@sanity/ui 0.37.20 → 0.37.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/lib/dts/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  2. package/lib/dts/src/components/dialog/dialog.d.ts.map +1 -1
  3. package/lib/dts/src/components/dialog/styles.d.ts +1 -1
  4. package/lib/dts/src/components/dialog/styles.d.ts.map +1 -1
  5. package/lib/dts/src/components/hotkeys/hotkeys.d.ts.map +1 -1
  6. package/lib/dts/src/components/menu/menuGroup.d.ts.map +1 -1
  7. package/lib/dts/src/components/skeleton/skeleton.d.ts.map +1 -1
  8. package/lib/dts/src/hooks/index.d.ts +1 -2
  9. package/lib/dts/src/hooks/index.d.ts.map +1 -1
  10. package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts +1 -1
  11. package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts.map +1 -1
  12. package/lib/dts/src/hooks/useResponsiveProp.d.ts +6 -0
  13. package/lib/dts/src/hooks/useResponsiveProp.d.ts.map +1 -0
  14. package/lib/dts/src/index.d.ts +0 -1
  15. package/lib/dts/src/index.d.ts.map +1 -1
  16. package/lib/dts/src/primitives/_selectable/selectable.d.ts +2 -1
  17. package/lib/dts/src/primitives/_selectable/selectable.d.ts.map +1 -1
  18. package/lib/dts/src/primitives/avatar/avatar.d.ts.map +1 -1
  19. package/lib/dts/src/primitives/avatar/avatarCounter.d.ts.map +1 -1
  20. package/lib/dts/src/primitives/avatar/avatarStack.d.ts.map +1 -1
  21. package/lib/dts/src/primitives/avatar/styles.d.ts.map +1 -1
  22. package/lib/dts/src/primitives/badge/badge.d.ts.map +1 -1
  23. package/lib/dts/src/primitives/box/box.d.ts.map +1 -1
  24. package/lib/dts/src/primitives/button/button.d.ts.map +1 -1
  25. package/lib/dts/src/primitives/card/card.d.ts.map +1 -1
  26. package/lib/dts/src/primitives/code/code.d.ts.map +1 -1
  27. package/lib/dts/src/primitives/container/container.d.ts.map +1 -1
  28. package/lib/dts/src/primitives/container/styles.d.ts.map +1 -1
  29. package/lib/dts/src/primitives/container/types.d.ts +1 -1
  30. package/lib/dts/src/primitives/container/types.d.ts.map +1 -1
  31. package/lib/dts/src/primitives/flex/flex.d.ts.map +1 -1
  32. package/lib/dts/src/primitives/grid/grid.d.ts.map +1 -1
  33. package/lib/dts/src/primitives/heading/heading.d.ts.map +1 -1
  34. package/lib/dts/src/primitives/inline/inline.d.ts.map +1 -1
  35. package/lib/dts/src/primitives/inline/styles.d.ts.map +1 -1
  36. package/lib/dts/src/primitives/inline/types.d.ts +1 -1
  37. package/lib/dts/src/primitives/inline/types.d.ts.map +1 -1
  38. package/lib/dts/src/primitives/kbd/kbd.d.ts.map +1 -1
  39. package/lib/dts/src/primitives/label/label.d.ts.map +1 -1
  40. package/lib/dts/src/primitives/popover/popover.d.ts.map +1 -1
  41. package/lib/dts/src/primitives/select/styles.d.ts +1 -5
  42. package/lib/dts/src/primitives/select/styles.d.ts.map +1 -1
  43. package/lib/dts/src/primitives/stack/stack.d.ts.map +1 -1
  44. package/lib/dts/src/primitives/stack/styles.d.ts +1 -1
  45. package/lib/dts/src/primitives/stack/styles.d.ts.map +1 -1
  46. package/lib/dts/src/primitives/text/text.d.ts.map +1 -1
  47. package/lib/dts/src/primitives/textArea/textArea.d.ts.map +1 -1
  48. package/lib/dts/src/primitives/textInput/textInput.d.ts.map +1 -1
  49. package/lib/dts/src/primitives/tooltip/tooltip.d.ts.map +1 -1
  50. package/lib/dts/src/primitives/types.d.ts +1 -1
  51. package/lib/dts/src/primitives/types.d.ts.map +1 -1
  52. package/lib/dts/src/styles/border/types.d.ts +5 -5
  53. package/lib/dts/src/styles/border/types.d.ts.map +1 -1
  54. package/lib/dts/src/styles/box/types.d.ts +4 -4
  55. package/lib/dts/src/styles/box/types.d.ts.map +1 -1
  56. package/lib/dts/src/styles/flex/flexItemStyle.d.ts.map +1 -1
  57. package/lib/dts/src/styles/flex/types.d.ts +6 -6
  58. package/lib/dts/src/styles/flex/types.d.ts.map +1 -1
  59. package/lib/dts/src/styles/font/responsiveFont.d.ts.map +1 -1
  60. package/lib/dts/src/styles/font/types.d.ts +3 -3
  61. package/lib/dts/src/styles/font/types.d.ts.map +1 -1
  62. package/lib/dts/src/styles/grid/types.d.ts +14 -14
  63. package/lib/dts/src/styles/grid/types.d.ts.map +1 -1
  64. package/lib/dts/src/styles/helpers.d.ts +4 -4
  65. package/lib/dts/src/styles/helpers.d.ts.map +1 -1
  66. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts +12 -12
  67. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts.map +1 -1
  68. package/lib/dts/src/styles/input/textInputStyle.d.ts +2 -7
  69. package/lib/dts/src/styles/input/textInputStyle.d.ts.map +1 -1
  70. package/lib/dts/src/styles/margin/types.d.ts +7 -7
  71. package/lib/dts/src/styles/margin/types.d.ts.map +1 -1
  72. package/lib/dts/src/styles/padding/types.d.ts +7 -7
  73. package/lib/dts/src/styles/padding/types.d.ts.map +1 -1
  74. package/lib/dts/src/styles/radius/types.d.ts +1 -1
  75. package/lib/dts/src/styles/radius/types.d.ts.map +1 -1
  76. package/lib/dts/src/styles/shadow/shadowStyle.d.ts.map +1 -1
  77. package/lib/dts/src/styles/shadow/types.d.ts +1 -1
  78. package/lib/dts/src/styles/shadow/types.d.ts.map +1 -1
  79. package/lib/dts/src/theme/studioTheme/color.d.ts.map +1 -1
  80. package/lib/dts/src/utils/elementQuery/elementQuery.d.ts.map +1 -1
  81. package/lib/dts/src/utils/index.d.ts +1 -0
  82. package/lib/dts/src/utils/index.d.ts.map +1 -1
  83. package/lib/dts/src/utils/resizeObserver.d.ts +6 -0
  84. package/lib/dts/src/utils/resizeObserver.d.ts.map +1 -0
  85. package/lib/dts/src/utils/virtualList/virtualList.d.ts.map +1 -1
  86. package/lib/sanity-ui.js +570 -731
  87. package/lib/sanity-ui.js.map +1 -1
  88. package/lib/sanity-ui.modern.js +591 -762
  89. package/lib/sanity-ui.modern.js.map +1 -1
  90. package/lib/sanity-ui.module.js +566 -725
  91. package/lib/sanity-ui.module.js.map +1 -1
  92. package/package.json +11 -11
  93. package/src/__workshop__/color/overview.tsx +11 -9
  94. package/src/components/autocomplete/__workshop__/async.tsx +12 -14
  95. package/src/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -36
  96. package/src/components/autocomplete/autocomplete.tsx +2 -2
  97. package/src/components/breadcrumbs/breadcrumbs.tsx +2 -3
  98. package/src/components/dialog/dialog.tsx +9 -17
  99. package/src/components/dialog/styles.ts +4 -4
  100. package/src/components/hotkeys/hotkeys.tsx +1 -3
  101. package/src/components/menu/__workshop__/constrainedInBoundary.tsx +14 -11
  102. package/src/components/menu/__workshop__/groups.tsx +1 -1
  103. package/src/components/menu/menuGroup.tsx +2 -3
  104. package/src/components/menu/menuItem.tsx +3 -3
  105. package/src/components/skeleton/skeleton.tsx +1 -10
  106. package/src/components/skeleton/textSkeleton.tsx +7 -7
  107. package/src/hooks/index.ts +1 -2
  108. package/src/hooks/useElementRect/useElementRect.ts +16 -4
  109. package/src/hooks/useResponsiveProp.ts +10 -0
  110. package/src/index.ts +0 -1
  111. package/src/primitives/_selectable/selectable.tsx +4 -5
  112. package/src/primitives/avatar/avatar.tsx +5 -7
  113. package/src/primitives/avatar/avatarCounter.tsx +11 -12
  114. package/src/primitives/avatar/avatarStack.tsx +10 -15
  115. package/src/primitives/avatar/styles.ts +2 -2
  116. package/src/primitives/badge/badge.tsx +2 -3
  117. package/src/primitives/box/box.tsx +25 -26
  118. package/src/primitives/button/button.tsx +10 -22
  119. package/src/primitives/card/card.tsx +7 -8
  120. package/src/primitives/checkbox/__workshop__/example.tsx +2 -4
  121. package/src/primitives/checkbox/__workshop__/props.tsx +2 -4
  122. package/src/primitives/checkbox/__workshop__/readOnly.tsx +2 -4
  123. package/src/primitives/code/__workshop__/props.tsx +1 -1
  124. package/src/primitives/code/code.tsx +1 -2
  125. package/src/primitives/container/container.tsx +1 -10
  126. package/src/primitives/container/styles.ts +2 -2
  127. package/src/primitives/container/types.ts +1 -1
  128. package/src/primitives/flex/flex.tsx +5 -6
  129. package/src/primitives/grid/__workshop__/responsive.tsx +12 -13
  130. package/src/primitives/grid/grid.tsx +8 -9
  131. package/src/primitives/heading/__workshop__/opticalAlignment.tsx +7 -19
  132. package/src/primitives/heading/heading.tsx +2 -3
  133. package/src/primitives/inline/inline.tsx +6 -12
  134. package/src/primitives/inline/styles.ts +2 -2
  135. package/src/primitives/inline/types.ts +1 -1
  136. package/src/primitives/kbd/kbd.tsx +1 -2
  137. package/src/primitives/label/label.tsx +3 -4
  138. package/src/primitives/popover/__workshop__/index.ts +5 -10
  139. package/src/primitives/popover/__workshop__/{MarginsStory.tsx → margins.tsx} +1 -1
  140. package/src/primitives/popover/__workshop__/{MatchReferenceWidthStory.tsx → matchReferenceWidth.tsx} +0 -0
  141. package/src/primitives/popover/__workshop__/{PlainStory.tsx → plain.tsx} +14 -12
  142. package/src/primitives/popover/__workshop__/{RecursiveStory.tsx → recursive.tsx} +1 -4
  143. package/src/primitives/popover/__workshop__/rightAligned.tsx +57 -0
  144. package/src/primitives/popover/popover.tsx +10 -29
  145. package/src/primitives/select/select.tsx +9 -9
  146. package/src/primitives/select/styles.ts +4 -10
  147. package/src/primitives/stack/stack.tsx +1 -2
  148. package/src/primitives/stack/styles.ts +3 -3
  149. package/src/primitives/text/__workshop__/opticalAlignment.tsx +5 -15
  150. package/src/primitives/text/text.tsx +2 -3
  151. package/src/primitives/textArea/__workshop__/plain.tsx +18 -23
  152. package/src/primitives/textArea/textArea.tsx +5 -21
  153. package/src/primitives/textInput/__workshop__/clearButton.tsx +8 -14
  154. package/src/primitives/textInput/__workshop__/index.ts +2 -2
  155. package/src/primitives/textInput/__workshop__/plain.tsx +32 -39
  156. package/src/primitives/textInput/__workshop__/tones.tsx +95 -234
  157. package/src/primitives/textInput/__workshop__/typed.tsx +2 -8
  158. package/src/primitives/textInput/textInput.tsx +12 -47
  159. package/src/primitives/tooltip/__workshop__/props.tsx +2 -7
  160. package/src/primitives/tooltip/tooltip.tsx +9 -19
  161. package/src/primitives/types.ts +1 -1
  162. package/src/styles/border/borderStyle.ts +6 -6
  163. package/src/styles/border/types.ts +5 -5
  164. package/src/styles/box/boxStyle.ts +5 -5
  165. package/src/styles/box/types.ts +4 -4
  166. package/src/styles/flex/flexItemStyle.ts +4 -5
  167. package/src/styles/flex/flexStyle.ts +6 -6
  168. package/src/styles/flex/types.ts +6 -6
  169. package/src/styles/font/responsiveFont.ts +4 -2
  170. package/src/styles/font/textAlignStyle.ts +2 -2
  171. package/src/styles/font/types.ts +3 -4
  172. package/src/styles/grid/gridItemStyle.ts +7 -7
  173. package/src/styles/grid/gridStyle.ts +9 -9
  174. package/src/styles/grid/types.ts +14 -14
  175. package/src/styles/helpers.ts +9 -9
  176. package/src/styles/input/responsiveInputPaddingStyle.ts +27 -24
  177. package/src/styles/input/textInputStyle.ts +80 -92
  178. package/src/styles/margin/marginStyle.ts +8 -8
  179. package/src/styles/margin/marginsStyle.test.ts +1 -1
  180. package/src/styles/margin/types.ts +7 -7
  181. package/src/styles/padding/paddingStyle.test.ts +1 -1
  182. package/src/styles/padding/paddingStyle.ts +8 -8
  183. package/src/styles/padding/types.ts +7 -7
  184. package/src/styles/radius/radiusStyle.ts +2 -2
  185. package/src/styles/radius/types.ts +1 -1
  186. package/src/styles/shadow/shadowStyle.ts +5 -2
  187. package/src/styles/shadow/types.ts +1 -1
  188. package/src/theme/studioTheme/color.ts +14 -15
  189. package/src/theme/studioTheme/fonts.ts +4 -4
  190. package/src/utils/elementQuery/elementQuery.tsx +18 -5
  191. package/src/utils/index.ts +1 -0
  192. package/src/utils/layer/layerProvider.tsx +2 -2
  193. package/src/{observers → utils}/resizeObserver.ts +3 -1
  194. package/src/utils/virtualList/virtualList.tsx +1 -3
  195. package/lib/dts/src/hooks/useArrayProp.d.ts +0 -7
  196. package/lib/dts/src/hooks/useArrayProp.d.ts.map +0 -1
  197. package/lib/dts/src/hooks/useElementSize.d.ts +0 -7
  198. package/lib/dts/src/hooks/useElementSize.d.ts.map +0 -1
  199. package/lib/dts/src/observers/elementSizeObserver.d.ts +0 -37
  200. package/lib/dts/src/observers/elementSizeObserver.d.ts.map +0 -1
  201. package/lib/dts/src/observers/index.d.ts +0 -3
  202. package/lib/dts/src/observers/index.d.ts.map +0 -1
  203. package/lib/dts/src/observers/resizeObserver.d.ts +0 -5
  204. package/lib/dts/src/observers/resizeObserver.d.ts.map +0 -1
  205. package/src/hooks/useArrayProp.ts +0 -23
  206. package/src/hooks/useElementSize.ts +0 -18
  207. package/src/observers/elementSizeObserver.ts +0 -116
  208. package/src/observers/index.ts +0 -2
  209. package/src/primitives/popover/__workshop__/RightAlignedStory.tsx +0 -60
  210. package/src/primitives/popover/__workshop__/TestStory.tsx +0 -79
@@ -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];
5259
5153
 
5260
- var elementSize = useElementSize(element);
5261
- var width = useMemo(function () {
5262
- var _elementSize$border$w;
5154
+ useEffect(function () {
5155
+ if (!element) return;
5156
+
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,7 +5711,7 @@ var VirtualList = /*#__PURE__*/forwardRef(function VirtualList(props, ref) {
5810
5711
  scrollEl.addEventListener('scroll', _handleScroll, {
5811
5712
  passive: true
5812
5713
  });
5813
- var ro = new _ResizeObserver(function (entries) {
5714
+ var ro = new ResizeObserver(function (entries) {
5814
5715
  setScrollHeight(entries[0].contentRect.height);
5815
5716
  });
5816
5717
  ro.observe(scrollEl);
@@ -6127,7 +6028,7 @@ var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6127
6028
  _props$tone = props.tone,
6128
6029
  tone = _props$tone === void 0 ? 'inherit' : _props$tone,
6129
6030
  _props$width = props.width,
6130
- widthProp = _props$width === void 0 ? 0 : _props$width,
6031
+ width = _props$width === void 0 ? 0 : _props$width,
6131
6032
  _props$zOffset = props.zOffset,
6132
6033
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.popover.zOffset : _props$zOffset,
6133
6034
  restProps = _objectWithoutPropertiesLoose(props, _excluded$n);
@@ -6148,7 +6049,6 @@ var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6148
6049
  setArrowElement = _useState3[1];
6149
6050
 
6150
6051
  var popperReferenceElement = referenceElementProp || referenceElement;
6151
- var width = useArrayProp(matchReferenceWidth ? 'auto' : widthProp);
6152
6052
  var modifiers = usePopoverModifiers({
6153
6053
  allowedAutoPlacements: allowedAutoPlacements,
6154
6054
  arrow: arrow,
@@ -6189,21 +6089,13 @@ var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6189
6089
  var popoverStyle = useMemo(function () {
6190
6090
  return _extends({}, style, styles.popper);
6191
6091
  }, [style, styles]);
6192
- var updateTimeoutRef = useRef(null);
6193
6092
  useEffect(function () {
6194
- if (updateTimeoutRef.current) {
6195
- clearTimeout(updateTimeoutRef.current);
6196
- updateTimeoutRef.current = null;
6197
- }
6198
-
6199
- updateTimeoutRef.current = setTimeout(function () {
6200
- if (forceUpdate) {
6201
- try {
6202
- forceUpdate();
6203
- } catch (_) {// ignore caught error
6204
- }
6093
+ if (forceUpdate) {
6094
+ try {
6095
+ forceUpdate();
6096
+ } catch (_) {// ignore caught error
6205
6097
  }
6206
- }, 0);
6098
+ }
6207
6099
  }, [content, forceUpdate, open, popperReferenceElement]);
6208
6100
 
6209
6101
  if (disabled) {
@@ -6219,13 +6111,13 @@ var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6219
6111
  zOffset: zOffset
6220
6112
  }, attributes.popper), /*#__PURE__*/React.createElement(PopoverCard, {
6221
6113
  "$constrainSize": constrainSize,
6222
- "$width": width,
6223
6114
  "data-ui": "PopoverCard",
6224
6115
  padding: padding,
6225
6116
  radius: radius,
6226
6117
  scheme: scheme,
6227
6118
  shadow: shadow,
6228
- tone: tone
6119
+ tone: tone,
6120
+ width: width
6229
6121
  }, arrow && /*#__PURE__*/React.createElement(PopoverArrow, {
6230
6122
  ref: setArrowElement,
6231
6123
  style: styles.arrow
@@ -6344,7 +6236,7 @@ function inputTextSizeStyle(props) {
6344
6236
  var theme = props.theme,
6345
6237
  $fontSize = props.$fontSize;
6346
6238
  var sizes = theme.sanity.fonts.text.sizes;
6347
- return _responsive(theme.sanity.media, $fontSize, function (sizeIndex) {
6239
+ return responsive(theme.sanity.media, getResponsiveProp($fontSize), function (sizeIndex) {
6348
6240
  return textSize(sizes[sizeIndex] || sizes[2]);
6349
6241
  });
6350
6242
  }
@@ -6396,10 +6288,10 @@ var Select = /*#__PURE__*/forwardRef(function Select(props, forwardedRef) {
6396
6288
  "data-read-only": !disabled && readOnly ? '' : undefined,
6397
6289
  "data-ui": "Select"
6398
6290
  }, restProps, {
6399
- "$fontSize": useArrayProp(fontSize),
6400
- "$padding": useArrayProp(padding),
6401
- "$radius": useArrayProp(radius),
6402
- "$space": useArrayProp(space),
6291
+ "$fontSize": fontSize,
6292
+ "$padding": padding,
6293
+ "$radius": radius,
6294
+ "$space": space,
6403
6295
  disabled: disabled || readOnly,
6404
6296
  ref: ref
6405
6297
  }), children), /*#__PURE__*/React.createElement(IconBox, {
@@ -6427,7 +6319,7 @@ function responsiveStackSpaceStyle(props) {
6427
6319
  var _theme$sanity = theme.sanity,
6428
6320
  media = _theme$sanity.media,
6429
6321
  space = _theme$sanity.space;
6430
- return _responsive(media, props.$space, function (spaceIndex) {
6322
+ return responsive(media, getResponsiveProp(props.$space), function (spaceIndex) {
6431
6323
  return {
6432
6324
  gridGap: rem(space[spaceIndex])
6433
6325
  };
@@ -6449,13 +6341,13 @@ var Stack = /*#__PURE__*/forwardRef(function Stack(props, ref) {
6449
6341
  "data-as": typeof as === 'string' ? as : undefined,
6450
6342
  "data-ui": "Stack"
6451
6343
  }, restProps, {
6452
- "$space": useArrayProp(space),
6344
+ "$space": space,
6453
6345
  forwardedAs: as,
6454
6346
  ref: ref
6455
6347
  }));
6456
6348
  });
6457
6349
 
6458
- 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;
6459
6351
  /* Root */
6460
6352
 
6461
6353
  function switchBaseStyles() {
@@ -6499,7 +6391,7 @@ function switchThumbStyles(props) {
6499
6391
  var checkedOffset = trackWidth - trackPadding * 2 - size;
6500
6392
  var indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding;
6501
6393
  var checked = $indeterminate !== true && props.$checked === true;
6502
- return css(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteralLoose(["\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ", ";\n top: ", ";\n height: ", ";\n width: ", ";\n border-radius: ", ";\n transition-property: transform;\n transition-duration: ", "ms;\n transition-timing-function: ", ";\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n\n ", "\n\n ", "\n "])), rem(trackPadding), rem(trackPadding), rem(size), rem(size), rem(size / 2), input["switch"].transitionDurationMs, input["switch"].transitionTimingFunction, checked && css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), checkedOffset), $indeterminate && css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), indeterminateOffset));
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));
6503
6395
  }
6504
6396
 
6505
6397
  var _excluded$j = ["checked", "className", "disabled", "indeterminate", "readOnly", "style"];
@@ -6548,7 +6440,7 @@ var Switch = /*#__PURE__*/forwardRef(function Switch(props, forwardedRef) {
6548
6440
  })));
6549
6441
  });
6550
6442
 
6551
- var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius", "weight"];
6443
+ var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius"];
6552
6444
 
6553
6445
  var _templateObject$f;
6554
6446
  var Root$d = styled.span(textInputRootStyle);
@@ -6571,46 +6463,32 @@ var TextArea = /*#__PURE__*/forwardRef(function TextArea(props, forwardedRef) {
6571
6463
  padding = _props$padding === void 0 ? 3 : _props$padding,
6572
6464
  _props$radius = props.radius,
6573
6465
  radius = _props$radius === void 0 ? 1 : _props$radius,
6574
- weight = props.weight,
6575
6466
  restProps = _objectWithoutPropertiesLoose(props, _excluded$i);
6576
6467
 
6577
6468
  var ref = useForwardedRef(forwardedRef);
6578
- var rootTheme = useRootTheme();
6579
6469
  useCustomValidity(ref, customValidity);
6580
6470
  return /*#__PURE__*/React.createElement(Root$d, {
6581
6471
  "data-ui": "TextArea"
6582
6472
  }, /*#__PURE__*/React.createElement(InputRoot$1, null, /*#__PURE__*/React.createElement(Input$1, _extends({
6583
- "data-as": "textarea",
6584
- "data-scheme": rootTheme.scheme,
6585
- "data-tone": rootTheme.tone
6473
+ "data-as": "textarea"
6586
6474
  }, restProps, {
6587
- "$fontSize": useArrayProp(fontSize),
6588
- "$padding": useArrayProp(padding),
6589
- "$scheme": rootTheme.scheme,
6590
- "$space": useArrayProp(0),
6591
- "$tone": rootTheme.tone,
6592
- "$weight": weight,
6475
+ "$fontSize": fontSize,
6476
+ "$padding": padding,
6593
6477
  disabled: disabled,
6594
6478
  ref: ref
6595
6479
  })), /*#__PURE__*/React.createElement(Presentation$1, {
6596
6480
  "$border": border,
6597
- "$radius": useArrayProp(radius),
6598
- "$scheme": rootTheme.scheme,
6599
- "$tone": rootTheme.tone,
6600
- "data-scheme": rootTheme.scheme,
6601
- "data-tone": rootTheme.tone
6481
+ "$radius": radius
6602
6482
  })));
6603
6483
  });
6604
6484
 
6605
- 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"];
6606
6486
 
6607
- 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;
6608
6488
  var CLEAR_BUTTON_BOX_STYLE = {
6609
6489
  zIndex: 2
6610
6490
  };
6611
- var Root$c = styled(Card).attrs({
6612
- forwardedAs: 'span'
6613
- })(textInputRootStyle);
6491
+ var Root$c = styled.span(textInputRootStyle);
6614
6492
  var InputRoot = styled.span(_templateObject$e || (_templateObject$e = _taggedTemplateLiteralLoose(["\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n"])));
6615
6493
  var Prefix = styled(Card).attrs({
6616
6494
  forwardedAs: 'span'
@@ -6621,8 +6499,7 @@ var Suffix = styled(Card).attrs({
6621
6499
  var Input = styled.input(responsiveInputPaddingStyle, textInputBaseStyle, textInputFontSizeStyle);
6622
6500
  var Presentation = styled.span(responsiveRadiusStyle, textInputRepresentationStyle);
6623
6501
  var LeftBox = styled(Box)(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n"])));
6624
- var RightBox = styled(Box)(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n right: 0;\n"])));
6625
- var RightCard = styled(Card)(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteralLoose(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
6502
+ var RightCard = styled(Card)(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
6626
6503
  /**
6627
6504
  * @public
6628
6505
  */
@@ -6634,7 +6511,7 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6634
6511
  _props$disabled = props.disabled,
6635
6512
  disabled = _props$disabled === void 0 ? false : _props$disabled,
6636
6513
  _props$fontSize = props.fontSize,
6637
- fontSizeProp = _props$fontSize === void 0 ? 2 : _props$fontSize,
6514
+ fontSize = _props$fontSize === void 0 ? 2 : _props$fontSize,
6638
6515
  icon = props.icon,
6639
6516
  iconRight = props.iconRight,
6640
6517
  onClear = props.onClear,
@@ -6645,20 +6522,16 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6645
6522
  radiusProp = _props$radius === void 0 ? 1 : _props$radius,
6646
6523
  readOnly = props.readOnly,
6647
6524
  _props$space = props.space,
6648
- spaceProp = _props$space === void 0 ? 3 : _props$space,
6525
+ space = _props$space === void 0 ? 3 : _props$space,
6649
6526
  suffix = props.suffix,
6650
6527
  customValidity = props.customValidity,
6651
6528
  _props$type = props.type,
6652
6529
  type = _props$type === void 0 ? 'text' : _props$type,
6653
- weight = props.weight,
6654
6530
  restProps = _objectWithoutPropertiesLoose(props, _excluded$h);
6655
6531
 
6656
6532
  var ref = useForwardedRef(forwardedRef);
6657
- var rootTheme = useRootTheme();
6658
- var fontSize = useArrayProp(fontSizeProp);
6659
- var padding = useArrayProp(paddingProp);
6660
- var radius = useArrayProp(radiusProp);
6661
- var space = useArrayProp(spaceProp); // Transient properties
6533
+ var padding = useResponsiveProp(paddingProp);
6534
+ var radius = useResponsiveProp(radiusProp); // Transient properties
6662
6535
 
6663
6536
  var $hasClearButton = Boolean(clearButton);
6664
6537
  var $hasIcon = Boolean(icon);
@@ -6697,21 +6570,17 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6697
6570
  "$border": border,
6698
6571
  "$hasPrefix": $hasPrefix,
6699
6572
  "$hasSuffix": $hasSuffix,
6700
- "$radius": radius,
6701
- "$scheme": rootTheme.scheme,
6702
- "$tone": rootTheme.tone,
6703
- "data-scheme": rootTheme.scheme,
6704
- "data-tone": rootTheme.tone
6573
+ "$radius": radius
6705
6574
  }, icon && /*#__PURE__*/React.createElement(LeftBox, {
6706
6575
  padding: padding
6707
6576
  }, /*#__PURE__*/React.createElement(Text, {
6708
6577
  size: fontSize
6709
- }, /*#__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, {
6710
6579
  padding: padding
6711
6580
  }, /*#__PURE__*/React.createElement(Text, {
6712
6581
  size: fontSize
6713
6582
  }, /*#__PURE__*/isValidElement(iconRight) && iconRight, isValidElementType(iconRight) && /*#__PURE__*/createElement(iconRight))));
6714
- }, [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)
6715
6584
 
6716
6585
  var clearButtonBoxPadding = useMemo(function () {
6717
6586
  return padding.map(function (v) {
@@ -6762,21 +6631,15 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6762
6631
  }, /*#__PURE__*/React.createElement("span", null, suffix));
6763
6632
  }, [radius, suffix]);
6764
6633
  return /*#__PURE__*/React.createElement(Root$c, {
6765
- "data-ui": "TextInput",
6766
- tone: rootTheme.tone
6634
+ "data-ui": "TextInput"
6767
6635
  }, prefixNode, /*#__PURE__*/React.createElement(InputRoot, null, /*#__PURE__*/React.createElement(Input, _extends({
6768
- "data-as": "input",
6769
- "data-scheme": rootTheme.scheme,
6770
- "data-tone": rootTheme.tone
6636
+ "data-as": "input"
6771
6637
  }, restProps, {
6772
- "$fontSize": fontSize,
6773
6638
  "$iconLeft": $hasIcon,
6774
6639
  "$iconRight": $hasIconRight || $hasClearButton,
6775
6640
  "$padding": padding,
6776
- "$scheme": rootTheme.scheme,
6777
6641
  "$space": space,
6778
- "$tone": rootTheme.tone,
6779
- "$weight": weight,
6642
+ "$fontSize": fontSize,
6780
6643
  disabled: disabled,
6781
6644
  readOnly: readOnly,
6782
6645
  ref: ref,
@@ -6824,7 +6687,7 @@ var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
6824
6687
  children = props.children,
6825
6688
  content = props.content,
6826
6689
  disabled = props.disabled,
6827
- fallbackPlacementsProp = props.fallbackPlacements,
6690
+ fallbackPlacements = props.fallbackPlacements,
6828
6691
  _props$placement = props.placement,
6829
6692
  placement = _props$placement === void 0 ? 'bottom' : _props$placement,
6830
6693
  portal = props.portal,
@@ -6833,7 +6696,6 @@ var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
6833
6696
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.tooltip.zOffset : _props$zOffset,
6834
6697
  restProps = _objectWithoutPropertiesLoose(props, _excluded$g);
6835
6698
 
6836
- var fallbackPlacements = useArrayProp(fallbackPlacementsProp);
6837
6699
  var forwardedRef = useForwardedRef(ref);
6838
6700
 
6839
6701
  var _useState = useState(null),
@@ -6915,21 +6777,13 @@ var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
6915
6777
  window.removeEventListener('mousemove', handleWindowMouseMove);
6916
6778
  };
6917
6779
  }, [isOpen, referenceElement]);
6918
- var updateTimeoutRef = useRef(null);
6919
6780
  useEffect(function () {
6920
- if (updateTimeoutRef.current) {
6921
- clearTimeout(updateTimeoutRef.current);
6922
- updateTimeoutRef.current = null;
6923
- }
6924
-
6925
- updateTimeoutRef.current = setTimeout(function () {
6926
- if (forceUpdate) {
6927
- try {
6928
- forceUpdate();
6929
- } catch (_) {// ignore caught error
6930
- }
6781
+ if (forceUpdate) {
6782
+ try {
6783
+ forceUpdate();
6784
+ } catch (_) {// ignore caught error
6931
6785
  }
6932
- }, 0);
6786
+ }
6933
6787
  }, [forceUpdate, content]); // Close when `disabled` changes to `true`
6934
6788
 
6935
6789
  useEffect(function () {
@@ -7211,7 +7065,7 @@ var InnerAutocomplete = /*#__PURE__*/forwardRef(function InnerAutocomplete(props
7211
7065
  var popoverMouseWithinRef = useRef(false);
7212
7066
  var listBoxId = id + "-listbox";
7213
7067
  var options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY;
7214
- var padding = useArrayProp(paddingProp);
7068
+ var padding = useResponsiveProp(paddingProp);
7215
7069
  var currentOption = useMemo(function () {
7216
7070
  return value !== null ? options.find(function (o) {
7217
7071
  return o.value === value;
@@ -7643,11 +7497,9 @@ var Breadcrumbs = /*#__PURE__*/forwardRef(function Breadcrumbs(props, ref) {
7643
7497
  maxLength = props.maxLength,
7644
7498
  separator = props.separator,
7645
7499
  _props$space = props.space,
7646
- spaceRaw = _props$space === void 0 ? 2 : _props$space,
7500
+ space = _props$space === void 0 ? 2 : _props$space,
7647
7501
  restProps = _objectWithoutPropertiesLoose(props, _excluded$e);
7648
7502
 
7649
- var space = useArrayProp(spaceRaw);
7650
-
7651
7503
  var _useState = useState(false),
7652
7504
  open = _useState[0],
7653
7505
  setOpen = _useState[1];
@@ -7737,13 +7589,13 @@ function dialogStyle(_ref) {
7737
7589
  alignItems: 'center',
7738
7590
  justifyContent: 'center',
7739
7591
  outline: 'none',
7740
- background: color.shadow.umbra
7592
+ background: color.shadow.penumbra
7741
7593
  };
7742
7594
  }
7743
7595
  function responsiveDialogPositionStyle(props) {
7744
7596
  var theme = props.theme;
7745
7597
  var media = theme.sanity.media;
7746
- return _responsive(media, props.$position, function (position) {
7598
+ return responsive(media, getResponsiveProp(props.$position), function (position) {
7747
7599
  return {
7748
7600
  '&&': {
7749
7601
  position: position
@@ -7791,13 +7643,10 @@ var DialogCard = /*#__PURE__*/forwardRef(function DialogCard(props, ref) {
7791
7643
  id = props.id,
7792
7644
  onClickOutside = props.onClickOutside,
7793
7645
  onClose = props.onClose,
7794
- radiusProp = props.radius,
7646
+ radius = props.radius,
7795
7647
  scheme = props.scheme,
7796
- shadowProp = props.shadow,
7797
- widthProp = props.width;
7798
- var radius = useArrayProp(radiusProp);
7799
- var shadow = useArrayProp(shadowProp);
7800
- var width = useArrayProp(widthProp);
7648
+ shadow = props.shadow,
7649
+ width = props.width;
7801
7650
  var forwardedRef = useForwardedRef(ref);
7802
7651
 
7803
7652
  var _useState = useState(null),
@@ -7884,7 +7733,7 @@ var Dialog = /*#__PURE__*/forwardRef(function Dialog(props, ref) {
7884
7733
  _props$__unstable_hid = props.__unstable_hideCloseButton,
7885
7734
  hideCloseButton = _props$__unstable_hid === void 0 ? false : _props$__unstable_hid,
7886
7735
  _props$cardRadius = props.cardRadius,
7887
- cardRadiusProp = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7736
+ cardRadius = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7888
7737
  _props$cardShadow = props.cardShadow,
7889
7738
  cardShadow = _props$cardShadow === void 0 ? 4 : _props$cardShadow,
7890
7739
  children = props.children,
@@ -7895,22 +7744,17 @@ var Dialog = /*#__PURE__*/forwardRef(function Dialog(props, ref) {
7895
7744
  onClickOutside = props.onClickOutside,
7896
7745
  onClose = props.onClose,
7897
7746
  _props$padding = props.padding,
7898
- paddingProp = _props$padding === void 0 ? 4 : _props$padding,
7747
+ padding = _props$padding === void 0 ? 4 : _props$padding,
7899
7748
  portal = props.portal,
7900
7749
  _props$position = props.position,
7901
- positionProp = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7750
+ position = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7902
7751
  scheme = props.scheme,
7903
7752
  _props$width = props.width,
7904
- widthProp = _props$width === void 0 ? 0 : _props$width,
7753
+ width = _props$width === void 0 ? 0 : _props$width,
7905
7754
  _props$zOffset = props.zOffset,
7906
- zOffsetProp = _props$zOffset === void 0 ? dialog.zOffset || ((_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.dialog.zOffset) : _props$zOffset,
7755
+ zOffset = _props$zOffset === void 0 ? dialog.zOffset || ((_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.dialog.zOffset) : _props$zOffset,
7907
7756
  restProps = _objectWithoutPropertiesLoose(props, _excluded$d);
7908
7757
 
7909
- var cardRadius = useArrayProp(cardRadiusProp);
7910
- var padding = useArrayProp(paddingProp);
7911
- var position = useArrayProp(positionProp);
7912
- var width = useArrayProp(widthProp);
7913
- var zOffset = useArrayProp(zOffsetProp);
7914
7758
  var preDivRef = useRef(null);
7915
7759
  var postDivRef = useRef(null);
7916
7760
  var cardRef = useRef(null);
@@ -8005,11 +7849,9 @@ var Hotkeys = /*#__PURE__*/forwardRef(function Hotkeys(props, ref) {
8005
7849
  padding = props.padding,
8006
7850
  radius = props.radius,
8007
7851
  _props$space = props.space,
8008
- spaceProp = _props$space === void 0 ? 1 : _props$space,
7852
+ space = _props$space === void 0 ? 1 : _props$space,
8009
7853
  restProps = _objectWithoutPropertiesLoose(props, _excluded$c);
8010
7854
 
8011
- var space = useArrayProp(spaceProp);
8012
-
8013
7855
  if (!keys || keys.length === 0) {
8014
7856
  return /*#__PURE__*/React.createElement(React.Fragment, null);
8015
7857
  }
@@ -8623,7 +8465,7 @@ function selectableColorStyle(props) {
8623
8465
  * @internal
8624
8466
  */
8625
8467
 
8626
- var Selectable = styled(Box)(responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8468
+ var Selectable = styled(Box)(responsiveBorderStyle, responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8627
8469
 
8628
8470
  function useMenu() {
8629
8471
  var value = useContext(MenuContext);
@@ -8656,7 +8498,8 @@ function MenuGroup(props) {
8656
8498
  onClick = props.onClick,
8657
8499
  _props$padding = props.padding,
8658
8500
  padding = _props$padding === void 0 ? 3 : _props$padding,
8659
- popover = props.popover,
8501
+ _props$popover = props.popover,
8502
+ popover = _props$popover === void 0 ? {} : _props$popover,
8660
8503
  _props$radius = props.radius,
8661
8504
  radius = _props$radius === void 0 ? 2 : _props$radius,
8662
8505
  _props$space = props.space,
@@ -8770,7 +8613,7 @@ function MenuGroup(props) {
8770
8613
  "aria-pressed": as === 'button' ? withinMenu : undefined,
8771
8614
  "data-pressed": as !== 'button' ? withinMenu : undefined,
8772
8615
  "data-selected": !withinMenu && active ? '' : undefined,
8773
- "$radius": useArrayProp(radius),
8616
+ "$radius": radius,
8774
8617
  "$tone": tone,
8775
8618
  onClick: handleClick,
8776
8619
  onKeyDown: handleKeyDown,
@@ -8876,13 +8719,13 @@ var MenuItem = /*#__PURE__*/forwardRef(function MenuItem(props, forwardedRef) {
8876
8719
  "data-selected": active ? '' : undefined,
8877
8720
  "data-disabled": disabled ? '' : undefined,
8878
8721
  forwardedAs: as,
8879
- "$radius": useArrayProp(radius),
8880
- "$padding": useArrayProp(0),
8722
+ "$radius": radius,
8881
8723
  "$tone": tone,
8882
8724
  disabled: disabled,
8883
8725
  onClick: handleClick,
8884
8726
  onMouseEnter: onItemMouseEnter,
8885
8727
  onMouseLeave: onItemMouseLeave,
8728
+ padding: 0,
8886
8729
  ref: setRef,
8887
8730
  role: "menuitem",
8888
8731
  tabIndex: -1,
@@ -8964,7 +8807,7 @@ var Skeleton = /*#__PURE__*/forwardRef(function Skeleton(props, ref) {
8964
8807
  }, [delay]);
8965
8808
  return /*#__PURE__*/React.createElement(Root$4, _extends({}, restProps, {
8966
8809
  "$animated": animated,
8967
- "$radius": useArrayProp(radius),
8810
+ "$radius": radius,
8968
8811
  "$visible": visible,
8969
8812
  ref: ref
8970
8813
  }));
@@ -8980,15 +8823,13 @@ var Root$3 = styled(Skeleton)(function (_ref) {
8980
8823
  theme = _ref.theme;
8981
8824
  var media = theme.sanity.media;
8982
8825
  var font = theme.sanity.fonts[$style];
8983
-
8984
- var styles = _responsive(media, $size, function (sizeIndex) {
8826
+ var styles = responsive(media, $size, function (sizeIndex) {
8985
8827
  var fontSize = font.sizes[sizeIndex];
8986
8828
  var capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight;
8987
8829
  return {
8988
8830
  height: capHeight
8989
8831
  };
8990
8832
  });
8991
-
8992
8833
  return styles;
8993
8834
  });
8994
8835
  /**
@@ -9001,7 +8842,7 @@ var TextSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref) {
9001
8842
  size = _props$size === void 0 ? 2 : _props$size,
9002
8843
  restProps = _objectWithoutPropertiesLoose(props, _excluded$7);
9003
8844
 
9004
- var $size = useArrayProp(size);
8845
+ var $size = useResponsiveProp(size);
9005
8846
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
9006
8847
  "$size": $size,
9007
8848
  ref: ref,
@@ -9018,7 +8859,7 @@ var LabelSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref) {
9018
8859
  size = _props$size2 === void 0 ? 2 : _props$size2,
9019
8860
  restProps = _objectWithoutPropertiesLoose(props, _excluded2);
9020
8861
 
9021
- var $size = useArrayProp(size);
8862
+ var $size = useResponsiveProp(size);
9022
8863
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
9023
8864
  "$size": $size,
9024
8865
  ref: ref,
@@ -9035,7 +8876,7 @@ var HeadingSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref)
9035
8876
  size = _props$size3 === void 0 ? 2 : _props$size3,
9036
8877
  restProps = _objectWithoutPropertiesLoose(props, _excluded3);
9037
8878
 
9038
- var $size = useArrayProp(size);
8879
+ var $size = useResponsiveProp(size);
9039
8880
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
9040
8881
  "$size": $size,
9041
8882
  ref: ref,
@@ -9052,7 +8893,7 @@ var CodeSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref) {
9052
8893
  size = _props$size4 === void 0 ? 2 : _props$size4,
9053
8894
  restProps = _objectWithoutPropertiesLoose(props, _excluded4);
9054
8895
 
9055
- var $size = useArrayProp(size);
8896
+ var $size = useResponsiveProp(size);
9056
8897
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
9057
8898
  "$size": $size,
9058
8899
  ref: ref,
@@ -9926,5 +9767,5 @@ var TreeItem = /*#__PURE__*/memo(function TreeItem(props) {
9926
9767
  }, children)));
9927
9768
  });
9928
9769
 
9929
- export { Autocomplete, Avatar, AvatarCounter, AvatarStack, Badge, BoundaryElementProvider, Box, Breadcrumbs, Button, Card, Checkbox, Code, CodeSkeleton, Container, Dialog, DialogContext, DialogProvider, ElementQuery, ErrorBoundary, Flex, Grid, Heading, HeadingSkeleton, Hotkeys, Inline, KBD, Label, LabelSkeleton, Layer, LayerProvider, Menu, MenuButton, MenuDivider, MenuGroup, MenuItem, Popover, Portal, PortalProvider, Radio, Select, Skeleton, Spinner, SrOnly, Stack, Switch, Tab, TabList, TabPanel, Text, TextArea, TextInput, TextSkeleton, ThemeColorProvider, ThemeProvider, Toast, ToastProvider, Tooltip, Tree, TreeItem, VirtualList, _ResizeObserver, _elementSizeObserver, _fillCSSObject, _getArrayProp, _getResponsiveSpace, _hasFocus, _isEnterToClickElement, _isScrollable, _raf, _raf2, _responsive, attemptFocus, createColorTheme, focusFirstDescendant, focusLastDescendant, hexToRgb, hslToRgb, isFocusable, isHTMLAnchorElement, isHTMLButtonElement, isHTMLElement, isHTMLInputElement, isHTMLSelectElement, isHTMLTextAreaElement, multiply$1 as multiply, parseColor, rem, responsiveCodeFontStyle, responsiveHeadingFont, responsiveLabelFont, responsiveTextAlignStyle, responsiveTextFont, rgbToHex, rgbToHsl, rgba, screen$1 as screen, studioTheme, useArrayProp, useBoundaryElement, useClickOutside, useCustomValidity, useDialog, useElementRect, useElementSize, useForwardedRef, useGlobalKeyDown, useLayer, useMediaIndex, usePortal, usePrefersDark, useRootTheme, useTheme, useToast, useTree };
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 };
9930
9771
  //# sourceMappingURL=sanity-ui.module.js.map