@sanity/ui 0.37.10 → 0.37.13

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 (242) hide show
  1. package/lib/dts/src/components/autocomplete/autocomplete.d.ts +2 -2
  2. package/lib/dts/src/components/autocomplete/autocomplete.d.ts.map +1 -1
  3. package/lib/dts/src/components/autocomplete/autocomplete.styles.d.ts.map +1 -1
  4. package/lib/dts/src/components/autocomplete/constants.d.ts +0 -4
  5. package/lib/dts/src/components/autocomplete/constants.d.ts.map +1 -1
  6. package/lib/dts/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  7. package/lib/dts/src/components/dialog/dialog.d.ts.map +1 -1
  8. package/lib/dts/src/components/dialog/styles.d.ts +1 -1
  9. package/lib/dts/src/components/dialog/styles.d.ts.map +1 -1
  10. package/lib/dts/src/components/hotkeys/hotkeys.d.ts.map +1 -1
  11. package/lib/dts/src/components/menu/menuButton.d.ts.map +1 -1
  12. package/lib/dts/src/components/menu/menuGroup.d.ts.map +1 -1
  13. package/lib/dts/src/components/menu/menuItem.d.ts.map +1 -1
  14. package/lib/dts/src/components/skeleton/skeleton.d.ts.map +1 -1
  15. package/lib/dts/src/hooks/_internal/useUnique.d.ts +2 -3
  16. package/lib/dts/src/hooks/_internal/useUnique.d.ts.map +1 -1
  17. package/lib/dts/src/hooks/index.d.ts +2 -1
  18. package/lib/dts/src/hooks/index.d.ts.map +1 -1
  19. package/lib/dts/src/hooks/useArrayProp.d.ts +7 -0
  20. package/lib/dts/src/hooks/useArrayProp.d.ts.map +1 -0
  21. package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts +1 -1
  22. package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts.map +1 -1
  23. package/lib/dts/src/hooks/useElementSize.d.ts +7 -0
  24. package/lib/dts/src/hooks/useElementSize.d.ts.map +1 -0
  25. package/lib/dts/src/index.d.ts +1 -0
  26. package/lib/dts/src/index.d.ts.map +1 -1
  27. package/lib/dts/src/observers/elementSizeObserver.d.ts +37 -0
  28. package/lib/dts/src/observers/elementSizeObserver.d.ts.map +1 -0
  29. package/lib/dts/src/observers/index.d.ts +3 -0
  30. package/lib/dts/src/observers/index.d.ts.map +1 -0
  31. package/lib/dts/src/observers/resizeObserver.d.ts +5 -0
  32. package/lib/dts/src/observers/resizeObserver.d.ts.map +1 -0
  33. package/lib/dts/src/primitives/_selectable/selectable.d.ts +1 -2
  34. package/lib/dts/src/primitives/_selectable/selectable.d.ts.map +1 -1
  35. package/lib/dts/src/primitives/avatar/avatar.d.ts.map +1 -1
  36. package/lib/dts/src/primitives/avatar/avatarCounter.d.ts +1 -0
  37. package/lib/dts/src/primitives/avatar/avatarCounter.d.ts.map +1 -1
  38. package/lib/dts/src/primitives/avatar/avatarStack.d.ts +1 -0
  39. package/lib/dts/src/primitives/avatar/avatarStack.d.ts.map +1 -1
  40. package/lib/dts/src/primitives/avatar/styles.d.ts.map +1 -1
  41. package/lib/dts/src/primitives/badge/badge.d.ts.map +1 -1
  42. package/lib/dts/src/primitives/box/box.d.ts.map +1 -1
  43. package/lib/dts/src/primitives/button/button.d.ts.map +1 -1
  44. package/lib/dts/src/primitives/card/card.d.ts.map +1 -1
  45. package/lib/dts/src/primitives/code/code.d.ts.map +1 -1
  46. package/lib/dts/src/primitives/container/container.d.ts.map +1 -1
  47. package/lib/dts/src/primitives/container/styles.d.ts.map +1 -1
  48. package/lib/dts/src/primitives/container/types.d.ts +1 -1
  49. package/lib/dts/src/primitives/container/types.d.ts.map +1 -1
  50. package/lib/dts/src/primitives/flex/flex.d.ts.map +1 -1
  51. package/lib/dts/src/primitives/grid/grid.d.ts.map +1 -1
  52. package/lib/dts/src/primitives/heading/heading.d.ts.map +1 -1
  53. package/lib/dts/src/primitives/inline/inline.d.ts.map +1 -1
  54. package/lib/dts/src/primitives/inline/styles.d.ts.map +1 -1
  55. package/lib/dts/src/primitives/inline/types.d.ts +1 -1
  56. package/lib/dts/src/primitives/inline/types.d.ts.map +1 -1
  57. package/lib/dts/src/primitives/kbd/kbd.d.ts.map +1 -1
  58. package/lib/dts/src/primitives/label/label.d.ts.map +1 -1
  59. package/lib/dts/src/primitives/popover/popover.d.ts.map +1 -1
  60. package/lib/dts/src/primitives/select/styles.d.ts +5 -1
  61. package/lib/dts/src/primitives/select/styles.d.ts.map +1 -1
  62. package/lib/dts/src/primitives/stack/stack.d.ts.map +1 -1
  63. package/lib/dts/src/primitives/stack/styles.d.ts +1 -1
  64. package/lib/dts/src/primitives/stack/styles.d.ts.map +1 -1
  65. package/lib/dts/src/primitives/text/text.d.ts.map +1 -1
  66. package/lib/dts/src/primitives/textArea/textArea.d.ts.map +1 -1
  67. package/lib/dts/src/primitives/textInput/textInput.d.ts.map +1 -1
  68. package/lib/dts/src/primitives/tooltip/tooltip.d.ts.map +1 -1
  69. package/lib/dts/src/primitives/types.d.ts +1 -1
  70. package/lib/dts/src/primitives/types.d.ts.map +1 -1
  71. package/lib/dts/src/styles/border/types.d.ts +5 -5
  72. package/lib/dts/src/styles/border/types.d.ts.map +1 -1
  73. package/lib/dts/src/styles/box/types.d.ts +4 -4
  74. package/lib/dts/src/styles/box/types.d.ts.map +1 -1
  75. package/lib/dts/src/styles/flex/flexItemStyle.d.ts.map +1 -1
  76. package/lib/dts/src/styles/flex/types.d.ts +6 -6
  77. package/lib/dts/src/styles/flex/types.d.ts.map +1 -1
  78. package/lib/dts/src/styles/font/responsiveFont.d.ts +1 -1
  79. package/lib/dts/src/styles/font/responsiveFont.d.ts.map +1 -1
  80. package/lib/dts/src/styles/font/types.d.ts +3 -3
  81. package/lib/dts/src/styles/font/types.d.ts.map +1 -1
  82. package/lib/dts/src/styles/grid/types.d.ts +14 -14
  83. package/lib/dts/src/styles/grid/types.d.ts.map +1 -1
  84. package/lib/dts/src/styles/helpers.d.ts +4 -4
  85. package/lib/dts/src/styles/helpers.d.ts.map +1 -1
  86. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts +12 -12
  87. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts.map +1 -1
  88. package/lib/dts/src/styles/input/textInputStyle.d.ts +4 -1
  89. package/lib/dts/src/styles/input/textInputStyle.d.ts.map +1 -1
  90. package/lib/dts/src/styles/margin/types.d.ts +7 -7
  91. package/lib/dts/src/styles/margin/types.d.ts.map +1 -1
  92. package/lib/dts/src/styles/padding/types.d.ts +7 -7
  93. package/lib/dts/src/styles/padding/types.d.ts.map +1 -1
  94. package/lib/dts/src/styles/radius/types.d.ts +1 -1
  95. package/lib/dts/src/styles/radius/types.d.ts.map +1 -1
  96. package/lib/dts/src/styles/shadow/shadowStyle.d.ts.map +1 -1
  97. package/lib/dts/src/styles/shadow/types.d.ts +1 -1
  98. package/lib/dts/src/styles/shadow/types.d.ts.map +1 -1
  99. package/lib/dts/src/theme/lib/theme/fonts.d.ts +1 -3
  100. package/lib/dts/src/theme/lib/theme/fonts.d.ts.map +1 -1
  101. package/lib/dts/src/theme/studioTheme/fonts.d.ts.map +1 -1
  102. package/lib/dts/src/types/index.d.ts +2 -1
  103. package/lib/dts/src/types/index.d.ts.map +1 -1
  104. package/lib/dts/src/types/placement.d.ts +7 -0
  105. package/lib/dts/src/types/placement.d.ts.map +1 -0
  106. package/lib/dts/src/types/text.d.ts +5 -0
  107. package/lib/dts/src/types/text.d.ts.map +1 -0
  108. package/lib/dts/src/utils/elementQuery/elementQuery.d.ts.map +1 -1
  109. package/lib/dts/src/utils/index.d.ts +0 -1
  110. package/lib/dts/src/utils/index.d.ts.map +1 -1
  111. package/lib/dts/src/utils/virtualList/virtualList.d.ts.map +1 -1
  112. package/lib/sanity-ui.js +738 -627
  113. package/lib/sanity-ui.js.map +1 -1
  114. package/lib/{sanity-ui.modern.js → sanity-ui.modern.mjs} +736 -616
  115. package/lib/sanity-ui.modern.mjs.map +1 -0
  116. package/lib/sanity-ui.module.js +732 -623
  117. package/lib/sanity-ui.module.js.map +1 -1
  118. package/package.json +11 -11
  119. package/src/__workshop__/color/overview.tsx +9 -11
  120. package/src/components/autocomplete/__workshop__/async.tsx +14 -12
  121. package/src/components/autocomplete/__workshop__/constrainedHeight.tsx +36 -0
  122. package/src/components/autocomplete/autocomplete.styles.tsx +0 -1
  123. package/src/components/autocomplete/autocomplete.tsx +14 -7
  124. package/src/components/autocomplete/constants.ts +0 -5
  125. package/src/components/breadcrumbs/breadcrumbs.tsx +3 -2
  126. package/src/components/dialog/dialog.tsx +17 -9
  127. package/src/components/dialog/styles.ts +3 -3
  128. package/src/components/hotkeys/hotkeys.tsx +3 -1
  129. package/src/components/menu/__workshop__/constrainedInBoundary.tsx +11 -14
  130. package/src/components/menu/__workshop__/groups.tsx +1 -1
  131. package/src/components/menu/menuButton.tsx +21 -13
  132. package/src/components/menu/menuGroup.tsx +3 -2
  133. package/src/components/menu/menuItem.tsx +4 -5
  134. package/src/components/skeleton/skeleton.tsx +10 -1
  135. package/src/components/skeleton/textSkeleton.tsx +7 -7
  136. package/src/hooks/_internal/useUnique.ts +4 -5
  137. package/src/hooks/index.ts +2 -1
  138. package/src/hooks/useArrayProp.ts +23 -0
  139. package/src/hooks/useElementRect/useElementRect.ts +4 -16
  140. package/src/hooks/useElementSize.ts +18 -0
  141. package/src/index.ts +1 -0
  142. package/src/observers/elementSizeObserver.ts +116 -0
  143. package/src/observers/index.ts +2 -0
  144. package/src/{utils → observers}/resizeObserver.ts +1 -4
  145. package/src/primitives/_selectable/selectable.tsx +5 -4
  146. package/src/primitives/avatar/avatar.tsx +7 -5
  147. package/src/primitives/avatar/avatarCounter.tsx +14 -12
  148. package/src/primitives/avatar/avatarStack.tsx +19 -13
  149. package/src/primitives/avatar/styles.ts +2 -2
  150. package/src/primitives/badge/badge.tsx +3 -2
  151. package/src/primitives/box/box.tsx +27 -26
  152. package/src/primitives/button/button.tsx +22 -10
  153. package/src/primitives/card/card.tsx +13 -11
  154. package/src/primitives/checkbox/__workshop__/example.tsx +4 -2
  155. package/src/primitives/checkbox/__workshop__/props.tsx +4 -2
  156. package/src/primitives/checkbox/__workshop__/readOnly.tsx +4 -2
  157. package/src/primitives/code/__workshop__/props.tsx +1 -1
  158. package/src/primitives/code/code.tsx +2 -1
  159. package/src/primitives/container/container.tsx +10 -1
  160. package/src/primitives/container/styles.ts +2 -2
  161. package/src/primitives/container/types.ts +1 -1
  162. package/src/primitives/flex/flex.tsx +6 -5
  163. package/src/primitives/grid/__workshop__/responsive.tsx +13 -12
  164. package/src/primitives/grid/grid.tsx +9 -8
  165. package/src/primitives/heading/__workshop__/opticalAlignment.tsx +19 -7
  166. package/src/primitives/heading/heading.tsx +3 -2
  167. package/src/primitives/inline/inline.tsx +12 -6
  168. package/src/primitives/inline/styles.ts +2 -2
  169. package/src/primitives/inline/types.ts +1 -1
  170. package/src/primitives/kbd/kbd.tsx +2 -1
  171. package/src/primitives/label/label.tsx +4 -3
  172. package/src/primitives/popover/__workshop__/{margins.tsx → MarginsStory.tsx} +1 -1
  173. package/src/primitives/popover/__workshop__/{matchReferenceWidth.tsx → MatchReferenceWidthStory.tsx} +0 -0
  174. package/src/primitives/popover/__workshop__/{plain.tsx → PlainStory.tsx} +12 -14
  175. package/src/primitives/popover/__workshop__/{recursive.tsx → RecursiveStory.tsx} +4 -1
  176. package/src/primitives/popover/__workshop__/RightAlignedStory.tsx +60 -0
  177. package/src/primitives/popover/__workshop__/TestStory.tsx +79 -0
  178. package/src/primitives/popover/__workshop__/index.ts +10 -5
  179. package/src/primitives/popover/popover.tsx +5 -3
  180. package/src/primitives/select/select.tsx +9 -9
  181. package/src/primitives/select/styles.ts +10 -4
  182. package/src/primitives/stack/stack.tsx +2 -1
  183. package/src/primitives/stack/styles.ts +3 -3
  184. package/src/primitives/text/__workshop__/opticalAlignment.tsx +15 -5
  185. package/src/primitives/text/text.tsx +3 -2
  186. package/src/primitives/textArea/__workshop__/plain.tsx +23 -18
  187. package/src/primitives/textArea/textArea.tsx +17 -5
  188. package/src/primitives/textInput/__workshop__/clearButton.tsx +14 -8
  189. package/src/primitives/textInput/__workshop__/index.ts +2 -2
  190. package/src/primitives/textInput/__workshop__/plain.tsx +39 -32
  191. package/src/primitives/textInput/__workshop__/tones.tsx +97 -75
  192. package/src/primitives/textInput/__workshop__/typed.tsx +8 -2
  193. package/src/primitives/textInput/textInput.tsx +43 -12
  194. package/src/primitives/tooltip/__workshop__/props.tsx +5 -1
  195. package/src/primitives/tooltip/tooltip.tsx +3 -2
  196. package/src/primitives/types.ts +1 -1
  197. package/src/styles/border/borderStyle.ts +6 -6
  198. package/src/styles/border/types.ts +5 -5
  199. package/src/styles/box/boxStyle.ts +5 -5
  200. package/src/styles/box/types.ts +4 -4
  201. package/src/styles/flex/flexItemStyle.ts +5 -4
  202. package/src/styles/flex/flexStyle.ts +6 -6
  203. package/src/styles/flex/types.ts +6 -6
  204. package/src/styles/font/responsiveFont.ts +7 -27
  205. package/src/styles/font/textAlignStyle.ts +2 -2
  206. package/src/styles/font/types.ts +4 -3
  207. package/src/styles/grid/gridItemStyle.ts +7 -7
  208. package/src/styles/grid/gridStyle.ts +9 -9
  209. package/src/styles/grid/types.ts +14 -14
  210. package/src/styles/helpers.ts +9 -9
  211. package/src/styles/input/responsiveInputPaddingStyle.ts +24 -27
  212. package/src/styles/input/textInputStyle.ts +89 -79
  213. package/src/styles/margin/marginStyle.ts +8 -8
  214. package/src/styles/margin/marginsStyle.test.ts +1 -1
  215. package/src/styles/margin/types.ts +7 -7
  216. package/src/styles/padding/paddingStyle.test.ts +1 -1
  217. package/src/styles/padding/paddingStyle.ts +8 -8
  218. package/src/styles/padding/types.ts +7 -7
  219. package/src/styles/radius/radiusStyle.ts +2 -2
  220. package/src/styles/radius/types.ts +1 -1
  221. package/src/styles/shadow/shadowStyle.ts +2 -5
  222. package/src/styles/shadow/types.ts +1 -1
  223. package/src/theme/lib/theme/fonts.ts +1 -3
  224. package/src/theme/studioTheme/fonts.ts +5 -9
  225. package/src/types/index.ts +2 -2
  226. package/src/types/placement.ts +18 -0
  227. package/src/types/text.ts +4 -0
  228. package/src/utils/elementQuery/elementQuery.tsx +5 -18
  229. package/src/utils/index.ts +0 -1
  230. package/src/utils/layer/layer.tsx +1 -1
  231. package/src/utils/layer/layerProvider.tsx +2 -2
  232. package/src/utils/virtualList/virtualList.tsx +8 -7
  233. package/lib/dts/src/hooks/useResponsiveProp.d.ts +0 -6
  234. package/lib/dts/src/hooks/useResponsiveProp.d.ts.map +0 -1
  235. package/lib/dts/src/types/common.d.ts +0 -11
  236. package/lib/dts/src/types/common.d.ts.map +0 -1
  237. package/lib/dts/src/utils/resizeObserver.d.ts +0 -6
  238. package/lib/dts/src/utils/resizeObserver.d.ts.map +0 -1
  239. package/lib/sanity-ui.modern.js.map +0 -1
  240. package/src/hooks/useResponsiveProp.ts +0 -10
  241. package/src/primitives/popover/__workshop__/rightAligned.tsx +0 -57
  242. package/src/types/common.ts +0 -12
@@ -1,12 +1,12 @@
1
1
  import { useId } from '@reach/auto-id';
2
- import React, { useState, useRef, useEffect, createContext, useContext, useMemo, useLayoutEffect, forwardRef, useCallback, cloneElement, isValidElement, createElement, useReducer, Children, Fragment, memo } from 'react';
2
+ import React, { useMemo, useState, useRef, useEffect, createContext, useContext, 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';
5
6
  import { white as white$1, black as black$1, hues } from '@sanity/color';
6
7
  import { SpinnerIcon, CheckmarkIcon, RemoveIcon, SelectIcon, CloseIcon, ChevronDownIcon, ChevronRightIcon, ToggleArrowRightIcon } from '@sanity/icons';
7
8
  import Refractor from 'react-refractor';
8
9
  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';
@@ -108,7 +108,216 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
108
108
  }
109
109
 
110
110
  var EMPTY_ARRAY = [];
111
- var EMPTY_RECORD$1 = {};
111
+ var EMPTY_RECORD = {};
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
+ }
112
321
 
113
322
  function _getElements(element, elementsArg) {
114
323
  var ret = [element];
@@ -211,26 +420,110 @@ function useClickOutside(listener, elementsArg, boundaryElement) {
211
420
  }
212
421
 
213
422
  /**
214
- * Subscribe to the rect of a DOM element.
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.
215
504
  * @beta
216
505
  */
217
506
 
218
- function useElementRect(element) {
507
+ function useElementSize(element) {
219
508
  var _useState = useState(null),
220
- rect = _useState[0],
221
- setRect = _useState[1];
509
+ size = _useState[0],
510
+ setSize = _useState[1];
222
511
 
223
512
  useEffect(function () {
224
513
  if (!element) return undefined;
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
- };
514
+ return _elementSizeObserver.subscribe(element, setSize);
232
515
  }, [element]);
233
- return rect;
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;
234
527
  }
235
528
 
236
529
  /**
@@ -2319,8 +2612,7 @@ var color = createColorTheme({
2319
2612
 
2320
2613
  var fonts = {
2321
2614
  code: {
2322
- family: '-apple-system-ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace',
2323
- horizontalOffset: 0.075,
2615
+ family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',
2324
2616
  weights: {
2325
2617
  regular: 400,
2326
2618
  medium: 500,
@@ -2366,7 +2658,6 @@ var fonts = {
2366
2658
  },
2367
2659
  heading: {
2368
2660
  family: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Liberation Sans", Helvetica, Arial, system-ui, sans-serif',
2369
- horizontalOffset: 0.075,
2370
2661
  weights: {
2371
2662
  regular: 700,
2372
2663
  medium: 800,
@@ -2402,15 +2693,15 @@ var fonts = {
2402
2693
  lineHeight: 33,
2403
2694
  letterSpacing: 0
2404
2695
  }, {
2405
- ascenderHeight: 9,
2406
- descenderHeight: 7,
2696
+ ascenderHeight: 8,
2697
+ descenderHeight: 8,
2407
2698
  fontSize: 33,
2408
2699
  iconSize: 49,
2409
2700
  lineHeight: 39,
2410
2701
  letterSpacing: 0
2411
2702
  }, {
2412
- ascenderHeight: 10,
2413
- descenderHeight: 8,
2703
+ ascenderHeight: 9,
2704
+ descenderHeight: 9,
2414
2705
  fontSize: 38,
2415
2706
  iconSize: 53,
2416
2707
  lineHeight: 45,
@@ -2419,7 +2710,6 @@ var fonts = {
2419
2710
  },
2420
2711
  label: {
2421
2712
  family: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Liberation Sans", system-ui, sans-serif',
2422
- horizontalOffset: 0.075,
2423
2713
  weights: {
2424
2714
  regular: 600,
2425
2715
  medium: 700,
@@ -2465,7 +2755,6 @@ var fonts = {
2465
2755
  },
2466
2756
  text: {
2467
2757
  family: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Liberation Sans", Helvetica, Arial, system-ui, sans-serif',
2468
- horizontalOffset: 0.075,
2469
2758
  weights: {
2470
2759
  regular: 400,
2471
2760
  medium: 500,
@@ -2784,353 +3073,142 @@ function _createMediaManager(media) {
2784
3073
 
2785
3074
  var handleChange = function handleChange() {
2786
3075
  if (mq.matches) subscriber(index);
2787
- };
2788
-
2789
- if (mq.addEventListener) {
2790
- mq.addEventListener('change', handleChange);
2791
- } else {
2792
- mq.addListener(handleChange);
2793
- }
2794
-
2795
- disposeFns.push(function () {
2796
- if (mq.removeEventListener) {
2797
- mq.removeEventListener('change', handleChange);
2798
- } else {
2799
- mq.removeListener(handleChange);
2800
- }
2801
- });
2802
- };
2803
-
2804
- for (var _iterator2 = _createForOfIteratorHelperLoose(sizes), _step2; !(_step2 = _iterator2()).done;) {
2805
- _loop();
2806
- }
2807
-
2808
- return function () {
2809
- for (var _iterator3 = _createForOfIteratorHelperLoose(disposeFns), _step3; !(_step3 = _iterator3()).done;) {
2810
- var disposeFn = _step3.value;
2811
- disposeFn();
2812
- }
2813
- };
2814
- };
2815
-
2816
- return {
2817
- getCurrentIndex: getCurrentIndex,
2818
- subscribe: subscribe
2819
- };
2820
- }
2821
- /**
2822
- * @internal
2823
- */
2824
-
2825
-
2826
- function _getMediaManager(media) {
2827
- var manager = MEDIA_MANAGER_CACHE.get(media);
2828
-
2829
- if (!manager) {
2830
- manager = _createMediaManager(media);
2831
- MEDIA_MANAGER_CACHE.set(media, manager);
2832
- }
2833
-
2834
- return manager;
2835
- }
2836
-
2837
- /**
2838
- * This API might change. DO NOT USE IN PRODUCTION.
2839
- * @beta
2840
- */
2841
-
2842
- function useMediaIndex() {
2843
- var theme = useTheme();
2844
- var media = theme.sanity.media;
2845
- var manager = useMemo(function () {
2846
- return _getMediaManager(media);
2847
- }, [media]);
2848
-
2849
- var _useState = useState(manager.getCurrentIndex),
2850
- index = _useState[0],
2851
- setIndex = _useState[1];
2852
-
2853
- useEffect(function () {
2854
- return manager.subscribe(setIndex);
2855
- }, [manager]);
2856
- return index;
2857
- }
2858
-
2859
- /**
2860
- * @public
2861
- */
2862
-
2863
- function usePrefersDark() {
2864
- var mq = useMemo(function () {
2865
- if (typeof window === 'undefined') return undefined;
2866
- return window.matchMedia('(prefers-color-scheme: dark)');
2867
- }, []);
2868
-
2869
- var _useState = useState((mq == null ? void 0 : mq.matches) || false),
2870
- dark = _useState[0],
2871
- setDark = _useState[1];
2872
-
2873
- useEffect(function () {
2874
- if (!mq) return undefined;
2875
- setDark(mq.matches);
2876
-
2877
- var handleChange = function handleChange() {
2878
- return setDark(mq.matches);
2879
- };
2880
-
2881
- mq.addEventListener('change', handleChange);
2882
- return function () {
2883
- return mq.removeEventListener('change', handleChange);
2884
- };
2885
- }, [mq]);
2886
- return dark;
2887
- }
2888
-
2889
- /**
2890
- * @beta
2891
- */
2892
-
2893
- var useIsomorphicEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
2894
-
2895
- /**
2896
- * @beta
2897
- */
2898
-
2899
- function useForwardedRef(ref) {
2900
- var innerRef = useRef(null);
2901
- useIsomorphicEffect(function () {
2902
- if (!ref) return;
2903
-
2904
- if (typeof ref === 'function') {
2905
- ref(innerRef.current);
2906
- } else {
2907
- ref.current = innerRef.current;
2908
- }
2909
- });
2910
- return innerRef;
2911
- }
2912
-
2913
- /**
2914
- * @beta
2915
- */
2916
-
2917
- function useCustomValidity(ref, customValidity) {
2918
- useEffect(function () {
2919
- if (ref.current) {
2920
- ref.current.setCustomValidity(customValidity || '');
2921
- }
2922
- }, [customValidity, ref]);
2923
- }
2924
-
2925
- /**
2926
- * @internal
2927
- */
2928
-
2929
- function fillCSSObject(propKeys, value) {
2930
- return propKeys.reduce(function (obj, propKey) {
2931
- obj[propKey] = value;
2932
- return obj;
2933
- }, {});
2934
- }
2935
- /**
2936
- * @public
2937
- */
2938
-
2939
- function rem(pixelValue) {
2940
- if (pixelValue === 0) return 0;
2941
- return pixelValue / 16 + "rem";
2942
- }
2943
- /**
2944
- * @internal
2945
- */
2946
-
2947
- function responsive(media, values, callback) {
2948
- var statements = values.map(callback);
2949
- return statements.map(function (statement, mediaIndex) {
2950
- var _ref;
2951
-
2952
- if (mediaIndex === 0) return statement;
2953
- return _ref = {}, _ref["@media screen and (min-width: " + media[mediaIndex - 1] + "px)"] = statement, _ref;
2954
- });
2955
- }
2956
- /**
2957
- * @internal
2958
- */
2959
-
2960
- function getResponsiveProp(val, defaultVal) {
2961
- if (val === undefined) return defaultVal || EMPTY_ARRAY;
2962
- return Array.isArray(val) ? val : [val];
2963
- }
2964
- /**
2965
- * @internal
2966
- */
2967
-
2968
- function getResponsiveSpace(theme, props, spaceIndexes) {
2969
- if (spaceIndexes === void 0) {
2970
- spaceIndexes = EMPTY_ARRAY;
2971
- }
2972
-
2973
- if (!Array.isArray(spaceIndexes)) {
2974
- throw new Error('the property must be array of numbers');
2975
- }
2976
-
2977
- if (spaceIndexes.length === 0) {
2978
- return null;
2979
- }
2980
-
2981
- return responsive(theme.sanity.media, spaceIndexes, function (spaceIndex) {
2982
- return fillCSSObject(props, rem(theme.sanity.space[spaceIndex]));
2983
- });
2984
- }
2985
-
2986
- /**
2987
- * A utility function getting responsive font styles.
2988
- * @internal
2989
- */
2990
-
2991
- function responsiveFont(fontKey, props) {
2992
- var $size = props.$size,
2993
- $weight = props.$weight,
2994
- theme = props.theme;
2995
- var _theme$sanity = theme.sanity,
2996
- fonts = _theme$sanity.fonts,
2997
- media = _theme$sanity.media;
2998
- var _fonts$fontKey = fonts[fontKey],
2999
- family = _fonts$fontKey.family,
3000
- sizes = _fonts$fontKey.sizes,
3001
- weights = _fonts$fontKey.weights,
3002
- horizontalOffset = _fonts$fontKey.horizontalOffset;
3003
- var fontWeight = $weight && weights[$weight] || weights.regular; // @todo: make this configurable
3004
-
3005
- var defaultSize = sizes[2];
3006
- var base = {
3007
- position: 'relative',
3008
- fontFamily: family,
3009
- fontWeight: fontWeight,
3010
- padding: '1px',
3011
- margin: 0,
3012
- '&:before': {
3013
- content: '""',
3014
- display: 'block',
3015
- height: 0
3016
- },
3017
- '&:after': {
3018
- content: '""',
3019
- display: 'block',
3020
- height: 0
3021
- },
3022
- '& > code, & > span': {
3023
- display: 'block'
3024
- },
3025
- '&:not([hidden])': {
3026
- display: 'block'
3027
- }
3028
- };
3029
- var resp = responsive(media, getResponsiveProp($size), function (sizeIndex) {
3030
- return fontSize(sizes[sizeIndex] || defaultSize, horizontalOffset);
3031
- });
3032
- return [base].concat(resp);
3033
- }
3034
- function fontSize(size, horizontalOffset) {
3035
- var ascenderHeight = size.ascenderHeight,
3036
- descenderHeight = size.descenderHeight,
3037
- fontSize = size.fontSize,
3038
- iconSize = size.iconSize,
3039
- letterSpacing = size.letterSpacing,
3040
- lineHeight = size.lineHeight;
3041
- var negHeight = ascenderHeight + descenderHeight;
3042
- var capHeight = lineHeight - negHeight;
3043
- var iconOffset = (capHeight - iconSize) / 2;
3044
- var customIconSize = Math.floor(fontSize * 1.125 / 2) * 2 + 1;
3045
- var customIconOffset = (capHeight - customIconSize) / 2;
3046
- return {
3047
- fontSize: rem(fontSize),
3048
- lineHeight: "calc(" + lineHeight + " / " + fontSize + ")",
3049
- letterSpacing: rem(letterSpacing),
3050
- transform: "translateY(" + rem(descenderHeight) + ")",
3051
- '&:before': {
3052
- marginTop: "calc(" + rem(0 - negHeight) + " - 1px)"
3053
- },
3054
- '&:after': {
3055
- marginBottom: '-1px'
3056
- },
3057
- '& > code, & > span': {
3058
- margin: horizontalOffset ? "0 calc(" + rem(0 - horizontalOffset * fontSize) + " - 1px)" : '0 -1px'
3059
- },
3060
- '& svg:not([data-sanity-icon])': {
3061
- fontSize: "calc(" + customIconSize + " / 16 * 1rem)",
3062
- margin: [// top & bottom
3063
- rem(customIconOffset), // left & right
3064
- horizontalOffset ? "calc(" + rem(customIconOffset) + " + " + rem(horizontalOffset * fontSize) + ")" : rem(customIconOffset)].join(' ')
3065
- },
3066
- '& [data-sanity-icon]': {
3067
- fontSize: "calc(" + iconSize + " / 16 * 1rem)",
3068
- margin: [// top & bottom
3069
- rem(iconOffset), // left & right
3070
- horizontalOffset ? "calc(" + rem(iconOffset) + " + " + rem(horizontalOffset * fontSize) + ")" : rem(iconOffset)].join(' ')
3076
+ };
3077
+
3078
+ if (mq.addEventListener) {
3079
+ mq.addEventListener('change', handleChange);
3080
+ } else {
3081
+ mq.addListener(handleChange);
3082
+ }
3083
+
3084
+ disposeFns.push(function () {
3085
+ if (mq.removeEventListener) {
3086
+ mq.removeEventListener('change', handleChange);
3087
+ } else {
3088
+ mq.removeListener(handleChange);
3089
+ }
3090
+ });
3091
+ };
3092
+
3093
+ for (var _iterator2 = _createForOfIteratorHelperLoose(sizes), _step2; !(_step2 = _iterator2()).done;) {
3094
+ _loop();
3071
3095
  }
3096
+
3097
+ return function () {
3098
+ for (var _iterator3 = _createForOfIteratorHelperLoose(disposeFns), _step3; !(_step3 = _iterator3()).done;) {
3099
+ var disposeFn = _step3.value;
3100
+ disposeFn();
3101
+ }
3102
+ };
3072
3103
  };
3073
- }
3074
3104
 
3105
+ return {
3106
+ getCurrentIndex: getCurrentIndex,
3107
+ subscribe: subscribe
3108
+ };
3109
+ }
3075
3110
  /**
3076
- * Get responsive CSS for the `code` font style.
3077
3111
  * @internal
3078
3112
  */
3079
3113
 
3080
- function responsiveCodeFontStyle(props) {
3081
- return responsiveFont('code', props);
3114
+
3115
+ function _getMediaManager(media) {
3116
+ var manager = MEDIA_MANAGER_CACHE.get(media);
3117
+
3118
+ if (!manager) {
3119
+ manager = _createMediaManager(media);
3120
+ MEDIA_MANAGER_CACHE.set(media, manager);
3121
+ }
3122
+
3123
+ return manager;
3082
3124
  }
3083
3125
 
3084
3126
  /**
3085
- * Get responsive CSS for the `heading` font style.
3086
- * @internal
3127
+ * This API might change. DO NOT USE IN PRODUCTION.
3128
+ * @beta
3087
3129
  */
3088
3130
 
3089
- function responsiveHeadingFont(props) {
3090
- return responsiveFont('heading', props);
3131
+ function useMediaIndex() {
3132
+ var theme = useTheme();
3133
+ var media = theme.sanity.media;
3134
+ var manager = useMemo(function () {
3135
+ return _getMediaManager(media);
3136
+ }, [media]);
3137
+
3138
+ var _useState = useState(manager.getCurrentIndex),
3139
+ index = _useState[0],
3140
+ setIndex = _useState[1];
3141
+
3142
+ useEffect(function () {
3143
+ return manager.subscribe(setIndex);
3144
+ }, [manager]);
3145
+ return index;
3091
3146
  }
3092
3147
 
3093
3148
  /**
3094
- * Get responsive CSS for the `label` font style.
3095
- * @internal
3149
+ * @public
3096
3150
  */
3097
3151
 
3098
- function responsiveLabelFont(props) {
3099
- return responsiveFont('label', props);
3152
+ function usePrefersDark() {
3153
+ var mq = useMemo(function () {
3154
+ if (typeof window === 'undefined') return undefined;
3155
+ return window.matchMedia('(prefers-color-scheme: dark)');
3156
+ }, []);
3157
+
3158
+ var _useState = useState((mq == null ? void 0 : mq.matches) || false),
3159
+ dark = _useState[0],
3160
+ setDark = _useState[1];
3161
+
3162
+ useEffect(function () {
3163
+ if (!mq) return undefined;
3164
+ setDark(mq.matches);
3165
+
3166
+ var handleChange = function handleChange() {
3167
+ return setDark(mq.matches);
3168
+ };
3169
+
3170
+ mq.addEventListener('change', handleChange);
3171
+ return function () {
3172
+ return mq.removeEventListener('change', handleChange);
3173
+ };
3174
+ }, [mq]);
3175
+ return dark;
3100
3176
  }
3101
3177
 
3102
3178
  /**
3103
- * Get responsive text align styles.
3104
- * @internal
3179
+ * @beta
3105
3180
  */
3106
3181
 
3107
- function responsiveTextAlignStyle(props) {
3108
- var theme = props.theme;
3109
- return responsive(theme.sanity.media, getResponsiveProp(props.$align), function (textAlign) {
3110
- return {
3111
- textAlign: textAlign
3112
- };
3113
- });
3114
- }
3182
+ var useIsomorphicEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
3115
3183
 
3116
3184
  /**
3117
- * Get responsive CSS for the `text` font style.
3118
- * @internal
3185
+ * @beta
3119
3186
  */
3120
3187
 
3121
- function responsiveTextFont(props) {
3122
- return responsiveFont('text', props);
3188
+ function useForwardedRef(ref) {
3189
+ var innerRef = useRef(null);
3190
+ useIsomorphicEffect(function () {
3191
+ if (!ref) return;
3192
+
3193
+ if (typeof ref === 'function') {
3194
+ ref(innerRef.current);
3195
+ } else {
3196
+ ref.current = innerRef.current;
3197
+ }
3198
+ });
3199
+ return innerRef;
3123
3200
  }
3124
3201
 
3125
3202
  /**
3126
- * This API might change. DO NOT USE IN PRODUCTION.
3127
3203
  * @beta
3128
3204
  */
3129
3205
 
3130
- function useResponsiveProp(val, defaultVal) {
3131
- return useMemo(function () {
3132
- return getResponsiveProp(val, defaultVal);
3133
- }, [defaultVal, val]);
3206
+ function useCustomValidity(ref, customValidity) {
3207
+ useEffect(function () {
3208
+ if (ref.current) {
3209
+ ref.current.setCustomValidity(customValidity || '');
3210
+ }
3211
+ }, [customValidity, ref]);
3134
3212
  }
3135
3213
 
3136
3214
  var BORDER_VALUE = '1px solid var(--card-border-color)';
@@ -3141,7 +3219,7 @@ function responsiveBorderStyle() {
3141
3219
  function border(props) {
3142
3220
  var theme = props.theme;
3143
3221
  var media = theme.sanity.media;
3144
- return responsive(media, getResponsiveProp(props.$border), function (value) {
3222
+ return _responsive(media, props.$border, function (value) {
3145
3223
  return value ? {
3146
3224
  '&&': {
3147
3225
  border: BORDER_VALUE
@@ -3157,7 +3235,7 @@ function border(props) {
3157
3235
  function borderTop(props) {
3158
3236
  var theme = props.theme;
3159
3237
  var media = theme.sanity.media;
3160
- return responsive(media, getResponsiveProp(props.$borderTop), function (value) {
3238
+ return _responsive(media, props.$borderTop, function (value) {
3161
3239
  return value ? {
3162
3240
  '&&': {
3163
3241
  borderTop: BORDER_VALUE
@@ -3173,7 +3251,7 @@ function borderTop(props) {
3173
3251
  function borderRight(props) {
3174
3252
  var theme = props.theme;
3175
3253
  var media = theme.sanity.media;
3176
- return responsive(media, getResponsiveProp(props.$borderRight), function (value) {
3254
+ return _responsive(media, props.$borderRight, function (value) {
3177
3255
  return value ? {
3178
3256
  '&&': {
3179
3257
  borderRight: BORDER_VALUE
@@ -3189,7 +3267,7 @@ function borderRight(props) {
3189
3267
  function borderBottom(props) {
3190
3268
  var theme = props.theme;
3191
3269
  var media = theme.sanity.media;
3192
- return responsive(media, getResponsiveProp(props.$borderBottom), function (value) {
3270
+ return _responsive(media, props.$borderBottom, function (value) {
3193
3271
  return value ? {
3194
3272
  '&&': {
3195
3273
  borderBottom: BORDER_VALUE
@@ -3205,7 +3283,7 @@ function borderBottom(props) {
3205
3283
  function borderLeft(props) {
3206
3284
  var theme = props.theme;
3207
3285
  var media = theme.sanity.media;
3208
- return responsive(media, getResponsiveProp(props.$borderLeft), function (value) {
3286
+ return _responsive(media, props.$borderLeft, function (value) {
3209
3287
  return value ? {
3210
3288
  '&&': {
3211
3289
  borderLeft: BORDER_VALUE
@@ -3241,7 +3319,7 @@ function responsiveBoxStyle() {
3241
3319
  function responsiveBoxDisplayStyle(props) {
3242
3320
  var theme = props.theme;
3243
3321
  var media = theme.sanity.media;
3244
- return responsive(media, getResponsiveProp(props.$display), function (display) {
3322
+ return _responsive(media, props.$display, function (display) {
3245
3323
  return {
3246
3324
  '&:not([hidden])': {
3247
3325
  display: display
@@ -3253,7 +3331,7 @@ function responsiveBoxDisplayStyle(props) {
3253
3331
  function responsiveBoxSizingStyle(props) {
3254
3332
  var theme = props.theme;
3255
3333
  var media = theme.sanity.media;
3256
- return responsive(media, getResponsiveProp(props.$sizing), function (sizing) {
3334
+ return _responsive(media, props.$sizing, function (sizing) {
3257
3335
  return {
3258
3336
  boxSizing: BOX_SIZING[sizing]
3259
3337
  };
@@ -3263,7 +3341,7 @@ function responsiveBoxSizingStyle(props) {
3263
3341
  function responsiveBoxHeightStyle(props) {
3264
3342
  var theme = props.theme;
3265
3343
  var media = theme.sanity.media;
3266
- return responsive(media, getResponsiveProp(props.$height), function (height) {
3344
+ return _responsive(media, props.$height, function (height) {
3267
3345
  return {
3268
3346
  height: BOX_HEIGHT[height]
3269
3347
  };
@@ -3273,7 +3351,7 @@ function responsiveBoxHeightStyle(props) {
3273
3351
  function responsiveBoxOverflowStyle(props) {
3274
3352
  var theme = props.theme;
3275
3353
  var media = theme.sanity.media;
3276
- return responsive(media, getResponsiveProp(props.$overflow), function (overflow) {
3354
+ return _responsive(media, props.$overflow, function (overflow) {
3277
3355
  return {
3278
3356
  overflow: overflow
3279
3357
  };
@@ -3291,7 +3369,7 @@ function responsiveFlexStyle() {
3291
3369
  function responsiveFlexAlignStyle(props) {
3292
3370
  var theme = props.theme;
3293
3371
  var media = theme.sanity.media;
3294
- return responsive(media, getResponsiveProp(props.$align), function (align) {
3372
+ return _responsive(media, props.$align, function (align) {
3295
3373
  return {
3296
3374
  alignItems: align
3297
3375
  };
@@ -3303,7 +3381,7 @@ function responsiveFlexGapStyle(props) {
3303
3381
  var _theme$sanity = theme.sanity,
3304
3382
  media = _theme$sanity.media,
3305
3383
  space = _theme$sanity.space;
3306
- return responsive(media, getResponsiveProp(props.$gap), function (gap) {
3384
+ return _responsive(media, props.$gap, function (gap) {
3307
3385
  return {
3308
3386
  gap: gap ? rem(space[gap]) : undefined
3309
3387
  };
@@ -3313,7 +3391,7 @@ function responsiveFlexGapStyle(props) {
3313
3391
  function responsiveFlexWrapStyle(props) {
3314
3392
  var theme = props.theme;
3315
3393
  var media = theme.sanity.media;
3316
- return responsive(media, getResponsiveProp(props.$wrap), function (wrap) {
3394
+ return _responsive(media, props.$wrap, function (wrap) {
3317
3395
  return {
3318
3396
  flexWrap: wrap
3319
3397
  };
@@ -3322,7 +3400,7 @@ function responsiveFlexWrapStyle(props) {
3322
3400
  function responsiveFlexJustifyStyle(props) {
3323
3401
  var theme = props.theme;
3324
3402
  var media = theme.sanity.media;
3325
- return responsive(media, getResponsiveProp(props.$justify), function (justify) {
3403
+ return _responsive(media, props.$justify, function (justify) {
3326
3404
  return {
3327
3405
  justifyContent: justify
3328
3406
  };
@@ -3331,7 +3409,7 @@ function responsiveFlexJustifyStyle(props) {
3331
3409
  function responsiveFlexDirectionStyle(props) {
3332
3410
  var theme = props.theme;
3333
3411
  var media = theme.sanity.media;
3334
- return responsive(media, getResponsiveProp(props.$direction), function (direction) {
3412
+ return _responsive(media, props.$direction, function (direction) {
3335
3413
  return {
3336
3414
  flexDirection: direction
3337
3415
  };
@@ -3348,7 +3426,8 @@ function flexItemStyle() {
3348
3426
  function responsiveFlexItemStyle(props) {
3349
3427
  var theme = props.theme;
3350
3428
  var media = theme.sanity.media;
3351
- return responsive(media, getResponsiveProp(props.$flex), function (flex) {
3429
+ if (!props.$flex) return EMPTY_ARRAY;
3430
+ return _responsive(media, props.$flex, function (flex) {
3352
3431
  return {
3353
3432
  flex: flex
3354
3433
  };
@@ -3395,7 +3474,7 @@ function responsiveGridStyle() {
3395
3474
  function responsiveGridAutoFlowStyle(props) {
3396
3475
  var theme = props.theme;
3397
3476
  var media = theme.sanity.media;
3398
- return responsive(media, getResponsiveProp(props.$autoFlow), function (autoFlow) {
3477
+ return _responsive(media, props.$autoFlow, function (autoFlow) {
3399
3478
  return {
3400
3479
  gridAutoFlow: autoFlow
3401
3480
  };
@@ -3405,7 +3484,7 @@ function responsiveGridAutoFlowStyle(props) {
3405
3484
  function responsiveGridAutoRowsStyle(props) {
3406
3485
  var theme = props.theme;
3407
3486
  var media = theme.sanity.media;
3408
- return responsive(media, getResponsiveProp(props.$autoRows), function (autoRows) {
3487
+ return _responsive(media, props.$autoRows, function (autoRows) {
3409
3488
  return {
3410
3489
  gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows]
3411
3490
  };
@@ -3415,7 +3494,7 @@ function responsiveGridAutoRowsStyle(props) {
3415
3494
  function responsiveGridAutoColsStyle(props) {
3416
3495
  var theme = props.theme;
3417
3496
  var media = theme.sanity.media;
3418
- return responsive(media, getResponsiveProp(props.$autoCols), function (autoCols) {
3497
+ return _responsive(media, props.$autoCols, function (autoCols) {
3419
3498
  return {
3420
3499
  gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols]
3421
3500
  };
@@ -3425,7 +3504,7 @@ function responsiveGridAutoColsStyle(props) {
3425
3504
  function responsiveGridColumnsStyle(props) {
3426
3505
  var theme = props.theme;
3427
3506
  var media = theme.sanity.media;
3428
- return responsive(media, getResponsiveProp(props.$columns), function (columns) {
3507
+ return _responsive(media, props.$columns, function (columns) {
3429
3508
  return {
3430
3509
  gridTemplateColumns: columns && "repeat(" + columns + ",minmax(0,1fr));"
3431
3510
  };
@@ -3435,7 +3514,7 @@ function responsiveGridColumnsStyle(props) {
3435
3514
  function responsiveGridRowsStyle(props) {
3436
3515
  var theme = props.theme;
3437
3516
  var media = theme.sanity.media;
3438
- return responsive(media, getResponsiveProp(props.$rows), function (rows) {
3517
+ return _responsive(media, props.$rows, function (rows) {
3439
3518
  return {
3440
3519
  gridTemplateRows: rows && "repeat(" + rows + ",minmax(0,1fr));"
3441
3520
  };
@@ -3447,7 +3526,7 @@ function responsiveGridGapStyle(props) {
3447
3526
  var _theme$sanity = theme.sanity,
3448
3527
  media = _theme$sanity.media,
3449
3528
  space = _theme$sanity.space;
3450
- return responsive(media, getResponsiveProp(props.$gap), function (gap) {
3529
+ return _responsive(media, props.$gap, function (gap) {
3451
3530
  return {
3452
3531
  gridGap: gap ? rem(space[gap]) : undefined
3453
3532
  };
@@ -3459,7 +3538,7 @@ function responsiveGridGapXStyle(props) {
3459
3538
  var _theme$sanity2 = theme.sanity,
3460
3539
  media = _theme$sanity2.media,
3461
3540
  space = _theme$sanity2.space;
3462
- return responsive(media, getResponsiveProp(props.$gapX), function (gapX) {
3541
+ return _responsive(media, props.$gapX, function (gapX) {
3463
3542
  return {
3464
3543
  columnGap: gapX ? rem(space[gapX]) : undefined
3465
3544
  };
@@ -3471,7 +3550,7 @@ function responsiveGridGapYStyle(props) {
3471
3550
  var _theme$sanity3 = theme.sanity,
3472
3551
  media = _theme$sanity3.media,
3473
3552
  space = _theme$sanity3.space;
3474
- return responsive(media, getResponsiveProp(props.$gapY), function (gapY) {
3553
+ return _responsive(media, props.$gapY, function (gapY) {
3475
3554
  return {
3476
3555
  rowGap: gapY ? rem(space[gapY]) : undefined
3477
3556
  };
@@ -3493,7 +3572,7 @@ var GRID_ITEM_COLUMN = {
3493
3572
  function responsiveGridItemRowStyle(props) {
3494
3573
  var theme = props.theme;
3495
3574
  var media = theme.sanity.media;
3496
- return responsive(media, getResponsiveProp(props.$row), function (row) {
3575
+ return _responsive(media, props.$row, function (row) {
3497
3576
  if (typeof row === 'number') {
3498
3577
  return {
3499
3578
  gridRow: "span " + row + " / span " + row
@@ -3509,7 +3588,7 @@ function responsiveGridItemRowStyle(props) {
3509
3588
  function responsiveGridItemRowStartStyle(props) {
3510
3589
  var theme = props.theme;
3511
3590
  var media = theme.sanity.media;
3512
- return responsive(media, getResponsiveProp(props.$rowStart), function (rowStart) {
3591
+ return _responsive(media, props.$rowStart, function (rowStart) {
3513
3592
  return {
3514
3593
  gridRowStart: rowStart
3515
3594
  };
@@ -3519,7 +3598,7 @@ function responsiveGridItemRowStartStyle(props) {
3519
3598
  function responsiveGridItemRowEndStyle(props) {
3520
3599
  var theme = props.theme;
3521
3600
  var media = theme.sanity.media;
3522
- return responsive(media, getResponsiveProp(props.$rowEnd), function (rowEnd) {
3601
+ return _responsive(media, props.$rowEnd, function (rowEnd) {
3523
3602
  return {
3524
3603
  gridRowEnd: rowEnd
3525
3604
  };
@@ -3529,7 +3608,7 @@ function responsiveGridItemRowEndStyle(props) {
3529
3608
  function responsiveGridItemColumnStyle(props) {
3530
3609
  var theme = props.theme;
3531
3610
  var media = theme.sanity.media;
3532
- return responsive(media, getResponsiveProp(props.$column), function (column) {
3611
+ return _responsive(media, props.$column, function (column) {
3533
3612
  if (typeof column === 'number') {
3534
3613
  return {
3535
3614
  gridColumn: "span " + column + " / span " + column
@@ -3545,7 +3624,7 @@ function responsiveGridItemColumnStyle(props) {
3545
3624
  function responsiveGridItemColumnStartStyle(props) {
3546
3625
  var theme = props.theme;
3547
3626
  var media = theme.sanity.media;
3548
- return responsive(media, getResponsiveProp(props.$columnStart), function (columnStart) {
3627
+ return _responsive(media, props.$columnStart, function (columnStart) {
3549
3628
  return {
3550
3629
  gridColumnStart: columnStart
3551
3630
  };
@@ -3555,7 +3634,7 @@ function responsiveGridItemColumnStartStyle(props) {
3555
3634
  function responsiveGridItemColumnEndStyle(props) {
3556
3635
  var theme = props.theme;
3557
3636
  var media = theme.sanity.media;
3558
- return responsive(media, getResponsiveProp(props.$columnEnd), function (columnEnd) {
3637
+ return _responsive(media, props.$columnEnd, function (columnEnd) {
3559
3638
  return {
3560
3639
  gridColumnEnd: columnEnd
3561
3640
  };
@@ -3563,36 +3642,36 @@ function responsiveGridItemColumnEndStyle(props) {
3563
3642
  }
3564
3643
 
3565
3644
  function responsiveInputPaddingStyle(props) {
3566
- var $iconLeft = props.$iconLeft,
3645
+ var $fontSize = props.$fontSize,
3646
+ $iconLeft = props.$iconLeft,
3567
3647
  $iconRight = props.$iconRight,
3648
+ $padding = props.$padding,
3649
+ $space = props.$space,
3568
3650
  theme = props.theme;
3569
3651
  var _theme$sanity = theme.sanity,
3570
3652
  fonts = _theme$sanity.fonts,
3571
3653
  media = _theme$sanity.media,
3572
3654
  spaceScale = _theme$sanity.space;
3573
- var padding = getResponsiveProp(props.$padding, [0]);
3574
- var space = getResponsiveProp(props.$space, [0]);
3575
- var size = getResponsiveProp(props.$fontSize, [0]);
3576
- var len = Math.max(padding.length, space.length, size.length);
3655
+ var len = Math.max($padding.length, $space.length, $fontSize.length);
3577
3656
  var _padding = [];
3578
3657
  var _space = [];
3579
- var _size = [];
3658
+ var _fontSize = [];
3580
3659
 
3581
3660
  for (var i = 0; i < len; i += 1) {
3582
- _padding[i] = padding[i] === undefined ? _padding[i - 1] : padding[i];
3583
- _space[i] = space[i] === undefined ? _space[i - 1] : space[i];
3584
- _size[i] = size[i] === undefined ? _size[i - 1] : size[i];
3661
+ _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i];
3662
+ _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i];
3663
+ _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i];
3585
3664
  }
3586
3665
 
3587
- return responsive(media, _padding, function (_, i) {
3588
- var fontSize = fonts.text.sizes[_size[i]] || fonts.text.sizes[2];
3589
- var emSize = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight;
3666
+ return _responsive(media, _padding, function (_, i) {
3667
+ var size = fonts.text.sizes[_fontSize[i]] || fonts.text.sizes[2];
3668
+ var emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight;
3590
3669
  var p = spaceScale[_padding[i]];
3591
3670
  var s = spaceScale[_space[i]];
3592
3671
  var styles = {
3593
- paddingTop: rem(p - fontSize.ascenderHeight),
3672
+ paddingTop: rem(p - size.ascenderHeight),
3594
3673
  paddingRight: rem(p),
3595
- paddingBottom: rem(p - fontSize.descenderHeight),
3674
+ paddingBottom: rem(p - size.descenderHeight),
3596
3675
  paddingLeft: rem(p)
3597
3676
  };
3598
3677
  if ($iconRight) styles.paddingRight = rem(p + emSize + s);
@@ -3613,17 +3692,18 @@ function textInputRootStyle() {
3613
3692
  }
3614
3693
  function textInputBaseStyle(props) {
3615
3694
  var theme = props.theme,
3695
+ $tone = props.$tone,
3616
3696
  $weight = props.$weight;
3617
3697
  var font = theme.sanity.fonts.text;
3618
3698
  var color = theme.sanity.color.input;
3619
- 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);
3699
+ 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-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, $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);
3620
3700
  }
3621
3701
  function textInputFontSizeStyle(props) {
3622
3702
  var theme = props.theme;
3623
3703
  var _theme$sanity = theme.sanity,
3624
3704
  fonts = _theme$sanity.fonts,
3625
3705
  media = _theme$sanity.media;
3626
- return responsive(media, getResponsiveProp(props.$fontSize, [2]), function (sizeIndex) {
3706
+ return _responsive(media, props.$fontSize, function (sizeIndex) {
3627
3707
  var size = fonts.text.sizes[sizeIndex] || fonts.text.sizes[2];
3628
3708
  return {
3629
3709
  fontSize: rem(size.fontSize),
@@ -3635,12 +3715,13 @@ function textInputRepresentationStyle(props) {
3635
3715
  var $border = props.$border,
3636
3716
  $hasPrefix = props.$hasPrefix,
3637
3717
  $hasSuffix = props.$hasSuffix,
3718
+ $tone = props.$tone,
3638
3719
  theme = props.theme;
3639
3720
  var _theme$sanity2 = theme.sanity,
3640
3721
  focusRing = _theme$sanity2.focusRing,
3641
3722
  input = _theme$sanity2.input;
3642
3723
  var color = theme.sanity.color.input;
3643
- 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({
3724
+ 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-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, $tone, color["default"].enabled.bg, color["default"].enabled.fg, $border ? focusRingBorderStyle({
3644
3725
  color: color["default"].enabled.border,
3645
3726
  width: input.border.width
3646
3727
  }) : undefined, color.invalid.enabled.bg, color.invalid.enabled.fg, $border ? focusRingBorderStyle({
@@ -3655,20 +3736,20 @@ function textInputRepresentationStyle(props) {
3655
3736
  }), color["default"].disabled.bg, color["default"].disabled.fg, $border ? focusRingBorderStyle({
3656
3737
  color: color["default"].disabled.border,
3657
3738
  width: input.border.width
3658
- }) : 'none', color["default"].hovered.bg, color["default"].hovered.fg, $border ? focusRingBorderStyle({
3739
+ }) : 'none', color["default"].readOnly.bg, color["default"].readOnly.fg, color["default"].hovered.bg, color["default"].hovered.fg, $border ? focusRingBorderStyle({
3659
3740
  color: color["default"].hovered.border,
3660
3741
  width: input.border.width
3661
- }) : 'none', color["default"].readOnly.bg, color["default"].readOnly.fg);
3742
+ }) : 'none');
3662
3743
  }
3663
3744
 
3664
3745
  function responsiveMarginStyle(props) {
3665
3746
  var theme = props.theme;
3666
- 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);
3747
+ 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);
3667
3748
  }
3668
3749
 
3669
3750
  function responsivePaddingStyle(props) {
3670
3751
  var theme = props.theme;
3671
- 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);
3752
+ 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);
3672
3753
  }
3673
3754
 
3674
3755
  function responsiveRadiusStyle(props) {
@@ -3676,7 +3757,7 @@ function responsiveRadiusStyle(props) {
3676
3757
  var _theme$sanity = theme.sanity,
3677
3758
  media = _theme$sanity.media,
3678
3759
  radius = _theme$sanity.radius;
3679
- return responsive(media, getResponsiveProp(props.$radius), function (radiusIndex) {
3760
+ return _responsive(media, props.$radius, function (radiusIndex) {
3680
3761
  return {
3681
3762
  borderRadius: rem(radius[radiusIndex])
3682
3763
  };
@@ -3688,7 +3769,7 @@ function toBoxShadow(shadow, color) {
3688
3769
  }
3689
3770
 
3690
3771
  function shadowStyle(shadow) {
3691
- if (!shadow) return EMPTY_RECORD$1;
3772
+ if (!shadow) return EMPTY_RECORD;
3692
3773
  var outline = "0 0 0 " + rem(1) + " var(--card-shadow-outline-color)";
3693
3774
  var umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)');
3694
3775
  var penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)');
@@ -3703,7 +3784,7 @@ function responsiveShadowStyle(props) {
3703
3784
  var _theme$sanity = theme.sanity,
3704
3785
  media = _theme$sanity.media,
3705
3786
  shadows = _theme$sanity.shadows;
3706
- return responsive(media, getResponsiveProp(props.$shadow), function (shadow) {
3787
+ return _responsive(media, props.$shadow, function (shadow) {
3707
3788
  return shadowStyle(shadows[shadow]);
3708
3789
  });
3709
3790
  }
@@ -3749,10 +3830,10 @@ var Text = /*#__PURE__*/forwardRef(function Text(props, ref) {
3749
3830
  "data-ui": "Text"
3750
3831
  }, restProps, {
3751
3832
  "$accent": accent,
3752
- "$align": align,
3833
+ "$align": useArrayProp(align),
3753
3834
  "$muted": muted,
3754
3835
  ref: ref,
3755
- "$size": size,
3836
+ "$size": useArrayProp(size),
3756
3837
  "$weight": weight
3757
3838
  }), /*#__PURE__*/React.createElement("span", null, children));
3758
3839
  });
@@ -3848,7 +3929,7 @@ function responsiveAvatarSizeStyle(props) {
3848
3929
  var _theme$sanity = theme.sanity,
3849
3930
  avatar = _theme$sanity.avatar,
3850
3931
  media = _theme$sanity.media;
3851
- return responsive(media, props.$size, function (size) {
3932
+ return _responsive(media, props.$size, function (size) {
3852
3933
  var avatarSize = avatar.sizes[size] || avatar.sizes[0];
3853
3934
  return {
3854
3935
  width: rem(avatarSize.size),
@@ -3919,11 +4000,12 @@ var Avatar = /*#__PURE__*/forwardRef(function Avatar(props, ref) {
3919
4000
  animateArrowFrom = props.animateArrowFrom,
3920
4001
  _props$status = props.status,
3921
4002
  status = _props$status === void 0 ? 'online' : _props$status,
3922
- sizeProp = props.size,
4003
+ _props$size = props.size,
4004
+ sizeProp = _props$size === void 0 ? 0 : _props$size,
3923
4005
  restProps = _objectWithoutPropertiesLoose(props, _excluded$F);
3924
4006
 
3925
4007
  var as = ReactIs.isValidElementType(asProp) ? asProp : 'div';
3926
- var size = useResponsiveProp(sizeProp, [0]);
4008
+ var size = useArrayProp(sizeProp);
3927
4009
  var theme = useTheme();
3928
4010
  var color = theme.sanity.color.spot[colorKey] || theme.sanity.color.spot.gray; // @todo: remove this
3929
4011
 
@@ -3963,6 +4045,11 @@ var Avatar = /*#__PURE__*/forwardRef(function Avatar(props, ref) {
3963
4045
  onImageLoadError(new Error('Avatar: the image failed to load'));
3964
4046
  }
3965
4047
  }, [onImageLoadError]);
4048
+ var initialsSize = useMemo(function () {
4049
+ return size.map(function (s) {
4050
+ return s === 0 ? 0 : s + 1;
4051
+ });
4052
+ }, [size]);
3966
4053
  return /*#__PURE__*/React.createElement(Root$D, _extends({
3967
4054
  as: as,
3968
4055
  "data-as": typeof as === 'string' ? as : undefined,
@@ -4016,22 +4103,20 @@ var Avatar = /*#__PURE__*/forwardRef(function Avatar(props, ref) {
4016
4103
  vectorEffect: "non-scaling-stroke"
4017
4104
  })), (imageFailed || !src) && initials && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Initials, null, /*#__PURE__*/React.createElement(Text, {
4018
4105
  as: "span",
4019
- size: size.map(function (s) {
4020
- return s === 0 ? 0 : s + 1;
4021
- })
4106
+ size: initialsSize
4022
4107
  }, /*#__PURE__*/React.createElement("strong", null, initials)))));
4023
4108
  });
4024
4109
 
4025
4110
  var _templateObject$A;
4026
4111
 
4027
- function responsiveAvatarCounterSizeStyle(props) {
4112
+ function _responsiveAvatarCounterSizeStyle(props) {
4028
4113
  var theme = props.theme;
4029
4114
  var _theme$sanity = theme.sanity,
4030
4115
  avatar = _theme$sanity.avatar,
4031
4116
  media = _theme$sanity.media;
4032
- return responsive(media, props.$size, function (size) {
4117
+ return _responsive(media, props.$size, function (size) {
4033
4118
  var avatarSize = avatar.sizes[size];
4034
- if (!avatarSize) return EMPTY_RECORD$1;
4119
+ if (!avatarSize) return EMPTY_RECORD;
4035
4120
  return {
4036
4121
  borderRadius: rem(avatarSize.size / 2),
4037
4122
  minWidth: rem(avatarSize.size),
@@ -4040,12 +4125,12 @@ function responsiveAvatarCounterSizeStyle(props) {
4040
4125
  });
4041
4126
  }
4042
4127
 
4043
- function avatarCounterBaseStyle(props) {
4128
+ function _avatarCounterBaseStyle(props) {
4044
4129
  var theme = props.theme;
4045
4130
  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]));
4046
4131
  }
4047
4132
 
4048
- var Root$C = styled.div(responsiveAvatarCounterSizeStyle, avatarCounterBaseStyle);
4133
+ var Root$C = styled.div(_responsiveAvatarCounterSizeStyle, _avatarCounterBaseStyle);
4049
4134
  /**
4050
4135
  * @public
4051
4136
  */
@@ -4053,18 +4138,20 @@ var Root$C = styled.div(responsiveAvatarCounterSizeStyle, avatarCounterBaseStyle
4053
4138
  var AvatarCounter = /*#__PURE__*/forwardRef(function AvatarCounter(props, ref) {
4054
4139
  var count = props.count,
4055
4140
  _props$size = props.size,
4056
- sizeProp = _props$size === void 0 ? 0 : _props$size,
4057
- tone = props.tone;
4058
- var size = useResponsiveProp(sizeProp, [0]);
4141
+ sizeProp = _props$size === void 0 ? 0 : _props$size;
4142
+ var size = useArrayProp(sizeProp);
4143
+ var counterSize = useMemo(function () {
4144
+ return size.map(function (s) {
4145
+ return s === 0 ? 0 : s + 1;
4146
+ });
4147
+ }, [size]);
4059
4148
  return /*#__PURE__*/React.createElement(Root$C, {
4060
4149
  "$size": size,
4061
- "data-tone": tone,
4150
+ "data-ui": "AvatarCounter",
4062
4151
  ref: ref
4063
4152
  }, /*#__PURE__*/React.createElement(Text, {
4064
4153
  as: "span",
4065
- size: size.map(function (s) {
4066
- return s === 0 ? 0 : s + 1;
4067
- })
4154
+ size: counterSize
4068
4155
  }, /*#__PURE__*/React.createElement("strong", null, count)));
4069
4156
  });
4070
4157
 
@@ -4075,7 +4162,7 @@ function childrenToElementArray(children) {
4075
4162
  });
4076
4163
  }
4077
4164
 
4078
- var _excluded$E = ["children", "maxLength", "size", "tone"];
4165
+ var _excluded$E = ["children", "maxLength", "size"];
4079
4166
 
4080
4167
  var _templateObject$z;
4081
4168
  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"])));
@@ -4089,9 +4176,9 @@ function responsiveAvatarStackSizeStyle(props) {
4089
4176
  var _theme$sanity = theme.sanity,
4090
4177
  avatar = _theme$sanity.avatar,
4091
4178
  media = _theme$sanity.media;
4092
- return responsive(media, getResponsiveProp(props.size), function (size) {
4179
+ return _responsive(media, props.$size, function (size) {
4093
4180
  var avatarSize = avatar.sizes[size];
4094
- if (!avatarSize) return EMPTY_RECORD$1;
4181
+ if (!avatarSize) return EMPTY_RECORD;
4095
4182
  return {
4096
4183
  '& > div + div': {
4097
4184
  marginLeft: rem(avatarSize.distance)
@@ -4110,14 +4197,14 @@ var AvatarStack = /*#__PURE__*/forwardRef(function AvatarStack(props, ref) {
4110
4197
  _props$maxLength = props.maxLength,
4111
4198
  maxLengthProp = _props$maxLength === void 0 ? 4 : _props$maxLength,
4112
4199
  _props$size = props.size,
4113
- size = _props$size === void 0 ? 0 : _props$size,
4114
- tone = props.tone,
4200
+ sizeProp = _props$size === void 0 ? 0 : _props$size,
4115
4201
  restProps = _objectWithoutPropertiesLoose(props, _excluded$E);
4116
4202
 
4117
- var maxLength = Math.max(maxLengthProp, 0);
4118
4203
  var children = childrenToElementArray(childrenProp).filter(function (child) {
4119
4204
  return typeof child !== 'string';
4120
4205
  });
4206
+ var maxLength = Math.max(maxLengthProp, 0);
4207
+ var size = useArrayProp(sizeProp);
4121
4208
  var len = children.length;
4122
4209
  var visibleCount = maxLength - 1;
4123
4210
  var extraCount = len - visibleCount;
@@ -4126,20 +4213,17 @@ var AvatarStack = /*#__PURE__*/forwardRef(function AvatarStack(props, ref) {
4126
4213
  "data-ui": "AvatarStack"
4127
4214
  }, restProps, {
4128
4215
  ref: ref,
4129
- size: size
4216
+ "$size": size
4130
4217
  }), len === 0 && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(AvatarCounter, {
4131
- count: len,
4132
- tone: tone
4218
+ count: len
4133
4219
  })), len !== 0 && extraCount > 1 && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(AvatarCounter, {
4134
4220
  count: extraCount,
4135
- size: size,
4136
- tone: tone
4221
+ size: size
4137
4222
  })), visibleChildren.map(function (child, childIndex) {
4138
4223
  return /*#__PURE__*/React.createElement("div", {
4139
4224
  key: String(childIndex)
4140
4225
  }, /*#__PURE__*/cloneElement(child, {
4141
- size: size,
4142
- tone: tone
4226
+ size: size
4143
4227
  }));
4144
4228
  }));
4145
4229
  });
@@ -4184,34 +4268,34 @@ var Box = /*#__PURE__*/forwardRef(function Box(props, ref) {
4184
4268
  restProps = _objectWithoutPropertiesLoose(props, _excluded$D);
4185
4269
 
4186
4270
  return /*#__PURE__*/React.createElement(Root$A, _extends({
4187
- "data-as": asProp,
4271
+ "data-as": typeof asProp === 'string' ? asProp : undefined,
4188
4272
  "data-ui": "Box"
4189
4273
  }, restProps, {
4190
- "$column": column,
4191
- "$columnStart": columnStart,
4192
- "$columnEnd": columnEnd,
4193
- "$display": display,
4194
- "$flex": flex,
4195
- "$height": height,
4196
- "$margin": margin,
4197
- "$marginX": marginX,
4198
- "$marginY": marginY,
4199
- "$marginTop": marginTop,
4200
- "$marginRight": marginRight,
4201
- "$marginBottom": marginBottom,
4202
- "$marginLeft": marginLeft,
4203
- "$overflow": overflow,
4204
- "$padding": padding,
4205
- "$paddingX": paddingX,
4206
- "$paddingY": paddingY,
4207
- "$paddingTop": paddingTop,
4208
- "$paddingRight": paddingRight,
4209
- "$paddingBottom": paddingBottom,
4210
- "$paddingLeft": paddingLeft,
4211
- "$row": row,
4212
- "$rowStart": rowStart,
4213
- "$rowEnd": rowEnd,
4214
- "$sizing": sizing,
4274
+ "$column": useArrayProp(column),
4275
+ "$columnStart": useArrayProp(columnStart),
4276
+ "$columnEnd": useArrayProp(columnEnd),
4277
+ "$display": useArrayProp(display),
4278
+ "$flex": useArrayProp(flex),
4279
+ "$height": useArrayProp(height),
4280
+ "$margin": useArrayProp(margin),
4281
+ "$marginX": useArrayProp(marginX),
4282
+ "$marginY": useArrayProp(marginY),
4283
+ "$marginTop": useArrayProp(marginTop),
4284
+ "$marginRight": useArrayProp(marginRight),
4285
+ "$marginBottom": useArrayProp(marginBottom),
4286
+ "$marginLeft": useArrayProp(marginLeft),
4287
+ "$overflow": useArrayProp(overflow),
4288
+ "$padding": useArrayProp(padding),
4289
+ "$paddingX": useArrayProp(paddingX),
4290
+ "$paddingY": useArrayProp(paddingY),
4291
+ "$paddingTop": useArrayProp(paddingTop),
4292
+ "$paddingRight": useArrayProp(paddingRight),
4293
+ "$paddingBottom": useArrayProp(paddingBottom),
4294
+ "$paddingLeft": useArrayProp(paddingLeft),
4295
+ "$row": useArrayProp(row),
4296
+ "$rowStart": useArrayProp(rowStart),
4297
+ "$rowEnd": useArrayProp(rowEnd),
4298
+ "$sizing": useArrayProp(sizing),
4215
4299
  as: asProp,
4216
4300
  ref: ref
4217
4301
  }), props.children);
@@ -4259,9 +4343,9 @@ var Label = /*#__PURE__*/forwardRef(function Label(props, ref) {
4259
4343
  "data-ui": "Label"
4260
4344
  }, restProps, {
4261
4345
  "$accent": accent,
4262
- "$align": align,
4346
+ "$align": useArrayProp(align),
4263
4347
  "$muted": muted,
4264
- "$size": size,
4348
+ "$size": useArrayProp(size),
4265
4349
  "$weight": weight,
4266
4350
  ref: ref
4267
4351
  }), children);
@@ -4308,8 +4392,8 @@ var Badge = /*#__PURE__*/forwardRef(function Badge(props, ref) {
4308
4392
  }, restProps, {
4309
4393
  "$mode": mode,
4310
4394
  "$tone": tone,
4311
- "$radius": radius,
4312
- padding: padding,
4395
+ "$radius": useArrayProp(radius),
4396
+ padding: useArrayProp(padding),
4313
4397
  ref: ref
4314
4398
  }), /*#__PURE__*/React.createElement(Label, {
4315
4399
  size: fontSize
@@ -4335,11 +4419,11 @@ var Flex = /*#__PURE__*/forwardRef(function Flex(props, ref) {
4335
4419
  return /*#__PURE__*/React.createElement(Root$x, _extends({
4336
4420
  "data-ui": "Flex"
4337
4421
  }, restProps, {
4338
- "$align": align,
4339
- "$direction": direction,
4340
- "$gap": gap,
4341
- "$justify": justify,
4342
- "$wrap": wrap,
4422
+ "$align": useArrayProp(align),
4423
+ "$direction": useArrayProp(direction),
4424
+ "$gap": useArrayProp(gap),
4425
+ "$justify": useArrayProp(justify),
4426
+ "$wrap": useArrayProp(wrap),
4343
4427
  forwardedAs: as,
4344
4428
  ref: ref
4345
4429
  }));
@@ -4468,23 +4552,23 @@ var Button = /*#__PURE__*/forwardRef(function Button(props, ref) {
4468
4552
  icon = props.icon,
4469
4553
  iconRight = props.iconRight,
4470
4554
  _props$justify = props.justify,
4471
- justify = _props$justify === void 0 ? 'center' : _props$justify,
4555
+ justifyProp = _props$justify === void 0 ? 'center' : _props$justify,
4472
4556
  loading = props.loading,
4473
4557
  _props$mode = props.mode,
4474
4558
  mode = _props$mode === void 0 ? 'default' : _props$mode,
4475
4559
  _props$padding = props.padding,
4476
- padding = _props$padding === void 0 ? 3 : _props$padding,
4477
- paddingX = props.paddingX,
4478
- paddingY = props.paddingY,
4479
- paddingTop = props.paddingTop,
4480
- paddingBottom = props.paddingBottom,
4481
- paddingLeft = props.paddingLeft,
4482
- paddingRight = props.paddingRight,
4560
+ paddingProp = _props$padding === void 0 ? 3 : _props$padding,
4561
+ paddingXProp = props.paddingX,
4562
+ paddingYProp = props.paddingY,
4563
+ paddingTopProp = props.paddingTop,
4564
+ paddingBottomProp = props.paddingBottom,
4565
+ paddingLeftProp = props.paddingLeft,
4566
+ paddingRightProp = props.paddingRight,
4483
4567
  _props$radius = props.radius,
4484
- radius = _props$radius === void 0 ? 2 : _props$radius,
4568
+ radiusProp = _props$radius === void 0 ? 2 : _props$radius,
4485
4569
  selected = props.selected,
4486
4570
  _props$space = props.space,
4487
- space = _props$space === void 0 ? 3 : _props$space,
4571
+ spaceProp = _props$space === void 0 ? 3 : _props$space,
4488
4572
  text = props.text,
4489
4573
  textAlign = props.textAlign,
4490
4574
  _props$tone = props.tone,
@@ -4493,6 +4577,16 @@ var Button = /*#__PURE__*/forwardRef(function Button(props, ref) {
4493
4577
  type = _props$type === void 0 ? 'button' : _props$type,
4494
4578
  restProps = _objectWithoutPropertiesLoose(props, _excluded$z);
4495
4579
 
4580
+ var justify = useArrayProp(justifyProp);
4581
+ var padding = useArrayProp(paddingProp);
4582
+ var paddingX = useArrayProp(paddingXProp);
4583
+ var paddingY = useArrayProp(paddingYProp);
4584
+ var paddingTop = useArrayProp(paddingTopProp);
4585
+ var paddingBottom = useArrayProp(paddingBottomProp);
4586
+ var paddingLeft = useArrayProp(paddingLeftProp);
4587
+ var paddingRight = useArrayProp(paddingRightProp);
4588
+ var radius = useArrayProp(radiusProp);
4589
+ var space = useArrayProp(spaceProp);
4496
4590
  var theme = useTheme();
4497
4591
  var boxProps = useMemo(function () {
4498
4592
  return {
@@ -4575,16 +4669,14 @@ function cardColorStyle(props) {
4575
4669
  }) : undefined, $focusRing ? focusRingBorderStyle(border) : undefined, (_theme$sanity$styles = theme.sanity.styles) == null ? void 0 : (_theme$sanity$styles$ = _theme$sanity$styles.card) == null ? void 0 : _theme$sanity$styles$.root);
4576
4670
  }
4577
4671
 
4578
- var _excluded$y = ["pressed", "__unstable_checkered", "__unstable_focusRing", "as", "border", "borderTop", "borderRight", "borderBottom", "borderLeft", "radius", "scheme", "selected", "shadow", "tone"];
4672
+ var _excluded$y = ["__unstable_checkered", "__unstable_focusRing", "as", "border", "borderTop", "borderRight", "borderBottom", "borderLeft", "pressed", "radius", "scheme", "selected", "shadow", "tone"];
4579
4673
  var Root$u = styled(Box)(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle);
4580
4674
  /**
4581
4675
  * @public
4582
4676
  */
4583
4677
 
4584
4678
  var Card = /*#__PURE__*/forwardRef(function Card(props, ref) {
4585
- var _props$pressed = props.pressed,
4586
- pressed = _props$pressed === void 0 ? false : _props$pressed,
4587
- _props$__unstable_che = props.__unstable_checkered,
4679
+ var _props$__unstable_che = props.__unstable_checkered,
4588
4680
  checkered = _props$__unstable_che === void 0 ? false : _props$__unstable_che,
4589
4681
  _props$__unstable_foc = props.__unstable_focusRing,
4590
4682
  focusRing = _props$__unstable_foc === void 0 ? false : _props$__unstable_foc,
@@ -4594,6 +4686,7 @@ var Card = /*#__PURE__*/forwardRef(function Card(props, ref) {
4594
4686
  borderRight = props.borderRight,
4595
4687
  borderBottom = props.borderBottom,
4596
4688
  borderLeft = props.borderLeft,
4689
+ pressed = props.pressed,
4597
4690
  _props$radius = props.radius,
4598
4691
  radius = _props$radius === void 0 ? 0 : _props$radius,
4599
4692
  scheme = props.scheme,
@@ -4611,23 +4704,23 @@ var Card = /*#__PURE__*/forwardRef(function Card(props, ref) {
4611
4704
  tone: tone
4612
4705
  }, /*#__PURE__*/React.createElement(Root$u, _extends({
4613
4706
  "data-as": typeof as === 'string' ? as : undefined,
4614
- "data-checkered": checkered ? '' : undefined,
4615
- "data-pressed": pressed ? '' : undefined,
4616
4707
  "data-scheme": rootTheme.scheme,
4617
- "data-selected": selected ? '' : undefined,
4618
4708
  "data-ui": "Card",
4619
4709
  "data-tone": tone
4620
4710
  }, restProps, {
4621
- "$border": border,
4622
- "$borderTop": borderTop,
4623
- "$borderRight": borderRight,
4624
- "$borderBottom": borderBottom,
4625
- "$borderLeft": borderLeft,
4711
+ "$border": useArrayProp(border),
4712
+ "$borderTop": useArrayProp(borderTop),
4713
+ "$borderRight": useArrayProp(borderRight),
4714
+ "$borderBottom": useArrayProp(borderBottom),
4715
+ "$borderLeft": useArrayProp(borderLeft),
4626
4716
  "$checkered": checkered,
4627
4717
  "$focusRing": focusRing,
4628
- "$radius": radius,
4629
- "$shadow": shadow,
4718
+ "$radius": useArrayProp(radius),
4719
+ "$shadow": useArrayProp(shadow),
4630
4720
  "$tone": tone,
4721
+ "data-checkered": checkered ? '' : undefined,
4722
+ "data-pressed": pressed ? '' : undefined,
4723
+ "data-selected": selected ? '' : undefined,
4631
4724
  forwardedAs: as,
4632
4725
  ref: ref,
4633
4726
  selected: selected
@@ -4846,7 +4939,7 @@ var Code = /*#__PURE__*/forwardRef(function Code(props, ref) {
4846
4939
  return /*#__PURE__*/React.createElement(Root$s, _extends({
4847
4940
  "data-ui": "Code"
4848
4941
  }, restProps, {
4849
- "$size": size,
4942
+ "$size": useArrayProp(size),
4850
4943
  "$weight": weight,
4851
4944
  ref: ref
4852
4945
  }), !(language && registered) && /*#__PURE__*/React.createElement("code", null, children), language && registered && /*#__PURE__*/React.createElement(Refractor, {
@@ -4868,7 +4961,7 @@ function responsiveContainerWidthStyle(props) {
4868
4961
  var _theme$sanity = theme.sanity,
4869
4962
  container = _theme$sanity.container,
4870
4963
  media = _theme$sanity.media;
4871
- return responsive(media, getResponsiveProp(props.$width), function (val) {
4964
+ return _responsive(media, props.$width, function (val) {
4872
4965
  return {
4873
4966
  maxWidth: val === 'auto' ? 'none' : rem(container[val])
4874
4967
  };
@@ -4890,7 +4983,7 @@ var Container = /*#__PURE__*/forwardRef(function Container(props, ref) {
4890
4983
  return /*#__PURE__*/React.createElement(Root$r, _extends({
4891
4984
  "data-ui": "Container"
4892
4985
  }, restProps, {
4893
- "$width": width,
4986
+ "$width": useArrayProp(width),
4894
4987
  forwardedAs: as,
4895
4988
  ref: ref
4896
4989
  }));
@@ -4919,14 +5012,14 @@ var Grid = /*#__PURE__*/forwardRef(function Grid(props, ref) {
4919
5012
  "data-as": typeof as === 'string' ? as : undefined,
4920
5013
  "data-ui": "Grid"
4921
5014
  }, restProps, {
4922
- "$autoRows": autoRows,
4923
- "$autoCols": autoCols,
4924
- "$autoFlow": autoFlow,
4925
- "$columns": columns,
4926
- "$gap": gap,
4927
- "$gapX": gapX,
4928
- "$gapY": gapY,
4929
- "$rows": rows,
5015
+ "$autoRows": useArrayProp(autoRows),
5016
+ "$autoCols": useArrayProp(autoCols),
5017
+ "$autoFlow": useArrayProp(autoFlow),
5018
+ "$columns": useArrayProp(columns),
5019
+ "$gap": useArrayProp(gap),
5020
+ "$gapX": useArrayProp(gapX),
5021
+ "$gapY": useArrayProp(gapY),
5022
+ "$rows": useArrayProp(rows),
4930
5023
  forwardedAs: as,
4931
5024
  ref: ref
4932
5025
  }), children);
@@ -4972,9 +5065,9 @@ var Heading = /*#__PURE__*/forwardRef(function Heading(props, ref) {
4972
5065
  "data-ui": "Heading"
4973
5066
  }, restProps, {
4974
5067
  "$accent": accent,
4975
- "$align": align,
5068
+ "$align": useArrayProp(align),
4976
5069
  "$muted": muted,
4977
- "$size": size,
5070
+ "$size": useArrayProp(size),
4978
5071
  "$weight": weight,
4979
5072
  ref: ref
4980
5073
  }), /*#__PURE__*/React.createElement("span", null, children));
@@ -4994,7 +5087,7 @@ function inlineBaseStyle() {
4994
5087
  }
4995
5088
  function inlineSpaceStyle(props) {
4996
5089
  var theme = props.theme;
4997
- return responsive(theme.sanity.media, getResponsiveProp(props.$space), function (spaceIndex) {
5090
+ return _responsive(theme.sanity.media, props.$space, function (spaceIndex) {
4998
5091
  var space = rem(theme.sanity.space[spaceIndex]);
4999
5092
  return {
5000
5093
  margin: "-" + space + " 0 0 -" + space,
@@ -5017,18 +5110,20 @@ var Inline = /*#__PURE__*/forwardRef(function Inline(props, ref) {
5017
5110
  space = props.space,
5018
5111
  restProps = _objectWithoutPropertiesLoose(props, _excluded$s);
5019
5112
 
5020
- var children = childrenToElementArray(childrenProp).filter(Boolean);
5113
+ var children = useMemo(function () {
5114
+ return childrenToElementArray(childrenProp).filter(Boolean).map(function (child, idx) {
5115
+ return /*#__PURE__*/React.createElement("div", {
5116
+ key: idx
5117
+ }, child);
5118
+ });
5119
+ }, [childrenProp]);
5021
5120
  return /*#__PURE__*/React.createElement(Root$o, _extends({
5022
5121
  "data-ui": "Inline"
5023
5122
  }, restProps, {
5024
- "$space": space,
5123
+ "$space": useArrayProp(space),
5025
5124
  forwardedAs: as,
5026
5125
  ref: ref
5027
- }), children.map(function (child, idx) {
5028
- return /*#__PURE__*/React.createElement("div", {
5029
- key: idx
5030
- }, child);
5031
- }));
5126
+ }), children);
5032
5127
  });
5033
5128
 
5034
5129
  var _excluded$r = ["children", "fontSize", "padding", "radius"];
@@ -5057,7 +5152,7 @@ var KBD = /*#__PURE__*/forwardRef(function KBD(props, ref) {
5057
5152
  return /*#__PURE__*/React.createElement(Root$n, _extends({
5058
5153
  "data-ui": "KBD"
5059
5154
  }, restProps, {
5060
- "$radius": radius,
5155
+ "$radius": useArrayProp(radius),
5061
5156
  ref: ref
5062
5157
  }), /*#__PURE__*/React.createElement(Box, {
5063
5158
  as: "span",
@@ -5111,12 +5206,6 @@ function useBoundaryElement() {
5111
5206
  return value || DEFAULT_VALUE;
5112
5207
  }
5113
5208
 
5114
- /**
5115
- * @internal
5116
- */
5117
-
5118
- var RO = typeof window !== 'undefined' && window.ResizeObserver ? window.ResizeObserver : ResizeObserver$1;
5119
-
5120
5209
  function findMaxBreakpoints(media, width) {
5121
5210
  var ret = [];
5122
5211
 
@@ -5158,31 +5247,18 @@ var ElementQuery = /*#__PURE__*/forwardRef(function ElementQuery(props, ref) {
5158
5247
  media = _props$media === void 0 ? theme.sanity.media : _props$media,
5159
5248
  restProps = _objectWithoutPropertiesLoose(props, _excluded$q);
5160
5249
 
5161
- var _useState = useState(function () {
5162
- return window.innerWidth;
5163
- }),
5164
- width = _useState[0],
5165
- setWidth = _useState[1];
5166
-
5167
5250
  var forwardedRef = useForwardedRef(ref);
5168
5251
 
5169
- var _useState2 = useState(null),
5170
- element = _useState2[0],
5171
- setElement = _useState2[1];
5172
-
5173
- useEffect(function () {
5174
- if (!element) return;
5252
+ var _useState = useState(null),
5253
+ element = _useState[0],
5254
+ setElement = _useState[1];
5175
5255
 
5176
- var handleResizeEntries = function handleResizeEntries(entries) {
5177
- setWidth(entries[0].contentRect.width);
5178
- };
5256
+ var elementSize = useElementSize(element);
5257
+ var width = useMemo(function () {
5258
+ var _elementSize$border$w;
5179
5259
 
5180
- var ro = new RO(handleResizeEntries);
5181
- ro.observe(element);
5182
- return function () {
5183
- return ro.disconnect();
5184
- };
5185
- }, [element]);
5260
+ return (_elementSize$border$w = elementSize == null ? void 0 : elementSize.border.width) != null ? _elementSize$border$w : window.innerWidth;
5261
+ }, [elementSize]);
5186
5262
  var max = useMemo(function () {
5187
5263
  return findMaxBreakpoints(media, width);
5188
5264
  }, [media, width]);
@@ -5288,7 +5364,7 @@ function LayerProvider(props) {
5288
5364
  _props$zOffset = props.zOffset,
5289
5365
  zOffsetProp = _props$zOffset === void 0 ? 0 : _props$zOffset;
5290
5366
  var parent = useContext(LayerContext);
5291
- var zOffset = useResponsiveProp(zOffsetProp);
5367
+ var zOffset = useArrayProp(zOffsetProp);
5292
5368
  var maxMediaIndex = zOffset.length - 1;
5293
5369
  var mediaIndex = Math.min(useMediaIndex(), maxMediaIndex);
5294
5370
  var zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex];
@@ -5334,13 +5410,14 @@ var Root$m = styled.div(_templateObject$n || (_templateObject$n = _taggedTemplat
5334
5410
  var LayerChildren = /*#__PURE__*/forwardRef(function LayerChildren(props, ref) {
5335
5411
  var children = props.children,
5336
5412
  _props$style = props.style,
5337
- style = _props$style === void 0 ? EMPTY_RECORD$1 : _props$style,
5413
+ style = _props$style === void 0 ? EMPTY_RECORD : _props$style,
5338
5414
  restProps = _objectWithoutPropertiesLoose(props, _excluded$p);
5339
5415
 
5340
5416
  var _useLayer = useLayer(),
5341
5417
  zIndex = _useLayer.zIndex;
5342
5418
 
5343
5419
  return /*#__PURE__*/React.createElement(Root$m, _extends({}, restProps, {
5420
+ "data-ui": "Layer",
5344
5421
  ref: ref,
5345
5422
  style: _extends({}, style, {
5346
5423
  zIndex: zIndex
@@ -5433,14 +5510,14 @@ function Portal(props) {
5433
5510
  function useUnique(value) {
5434
5511
  var valueRef = useRef(value);
5435
5512
 
5436
- if (!isEqual(valueRef.current, value)) {
5513
+ if (!_isEqual(valueRef.current, value)) {
5437
5514
  valueRef.current = value;
5438
5515
  }
5439
5516
 
5440
5517
  return valueRef.current;
5441
5518
  }
5442
5519
 
5443
- function isEqual(objA, objB) {
5520
+ function _isEqual(objA, objB) {
5444
5521
  if (!objA || !objB) {
5445
5522
  return objA === objB;
5446
5523
  }
@@ -5729,17 +5806,16 @@ var VirtualList = /*#__PURE__*/forwardRef(function VirtualList(props, ref) {
5729
5806
  scrollEl.addEventListener('scroll', _handleScroll, {
5730
5807
  passive: true
5731
5808
  });
5732
- var ro = new ResizeObserver(function (entries) {
5733
- setScrollHeight(entries[0].contentRect.height);
5809
+
5810
+ var disposeElementSizeListener = _elementSizeObserver.subscribe(scrollEl, function (scrollElementSize) {
5811
+ setScrollHeight(scrollElementSize.content.height);
5734
5812
  });
5735
- ro.observe(scrollEl);
5736
5813
 
5737
5814
  _handleScroll();
5738
5815
 
5739
5816
  return function () {
5740
5817
  scrollEl.removeEventListener('scroll', _handleScroll);
5741
- ro.unobserve(scrollEl);
5742
- ro.disconnect();
5818
+ disposeElementSizeListener();
5743
5819
  };
5744
5820
  }
5745
5821
 
@@ -6040,13 +6116,13 @@ var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6040
6116
  shadow = _props$shadow === void 0 ? 3 : _props$shadow,
6041
6117
  scheme = props.scheme,
6042
6118
  _props$style = props.style,
6043
- style = _props$style === void 0 ? EMPTY_RECORD$1 : _props$style,
6119
+ style = _props$style === void 0 ? EMPTY_RECORD : _props$style,
6044
6120
  tether = props.tether,
6045
6121
  tetherOffset = props.tetherOffset,
6046
6122
  _props$tone = props.tone,
6047
6123
  tone = _props$tone === void 0 ? 'inherit' : _props$tone,
6048
6124
  _props$width = props.width,
6049
- width = _props$width === void 0 ? 0 : _props$width,
6125
+ widthProp = _props$width === void 0 ? 0 : _props$width,
6050
6126
  _props$zOffset = props.zOffset,
6051
6127
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.popover.zOffset : _props$zOffset,
6052
6128
  restProps = _objectWithoutPropertiesLoose(props, _excluded$n);
@@ -6067,6 +6143,7 @@ var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6067
6143
  setArrowElement = _useState3[1];
6068
6144
 
6069
6145
  var popperReferenceElement = referenceElementProp || referenceElement;
6146
+ var width = useArrayProp(widthProp);
6070
6147
  var modifiers = usePopoverModifiers({
6071
6148
  allowedAutoPlacements: allowedAutoPlacements,
6072
6149
  arrow: arrow,
@@ -6129,13 +6206,13 @@ var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6129
6206
  zOffset: zOffset
6130
6207
  }, attributes.popper), /*#__PURE__*/React.createElement(PopoverCard, {
6131
6208
  "$constrainSize": constrainSize,
6209
+ "$width": width,
6132
6210
  "data-ui": "PopoverCard",
6133
6211
  padding: padding,
6134
6212
  radius: radius,
6135
6213
  scheme: scheme,
6136
6214
  shadow: shadow,
6137
- tone: tone,
6138
- width: width
6215
+ tone: tone
6139
6216
  }, arrow && /*#__PURE__*/React.createElement(PopoverArrow, {
6140
6217
  ref: setArrowElement,
6141
6218
  style: styles.arrow
@@ -6254,7 +6331,7 @@ function inputTextSizeStyle(props) {
6254
6331
  var theme = props.theme,
6255
6332
  $fontSize = props.$fontSize;
6256
6333
  var sizes = theme.sanity.fonts.text.sizes;
6257
- return responsive(theme.sanity.media, getResponsiveProp($fontSize), function (sizeIndex) {
6334
+ return _responsive(theme.sanity.media, $fontSize, function (sizeIndex) {
6258
6335
  return textSize(sizes[sizeIndex] || sizes[2]);
6259
6336
  });
6260
6337
  }
@@ -6306,10 +6383,10 @@ var Select = /*#__PURE__*/forwardRef(function Select(props, forwardedRef) {
6306
6383
  "data-read-only": !disabled && readOnly ? '' : undefined,
6307
6384
  "data-ui": "Select"
6308
6385
  }, restProps, {
6309
- "$fontSize": fontSize,
6310
- "$padding": padding,
6311
- "$radius": radius,
6312
- "$space": space,
6386
+ "$fontSize": useArrayProp(fontSize),
6387
+ "$padding": useArrayProp(padding),
6388
+ "$radius": useArrayProp(radius),
6389
+ "$space": useArrayProp(space),
6313
6390
  disabled: disabled || readOnly,
6314
6391
  ref: ref
6315
6392
  }), children), /*#__PURE__*/React.createElement(IconBox, {
@@ -6337,7 +6414,7 @@ function responsiveStackSpaceStyle(props) {
6337
6414
  var _theme$sanity = theme.sanity,
6338
6415
  media = _theme$sanity.media,
6339
6416
  space = _theme$sanity.space;
6340
- return responsive(media, getResponsiveProp(props.$space), function (spaceIndex) {
6417
+ return _responsive(media, props.$space, function (spaceIndex) {
6341
6418
  return {
6342
6419
  gridGap: rem(space[spaceIndex])
6343
6420
  };
@@ -6359,13 +6436,13 @@ var Stack = /*#__PURE__*/forwardRef(function Stack(props, ref) {
6359
6436
  "data-as": typeof as === 'string' ? as : undefined,
6360
6437
  "data-ui": "Stack"
6361
6438
  }, restProps, {
6362
- "$space": space,
6439
+ "$space": useArrayProp(space),
6363
6440
  forwardedAs: as,
6364
6441
  ref: ref
6365
6442
  }));
6366
6443
  });
6367
6444
 
6368
- var _templateObject$g, _templateObject2$b, _templateObject3$6, _templateObject4$4, _templateObject5$3, _templateObject6$1, _templateObject7;
6445
+ var _templateObject$g, _templateObject2$b, _templateObject3$6, _templateObject4$4, _templateObject5$3, _templateObject6$2, _templateObject7;
6369
6446
  /* Root */
6370
6447
 
6371
6448
  function switchBaseStyles() {
@@ -6409,7 +6486,7 @@ function switchThumbStyles(props) {
6409
6486
  var checkedOffset = trackWidth - trackPadding * 2 - size;
6410
6487
  var indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding;
6411
6488
  var checked = $indeterminate !== true && props.$checked === true;
6412
- 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));
6489
+ 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));
6413
6490
  }
6414
6491
 
6415
6492
  var _excluded$j = ["checked", "className", "disabled", "indeterminate", "readOnly", "style"];
@@ -6458,7 +6535,7 @@ var Switch = /*#__PURE__*/forwardRef(function Switch(props, forwardedRef) {
6458
6535
  })));
6459
6536
  });
6460
6537
 
6461
- var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius"];
6538
+ var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius", "weight"];
6462
6539
 
6463
6540
  var _templateObject$f;
6464
6541
  var Root$d = styled.span(textInputRootStyle);
@@ -6481,32 +6558,42 @@ var TextArea = /*#__PURE__*/forwardRef(function TextArea(props, forwardedRef) {
6481
6558
  padding = _props$padding === void 0 ? 3 : _props$padding,
6482
6559
  _props$radius = props.radius,
6483
6560
  radius = _props$radius === void 0 ? 1 : _props$radius,
6561
+ weight = props.weight,
6484
6562
  restProps = _objectWithoutPropertiesLoose(props, _excluded$i);
6485
6563
 
6486
6564
  var ref = useForwardedRef(forwardedRef);
6565
+ var rootTheme = useRootTheme();
6487
6566
  useCustomValidity(ref, customValidity);
6488
6567
  return /*#__PURE__*/React.createElement(Root$d, {
6489
6568
  "data-ui": "TextArea"
6490
6569
  }, /*#__PURE__*/React.createElement(InputRoot$1, null, /*#__PURE__*/React.createElement(Input$1, _extends({
6491
- "data-as": "textarea"
6570
+ "data-as": "textarea",
6571
+ "data-tone": rootTheme.tone
6492
6572
  }, restProps, {
6493
- "$fontSize": fontSize,
6494
- "$padding": padding,
6573
+ "$fontSize": useArrayProp(fontSize),
6574
+ "$padding": useArrayProp(padding),
6575
+ "$space": useArrayProp(0),
6576
+ "$tone": rootTheme.tone,
6577
+ "$weight": weight,
6495
6578
  disabled: disabled,
6496
6579
  ref: ref
6497
6580
  })), /*#__PURE__*/React.createElement(Presentation$1, {
6498
6581
  "$border": border,
6499
- "$radius": radius
6582
+ "$radius": useArrayProp(radius),
6583
+ "$tone": rootTheme.tone,
6584
+ "data-tone": rootTheme.tone
6500
6585
  })));
6501
6586
  });
6502
6587
 
6503
- var _excluded$h = ["border", "clearButton", "disabled", "fontSize", "icon", "iconRight", "onClear", "padding", "prefix", "radius", "readOnly", "space", "suffix", "customValidity", "type"];
6588
+ var _excluded$h = ["border", "clearButton", "disabled", "fontSize", "icon", "iconRight", "onClear", "padding", "prefix", "radius", "readOnly", "space", "suffix", "customValidity", "type", "weight"];
6504
6589
 
6505
- var _templateObject$e, _templateObject2$a, _templateObject3$5, _templateObject4$3, _templateObject5$2;
6590
+ var _templateObject$e, _templateObject2$a, _templateObject3$5, _templateObject4$3, _templateObject5$2, _templateObject6$1;
6506
6591
  var CLEAR_BUTTON_BOX_STYLE = {
6507
6592
  zIndex: 2
6508
6593
  };
6509
- var Root$c = styled.span(textInputRootStyle);
6594
+ var Root$c = styled(Card).attrs({
6595
+ forwardedAs: 'span'
6596
+ })(textInputRootStyle);
6510
6597
  var InputRoot = styled.span(_templateObject$e || (_templateObject$e = _taggedTemplateLiteralLoose(["\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n"])));
6511
6598
  var Prefix = styled(Card).attrs({
6512
6599
  forwardedAs: 'span'
@@ -6517,7 +6604,8 @@ var Suffix = styled(Card).attrs({
6517
6604
  var Input = styled.input(responsiveInputPaddingStyle, textInputBaseStyle, textInputFontSizeStyle);
6518
6605
  var Presentation = styled.span(responsiveRadiusStyle, textInputRepresentationStyle);
6519
6606
  var LeftBox = styled(Box)(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n"])));
6520
- var RightCard = styled(Card)(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
6607
+ var RightBox = styled(Box)(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n right: 0;\n"])));
6608
+ var RightCard = styled(Card)(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteralLoose(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
6521
6609
  /**
6522
6610
  * @public
6523
6611
  */
@@ -6529,7 +6617,7 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6529
6617
  _props$disabled = props.disabled,
6530
6618
  disabled = _props$disabled === void 0 ? false : _props$disabled,
6531
6619
  _props$fontSize = props.fontSize,
6532
- fontSize = _props$fontSize === void 0 ? 2 : _props$fontSize,
6620
+ fontSizeProp = _props$fontSize === void 0 ? 2 : _props$fontSize,
6533
6621
  icon = props.icon,
6534
6622
  iconRight = props.iconRight,
6535
6623
  onClear = props.onClear,
@@ -6540,16 +6628,20 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6540
6628
  radiusProp = _props$radius === void 0 ? 1 : _props$radius,
6541
6629
  readOnly = props.readOnly,
6542
6630
  _props$space = props.space,
6543
- space = _props$space === void 0 ? 3 : _props$space,
6631
+ spaceProp = _props$space === void 0 ? 3 : _props$space,
6544
6632
  suffix = props.suffix,
6545
6633
  customValidity = props.customValidity,
6546
6634
  _props$type = props.type,
6547
6635
  type = _props$type === void 0 ? 'text' : _props$type,
6636
+ weight = props.weight,
6548
6637
  restProps = _objectWithoutPropertiesLoose(props, _excluded$h);
6549
6638
 
6550
6639
  var ref = useForwardedRef(forwardedRef);
6551
- var padding = useResponsiveProp(paddingProp);
6552
- var radius = useResponsiveProp(radiusProp); // Transient properties
6640
+ var rootTheme = useRootTheme();
6641
+ var fontSize = useArrayProp(fontSizeProp);
6642
+ var padding = useArrayProp(paddingProp);
6643
+ var radius = useArrayProp(radiusProp);
6644
+ var space = useArrayProp(spaceProp); // Transient properties
6553
6645
 
6554
6646
  var $hasClearButton = Boolean(clearButton);
6555
6647
  var $hasIcon = Boolean(icon);
@@ -6588,17 +6680,19 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6588
6680
  "$border": border,
6589
6681
  "$hasPrefix": $hasPrefix,
6590
6682
  "$hasSuffix": $hasSuffix,
6591
- "$radius": radius
6683
+ "$radius": radius,
6684
+ "$tone": rootTheme.tone,
6685
+ "data-tone": rootTheme.tone
6592
6686
  }, icon && /*#__PURE__*/React.createElement(LeftBox, {
6593
6687
  padding: padding
6594
6688
  }, /*#__PURE__*/React.createElement(Text, {
6595
6689
  size: fontSize
6596
- }, /*#__PURE__*/isValidElement(icon) && icon, isValidElementType(icon) && /*#__PURE__*/createElement(icon))), !$hasClearButton && iconRight && /*#__PURE__*/React.createElement(RightCard, {
6690
+ }, /*#__PURE__*/isValidElement(icon) && icon, isValidElementType(icon) && /*#__PURE__*/createElement(icon))), !$hasClearButton && iconRight && /*#__PURE__*/React.createElement(RightBox, {
6597
6691
  padding: padding
6598
6692
  }, /*#__PURE__*/React.createElement(Text, {
6599
6693
  size: fontSize
6600
6694
  }, /*#__PURE__*/isValidElement(iconRight) && iconRight, isValidElementType(iconRight) && /*#__PURE__*/createElement(iconRight))));
6601
- }, [border, fontSize, icon, iconRight, padding, radius, $hasClearButton, $hasPrefix, $hasSuffix]); // Render clear button (memoized)
6695
+ }, [border, fontSize, icon, iconRight, padding, radius, rootTheme.tone, $hasClearButton, $hasPrefix, $hasSuffix]); // Render clear button (memoized)
6602
6696
 
6603
6697
  var clearButtonBoxPadding = useMemo(function () {
6604
6698
  return padding.map(function (v) {
@@ -6617,7 +6711,7 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6617
6711
  });
6618
6712
  }, [padding]);
6619
6713
  var clearButtonProps = useMemo(function () {
6620
- return typeof clearButton === 'object' ? clearButton : EMPTY_RECORD$1;
6714
+ return typeof clearButton === 'object' ? clearButton : EMPTY_RECORD;
6621
6715
  }, [clearButton]);
6622
6716
  var clearButtonNode = useMemo(function () {
6623
6717
  return !disabled && !readOnly && clearButton && /*#__PURE__*/React.createElement(RightCard, {
@@ -6649,15 +6743,19 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6649
6743
  }, /*#__PURE__*/React.createElement("span", null, suffix));
6650
6744
  }, [radius, suffix]);
6651
6745
  return /*#__PURE__*/React.createElement(Root$c, {
6652
- "data-ui": "TextInput"
6746
+ "data-ui": "TextInput",
6747
+ tone: rootTheme.tone
6653
6748
  }, prefixNode, /*#__PURE__*/React.createElement(InputRoot, null, /*#__PURE__*/React.createElement(Input, _extends({
6654
- "data-as": "input"
6749
+ "data-as": "input",
6750
+ "data-tone": rootTheme.tone
6655
6751
  }, restProps, {
6752
+ "$fontSize": fontSize,
6656
6753
  "$iconLeft": $hasIcon,
6657
6754
  "$iconRight": $hasIconRight || $hasClearButton,
6658
6755
  "$padding": padding,
6659
6756
  "$space": space,
6660
- "$fontSize": fontSize,
6757
+ "$tone": rootTheme.tone,
6758
+ "$weight": weight,
6661
6759
  disabled: disabled,
6662
6760
  readOnly: readOnly,
6663
6761
  ref: ref,
@@ -6705,7 +6803,7 @@ var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
6705
6803
  children = props.children,
6706
6804
  content = props.content,
6707
6805
  disabled = props.disabled,
6708
- fallbackPlacements = props.fallbackPlacements,
6806
+ fallbackPlacementsProp = props.fallbackPlacements,
6709
6807
  _props$placement = props.placement,
6710
6808
  placement = _props$placement === void 0 ? 'bottom' : _props$placement,
6711
6809
  portal = props.portal,
@@ -6714,6 +6812,7 @@ var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
6714
6812
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.tooltip.zOffset : _props$zOffset,
6715
6813
  restProps = _objectWithoutPropertiesLoose(props, _excluded$g);
6716
6814
 
6815
+ var fallbackPlacements = useArrayProp(fallbackPlacementsProp);
6717
6816
  var forwardedRef = useForwardedRef(ref);
6718
6817
 
6719
6818
  var _useState = useState(null),
@@ -6851,7 +6950,7 @@ var _templateObject$b, _templateObject2$8, _templateObject3$3, _templateObject4$
6851
6950
  * @internal
6852
6951
  */
6853
6952
 
6854
- var Root$9 = styled.div(_templateObject$b || (_templateObject$b = _taggedTemplateLiteralLoose(["\n /* position: relative; */\n line-height: 0;\n"])));
6953
+ var Root$9 = styled.div(_templateObject$b || (_templateObject$b = _taggedTemplateLiteralLoose(["\n line-height: 0;\n"])));
6855
6954
  /**
6856
6955
  * @internal
6857
6956
  */
@@ -6972,11 +7071,6 @@ function autocompleteReducer(state, msg) {
6972
7071
  /**
6973
7072
  * @internal
6974
7073
  */
6975
- var EMPTY_RECORD = {};
6976
- /**
6977
- * @internal
6978
- */
6979
-
6980
7074
  var AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = ['Control', 'Shift', 'Alt', 'Enter', 'Home', 'End', 'PageUp', 'PageDown', 'Meta', 'Tab', 'CapsLock'];
6981
7075
  /**
6982
7076
  * @internal
@@ -7088,7 +7182,7 @@ var InnerAutocomplete = /*#__PURE__*/forwardRef(function InnerAutocomplete(props
7088
7182
  var popoverMouseWithinRef = useRef(false);
7089
7183
  var listBoxId = id + "-listbox";
7090
7184
  var options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY;
7091
- var padding = useResponsiveProp(paddingProp);
7185
+ var padding = useArrayProp(paddingProp);
7092
7186
  var currentOption = useMemo(function () {
7093
7187
  return value !== null ? options.find(function (o) {
7094
7188
  return o.value === value;
@@ -7432,6 +7526,7 @@ var InnerAutocomplete = /*#__PURE__*/forwardRef(function InnerAutocomplete(props
7432
7526
  var content = useMemo(function () {
7433
7527
  if (filteredOptions.length === 0) return null;
7434
7528
  return /*#__PURE__*/React.createElement(ListBox, _extends({
7529
+ "data-ui": "AutoComplete__results",
7435
7530
  onKeyDown: handleListBoxKeyDown,
7436
7531
  padding: 1
7437
7532
  }, listBox, {
@@ -7439,6 +7534,7 @@ var InnerAutocomplete = /*#__PURE__*/forwardRef(function InnerAutocomplete(props
7439
7534
  }), /*#__PURE__*/React.createElement(Stack, {
7440
7535
  as: "ul",
7441
7536
  "aria-multiselectable": false,
7537
+ "data-ui": "AutoComplete__resultsList",
7442
7538
  id: listBoxId,
7443
7539
  ref: listBoxElementRef,
7444
7540
  role: "listbox",
@@ -7518,9 +7614,11 @@ var Breadcrumbs = /*#__PURE__*/forwardRef(function Breadcrumbs(props, ref) {
7518
7614
  maxLength = props.maxLength,
7519
7615
  separator = props.separator,
7520
7616
  _props$space = props.space,
7521
- space = _props$space === void 0 ? 2 : _props$space,
7617
+ spaceRaw = _props$space === void 0 ? 2 : _props$space,
7522
7618
  restProps = _objectWithoutPropertiesLoose(props, _excluded$e);
7523
7619
 
7620
+ var space = useArrayProp(spaceRaw);
7621
+
7524
7622
  var _useState = useState(false),
7525
7623
  open = _useState[0],
7526
7624
  setOpen = _useState[1];
@@ -7616,7 +7714,7 @@ function dialogStyle(_ref) {
7616
7714
  function responsiveDialogPositionStyle(props) {
7617
7715
  var theme = props.theme;
7618
7716
  var media = theme.sanity.media;
7619
- return responsive(media, getResponsiveProp(props.$position), function (position) {
7717
+ return _responsive(media, props.$position, function (position) {
7620
7718
  return {
7621
7719
  '&&': {
7622
7720
  position: position
@@ -7664,10 +7762,13 @@ var DialogCard = /*#__PURE__*/forwardRef(function DialogCard(props, ref) {
7664
7762
  id = props.id,
7665
7763
  onClickOutside = props.onClickOutside,
7666
7764
  onClose = props.onClose,
7667
- radius = props.radius,
7765
+ radiusProp = props.radius,
7668
7766
  scheme = props.scheme,
7669
- shadow = props.shadow,
7670
- width = props.width;
7767
+ shadowProp = props.shadow,
7768
+ widthProp = props.width;
7769
+ var radius = useArrayProp(radiusProp);
7770
+ var shadow = useArrayProp(shadowProp);
7771
+ var width = useArrayProp(widthProp);
7671
7772
  var forwardedRef = useForwardedRef(ref);
7672
7773
 
7673
7774
  var _useState = useState(null),
@@ -7754,7 +7855,7 @@ var Dialog = /*#__PURE__*/forwardRef(function Dialog(props, ref) {
7754
7855
  _props$__unstable_hid = props.__unstable_hideCloseButton,
7755
7856
  hideCloseButton = _props$__unstable_hid === void 0 ? false : _props$__unstable_hid,
7756
7857
  _props$cardRadius = props.cardRadius,
7757
- cardRadius = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7858
+ cardRadiusProp = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7758
7859
  _props$cardShadow = props.cardShadow,
7759
7860
  cardShadow = _props$cardShadow === void 0 ? 4 : _props$cardShadow,
7760
7861
  children = props.children,
@@ -7765,17 +7866,22 @@ var Dialog = /*#__PURE__*/forwardRef(function Dialog(props, ref) {
7765
7866
  onClickOutside = props.onClickOutside,
7766
7867
  onClose = props.onClose,
7767
7868
  _props$padding = props.padding,
7768
- padding = _props$padding === void 0 ? 4 : _props$padding,
7869
+ paddingProp = _props$padding === void 0 ? 4 : _props$padding,
7769
7870
  portal = props.portal,
7770
7871
  _props$position = props.position,
7771
- position = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7872
+ positionProp = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7772
7873
  scheme = props.scheme,
7773
7874
  _props$width = props.width,
7774
- width = _props$width === void 0 ? 0 : _props$width,
7875
+ widthProp = _props$width === void 0 ? 0 : _props$width,
7775
7876
  _props$zOffset = props.zOffset,
7776
- zOffset = _props$zOffset === void 0 ? dialog.zOffset || ((_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.dialog.zOffset) : _props$zOffset,
7877
+ zOffsetProp = _props$zOffset === void 0 ? dialog.zOffset || ((_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.dialog.zOffset) : _props$zOffset,
7777
7878
  restProps = _objectWithoutPropertiesLoose(props, _excluded$d);
7778
7879
 
7880
+ var cardRadius = useArrayProp(cardRadiusProp);
7881
+ var padding = useArrayProp(paddingProp);
7882
+ var position = useArrayProp(positionProp);
7883
+ var width = useArrayProp(widthProp);
7884
+ var zOffset = useArrayProp(zOffsetProp);
7779
7885
  var preDivRef = useRef(null);
7780
7886
  var postDivRef = useRef(null);
7781
7887
  var cardRef = useRef(null);
@@ -7870,9 +7976,11 @@ var Hotkeys = /*#__PURE__*/forwardRef(function Hotkeys(props, ref) {
7870
7976
  padding = props.padding,
7871
7977
  radius = props.radius,
7872
7978
  _props$space = props.space,
7873
- space = _props$space === void 0 ? 1 : _props$space,
7979
+ spaceProp = _props$space === void 0 ? 1 : _props$space,
7874
7980
  restProps = _objectWithoutPropertiesLoose(props, _excluded$c);
7875
7981
 
7982
+ var space = useArrayProp(spaceProp);
7983
+
7876
7984
  if (!keys || keys.length === 0) {
7877
7985
  return /*#__PURE__*/React.createElement(React.Fragment, null);
7878
7986
  }
@@ -8283,17 +8391,18 @@ var Menu = /*#__PURE__*/forwardRef(function Menu(props, ref) {
8283
8391
  var MenuButton = /*#__PURE__*/forwardRef(function MenuButton(props, ref) {
8284
8392
  var _props$__unstable_dis = props.__unstable_disableRestoreFocusOnClose,
8285
8393
  disableRestoreFocusOnClose = _props$__unstable_dis === void 0 ? false : _props$__unstable_dis,
8286
- boundaryElement = props.boundaryElement,
8394
+ deprecated_boundaryElement = props.boundaryElement,
8287
8395
  buttonProp = props.button,
8288
8396
  id = props.id,
8289
8397
  menuProp = props.menu,
8290
8398
  onClose = props.onClose,
8291
- placement = props.placement,
8292
- popoverScheme = props.popoverScheme,
8293
- portal = props.portal,
8399
+ deprecated_placement = props.placement,
8400
+ deprecated_popoverScheme = props.popoverScheme,
8401
+ _props$portal = props.portal,
8402
+ deprecated_portal = _props$portal === void 0 ? true : _props$portal,
8294
8403
  popover = props.popover,
8295
- popoverRadius = props.popoverRadius,
8296
- preventOverflow = props.preventOverflow;
8404
+ deprecated_popoverRadius = props.popoverRadius,
8405
+ deprecated_preventOverflow = props.preventOverflow;
8297
8406
 
8298
8407
  var _useState = useState(false),
8299
8408
  open = _useState[0],
@@ -8441,14 +8550,14 @@ var MenuButton = /*#__PURE__*/forwardRef(function MenuButton(props, ref) {
8441
8550
  }, [buttonProp, handleButtonClick, handleButtonKeyDown, id, open, setButtonRef]);
8442
8551
  var popoverProps = useMemo(function () {
8443
8552
  return _extends({
8444
- boundaryElement: boundaryElement,
8445
- placement: placement,
8446
- portal: portal,
8447
- radius: popoverRadius,
8448
- overflow: preventOverflow,
8449
- scheme: popoverScheme
8553
+ boundaryElement: deprecated_boundaryElement,
8554
+ placement: deprecated_placement,
8555
+ portal: deprecated_portal,
8556
+ radius: deprecated_popoverRadius,
8557
+ preventOverflow: deprecated_preventOverflow,
8558
+ scheme: deprecated_popoverScheme
8450
8559
  }, popover || {});
8451
- }, [boundaryElement, placement, popover, popoverRadius, portal, preventOverflow, popoverScheme]);
8560
+ }, [deprecated_boundaryElement, deprecated_preventOverflow, deprecated_placement, popover, deprecated_popoverRadius, deprecated_portal, deprecated_popoverScheme]);
8452
8561
  return /*#__PURE__*/React.createElement(Popover, _extends({}, popoverProps, {
8453
8562
  content: menu,
8454
8563
  "data-ui": "MenuButton__popover",
@@ -8485,7 +8594,7 @@ function selectableColorStyle(props) {
8485
8594
  * @internal
8486
8595
  */
8487
8596
 
8488
- var Selectable = styled(Box)(responsiveBorderStyle, responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8597
+ var Selectable = styled(Box)(responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8489
8598
 
8490
8599
  function useMenu() {
8491
8600
  var value = useContext(MenuContext);
@@ -8518,8 +8627,7 @@ function MenuGroup(props) {
8518
8627
  onClick = props.onClick,
8519
8628
  _props$padding = props.padding,
8520
8629
  padding = _props$padding === void 0 ? 3 : _props$padding,
8521
- _props$popover = props.popover,
8522
- popover = _props$popover === void 0 ? {} : _props$popover,
8630
+ popover = props.popover,
8523
8631
  _props$radius = props.radius,
8524
8632
  radius = _props$radius === void 0 ? 2 : _props$radius,
8525
8633
  _props$space = props.space,
@@ -8633,7 +8741,7 @@ function MenuGroup(props) {
8633
8741
  "aria-pressed": as === 'button' ? withinMenu : undefined,
8634
8742
  "data-pressed": as !== 'button' ? withinMenu : undefined,
8635
8743
  "data-selected": !withinMenu && active ? '' : undefined,
8636
- "$radius": radius,
8744
+ "$radius": useArrayProp(radius),
8637
8745
  "$tone": tone,
8638
8746
  onClick: handleClick,
8639
8747
  onKeyDown: handleKeyDown,
@@ -8732,21 +8840,20 @@ var MenuItem = /*#__PURE__*/forwardRef(function MenuItem(props, forwardedRef) {
8732
8840
  setRootElement(el);
8733
8841
  }, [ref]);
8734
8842
  return /*#__PURE__*/React.createElement(Selectable, _extends({
8735
- "data-as": as,
8736
- "data-ui": "MenuItem",
8737
- forwardedAs: as
8843
+ "data-ui": "MenuItem"
8738
8844
  }, restProps, {
8739
8845
  "aria-pressed": as === 'button' && pressed,
8740
8846
  "data-pressed": as !== 'button' && pressed ? '' : undefined,
8741
8847
  "data-selected": active ? '' : undefined,
8742
8848
  "data-disabled": disabled ? '' : undefined,
8743
- "$radius": radius,
8849
+ forwardedAs: as,
8850
+ "$radius": useArrayProp(radius),
8851
+ "$padding": useArrayProp(0),
8744
8852
  "$tone": tone,
8745
8853
  disabled: disabled,
8746
8854
  onClick: handleClick,
8747
8855
  onMouseEnter: onItemMouseEnter,
8748
8856
  onMouseLeave: onItemMouseLeave,
8749
- padding: 0,
8750
8857
  ref: setRef,
8751
8858
  role: "menuitem",
8752
8859
  tabIndex: -1,
@@ -8828,7 +8935,7 @@ var Skeleton = /*#__PURE__*/forwardRef(function Skeleton(props, ref) {
8828
8935
  }, [delay]);
8829
8936
  return /*#__PURE__*/React.createElement(Root$4, _extends({}, restProps, {
8830
8937
  "$animated": animated,
8831
- "$radius": radius,
8938
+ "$radius": useArrayProp(radius),
8832
8939
  "$visible": visible,
8833
8940
  ref: ref
8834
8941
  }));
@@ -8844,13 +8951,15 @@ var Root$3 = styled(Skeleton)(function (_ref) {
8844
8951
  theme = _ref.theme;
8845
8952
  var media = theme.sanity.media;
8846
8953
  var font = theme.sanity.fonts[$style];
8847
- var styles = responsive(media, $size, function (sizeIndex) {
8954
+
8955
+ var styles = _responsive(media, $size, function (sizeIndex) {
8848
8956
  var fontSize = font.sizes[sizeIndex];
8849
8957
  var capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight;
8850
8958
  return {
8851
8959
  height: capHeight
8852
8960
  };
8853
8961
  });
8962
+
8854
8963
  return styles;
8855
8964
  });
8856
8965
  /**
@@ -8863,7 +8972,7 @@ var TextSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref) {
8863
8972
  size = _props$size === void 0 ? 2 : _props$size,
8864
8973
  restProps = _objectWithoutPropertiesLoose(props, _excluded$7);
8865
8974
 
8866
- var $size = useResponsiveProp(size);
8975
+ var $size = useArrayProp(size);
8867
8976
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
8868
8977
  "$size": $size,
8869
8978
  ref: ref,
@@ -8880,7 +8989,7 @@ var LabelSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref) {
8880
8989
  size = _props$size2 === void 0 ? 2 : _props$size2,
8881
8990
  restProps = _objectWithoutPropertiesLoose(props, _excluded2);
8882
8991
 
8883
- var $size = useResponsiveProp(size);
8992
+ var $size = useArrayProp(size);
8884
8993
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
8885
8994
  "$size": $size,
8886
8995
  ref: ref,
@@ -8897,7 +9006,7 @@ var HeadingSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref)
8897
9006
  size = _props$size3 === void 0 ? 2 : _props$size3,
8898
9007
  restProps = _objectWithoutPropertiesLoose(props, _excluded3);
8899
9008
 
8900
- var $size = useResponsiveProp(size);
9009
+ var $size = useArrayProp(size);
8901
9010
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
8902
9011
  "$size": $size,
8903
9012
  ref: ref,
@@ -8914,7 +9023,7 @@ var CodeSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref) {
8914
9023
  size = _props$size4 === void 0 ? 2 : _props$size4,
8915
9024
  restProps = _objectWithoutPropertiesLoose(props, _excluded4);
8916
9025
 
8917
- var $size = useResponsiveProp(size);
9026
+ var $size = useArrayProp(size);
8918
9027
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
8919
9028
  "$size": $size,
8920
9029
  ref: ref,
@@ -9788,5 +9897,5 @@ var TreeItem = /*#__PURE__*/memo(function TreeItem(props) {
9788
9897
  }, children)));
9789
9898
  });
9790
9899
 
9791
- 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 };
9900
+ 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 };
9792
9901
  //# sourceMappingURL=sanity-ui.module.js.map