@sanity/ui 0.37.12 → 0.37.14-next.6

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 (269) 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 +1 -1
  4. package/lib/dts/src/components/autocomplete/autocomplete.styles.d.ts.map +1 -1
  5. package/lib/dts/src/components/autocomplete/constants.d.ts +0 -4
  6. package/lib/dts/src/components/autocomplete/constants.d.ts.map +1 -1
  7. package/lib/dts/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
  8. package/lib/dts/src/components/dialog/dialog.d.ts.map +1 -1
  9. package/lib/dts/src/components/dialog/styles.d.ts +1 -1
  10. package/lib/dts/src/components/dialog/styles.d.ts.map +1 -1
  11. package/lib/dts/src/components/hotkeys/hotkeys.d.ts.map +1 -1
  12. package/lib/dts/src/components/menu/menuButton.d.ts.map +1 -1
  13. package/lib/dts/src/components/menu/menuGroup.d.ts.map +1 -1
  14. package/lib/dts/src/components/menu/menuItem.d.ts.map +1 -1
  15. package/lib/dts/src/components/skeleton/skeleton.d.ts.map +1 -1
  16. package/lib/dts/src/constants.d.ts +10 -0
  17. package/lib/dts/src/constants.d.ts.map +1 -1
  18. package/lib/dts/src/hooks/_internal/useUnique.d.ts +2 -3
  19. package/lib/dts/src/hooks/_internal/useUnique.d.ts.map +1 -1
  20. package/lib/dts/src/hooks/index.d.ts +2 -1
  21. package/lib/dts/src/hooks/index.d.ts.map +1 -1
  22. package/lib/dts/src/hooks/useArrayProp.d.ts +7 -0
  23. package/lib/dts/src/hooks/useArrayProp.d.ts.map +1 -0
  24. package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts +1 -1
  25. package/lib/dts/src/hooks/useElementRect/useElementRect.d.ts.map +1 -1
  26. package/lib/dts/src/hooks/useElementSize.d.ts +7 -0
  27. package/lib/dts/src/hooks/useElementSize.d.ts.map +1 -0
  28. package/lib/dts/src/index.d.ts +1 -0
  29. package/lib/dts/src/index.d.ts.map +1 -1
  30. package/lib/dts/src/observers/elementSizeObserver.d.ts +37 -0
  31. package/lib/dts/src/observers/elementSizeObserver.d.ts.map +1 -0
  32. package/lib/dts/src/observers/index.d.ts +3 -0
  33. package/lib/dts/src/observers/index.d.ts.map +1 -0
  34. package/lib/dts/src/observers/resizeObserver.d.ts +5 -0
  35. package/lib/dts/src/observers/resizeObserver.d.ts.map +1 -0
  36. package/lib/dts/src/primitives/_selectable/selectable.d.ts +1 -2
  37. package/lib/dts/src/primitives/_selectable/selectable.d.ts.map +1 -1
  38. package/lib/dts/src/primitives/avatar/avatar.d.ts.map +1 -1
  39. package/lib/dts/src/primitives/avatar/avatarCounter.d.ts +1 -0
  40. package/lib/dts/src/primitives/avatar/avatarCounter.d.ts.map +1 -1
  41. package/lib/dts/src/primitives/avatar/avatarStack.d.ts +1 -0
  42. package/lib/dts/src/primitives/avatar/avatarStack.d.ts.map +1 -1
  43. package/lib/dts/src/primitives/avatar/styles.d.ts.map +1 -1
  44. package/lib/dts/src/primitives/badge/badge.d.ts.map +1 -1
  45. package/lib/dts/src/primitives/box/box.d.ts.map +1 -1
  46. package/lib/dts/src/primitives/button/button.d.ts.map +1 -1
  47. package/lib/dts/src/primitives/card/card.d.ts.map +1 -1
  48. package/lib/dts/src/primitives/code/code.d.ts.map +1 -1
  49. package/lib/dts/src/primitives/container/container.d.ts.map +1 -1
  50. package/lib/dts/src/primitives/container/styles.d.ts.map +1 -1
  51. package/lib/dts/src/primitives/container/types.d.ts +1 -1
  52. package/lib/dts/src/primitives/container/types.d.ts.map +1 -1
  53. package/lib/dts/src/primitives/flex/flex.d.ts.map +1 -1
  54. package/lib/dts/src/primitives/grid/grid.d.ts.map +1 -1
  55. package/lib/dts/src/primitives/heading/heading.d.ts.map +1 -1
  56. package/lib/dts/src/primitives/inline/inline.d.ts.map +1 -1
  57. package/lib/dts/src/primitives/inline/styles.d.ts.map +1 -1
  58. package/lib/dts/src/primitives/inline/types.d.ts +1 -1
  59. package/lib/dts/src/primitives/inline/types.d.ts.map +1 -1
  60. package/lib/dts/src/primitives/kbd/kbd.d.ts.map +1 -1
  61. package/lib/dts/src/primitives/label/label.d.ts.map +1 -1
  62. package/lib/dts/src/primitives/popover/popover.d.ts +6 -5
  63. package/lib/dts/src/primitives/popover/popover.d.ts.map +1 -1
  64. package/lib/dts/src/primitives/popover/{arrow.d.ts → popoverArrow.d.ts} +1 -1
  65. package/lib/dts/src/primitives/popover/popoverArrow.d.ts.map +1 -0
  66. package/lib/dts/src/primitives/popover/popoverCard.d.ts +33 -0
  67. package/lib/dts/src/primitives/popover/popoverCard.d.ts.map +1 -0
  68. package/lib/dts/src/primitives/select/styles.d.ts +5 -1
  69. package/lib/dts/src/primitives/select/styles.d.ts.map +1 -1
  70. package/lib/dts/src/primitives/stack/stack.d.ts.map +1 -1
  71. package/lib/dts/src/primitives/stack/styles.d.ts +1 -1
  72. package/lib/dts/src/primitives/stack/styles.d.ts.map +1 -1
  73. package/lib/dts/src/primitives/text/text.d.ts.map +1 -1
  74. package/lib/dts/src/primitives/textArea/textArea.d.ts.map +1 -1
  75. package/lib/dts/src/primitives/textInput/textInput.d.ts.map +1 -1
  76. package/lib/dts/src/primitives/tooltip/tooltip.d.ts +2 -0
  77. package/lib/dts/src/primitives/tooltip/tooltip.d.ts.map +1 -1
  78. package/lib/dts/src/primitives/tooltip/tooltipArrow.d.ts.map +1 -1
  79. package/lib/dts/src/primitives/types.d.ts +1 -1
  80. package/lib/dts/src/primitives/types.d.ts.map +1 -1
  81. package/lib/dts/src/styles/border/types.d.ts +5 -5
  82. package/lib/dts/src/styles/border/types.d.ts.map +1 -1
  83. package/lib/dts/src/styles/box/types.d.ts +4 -4
  84. package/lib/dts/src/styles/box/types.d.ts.map +1 -1
  85. package/lib/dts/src/styles/flex/flexItemStyle.d.ts.map +1 -1
  86. package/lib/dts/src/styles/flex/types.d.ts +6 -6
  87. package/lib/dts/src/styles/flex/types.d.ts.map +1 -1
  88. package/lib/dts/src/styles/font/responsiveFont.d.ts +1 -1
  89. package/lib/dts/src/styles/font/responsiveFont.d.ts.map +1 -1
  90. package/lib/dts/src/styles/font/types.d.ts +3 -3
  91. package/lib/dts/src/styles/font/types.d.ts.map +1 -1
  92. package/lib/dts/src/styles/grid/types.d.ts +14 -14
  93. package/lib/dts/src/styles/grid/types.d.ts.map +1 -1
  94. package/lib/dts/src/styles/helpers.d.ts +4 -4
  95. package/lib/dts/src/styles/helpers.d.ts.map +1 -1
  96. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts +12 -12
  97. package/lib/dts/src/styles/input/responsiveInputPaddingStyle.d.ts.map +1 -1
  98. package/lib/dts/src/styles/input/textInputStyle.d.ts +4 -1
  99. package/lib/dts/src/styles/input/textInputStyle.d.ts.map +1 -1
  100. package/lib/dts/src/styles/margin/types.d.ts +7 -7
  101. package/lib/dts/src/styles/margin/types.d.ts.map +1 -1
  102. package/lib/dts/src/styles/padding/types.d.ts +7 -7
  103. package/lib/dts/src/styles/padding/types.d.ts.map +1 -1
  104. package/lib/dts/src/styles/radius/types.d.ts +1 -1
  105. package/lib/dts/src/styles/radius/types.d.ts.map +1 -1
  106. package/lib/dts/src/styles/shadow/shadowStyle.d.ts.map +1 -1
  107. package/lib/dts/src/styles/shadow/types.d.ts +1 -1
  108. package/lib/dts/src/styles/shadow/types.d.ts.map +1 -1
  109. package/lib/dts/src/theme/lib/theme/fonts.d.ts +1 -3
  110. package/lib/dts/src/theme/lib/theme/fonts.d.ts.map +1 -1
  111. package/lib/dts/src/theme/studioTheme/fonts.d.ts.map +1 -1
  112. package/lib/dts/src/types/index.d.ts +2 -1
  113. package/lib/dts/src/types/index.d.ts.map +1 -1
  114. package/lib/dts/src/types/placement.d.ts +7 -0
  115. package/lib/dts/src/types/placement.d.ts.map +1 -0
  116. package/lib/dts/src/types/text.d.ts +5 -0
  117. package/lib/dts/src/types/text.d.ts.map +1 -0
  118. package/lib/dts/src/utils/elementQuery/elementQuery.d.ts.map +1 -1
  119. package/lib/dts/src/utils/index.d.ts +0 -1
  120. package/lib/dts/src/utils/index.d.ts.map +1 -1
  121. package/lib/dts/src/utils/virtualList/virtualList.d.ts.map +1 -1
  122. package/lib/sanity-ui.js +1214 -1054
  123. package/lib/sanity-ui.js.map +1 -1
  124. package/lib/{sanity-ui.modern.js → sanity-ui.modern.mjs} +1246 -1120
  125. package/lib/sanity-ui.modern.mjs.map +1 -0
  126. package/lib/sanity-ui.module.js +1106 -947
  127. package/lib/sanity-ui.module.js.map +1 -1
  128. package/package.json +11 -12
  129. package/src/__workshop__/color/overview.tsx +9 -11
  130. package/src/components/autocomplete/__workshop__/async.tsx +14 -12
  131. package/src/components/autocomplete/__workshop__/constrainedHeight.tsx +36 -0
  132. package/src/components/autocomplete/autocomplete.styles.tsx +0 -6
  133. package/src/components/autocomplete/autocomplete.tsx +14 -7
  134. package/src/components/autocomplete/constants.ts +3 -8
  135. package/src/components/breadcrumbs/breadcrumbs.tsx +3 -2
  136. package/src/components/dialog/dialog.tsx +17 -9
  137. package/src/components/dialog/styles.ts +3 -3
  138. package/src/components/hotkeys/hotkeys.tsx +3 -1
  139. package/src/components/menu/__workshop__/constrainedInBoundary.tsx +11 -14
  140. package/src/components/menu/__workshop__/groups.tsx +1 -1
  141. package/src/components/menu/menuButton.tsx +21 -13
  142. package/src/components/menu/menuGroup.tsx +3 -2
  143. package/src/components/menu/menuItem.tsx +4 -5
  144. package/src/components/skeleton/skeleton.tsx +10 -1
  145. package/src/components/skeleton/textSkeleton.tsx +7 -7
  146. package/src/constants.ts +17 -0
  147. package/src/hooks/_internal/useUnique.ts +4 -5
  148. package/src/hooks/index.ts +2 -1
  149. package/src/hooks/useArrayProp.ts +23 -0
  150. package/src/hooks/useElementRect/useElementRect.ts +4 -16
  151. package/src/hooks/useElementSize.ts +18 -0
  152. package/src/index.ts +1 -0
  153. package/src/observers/elementSizeObserver.ts +116 -0
  154. package/src/observers/index.ts +2 -0
  155. package/src/{utils → observers}/resizeObserver.ts +1 -4
  156. package/src/primitives/_selectable/selectable.tsx +5 -4
  157. package/src/primitives/avatar/avatar.tsx +7 -5
  158. package/src/primitives/avatar/avatarCounter.tsx +14 -12
  159. package/src/primitives/avatar/avatarStack.tsx +19 -13
  160. package/src/primitives/avatar/styles.ts +2 -2
  161. package/src/primitives/badge/badge.tsx +3 -2
  162. package/src/primitives/box/box.tsx +27 -26
  163. package/src/primitives/button/button.tsx +22 -10
  164. package/src/primitives/card/card.tsx +13 -11
  165. package/src/primitives/checkbox/__workshop__/example.tsx +4 -2
  166. package/src/primitives/checkbox/__workshop__/props.tsx +4 -2
  167. package/src/primitives/checkbox/__workshop__/readOnly.tsx +4 -2
  168. package/src/primitives/code/__workshop__/props.tsx +1 -1
  169. package/src/primitives/code/code.tsx +2 -1
  170. package/src/primitives/container/container.tsx +10 -1
  171. package/src/primitives/container/styles.ts +2 -2
  172. package/src/primitives/container/types.ts +1 -1
  173. package/src/primitives/flex/flex.tsx +6 -5
  174. package/src/primitives/grid/__workshop__/responsive.tsx +13 -12
  175. package/src/primitives/grid/grid.tsx +9 -8
  176. package/src/primitives/heading/__workshop__/opticalAlignment.tsx +19 -7
  177. package/src/primitives/heading/heading.tsx +3 -2
  178. package/src/primitives/inline/inline.tsx +12 -6
  179. package/src/primitives/inline/styles.ts +2 -2
  180. package/src/primitives/inline/types.ts +1 -1
  181. package/src/primitives/kbd/kbd.tsx +2 -1
  182. package/src/primitives/label/label.tsx +4 -3
  183. package/src/primitives/popover/__workshop__/{margins.tsx → MarginsStory.tsx} +1 -1
  184. package/src/primitives/popover/__workshop__/{matchReferenceWidth.tsx → MatchReferenceWidthStory.tsx} +0 -0
  185. package/src/primitives/popover/__workshop__/{plain.tsx → PlainStory.tsx} +13 -14
  186. package/src/primitives/popover/__workshop__/{recursive.tsx → RecursiveStory.tsx} +4 -1
  187. package/src/primitives/popover/__workshop__/RightAlignedStory.tsx +61 -0
  188. package/src/primitives/popover/__workshop__/TestStory.tsx +80 -0
  189. package/src/primitives/popover/__workshop__/index.ts +10 -5
  190. package/src/primitives/popover/popover.tsx +245 -193
  191. package/src/primitives/popover/{arrow.tsx → popoverArrow.tsx} +5 -5
  192. package/src/primitives/popover/popoverCard.tsx +160 -0
  193. package/src/primitives/select/select.tsx +9 -9
  194. package/src/primitives/select/styles.ts +10 -4
  195. package/src/primitives/stack/stack.tsx +2 -1
  196. package/src/primitives/stack/styles.ts +3 -3
  197. package/src/primitives/text/__workshop__/opticalAlignment.tsx +15 -5
  198. package/src/primitives/text/text.tsx +3 -2
  199. package/src/primitives/textArea/__workshop__/plain.tsx +23 -18
  200. package/src/primitives/textArea/textArea.tsx +17 -5
  201. package/src/primitives/textInput/__workshop__/clearButton.tsx +14 -8
  202. package/src/primitives/textInput/__workshop__/index.ts +2 -2
  203. package/src/primitives/textInput/__workshop__/plain.tsx +39 -32
  204. package/src/primitives/textInput/__workshop__/tones.tsx +97 -75
  205. package/src/primitives/textInput/__workshop__/typed.tsx +8 -2
  206. package/src/primitives/textInput/textInput.tsx +43 -12
  207. package/src/primitives/tooltip/__workshop__/props.tsx +7 -1
  208. package/src/primitives/tooltip/tooltip.tsx +162 -85
  209. package/src/primitives/tooltip/tooltipArrow.tsx +25 -10
  210. package/src/primitives/types.ts +1 -1
  211. package/src/styles/border/borderStyle.ts +6 -6
  212. package/src/styles/border/types.ts +5 -5
  213. package/src/styles/box/boxStyle.ts +5 -5
  214. package/src/styles/box/types.ts +4 -4
  215. package/src/styles/flex/flexItemStyle.ts +5 -4
  216. package/src/styles/flex/flexStyle.ts +6 -6
  217. package/src/styles/flex/types.ts +6 -6
  218. package/src/styles/font/responsiveFont.ts +7 -27
  219. package/src/styles/font/textAlignStyle.ts +2 -2
  220. package/src/styles/font/types.ts +4 -3
  221. package/src/styles/grid/gridItemStyle.ts +7 -7
  222. package/src/styles/grid/gridStyle.ts +9 -9
  223. package/src/styles/grid/types.ts +14 -14
  224. package/src/styles/helpers.ts +9 -9
  225. package/src/styles/input/responsiveInputPaddingStyle.ts +24 -27
  226. package/src/styles/input/textInputStyle.ts +89 -79
  227. package/src/styles/margin/marginStyle.ts +8 -8
  228. package/src/styles/margin/marginsStyle.test.ts +1 -1
  229. package/src/styles/margin/types.ts +7 -7
  230. package/src/styles/padding/paddingStyle.test.ts +1 -1
  231. package/src/styles/padding/paddingStyle.ts +8 -8
  232. package/src/styles/padding/types.ts +7 -7
  233. package/src/styles/radius/radiusStyle.ts +2 -2
  234. package/src/styles/radius/types.ts +1 -1
  235. package/src/styles/shadow/shadowStyle.ts +2 -5
  236. package/src/styles/shadow/types.ts +1 -1
  237. package/src/theme/lib/theme/fonts.ts +1 -3
  238. package/src/theme/studioTheme/fonts.ts +5 -9
  239. package/src/types/index.ts +2 -2
  240. package/src/types/placement.ts +18 -0
  241. package/src/types/text.ts +4 -0
  242. package/src/utils/elementQuery/elementQuery.tsx +5 -18
  243. package/src/utils/index.ts +0 -1
  244. package/src/utils/layer/layer.tsx +1 -1
  245. package/src/utils/layer/layerProvider.tsx +2 -2
  246. package/src/utils/virtualList/virtualList.tsx +8 -7
  247. package/lib/dts/src/hooks/useResponsiveProp.d.ts +0 -6
  248. package/lib/dts/src/hooks/useResponsiveProp.d.ts.map +0 -1
  249. package/lib/dts/src/primitives/popover/arrow.d.ts.map +0 -1
  250. package/lib/dts/src/primitives/popover/modifiers/getPopoverModifiers.d.ts +0 -4
  251. package/lib/dts/src/primitives/popover/modifiers/getPopoverModifiers.d.ts.map +0 -1
  252. package/lib/dts/src/primitives/popover/modifiers/index.d.ts +0 -2
  253. package/lib/dts/src/primitives/popover/modifiers/index.d.ts.map +0 -1
  254. package/lib/dts/src/primitives/popover/modifiers/types.d.ts +0 -18
  255. package/lib/dts/src/primitives/popover/modifiers/types.d.ts.map +0 -1
  256. package/lib/dts/src/primitives/popover/modifiers/usePopoverModifiers.d.ts +0 -4
  257. package/lib/dts/src/primitives/popover/modifiers/usePopoverModifiers.d.ts.map +0 -1
  258. package/lib/dts/src/types/common.d.ts +0 -11
  259. package/lib/dts/src/types/common.d.ts.map +0 -1
  260. package/lib/dts/src/utils/resizeObserver.d.ts +0 -6
  261. package/lib/dts/src/utils/resizeObserver.d.ts.map +0 -1
  262. package/lib/sanity-ui.modern.js.map +0 -1
  263. package/src/hooks/useResponsiveProp.ts +0 -10
  264. package/src/primitives/popover/__workshop__/rightAligned.tsx +0 -57
  265. package/src/primitives/popover/modifiers/getPopoverModifiers.ts +0 -137
  266. package/src/primitives/popover/modifiers/index.ts +0 -1
  267. package/src/primitives/popover/modifiers/types.ts +0 -18
  268. package/src/primitives/popover/modifiers/usePopoverModifiers.ts +0 -58
  269. package/src/types/common.ts +0 -12
package/lib/sanity-ui.js CHANGED
@@ -2,13 +2,12 @@ var autoId = require('@reach/auto-id');
2
2
  var React = require('react');
3
3
  var ReactIs = require('react-is');
4
4
  var styled = require('styled-components');
5
+ var resizeObserver = require('@juggle/resize-observer');
5
6
  var color$1 = require('@sanity/color');
6
7
  var icons = require('@sanity/icons');
7
8
  var Refractor = require('react-refractor');
8
- var reactPopper = require('react-popper');
9
- var resizeObserver = require('@juggle/resize-observer');
9
+ var reactDom = require('@floating-ui/react-dom');
10
10
  var ReactDOM = require('react-dom');
11
- var maxSizeModifier = require('popper-max-size-modifier');
12
11
  var framerMotion = require('framer-motion');
13
12
 
14
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -18,7 +17,6 @@ var ReactIs__default = /*#__PURE__*/_interopDefaultLegacy(ReactIs);
18
17
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
19
18
  var Refractor__default = /*#__PURE__*/_interopDefaultLegacy(Refractor);
20
19
  var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
21
- var maxSizeModifier__default = /*#__PURE__*/_interopDefaultLegacy(maxSizeModifier);
22
20
 
23
21
  function _extends() {
24
22
  _extends = Object.assign || function (target) {
@@ -116,8 +114,234 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
116
114
  throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
117
115
  }
118
116
 
117
+ /**
118
+ * @internal
119
+ */
119
120
  var EMPTY_ARRAY = [];
120
- var EMPTY_RECORD$1 = {};
121
+ /**
122
+ * @internal
123
+ */
124
+
125
+ var EMPTY_RECORD = {};
126
+ /**
127
+ * @internal
128
+ */
129
+
130
+ var FLOATING_STATIC_SIDES = {
131
+ top: 'bottom',
132
+ right: 'left',
133
+ bottom: 'top',
134
+ left: 'right'
135
+ };
136
+
137
+ /**
138
+ * @internal
139
+ */
140
+
141
+ function _fillCSSObject(keys, value) {
142
+ return keys.reduce(function (style, key) {
143
+ style[key] = value;
144
+ return style;
145
+ }, {});
146
+ }
147
+ /**
148
+ * @public
149
+ */
150
+
151
+ function rem(pixelValue) {
152
+ if (pixelValue === 0) return 0;
153
+ return pixelValue / 16 + "rem";
154
+ }
155
+ /**
156
+ * @internal
157
+ */
158
+
159
+ function _responsive(media, values, callback) {
160
+ var statements = values.map(callback);
161
+ return statements.map(function (statement, mediaIndex) {
162
+ var _ref;
163
+
164
+ if (mediaIndex === 0) return statement;
165
+ return _ref = {}, _ref["@media screen and (min-width: " + media[mediaIndex - 1] + "px)"] = statement, _ref;
166
+ });
167
+ }
168
+ /**
169
+ * @internal
170
+ */
171
+
172
+ function _getArrayProp(val, defaultVal) {
173
+ if (val === undefined) return defaultVal || EMPTY_ARRAY;
174
+ return Array.isArray(val) ? val : [val];
175
+ }
176
+ /**
177
+ * @internal
178
+ */
179
+
180
+ function _getResponsiveSpace(theme, props, spaceIndexes) {
181
+ if (spaceIndexes === void 0) {
182
+ spaceIndexes = EMPTY_ARRAY;
183
+ }
184
+
185
+ if (!Array.isArray(spaceIndexes)) {
186
+ throw new Error('the property must be array of numbers');
187
+ }
188
+
189
+ if (spaceIndexes.length === 0) {
190
+ return null;
191
+ }
192
+
193
+ return _responsive(theme.sanity.media, spaceIndexes, function (spaceIndex) {
194
+ return _fillCSSObject(props, rem(theme.sanity.space[spaceIndex]));
195
+ });
196
+ }
197
+
198
+ /**
199
+ * A utility function getting responsive font styles.
200
+ * @internal
201
+ */
202
+
203
+ function responsiveFont(fontKey, props) {
204
+ var $size = props.$size,
205
+ $weight = props.$weight,
206
+ theme = props.theme;
207
+ var _theme$sanity = theme.sanity,
208
+ fonts = _theme$sanity.fonts,
209
+ media = _theme$sanity.media;
210
+ var _fonts$fontKey = fonts[fontKey],
211
+ family = _fonts$fontKey.family,
212
+ sizes = _fonts$fontKey.sizes,
213
+ weights = _fonts$fontKey.weights;
214
+ var fontWeight = $weight && weights[$weight] || weights.regular; // @todo: make this configurable
215
+
216
+ var defaultSize = sizes[2];
217
+ var base = {
218
+ position: 'relative',
219
+ fontFamily: family,
220
+ fontWeight: fontWeight,
221
+ padding: '1px 0',
222
+ margin: 0,
223
+ '&:before': {
224
+ content: '""',
225
+ display: 'block',
226
+ height: 0
227
+ },
228
+ '&:after': {
229
+ content: '""',
230
+ display: 'block',
231
+ height: 0
232
+ },
233
+ '& > code, & > span': {
234
+ display: 'block'
235
+ },
236
+ '&:not([hidden])': {
237
+ display: 'block'
238
+ }
239
+ };
240
+
241
+ var resp = _responsive(media, $size, function (sizeIndex) {
242
+ return fontSize(sizes[sizeIndex] || defaultSize);
243
+ });
244
+
245
+ return [base].concat(resp);
246
+ }
247
+ function fontSize(size) {
248
+ var ascenderHeight = size.ascenderHeight,
249
+ descenderHeight = size.descenderHeight,
250
+ fontSize = size.fontSize,
251
+ iconSize = size.iconSize,
252
+ letterSpacing = size.letterSpacing,
253
+ lineHeight = size.lineHeight;
254
+ var negHeight = ascenderHeight + descenderHeight;
255
+ var capHeight = lineHeight - negHeight;
256
+ var iconOffset = (capHeight - iconSize) / 2;
257
+ var customIconSize = Math.floor(fontSize * 1.125 / 2) * 2 + 1;
258
+ var customIconOffset = (capHeight - customIconSize) / 2;
259
+ return {
260
+ fontSize: rem(fontSize),
261
+ lineHeight: "calc(" + lineHeight + " / " + fontSize + ")",
262
+ letterSpacing: rem(letterSpacing),
263
+ transform: "translateY(" + rem(descenderHeight) + ")",
264
+ '&:before': {
265
+ marginTop: "calc(" + rem(0 - negHeight) + " - 1px)"
266
+ },
267
+ '&:after': {
268
+ marginBottom: '-1px'
269
+ },
270
+ '& svg:not([data-sanity-icon])': {
271
+ fontSize: "calc(" + customIconSize + " / 16 * 1rem)",
272
+ margin: rem(customIconOffset)
273
+ },
274
+ '& [data-sanity-icon]': {
275
+ fontSize: "calc(" + iconSize + " / 16 * 1rem)",
276
+ margin: rem(iconOffset)
277
+ }
278
+ };
279
+ }
280
+
281
+ /**
282
+ * Get responsive CSS for the `code` font style.
283
+ * @internal
284
+ */
285
+
286
+ function responsiveCodeFontStyle(props) {
287
+ return responsiveFont('code', props);
288
+ }
289
+
290
+ /**
291
+ * Get responsive CSS for the `heading` font style.
292
+ * @internal
293
+ */
294
+
295
+ function responsiveHeadingFont(props) {
296
+ return responsiveFont('heading', props);
297
+ }
298
+
299
+ /**
300
+ * Get responsive CSS for the `label` font style.
301
+ * @internal
302
+ */
303
+
304
+ function responsiveLabelFont(props) {
305
+ return responsiveFont('label', props);
306
+ }
307
+
308
+ /**
309
+ * Get responsive text align styles.
310
+ * @internal
311
+ */
312
+
313
+ function responsiveTextAlignStyle(props) {
314
+ var theme = props.theme;
315
+ return _responsive(theme.sanity.media, props.$align, function (textAlign) {
316
+ return {
317
+ textAlign: textAlign
318
+ };
319
+ });
320
+ }
321
+
322
+ /**
323
+ * Get responsive CSS for the `text` font style.
324
+ * @internal
325
+ */
326
+
327
+ function responsiveTextFont(props) {
328
+ return responsiveFont('text', props);
329
+ }
330
+
331
+ /**
332
+ * This API might change. DO NOT USE IN PRODUCTION.
333
+ * @beta
334
+ */
335
+
336
+ function useArrayProp(val, defaultVal) {
337
+ var __perf_hash__ = JSON.stringify(val != null ? val : defaultVal);
338
+
339
+ return React.useMemo(function () {
340
+ return _getArrayProp(val, defaultVal);
341
+ }, // Improve performance: Keep object identify for a given hash of the value
342
+ // eslint-disable-next-line react-hooks/exhaustive-deps
343
+ [__perf_hash__]);
344
+ }
121
345
 
122
346
  function _getElements(element, elementsArg) {
123
347
  var ret = [element];
@@ -220,26 +444,110 @@ function useClickOutside(listener, elementsArg, boundaryElement) {
220
444
  }
221
445
 
222
446
  /**
223
- * Subscribe to the rect of a DOM element.
447
+ * @internal
448
+ */
449
+
450
+ var _ResizeObserver = typeof window !== 'undefined' && window.ResizeObserver ? window.ResizeObserver : resizeObserver.ResizeObserver;
451
+
452
+ // NOTE: this should NOT have size effects
453
+
454
+ /**
455
+ * @internal
456
+ */
457
+
458
+ var _elementSizeObserver = _createElementSizeObserver();
459
+
460
+ function _createElementRectValueListener() {
461
+ return {
462
+ subscribe: function subscribe(element, subscriber) {
463
+ var resizeObserver = new _ResizeObserver(function (_ref) {
464
+ var entry = _ref[0];
465
+ subscriber({
466
+ _contentRect: entry.contentRect,
467
+ border: {
468
+ width: entry.borderBoxSize[0].inlineSize,
469
+ height: entry.borderBoxSize[0].blockSize
470
+ },
471
+ content: {
472
+ width: entry.contentRect.width,
473
+ height: entry.contentRect.height
474
+ }
475
+ });
476
+ });
477
+ resizeObserver.observe(element);
478
+ return function () {
479
+ resizeObserver.unobserve(element);
480
+ resizeObserver.disconnect();
481
+ };
482
+ }
483
+ };
484
+ }
485
+
486
+ function _createElementSizeObserver() {
487
+ var disposeCache = new WeakMap();
488
+ var subscribersCache = new WeakMap();
489
+ return {
490
+ subscribe: function subscribe(element, subscriber) {
491
+ var subscribers = subscribersCache.get(element) || [];
492
+ var dispose = disposeCache.get(element);
493
+
494
+ if (!subscribersCache.has(element)) {
495
+ subscribersCache.set(element, subscribers);
496
+
497
+ var listener = _createElementRectValueListener(); // listen
498
+
499
+
500
+ dispose = listener.subscribe(element, function (elementRect) {
501
+ for (var _iterator = _createForOfIteratorHelperLoose(subscribers), _step; !(_step = _iterator()).done;) {
502
+ var sub = _step.value;
503
+ sub(elementRect);
504
+ }
505
+ });
506
+ }
507
+
508
+ subscribers.push(subscriber);
509
+ return function () {
510
+ // dispose
511
+ var idx = subscribers.indexOf(subscriber);
512
+
513
+ if (idx > -1) {
514
+ subscribers.splice(idx, 1);
515
+ }
516
+
517
+ if (subscribers.length === 0) {
518
+ // unlisten
519
+ if (dispose) dispose();
520
+ }
521
+ };
522
+ }
523
+ };
524
+ }
525
+
526
+ /**
527
+ * Subscribe to the size of a DOM element.
224
528
  * @beta
225
529
  */
226
530
 
227
- function useElementRect(element) {
531
+ function useElementSize(element) {
228
532
  var _useState = React.useState(null),
229
- rect = _useState[0],
230
- setRect = _useState[1];
533
+ size = _useState[0],
534
+ setSize = _useState[1];
231
535
 
232
536
  React.useEffect(function () {
233
537
  if (!element) return undefined;
234
- var ro = new ResizeObserver(function (entries) {
235
- setRect(entries[0].contentRect);
236
- });
237
- ro.observe(element);
238
- return function () {
239
- return ro.disconnect();
240
- };
538
+ return _elementSizeObserver.subscribe(element, setSize);
241
539
  }, [element]);
242
- return rect;
540
+ return size;
541
+ }
542
+
543
+ /**
544
+ * Subscribe to the rect of a DOM element.
545
+ * @deprecated Use `useElementSize` instead
546
+ */
547
+
548
+ function useElementRect(element) {
549
+ var elementSize = useElementSize(element);
550
+ return (elementSize == null ? void 0 : elementSize._contentRect) || null;
243
551
  }
244
552
 
245
553
  /**
@@ -2328,8 +2636,7 @@ var color = createColorTheme({
2328
2636
 
2329
2637
  var fonts = {
2330
2638
  code: {
2331
- family: '-apple-system-ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace',
2332
- horizontalOffset: 0.075,
2639
+ family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',
2333
2640
  weights: {
2334
2641
  regular: 400,
2335
2642
  medium: 500,
@@ -2375,7 +2682,6 @@ var fonts = {
2375
2682
  },
2376
2683
  heading: {
2377
2684
  family: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Liberation Sans", Helvetica, Arial, system-ui, sans-serif',
2378
- horizontalOffset: 0.075,
2379
2685
  weights: {
2380
2686
  regular: 700,
2381
2687
  medium: 800,
@@ -2411,15 +2717,15 @@ var fonts = {
2411
2717
  lineHeight: 33,
2412
2718
  letterSpacing: 0
2413
2719
  }, {
2414
- ascenderHeight: 9,
2415
- descenderHeight: 7,
2720
+ ascenderHeight: 8,
2721
+ descenderHeight: 8,
2416
2722
  fontSize: 33,
2417
2723
  iconSize: 49,
2418
2724
  lineHeight: 39,
2419
2725
  letterSpacing: 0
2420
2726
  }, {
2421
- ascenderHeight: 10,
2422
- descenderHeight: 8,
2727
+ ascenderHeight: 9,
2728
+ descenderHeight: 9,
2423
2729
  fontSize: 38,
2424
2730
  iconSize: 53,
2425
2731
  lineHeight: 45,
@@ -2428,7 +2734,6 @@ var fonts = {
2428
2734
  },
2429
2735
  label: {
2430
2736
  family: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Liberation Sans", system-ui, sans-serif',
2431
- horizontalOffset: 0.075,
2432
2737
  weights: {
2433
2738
  regular: 600,
2434
2739
  medium: 700,
@@ -2474,7 +2779,6 @@ var fonts = {
2474
2779
  },
2475
2780
  text: {
2476
2781
  family: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Liberation Sans", Helvetica, Arial, system-ui, sans-serif',
2477
- horizontalOffset: 0.075,
2478
2782
  weights: {
2479
2783
  regular: 400,
2480
2784
  medium: 500,
@@ -2643,7 +2947,7 @@ globalScope[key$7] = globalScope[key$7] || /*#__PURE__*/React.createContext(null
2643
2947
 
2644
2948
  var ThemeContext = globalScope[key$7];
2645
2949
 
2646
- var _excluded$H = ["color", "layer"];
2950
+ var _excluded$I = ["color", "layer"];
2647
2951
  /**
2648
2952
  * @public
2649
2953
  */
@@ -2662,7 +2966,7 @@ function ThemeProvider(props) {
2662
2966
 
2663
2967
  var rootColor = themeProp.color,
2664
2968
  rootLayer = themeProp.layer,
2665
- restTheme = _objectWithoutPropertiesLoose(themeProp, _excluded$H);
2969
+ restTheme = _objectWithoutPropertiesLoose(themeProp, _excluded$I);
2666
2970
 
2667
2971
  var colorScheme = rootColor[scheme] || rootColor.light;
2668
2972
  var color = colorScheme[tone] || colorScheme["default"];
@@ -2793,353 +3097,142 @@ function _createMediaManager(media) {
2793
3097
 
2794
3098
  var handleChange = function handleChange() {
2795
3099
  if (mq.matches) subscriber(index);
2796
- };
2797
-
2798
- if (mq.addEventListener) {
2799
- mq.addEventListener('change', handleChange);
2800
- } else {
2801
- mq.addListener(handleChange);
2802
- }
2803
-
2804
- disposeFns.push(function () {
2805
- if (mq.removeEventListener) {
2806
- mq.removeEventListener('change', handleChange);
2807
- } else {
2808
- mq.removeListener(handleChange);
2809
- }
2810
- });
2811
- };
2812
-
2813
- for (var _iterator2 = _createForOfIteratorHelperLoose(sizes), _step2; !(_step2 = _iterator2()).done;) {
2814
- _loop();
2815
- }
2816
-
2817
- return function () {
2818
- for (var _iterator3 = _createForOfIteratorHelperLoose(disposeFns), _step3; !(_step3 = _iterator3()).done;) {
2819
- var disposeFn = _step3.value;
2820
- disposeFn();
2821
- }
2822
- };
2823
- };
2824
-
2825
- return {
2826
- getCurrentIndex: getCurrentIndex,
2827
- subscribe: subscribe
2828
- };
2829
- }
2830
- /**
2831
- * @internal
2832
- */
2833
-
2834
-
2835
- function _getMediaManager(media) {
2836
- var manager = MEDIA_MANAGER_CACHE.get(media);
2837
-
2838
- if (!manager) {
2839
- manager = _createMediaManager(media);
2840
- MEDIA_MANAGER_CACHE.set(media, manager);
2841
- }
2842
-
2843
- return manager;
2844
- }
2845
-
2846
- /**
2847
- * This API might change. DO NOT USE IN PRODUCTION.
2848
- * @beta
2849
- */
2850
-
2851
- function useMediaIndex() {
2852
- var theme = useTheme();
2853
- var media = theme.sanity.media;
2854
- var manager = React.useMemo(function () {
2855
- return _getMediaManager(media);
2856
- }, [media]);
2857
-
2858
- var _useState = React.useState(manager.getCurrentIndex),
2859
- index = _useState[0],
2860
- setIndex = _useState[1];
2861
-
2862
- React.useEffect(function () {
2863
- return manager.subscribe(setIndex);
2864
- }, [manager]);
2865
- return index;
2866
- }
2867
-
2868
- /**
2869
- * @public
2870
- */
2871
-
2872
- function usePrefersDark() {
2873
- var mq = React.useMemo(function () {
2874
- if (typeof window === 'undefined') return undefined;
2875
- return window.matchMedia('(prefers-color-scheme: dark)');
2876
- }, []);
2877
-
2878
- var _useState = React.useState((mq == null ? void 0 : mq.matches) || false),
2879
- dark = _useState[0],
2880
- setDark = _useState[1];
2881
-
2882
- React.useEffect(function () {
2883
- if (!mq) return undefined;
2884
- setDark(mq.matches);
2885
-
2886
- var handleChange = function handleChange() {
2887
- return setDark(mq.matches);
2888
- };
2889
-
2890
- mq.addEventListener('change', handleChange);
2891
- return function () {
2892
- return mq.removeEventListener('change', handleChange);
2893
- };
2894
- }, [mq]);
2895
- return dark;
2896
- }
2897
-
2898
- /**
2899
- * @beta
2900
- */
2901
-
2902
- var useIsomorphicEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
2903
-
2904
- /**
2905
- * @beta
2906
- */
2907
-
2908
- function useForwardedRef(ref) {
2909
- var innerRef = React.useRef(null);
2910
- useIsomorphicEffect(function () {
2911
- if (!ref) return;
2912
-
2913
- if (typeof ref === 'function') {
2914
- ref(innerRef.current);
2915
- } else {
2916
- ref.current = innerRef.current;
2917
- }
2918
- });
2919
- return innerRef;
2920
- }
2921
-
2922
- /**
2923
- * @beta
2924
- */
2925
-
2926
- function useCustomValidity(ref, customValidity) {
2927
- React.useEffect(function () {
2928
- if (ref.current) {
2929
- ref.current.setCustomValidity(customValidity || '');
2930
- }
2931
- }, [customValidity, ref]);
2932
- }
2933
-
2934
- /**
2935
- * @internal
2936
- */
2937
-
2938
- function fillCSSObject(propKeys, value) {
2939
- return propKeys.reduce(function (obj, propKey) {
2940
- obj[propKey] = value;
2941
- return obj;
2942
- }, {});
2943
- }
2944
- /**
2945
- * @public
2946
- */
2947
-
2948
- function rem(pixelValue) {
2949
- if (pixelValue === 0) return 0;
2950
- return pixelValue / 16 + "rem";
2951
- }
2952
- /**
2953
- * @internal
2954
- */
2955
-
2956
- function responsive(media, values, callback) {
2957
- var statements = values.map(callback);
2958
- return statements.map(function (statement, mediaIndex) {
2959
- var _ref;
2960
-
2961
- if (mediaIndex === 0) return statement;
2962
- return _ref = {}, _ref["@media screen and (min-width: " + media[mediaIndex - 1] + "px)"] = statement, _ref;
2963
- });
2964
- }
2965
- /**
2966
- * @internal
2967
- */
2968
-
2969
- function getResponsiveProp(val, defaultVal) {
2970
- if (val === undefined) return defaultVal || EMPTY_ARRAY;
2971
- return Array.isArray(val) ? val : [val];
2972
- }
2973
- /**
2974
- * @internal
2975
- */
2976
-
2977
- function getResponsiveSpace(theme, props, spaceIndexes) {
2978
- if (spaceIndexes === void 0) {
2979
- spaceIndexes = EMPTY_ARRAY;
2980
- }
2981
-
2982
- if (!Array.isArray(spaceIndexes)) {
2983
- throw new Error('the property must be array of numbers');
2984
- }
2985
-
2986
- if (spaceIndexes.length === 0) {
2987
- return null;
2988
- }
2989
-
2990
- return responsive(theme.sanity.media, spaceIndexes, function (spaceIndex) {
2991
- return fillCSSObject(props, rem(theme.sanity.space[spaceIndex]));
2992
- });
2993
- }
2994
-
2995
- /**
2996
- * A utility function getting responsive font styles.
2997
- * @internal
2998
- */
2999
-
3000
- function responsiveFont(fontKey, props) {
3001
- var $size = props.$size,
3002
- $weight = props.$weight,
3003
- theme = props.theme;
3004
- var _theme$sanity = theme.sanity,
3005
- fonts = _theme$sanity.fonts,
3006
- media = _theme$sanity.media;
3007
- var _fonts$fontKey = fonts[fontKey],
3008
- family = _fonts$fontKey.family,
3009
- sizes = _fonts$fontKey.sizes,
3010
- weights = _fonts$fontKey.weights,
3011
- horizontalOffset = _fonts$fontKey.horizontalOffset;
3012
- var fontWeight = $weight && weights[$weight] || weights.regular; // @todo: make this configurable
3013
-
3014
- var defaultSize = sizes[2];
3015
- var base = {
3016
- position: 'relative',
3017
- fontFamily: family,
3018
- fontWeight: fontWeight,
3019
- padding: '1px',
3020
- margin: 0,
3021
- '&:before': {
3022
- content: '""',
3023
- display: 'block',
3024
- height: 0
3025
- },
3026
- '&:after': {
3027
- content: '""',
3028
- display: 'block',
3029
- height: 0
3030
- },
3031
- '& > code, & > span': {
3032
- display: 'block'
3033
- },
3034
- '&:not([hidden])': {
3035
- display: 'block'
3100
+ };
3101
+
3102
+ if (mq.addEventListener) {
3103
+ mq.addEventListener('change', handleChange);
3104
+ } else {
3105
+ mq.addListener(handleChange);
3106
+ }
3107
+
3108
+ disposeFns.push(function () {
3109
+ if (mq.removeEventListener) {
3110
+ mq.removeEventListener('change', handleChange);
3111
+ } else {
3112
+ mq.removeListener(handleChange);
3113
+ }
3114
+ });
3115
+ };
3116
+
3117
+ for (var _iterator2 = _createForOfIteratorHelperLoose(sizes), _step2; !(_step2 = _iterator2()).done;) {
3118
+ _loop();
3036
3119
  }
3120
+
3121
+ return function () {
3122
+ for (var _iterator3 = _createForOfIteratorHelperLoose(disposeFns), _step3; !(_step3 = _iterator3()).done;) {
3123
+ var disposeFn = _step3.value;
3124
+ disposeFn();
3125
+ }
3126
+ };
3037
3127
  };
3038
- var resp = responsive(media, getResponsiveProp($size), function (sizeIndex) {
3039
- return fontSize(sizes[sizeIndex] || defaultSize, horizontalOffset);
3040
- });
3041
- return [base].concat(resp);
3042
- }
3043
- function fontSize(size, horizontalOffset) {
3044
- var ascenderHeight = size.ascenderHeight,
3045
- descenderHeight = size.descenderHeight,
3046
- fontSize = size.fontSize,
3047
- iconSize = size.iconSize,
3048
- letterSpacing = size.letterSpacing,
3049
- lineHeight = size.lineHeight;
3050
- var negHeight = ascenderHeight + descenderHeight;
3051
- var capHeight = lineHeight - negHeight;
3052
- var iconOffset = (capHeight - iconSize) / 2;
3053
- var customIconSize = Math.floor(fontSize * 1.125 / 2) * 2 + 1;
3054
- var customIconOffset = (capHeight - customIconSize) / 2;
3128
+
3055
3129
  return {
3056
- fontSize: rem(fontSize),
3057
- lineHeight: "calc(" + lineHeight + " / " + fontSize + ")",
3058
- letterSpacing: rem(letterSpacing),
3059
- transform: "translateY(" + rem(descenderHeight) + ")",
3060
- '&:before': {
3061
- marginTop: "calc(" + rem(0 - negHeight) + " - 1px)"
3062
- },
3063
- '&:after': {
3064
- marginBottom: '-1px'
3065
- },
3066
- '& > code, & > span': {
3067
- margin: horizontalOffset ? "0 calc(" + rem(0 - horizontalOffset * fontSize) + " - 1px)" : '0 -1px'
3068
- },
3069
- '& svg:not([data-sanity-icon])': {
3070
- fontSize: "calc(" + customIconSize + " / 16 * 1rem)",
3071
- margin: [// top & bottom
3072
- rem(customIconOffset), // left & right
3073
- horizontalOffset ? "calc(" + rem(customIconOffset) + " + " + rem(horizontalOffset * fontSize) + ")" : rem(customIconOffset)].join(' ')
3074
- },
3075
- '& [data-sanity-icon]': {
3076
- fontSize: "calc(" + iconSize + " / 16 * 1rem)",
3077
- margin: [// top & bottom
3078
- rem(iconOffset), // left & right
3079
- horizontalOffset ? "calc(" + rem(iconOffset) + " + " + rem(horizontalOffset * fontSize) + ")" : rem(iconOffset)].join(' ')
3080
- }
3130
+ getCurrentIndex: getCurrentIndex,
3131
+ subscribe: subscribe
3081
3132
  };
3082
3133
  }
3083
-
3084
3134
  /**
3085
- * Get responsive CSS for the `code` font style.
3086
3135
  * @internal
3087
3136
  */
3088
3137
 
3089
- function responsiveCodeFontStyle(props) {
3090
- return responsiveFont('code', props);
3138
+
3139
+ function _getMediaManager(media) {
3140
+ var manager = MEDIA_MANAGER_CACHE.get(media);
3141
+
3142
+ if (!manager) {
3143
+ manager = _createMediaManager(media);
3144
+ MEDIA_MANAGER_CACHE.set(media, manager);
3145
+ }
3146
+
3147
+ return manager;
3091
3148
  }
3092
3149
 
3093
3150
  /**
3094
- * Get responsive CSS for the `heading` font style.
3095
- * @internal
3151
+ * This API might change. DO NOT USE IN PRODUCTION.
3152
+ * @beta
3096
3153
  */
3097
3154
 
3098
- function responsiveHeadingFont(props) {
3099
- return responsiveFont('heading', props);
3155
+ function useMediaIndex() {
3156
+ var theme = useTheme();
3157
+ var media = theme.sanity.media;
3158
+ var manager = React.useMemo(function () {
3159
+ return _getMediaManager(media);
3160
+ }, [media]);
3161
+
3162
+ var _useState = React.useState(manager.getCurrentIndex),
3163
+ index = _useState[0],
3164
+ setIndex = _useState[1];
3165
+
3166
+ React.useEffect(function () {
3167
+ return manager.subscribe(setIndex);
3168
+ }, [manager]);
3169
+ return index;
3100
3170
  }
3101
3171
 
3102
3172
  /**
3103
- * Get responsive CSS for the `label` font style.
3104
- * @internal
3173
+ * @public
3105
3174
  */
3106
3175
 
3107
- function responsiveLabelFont(props) {
3108
- return responsiveFont('label', props);
3176
+ function usePrefersDark() {
3177
+ var mq = React.useMemo(function () {
3178
+ if (typeof window === 'undefined') return undefined;
3179
+ return window.matchMedia('(prefers-color-scheme: dark)');
3180
+ }, []);
3181
+
3182
+ var _useState = React.useState((mq == null ? void 0 : mq.matches) || false),
3183
+ dark = _useState[0],
3184
+ setDark = _useState[1];
3185
+
3186
+ React.useEffect(function () {
3187
+ if (!mq) return undefined;
3188
+ setDark(mq.matches);
3189
+
3190
+ var handleChange = function handleChange() {
3191
+ return setDark(mq.matches);
3192
+ };
3193
+
3194
+ mq.addEventListener('change', handleChange);
3195
+ return function () {
3196
+ return mq.removeEventListener('change', handleChange);
3197
+ };
3198
+ }, [mq]);
3199
+ return dark;
3109
3200
  }
3110
3201
 
3111
3202
  /**
3112
- * Get responsive text align styles.
3113
- * @internal
3203
+ * @beta
3114
3204
  */
3115
3205
 
3116
- function responsiveTextAlignStyle(props) {
3117
- var theme = props.theme;
3118
- return responsive(theme.sanity.media, getResponsiveProp(props.$align), function (textAlign) {
3119
- return {
3120
- textAlign: textAlign
3121
- };
3122
- });
3123
- }
3206
+ var useIsomorphicEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
3124
3207
 
3125
3208
  /**
3126
- * Get responsive CSS for the `text` font style.
3127
- * @internal
3209
+ * @beta
3128
3210
  */
3129
3211
 
3130
- function responsiveTextFont(props) {
3131
- return responsiveFont('text', props);
3212
+ function useForwardedRef(ref) {
3213
+ var innerRef = React.useRef(null);
3214
+ useIsomorphicEffect(function () {
3215
+ if (!ref) return;
3216
+
3217
+ if (typeof ref === 'function') {
3218
+ ref(innerRef.current);
3219
+ } else {
3220
+ ref.current = innerRef.current;
3221
+ }
3222
+ });
3223
+ return innerRef;
3132
3224
  }
3133
3225
 
3134
3226
  /**
3135
- * This API might change. DO NOT USE IN PRODUCTION.
3136
3227
  * @beta
3137
3228
  */
3138
3229
 
3139
- function useResponsiveProp(val, defaultVal) {
3140
- return React.useMemo(function () {
3141
- return getResponsiveProp(val, defaultVal);
3142
- }, [defaultVal, val]);
3230
+ function useCustomValidity(ref, customValidity) {
3231
+ React.useEffect(function () {
3232
+ if (ref.current) {
3233
+ ref.current.setCustomValidity(customValidity || '');
3234
+ }
3235
+ }, [customValidity, ref]);
3143
3236
  }
3144
3237
 
3145
3238
  var BORDER_VALUE = '1px solid var(--card-border-color)';
@@ -3150,7 +3243,7 @@ function responsiveBorderStyle() {
3150
3243
  function border(props) {
3151
3244
  var theme = props.theme;
3152
3245
  var media = theme.sanity.media;
3153
- return responsive(media, getResponsiveProp(props.$border), function (value) {
3246
+ return _responsive(media, props.$border, function (value) {
3154
3247
  return value ? {
3155
3248
  '&&': {
3156
3249
  border: BORDER_VALUE
@@ -3166,7 +3259,7 @@ function border(props) {
3166
3259
  function borderTop(props) {
3167
3260
  var theme = props.theme;
3168
3261
  var media = theme.sanity.media;
3169
- return responsive(media, getResponsiveProp(props.$borderTop), function (value) {
3262
+ return _responsive(media, props.$borderTop, function (value) {
3170
3263
  return value ? {
3171
3264
  '&&': {
3172
3265
  borderTop: BORDER_VALUE
@@ -3182,7 +3275,7 @@ function borderTop(props) {
3182
3275
  function borderRight(props) {
3183
3276
  var theme = props.theme;
3184
3277
  var media = theme.sanity.media;
3185
- return responsive(media, getResponsiveProp(props.$borderRight), function (value) {
3278
+ return _responsive(media, props.$borderRight, function (value) {
3186
3279
  return value ? {
3187
3280
  '&&': {
3188
3281
  borderRight: BORDER_VALUE
@@ -3198,7 +3291,7 @@ function borderRight(props) {
3198
3291
  function borderBottom(props) {
3199
3292
  var theme = props.theme;
3200
3293
  var media = theme.sanity.media;
3201
- return responsive(media, getResponsiveProp(props.$borderBottom), function (value) {
3294
+ return _responsive(media, props.$borderBottom, function (value) {
3202
3295
  return value ? {
3203
3296
  '&&': {
3204
3297
  borderBottom: BORDER_VALUE
@@ -3214,7 +3307,7 @@ function borderBottom(props) {
3214
3307
  function borderLeft(props) {
3215
3308
  var theme = props.theme;
3216
3309
  var media = theme.sanity.media;
3217
- return responsive(media, getResponsiveProp(props.$borderLeft), function (value) {
3310
+ return _responsive(media, props.$borderLeft, function (value) {
3218
3311
  return value ? {
3219
3312
  '&&': {
3220
3313
  borderLeft: BORDER_VALUE
@@ -3250,7 +3343,7 @@ function responsiveBoxStyle() {
3250
3343
  function responsiveBoxDisplayStyle(props) {
3251
3344
  var theme = props.theme;
3252
3345
  var media = theme.sanity.media;
3253
- return responsive(media, getResponsiveProp(props.$display), function (display) {
3346
+ return _responsive(media, props.$display, function (display) {
3254
3347
  return {
3255
3348
  '&:not([hidden])': {
3256
3349
  display: display
@@ -3262,7 +3355,7 @@ function responsiveBoxDisplayStyle(props) {
3262
3355
  function responsiveBoxSizingStyle(props) {
3263
3356
  var theme = props.theme;
3264
3357
  var media = theme.sanity.media;
3265
- return responsive(media, getResponsiveProp(props.$sizing), function (sizing) {
3358
+ return _responsive(media, props.$sizing, function (sizing) {
3266
3359
  return {
3267
3360
  boxSizing: BOX_SIZING[sizing]
3268
3361
  };
@@ -3272,7 +3365,7 @@ function responsiveBoxSizingStyle(props) {
3272
3365
  function responsiveBoxHeightStyle(props) {
3273
3366
  var theme = props.theme;
3274
3367
  var media = theme.sanity.media;
3275
- return responsive(media, getResponsiveProp(props.$height), function (height) {
3368
+ return _responsive(media, props.$height, function (height) {
3276
3369
  return {
3277
3370
  height: BOX_HEIGHT[height]
3278
3371
  };
@@ -3282,7 +3375,7 @@ function responsiveBoxHeightStyle(props) {
3282
3375
  function responsiveBoxOverflowStyle(props) {
3283
3376
  var theme = props.theme;
3284
3377
  var media = theme.sanity.media;
3285
- return responsive(media, getResponsiveProp(props.$overflow), function (overflow) {
3378
+ return _responsive(media, props.$overflow, function (overflow) {
3286
3379
  return {
3287
3380
  overflow: overflow
3288
3381
  };
@@ -3300,7 +3393,7 @@ function responsiveFlexStyle() {
3300
3393
  function responsiveFlexAlignStyle(props) {
3301
3394
  var theme = props.theme;
3302
3395
  var media = theme.sanity.media;
3303
- return responsive(media, getResponsiveProp(props.$align), function (align) {
3396
+ return _responsive(media, props.$align, function (align) {
3304
3397
  return {
3305
3398
  alignItems: align
3306
3399
  };
@@ -3312,7 +3405,7 @@ function responsiveFlexGapStyle(props) {
3312
3405
  var _theme$sanity = theme.sanity,
3313
3406
  media = _theme$sanity.media,
3314
3407
  space = _theme$sanity.space;
3315
- return responsive(media, getResponsiveProp(props.$gap), function (gap) {
3408
+ return _responsive(media, props.$gap, function (gap) {
3316
3409
  return {
3317
3410
  gap: gap ? rem(space[gap]) : undefined
3318
3411
  };
@@ -3322,7 +3415,7 @@ function responsiveFlexGapStyle(props) {
3322
3415
  function responsiveFlexWrapStyle(props) {
3323
3416
  var theme = props.theme;
3324
3417
  var media = theme.sanity.media;
3325
- return responsive(media, getResponsiveProp(props.$wrap), function (wrap) {
3418
+ return _responsive(media, props.$wrap, function (wrap) {
3326
3419
  return {
3327
3420
  flexWrap: wrap
3328
3421
  };
@@ -3331,7 +3424,7 @@ function responsiveFlexWrapStyle(props) {
3331
3424
  function responsiveFlexJustifyStyle(props) {
3332
3425
  var theme = props.theme;
3333
3426
  var media = theme.sanity.media;
3334
- return responsive(media, getResponsiveProp(props.$justify), function (justify) {
3427
+ return _responsive(media, props.$justify, function (justify) {
3335
3428
  return {
3336
3429
  justifyContent: justify
3337
3430
  };
@@ -3340,7 +3433,7 @@ function responsiveFlexJustifyStyle(props) {
3340
3433
  function responsiveFlexDirectionStyle(props) {
3341
3434
  var theme = props.theme;
3342
3435
  var media = theme.sanity.media;
3343
- return responsive(media, getResponsiveProp(props.$direction), function (direction) {
3436
+ return _responsive(media, props.$direction, function (direction) {
3344
3437
  return {
3345
3438
  flexDirection: direction
3346
3439
  };
@@ -3357,7 +3450,8 @@ function flexItemStyle() {
3357
3450
  function responsiveFlexItemStyle(props) {
3358
3451
  var theme = props.theme;
3359
3452
  var media = theme.sanity.media;
3360
- return responsive(media, getResponsiveProp(props.$flex), function (flex) {
3453
+ if (!props.$flex) return EMPTY_ARRAY;
3454
+ return _responsive(media, props.$flex, function (flex) {
3361
3455
  return {
3362
3456
  flex: flex
3363
3457
  };
@@ -3404,7 +3498,7 @@ function responsiveGridStyle() {
3404
3498
  function responsiveGridAutoFlowStyle(props) {
3405
3499
  var theme = props.theme;
3406
3500
  var media = theme.sanity.media;
3407
- return responsive(media, getResponsiveProp(props.$autoFlow), function (autoFlow) {
3501
+ return _responsive(media, props.$autoFlow, function (autoFlow) {
3408
3502
  return {
3409
3503
  gridAutoFlow: autoFlow
3410
3504
  };
@@ -3414,7 +3508,7 @@ function responsiveGridAutoFlowStyle(props) {
3414
3508
  function responsiveGridAutoRowsStyle(props) {
3415
3509
  var theme = props.theme;
3416
3510
  var media = theme.sanity.media;
3417
- return responsive(media, getResponsiveProp(props.$autoRows), function (autoRows) {
3511
+ return _responsive(media, props.$autoRows, function (autoRows) {
3418
3512
  return {
3419
3513
  gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows]
3420
3514
  };
@@ -3424,7 +3518,7 @@ function responsiveGridAutoRowsStyle(props) {
3424
3518
  function responsiveGridAutoColsStyle(props) {
3425
3519
  var theme = props.theme;
3426
3520
  var media = theme.sanity.media;
3427
- return responsive(media, getResponsiveProp(props.$autoCols), function (autoCols) {
3521
+ return _responsive(media, props.$autoCols, function (autoCols) {
3428
3522
  return {
3429
3523
  gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols]
3430
3524
  };
@@ -3434,7 +3528,7 @@ function responsiveGridAutoColsStyle(props) {
3434
3528
  function responsiveGridColumnsStyle(props) {
3435
3529
  var theme = props.theme;
3436
3530
  var media = theme.sanity.media;
3437
- return responsive(media, getResponsiveProp(props.$columns), function (columns) {
3531
+ return _responsive(media, props.$columns, function (columns) {
3438
3532
  return {
3439
3533
  gridTemplateColumns: columns && "repeat(" + columns + ",minmax(0,1fr));"
3440
3534
  };
@@ -3444,7 +3538,7 @@ function responsiveGridColumnsStyle(props) {
3444
3538
  function responsiveGridRowsStyle(props) {
3445
3539
  var theme = props.theme;
3446
3540
  var media = theme.sanity.media;
3447
- return responsive(media, getResponsiveProp(props.$rows), function (rows) {
3541
+ return _responsive(media, props.$rows, function (rows) {
3448
3542
  return {
3449
3543
  gridTemplateRows: rows && "repeat(" + rows + ",minmax(0,1fr));"
3450
3544
  };
@@ -3456,7 +3550,7 @@ function responsiveGridGapStyle(props) {
3456
3550
  var _theme$sanity = theme.sanity,
3457
3551
  media = _theme$sanity.media,
3458
3552
  space = _theme$sanity.space;
3459
- return responsive(media, getResponsiveProp(props.$gap), function (gap) {
3553
+ return _responsive(media, props.$gap, function (gap) {
3460
3554
  return {
3461
3555
  gridGap: gap ? rem(space[gap]) : undefined
3462
3556
  };
@@ -3468,7 +3562,7 @@ function responsiveGridGapXStyle(props) {
3468
3562
  var _theme$sanity2 = theme.sanity,
3469
3563
  media = _theme$sanity2.media,
3470
3564
  space = _theme$sanity2.space;
3471
- return responsive(media, getResponsiveProp(props.$gapX), function (gapX) {
3565
+ return _responsive(media, props.$gapX, function (gapX) {
3472
3566
  return {
3473
3567
  columnGap: gapX ? rem(space[gapX]) : undefined
3474
3568
  };
@@ -3480,7 +3574,7 @@ function responsiveGridGapYStyle(props) {
3480
3574
  var _theme$sanity3 = theme.sanity,
3481
3575
  media = _theme$sanity3.media,
3482
3576
  space = _theme$sanity3.space;
3483
- return responsive(media, getResponsiveProp(props.$gapY), function (gapY) {
3577
+ return _responsive(media, props.$gapY, function (gapY) {
3484
3578
  return {
3485
3579
  rowGap: gapY ? rem(space[gapY]) : undefined
3486
3580
  };
@@ -3502,7 +3596,7 @@ var GRID_ITEM_COLUMN = {
3502
3596
  function responsiveGridItemRowStyle(props) {
3503
3597
  var theme = props.theme;
3504
3598
  var media = theme.sanity.media;
3505
- return responsive(media, getResponsiveProp(props.$row), function (row) {
3599
+ return _responsive(media, props.$row, function (row) {
3506
3600
  if (typeof row === 'number') {
3507
3601
  return {
3508
3602
  gridRow: "span " + row + " / span " + row
@@ -3518,7 +3612,7 @@ function responsiveGridItemRowStyle(props) {
3518
3612
  function responsiveGridItemRowStartStyle(props) {
3519
3613
  var theme = props.theme;
3520
3614
  var media = theme.sanity.media;
3521
- return responsive(media, getResponsiveProp(props.$rowStart), function (rowStart) {
3615
+ return _responsive(media, props.$rowStart, function (rowStart) {
3522
3616
  return {
3523
3617
  gridRowStart: rowStart
3524
3618
  };
@@ -3528,7 +3622,7 @@ function responsiveGridItemRowStartStyle(props) {
3528
3622
  function responsiveGridItemRowEndStyle(props) {
3529
3623
  var theme = props.theme;
3530
3624
  var media = theme.sanity.media;
3531
- return responsive(media, getResponsiveProp(props.$rowEnd), function (rowEnd) {
3625
+ return _responsive(media, props.$rowEnd, function (rowEnd) {
3532
3626
  return {
3533
3627
  gridRowEnd: rowEnd
3534
3628
  };
@@ -3538,7 +3632,7 @@ function responsiveGridItemRowEndStyle(props) {
3538
3632
  function responsiveGridItemColumnStyle(props) {
3539
3633
  var theme = props.theme;
3540
3634
  var media = theme.sanity.media;
3541
- return responsive(media, getResponsiveProp(props.$column), function (column) {
3635
+ return _responsive(media, props.$column, function (column) {
3542
3636
  if (typeof column === 'number') {
3543
3637
  return {
3544
3638
  gridColumn: "span " + column + " / span " + column
@@ -3554,7 +3648,7 @@ function responsiveGridItemColumnStyle(props) {
3554
3648
  function responsiveGridItemColumnStartStyle(props) {
3555
3649
  var theme = props.theme;
3556
3650
  var media = theme.sanity.media;
3557
- return responsive(media, getResponsiveProp(props.$columnStart), function (columnStart) {
3651
+ return _responsive(media, props.$columnStart, function (columnStart) {
3558
3652
  return {
3559
3653
  gridColumnStart: columnStart
3560
3654
  };
@@ -3564,7 +3658,7 @@ function responsiveGridItemColumnStartStyle(props) {
3564
3658
  function responsiveGridItemColumnEndStyle(props) {
3565
3659
  var theme = props.theme;
3566
3660
  var media = theme.sanity.media;
3567
- return responsive(media, getResponsiveProp(props.$columnEnd), function (columnEnd) {
3661
+ return _responsive(media, props.$columnEnd, function (columnEnd) {
3568
3662
  return {
3569
3663
  gridColumnEnd: columnEnd
3570
3664
  };
@@ -3572,36 +3666,36 @@ function responsiveGridItemColumnEndStyle(props) {
3572
3666
  }
3573
3667
 
3574
3668
  function responsiveInputPaddingStyle(props) {
3575
- var $iconLeft = props.$iconLeft,
3669
+ var $fontSize = props.$fontSize,
3670
+ $iconLeft = props.$iconLeft,
3576
3671
  $iconRight = props.$iconRight,
3672
+ $padding = props.$padding,
3673
+ $space = props.$space,
3577
3674
  theme = props.theme;
3578
3675
  var _theme$sanity = theme.sanity,
3579
3676
  fonts = _theme$sanity.fonts,
3580
3677
  media = _theme$sanity.media,
3581
3678
  spaceScale = _theme$sanity.space;
3582
- var padding = getResponsiveProp(props.$padding, [0]);
3583
- var space = getResponsiveProp(props.$space, [0]);
3584
- var size = getResponsiveProp(props.$fontSize, [0]);
3585
- var len = Math.max(padding.length, space.length, size.length);
3679
+ var len = Math.max($padding.length, $space.length, $fontSize.length);
3586
3680
  var _padding = [];
3587
3681
  var _space = [];
3588
- var _size = [];
3682
+ var _fontSize = [];
3589
3683
 
3590
3684
  for (var i = 0; i < len; i += 1) {
3591
- _padding[i] = padding[i] === undefined ? _padding[i - 1] : padding[i];
3592
- _space[i] = space[i] === undefined ? _space[i - 1] : space[i];
3593
- _size[i] = size[i] === undefined ? _size[i - 1] : size[i];
3685
+ _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i];
3686
+ _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i];
3687
+ _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i];
3594
3688
  }
3595
3689
 
3596
- return responsive(media, _padding, function (_, i) {
3597
- var fontSize = fonts.text.sizes[_size[i]] || fonts.text.sizes[2];
3598
- var emSize = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight;
3690
+ return _responsive(media, _padding, function (_, i) {
3691
+ var size = fonts.text.sizes[_fontSize[i]] || fonts.text.sizes[2];
3692
+ var emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight;
3599
3693
  var p = spaceScale[_padding[i]];
3600
3694
  var s = spaceScale[_space[i]];
3601
3695
  var styles = {
3602
- paddingTop: rem(p - fontSize.ascenderHeight),
3696
+ paddingTop: rem(p - size.ascenderHeight),
3603
3697
  paddingRight: rem(p),
3604
- paddingBottom: rem(p - fontSize.descenderHeight),
3698
+ paddingBottom: rem(p - size.descenderHeight),
3605
3699
  paddingLeft: rem(p)
3606
3700
  };
3607
3701
  if ($iconRight) styles.paddingRight = rem(p + emSize + s);
@@ -3615,24 +3709,25 @@ function responsiveInputPaddingIconRightStyle(props) {
3615
3709
  }));
3616
3710
  }
3617
3711
 
3618
- var _templateObject$D, _templateObject2$n, _templateObject3$e;
3619
- var ROOT_STYLE = styled.css(_templateObject$D || (_templateObject$D = _taggedTemplateLiteralLoose(["\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n"])));
3712
+ var _templateObject$C, _templateObject2$m, _templateObject3$d;
3713
+ var ROOT_STYLE = styled.css(_templateObject$C || (_templateObject$C = _taggedTemplateLiteralLoose(["\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n"])));
3620
3714
  function textInputRootStyle() {
3621
3715
  return ROOT_STYLE;
3622
3716
  }
3623
3717
  function textInputBaseStyle(props) {
3624
3718
  var theme = props.theme,
3719
+ $tone = props.$tone,
3625
3720
  $weight = props.$weight;
3626
3721
  var font = theme.sanity.fonts.text;
3627
3722
  var color = theme.sanity.color.input;
3628
- return styled.css(_templateObject2$n || (_templateObject2$n = _taggedTemplateLiteralLoose(["\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ", ";\n font-weight: ", ";\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n color: var(--input-fg-color);\n\n /* NOTE: This is a hack to disable Chrome\u2019s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n "])), color["default"].enabled.fg, color["default"].enabled.placeholder, font.family, $weight && font.weights[$weight] || font.weights.regular, color["default"].enabled.fg, color["default"].enabled.placeholder, color["default"].disabled.fg, color["default"].disabled.placeholder, color.invalid.enabled.fg, color.invalid.enabled.placeholder, color["default"].readOnly.fg, color["default"].readOnly.placeholder);
3723
+ return styled.css(_templateObject2$m || (_templateObject2$m = _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);
3629
3724
  }
3630
3725
  function textInputFontSizeStyle(props) {
3631
3726
  var theme = props.theme;
3632
3727
  var _theme$sanity = theme.sanity,
3633
3728
  fonts = _theme$sanity.fonts,
3634
3729
  media = _theme$sanity.media;
3635
- return responsive(media, getResponsiveProp(props.$fontSize, [2]), function (sizeIndex) {
3730
+ return _responsive(media, props.$fontSize, function (sizeIndex) {
3636
3731
  var size = fonts.text.sizes[sizeIndex] || fonts.text.sizes[2];
3637
3732
  return {
3638
3733
  fontSize: rem(size.fontSize),
@@ -3644,12 +3739,13 @@ function textInputRepresentationStyle(props) {
3644
3739
  var $border = props.$border,
3645
3740
  $hasPrefix = props.$hasPrefix,
3646
3741
  $hasSuffix = props.$hasSuffix,
3742
+ $tone = props.$tone,
3647
3743
  theme = props.theme;
3648
3744
  var _theme$sanity2 = theme.sanity,
3649
3745
  focusRing = _theme$sanity2.focusRing,
3650
3746
  input = _theme$sanity2.input;
3651
3747
  var color = theme.sanity.color.input;
3652
- return styled.css(_templateObject3$e || (_templateObject3$e = _taggedTemplateLiteralLoose(["\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ", ";\n border-bottom-left-radius: ", ";\n border-top-right-radius: ", ";\n border-bottom-right-radius: ", ";\n\n /* enabled */\n *:not(:disabled) + && {\n --input-box-shadow: ", ";\n }\n\n /* invalid */\n *:not(:disabled):invalid + && {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n --input-box-shadow: ", ";\n }\n\n /* focused */\n *:not(:disabled):focus + && {\n --input-box-shadow: ", ";\n }\n\n /* disabled */\n *:disabled + && {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n --input-box-shadow: ", ";\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + && {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + && {\n --input-box-shadow: ", ";\n }\n }\n\n /* readOnly */\n *:read-only + && {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n }\n "])), color["default"].enabled.bg, color["default"].enabled.fg, $hasPrefix ? 0 : undefined, $hasPrefix ? 0 : undefined, $hasSuffix ? 0 : undefined, $hasSuffix ? 0 : undefined, $border ? focusRingBorderStyle({
3748
+ return styled.css(_templateObject3$d || (_templateObject3$d = _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({
3653
3749
  color: color["default"].enabled.border,
3654
3750
  width: input.border.width
3655
3751
  }) : undefined, color.invalid.enabled.bg, color.invalid.enabled.fg, $border ? focusRingBorderStyle({
@@ -3664,20 +3760,20 @@ function textInputRepresentationStyle(props) {
3664
3760
  }), color["default"].disabled.bg, color["default"].disabled.fg, $border ? focusRingBorderStyle({
3665
3761
  color: color["default"].disabled.border,
3666
3762
  width: input.border.width
3667
- }) : 'none', color["default"].hovered.bg, color["default"].hovered.fg, $border ? focusRingBorderStyle({
3763
+ }) : 'none', color["default"].readOnly.bg, color["default"].readOnly.fg, color["default"].hovered.bg, color["default"].hovered.fg, $border ? focusRingBorderStyle({
3668
3764
  color: color["default"].hovered.border,
3669
3765
  width: input.border.width
3670
- }) : 'none', color["default"].readOnly.bg, color["default"].readOnly.fg);
3766
+ }) : 'none');
3671
3767
  }
3672
3768
 
3673
3769
  function responsiveMarginStyle(props) {
3674
3770
  var theme = props.theme;
3675
- 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);
3771
+ 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);
3676
3772
  }
3677
3773
 
3678
3774
  function responsivePaddingStyle(props) {
3679
3775
  var theme = props.theme;
3680
- 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);
3776
+ 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);
3681
3777
  }
3682
3778
 
3683
3779
  function responsiveRadiusStyle(props) {
@@ -3685,7 +3781,7 @@ function responsiveRadiusStyle(props) {
3685
3781
  var _theme$sanity = theme.sanity,
3686
3782
  media = _theme$sanity.media,
3687
3783
  radius = _theme$sanity.radius;
3688
- return responsive(media, getResponsiveProp(props.$radius), function (radiusIndex) {
3784
+ return _responsive(media, props.$radius, function (radiusIndex) {
3689
3785
  return {
3690
3786
  borderRadius: rem(radius[radiusIndex])
3691
3787
  };
@@ -3697,7 +3793,7 @@ function toBoxShadow(shadow, color) {
3697
3793
  }
3698
3794
 
3699
3795
  function shadowStyle(shadow) {
3700
- if (!shadow) return EMPTY_RECORD$1;
3796
+ if (!shadow) return EMPTY_RECORD;
3701
3797
  var outline = "0 0 0 " + rem(1) + " var(--card-shadow-outline-color)";
3702
3798
  var umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)');
3703
3799
  var penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)');
@@ -3712,25 +3808,25 @@ function responsiveShadowStyle(props) {
3712
3808
  var _theme$sanity = theme.sanity,
3713
3809
  media = _theme$sanity.media,
3714
3810
  shadows = _theme$sanity.shadows;
3715
- return responsive(media, getResponsiveProp(props.$shadow), function (shadow) {
3811
+ return _responsive(media, props.$shadow, function (shadow) {
3716
3812
  return shadowStyle(shadows[shadow]);
3717
3813
  });
3718
3814
  }
3719
3815
 
3720
- var _templateObject$C, _templateObject2$m, _templateObject3$d;
3816
+ var _templateObject$B, _templateObject2$l, _templateObject3$c;
3721
3817
  function textBaseStyle(props) {
3722
3818
  var $accent = props.$accent,
3723
3819
  $muted = props.$muted,
3724
3820
  theme = props.theme;
3725
3821
  var weights = theme.sanity.fonts.text.weights;
3726
- return styled.css(_templateObject$C || (_templateObject$C = _taggedTemplateLiteralLoose(["\n color: var(--card-fg-color);\n\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow: 0 0 0 1px var(--card-bg-color), 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ", ";\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), $accent && styled.css(_templateObject2$m || (_templateObject2$m = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && styled.css(_templateObject3$d || (_templateObject3$d = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), theme.sanity.fonts.code.family, weights.bold);
3822
+ return styled.css(_templateObject$B || (_templateObject$B = _taggedTemplateLiteralLoose(["\n color: var(--card-fg-color);\n\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow: 0 0 0 1px var(--card-bg-color), 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ", ";\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), $accent && styled.css(_templateObject2$l || (_templateObject2$l = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && styled.css(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), theme.sanity.fonts.code.family, weights.bold);
3727
3823
  }
3728
3824
 
3729
- var _excluded$G = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
3825
+ var _excluded$H = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
3730
3826
 
3731
- var _templateObject$B;
3827
+ var _templateObject$A;
3732
3828
  var Root$E = styled__default["default"].div(responsiveTextFont, responsiveTextAlignStyle, textBaseStyle);
3733
- var SpanWithTextOverflow$2 = styled__default["default"].span(_templateObject$B || (_templateObject$B = _taggedTemplateLiteralLoose(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"])));
3829
+ var SpanWithTextOverflow$2 = styled__default["default"].span(_templateObject$A || (_templateObject$A = _taggedTemplateLiteralLoose(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"])));
3734
3830
  /**
3735
3831
  * @public
3736
3832
  */
@@ -3746,7 +3842,7 @@ var Text = /*#__PURE__*/React.forwardRef(function Text(props, ref) {
3746
3842
  size = _props$size === void 0 ? 2 : _props$size,
3747
3843
  textOverflow = props.textOverflow,
3748
3844
  weight = props.weight,
3749
- restProps = _objectWithoutPropertiesLoose(props, _excluded$G);
3845
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$H);
3750
3846
 
3751
3847
  var children = childrenProp;
3752
3848
 
@@ -3758,10 +3854,10 @@ var Text = /*#__PURE__*/React.forwardRef(function Text(props, ref) {
3758
3854
  "data-ui": "Text"
3759
3855
  }, restProps, {
3760
3856
  "$accent": accent,
3761
- "$align": align,
3857
+ "$align": useArrayProp(align),
3762
3858
  "$muted": muted,
3763
3859
  ref: ref,
3764
- "$size": size,
3860
+ "$size": useArrayProp(size),
3765
3861
  "$weight": weight
3766
3862
  }), /*#__PURE__*/React__default["default"].createElement("span", null, children));
3767
3863
  });
@@ -3857,7 +3953,7 @@ function responsiveAvatarSizeStyle(props) {
3857
3953
  var _theme$sanity = theme.sanity,
3858
3954
  avatar = _theme$sanity.avatar,
3859
3955
  media = _theme$sanity.media;
3860
- return responsive(media, props.$size, function (size) {
3956
+ return _responsive(media, props.$size, function (size) {
3861
3957
  var avatarSize = avatar.sizes[size] || avatar.sizes[0];
3862
3958
  return {
3863
3959
  width: rem(avatarSize.size),
@@ -3906,7 +4002,7 @@ function avatarStrokeStyle() {
3906
4002
  };
3907
4003
  }
3908
4004
 
3909
- var _excluded$F = ["as", "color", "src", "title", "initials", "onImageLoadError", "arrowPosition", "animateArrowFrom", "status", "size"];
4005
+ var _excluded$G = ["as", "color", "src", "title", "initials", "onImageLoadError", "arrowPosition", "animateArrowFrom", "status", "size"];
3910
4006
  var Root$D = styled__default["default"].div(responsiveAvatarSizeStyle, avatarStyle.root);
3911
4007
  var Arrow = styled__default["default"].div(avatarStyle.arrow);
3912
4008
  var BgStroke = styled__default["default"].ellipse(avatarStyle.bgStroke);
@@ -3928,11 +4024,12 @@ var Avatar = /*#__PURE__*/React.forwardRef(function Avatar(props, ref) {
3928
4024
  animateArrowFrom = props.animateArrowFrom,
3929
4025
  _props$status = props.status,
3930
4026
  status = _props$status === void 0 ? 'online' : _props$status,
3931
- sizeProp = props.size,
3932
- restProps = _objectWithoutPropertiesLoose(props, _excluded$F);
4027
+ _props$size = props.size,
4028
+ sizeProp = _props$size === void 0 ? 0 : _props$size,
4029
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$G);
3933
4030
 
3934
4031
  var as = ReactIs__default["default"].isValidElementType(asProp) ? asProp : 'div';
3935
- var size = useResponsiveProp(sizeProp, [0]);
4032
+ var size = useArrayProp(sizeProp);
3936
4033
  var theme = useTheme();
3937
4034
  var color = theme.sanity.color.spot[colorKey] || theme.sanity.color.spot.gray; // @todo: remove this
3938
4035
 
@@ -3972,6 +4069,11 @@ var Avatar = /*#__PURE__*/React.forwardRef(function Avatar(props, ref) {
3972
4069
  onImageLoadError(new Error('Avatar: the image failed to load'));
3973
4070
  }
3974
4071
  }, [onImageLoadError]);
4072
+ var initialsSize = React.useMemo(function () {
4073
+ return size.map(function (s) {
4074
+ return s === 0 ? 0 : s + 1;
4075
+ });
4076
+ }, [size]);
3975
4077
  return /*#__PURE__*/React__default["default"].createElement(Root$D, _extends({
3976
4078
  as: as,
3977
4079
  "data-as": typeof as === 'string' ? as : undefined,
@@ -4025,22 +4127,20 @@ var Avatar = /*#__PURE__*/React.forwardRef(function Avatar(props, ref) {
4025
4127
  vectorEffect: "non-scaling-stroke"
4026
4128
  })), (imageFailed || !src) && initials && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Initials, null, /*#__PURE__*/React__default["default"].createElement(Text, {
4027
4129
  as: "span",
4028
- size: size.map(function (s) {
4029
- return s === 0 ? 0 : s + 1;
4030
- })
4130
+ size: initialsSize
4031
4131
  }, /*#__PURE__*/React__default["default"].createElement("strong", null, initials)))));
4032
4132
  });
4033
4133
 
4034
- var _templateObject$A;
4134
+ var _templateObject$z;
4035
4135
 
4036
- function responsiveAvatarCounterSizeStyle(props) {
4136
+ function _responsiveAvatarCounterSizeStyle(props) {
4037
4137
  var theme = props.theme;
4038
4138
  var _theme$sanity = theme.sanity,
4039
4139
  avatar = _theme$sanity.avatar,
4040
4140
  media = _theme$sanity.media;
4041
- return responsive(media, props.$size, function (size) {
4141
+ return _responsive(media, props.$size, function (size) {
4042
4142
  var avatarSize = avatar.sizes[size];
4043
- if (!avatarSize) return EMPTY_RECORD$1;
4143
+ if (!avatarSize) return EMPTY_RECORD;
4044
4144
  return {
4045
4145
  borderRadius: rem(avatarSize.size / 2),
4046
4146
  minWidth: rem(avatarSize.size),
@@ -4049,12 +4149,12 @@ function responsiveAvatarCounterSizeStyle(props) {
4049
4149
  });
4050
4150
  }
4051
4151
 
4052
- function avatarCounterBaseStyle(props) {
4152
+ function _avatarCounterBaseStyle(props) {
4053
4153
  var theme = props.theme;
4054
- return styled.css(_templateObject$A || (_templateObject$A = _taggedTemplateLiteralLoose(["\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow: 0 0 0 1px var(--card-bg-color), inset 0 0 0 1.5px var(--card-hairline-hard-color);\n padding: 0 ", ";\n\n &:not([hidden]) {\n display: flex;\n }\n "])), rem(theme.sanity.space[2]));
4154
+ return styled.css(_templateObject$z || (_templateObject$z = _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]));
4055
4155
  }
4056
4156
 
4057
- var Root$C = styled__default["default"].div(responsiveAvatarCounterSizeStyle, avatarCounterBaseStyle);
4157
+ var Root$C = styled__default["default"].div(_responsiveAvatarCounterSizeStyle, _avatarCounterBaseStyle);
4058
4158
  /**
4059
4159
  * @public
4060
4160
  */
@@ -4062,18 +4162,20 @@ var Root$C = styled__default["default"].div(responsiveAvatarCounterSizeStyle, av
4062
4162
  var AvatarCounter = /*#__PURE__*/React.forwardRef(function AvatarCounter(props, ref) {
4063
4163
  var count = props.count,
4064
4164
  _props$size = props.size,
4065
- sizeProp = _props$size === void 0 ? 0 : _props$size,
4066
- tone = props.tone;
4067
- var size = useResponsiveProp(sizeProp, [0]);
4165
+ sizeProp = _props$size === void 0 ? 0 : _props$size;
4166
+ var size = useArrayProp(sizeProp);
4167
+ var counterSize = React.useMemo(function () {
4168
+ return size.map(function (s) {
4169
+ return s === 0 ? 0 : s + 1;
4170
+ });
4171
+ }, [size]);
4068
4172
  return /*#__PURE__*/React__default["default"].createElement(Root$C, {
4069
4173
  "$size": size,
4070
- "data-tone": tone,
4174
+ "data-ui": "AvatarCounter",
4071
4175
  ref: ref
4072
4176
  }, /*#__PURE__*/React__default["default"].createElement(Text, {
4073
4177
  as: "span",
4074
- size: size.map(function (s) {
4075
- return s === 0 ? 0 : s + 1;
4076
- })
4178
+ size: counterSize
4077
4179
  }, /*#__PURE__*/React__default["default"].createElement("strong", null, count)));
4078
4180
  });
4079
4181
 
@@ -4084,10 +4186,10 @@ function childrenToElementArray(children) {
4084
4186
  });
4085
4187
  }
4086
4188
 
4087
- var _excluded$E = ["children", "maxLength", "size", "tone"];
4189
+ var _excluded$F = ["children", "maxLength", "size"];
4088
4190
 
4089
- var _templateObject$z;
4090
- var BASE_STYLES = styled.css(_templateObject$z || (_templateObject$z = _taggedTemplateLiteralLoose(["\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n"])));
4191
+ var _templateObject$y;
4192
+ var BASE_STYLES = styled.css(_templateObject$y || (_templateObject$y = _taggedTemplateLiteralLoose(["\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n"])));
4091
4193
 
4092
4194
  function avatarStackStyle() {
4093
4195
  return BASE_STYLES;
@@ -4098,9 +4200,9 @@ function responsiveAvatarStackSizeStyle(props) {
4098
4200
  var _theme$sanity = theme.sanity,
4099
4201
  avatar = _theme$sanity.avatar,
4100
4202
  media = _theme$sanity.media;
4101
- return responsive(media, getResponsiveProp(props.size), function (size) {
4203
+ return _responsive(media, props.$size, function (size) {
4102
4204
  var avatarSize = avatar.sizes[size];
4103
- if (!avatarSize) return EMPTY_RECORD$1;
4205
+ if (!avatarSize) return EMPTY_RECORD;
4104
4206
  return {
4105
4207
  '& > div + div': {
4106
4208
  marginLeft: rem(avatarSize.distance)
@@ -4119,14 +4221,14 @@ var AvatarStack = /*#__PURE__*/React.forwardRef(function AvatarStack(props, ref)
4119
4221
  _props$maxLength = props.maxLength,
4120
4222
  maxLengthProp = _props$maxLength === void 0 ? 4 : _props$maxLength,
4121
4223
  _props$size = props.size,
4122
- size = _props$size === void 0 ? 0 : _props$size,
4123
- tone = props.tone,
4124
- restProps = _objectWithoutPropertiesLoose(props, _excluded$E);
4224
+ sizeProp = _props$size === void 0 ? 0 : _props$size,
4225
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$F);
4125
4226
 
4126
- var maxLength = Math.max(maxLengthProp, 0);
4127
4227
  var children = childrenToElementArray(childrenProp).filter(function (child) {
4128
4228
  return typeof child !== 'string';
4129
4229
  });
4230
+ var maxLength = Math.max(maxLengthProp, 0);
4231
+ var size = useArrayProp(sizeProp);
4130
4232
  var len = children.length;
4131
4233
  var visibleCount = maxLength - 1;
4132
4234
  var extraCount = len - visibleCount;
@@ -4135,25 +4237,22 @@ var AvatarStack = /*#__PURE__*/React.forwardRef(function AvatarStack(props, ref)
4135
4237
  "data-ui": "AvatarStack"
4136
4238
  }, restProps, {
4137
4239
  ref: ref,
4138
- size: size
4240
+ "$size": size
4139
4241
  }), len === 0 && /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(AvatarCounter, {
4140
- count: len,
4141
- tone: tone
4242
+ count: len
4142
4243
  })), len !== 0 && extraCount > 1 && /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(AvatarCounter, {
4143
4244
  count: extraCount,
4144
- size: size,
4145
- tone: tone
4245
+ size: size
4146
4246
  })), visibleChildren.map(function (child, childIndex) {
4147
4247
  return /*#__PURE__*/React__default["default"].createElement("div", {
4148
4248
  key: String(childIndex)
4149
4249
  }, /*#__PURE__*/React.cloneElement(child, {
4150
- size: size,
4151
- tone: tone
4250
+ size: size
4152
4251
  }));
4153
4252
  }));
4154
4253
  });
4155
4254
 
4156
- var _excluded$D = ["as", "column", "columnStart", "columnEnd", "display", "flex", "height", "margin", "marginX", "marginY", "marginTop", "marginRight", "marginBottom", "marginLeft", "overflow", "padding", "paddingX", "paddingY", "paddingTop", "paddingRight", "paddingBottom", "paddingLeft", "row", "rowStart", "rowEnd", "sizing"];
4255
+ var _excluded$E = ["as", "column", "columnStart", "columnEnd", "display", "flex", "height", "margin", "marginX", "marginY", "marginTop", "marginRight", "marginBottom", "marginLeft", "overflow", "padding", "paddingX", "paddingY", "paddingTop", "paddingRight", "paddingBottom", "paddingLeft", "row", "rowStart", "rowEnd", "sizing"];
4157
4256
  var Root$A = styled__default["default"].div(boxStyle, flexItemStyle, responsiveBoxStyle, responsiveGridItemStyle, responsiveMarginStyle, responsivePaddingStyle);
4158
4257
  /**
4159
4258
  * @public
@@ -4190,56 +4289,56 @@ var Box = /*#__PURE__*/React.forwardRef(function Box(props, ref) {
4190
4289
  rowStart = props.rowStart,
4191
4290
  rowEnd = props.rowEnd,
4192
4291
  sizing = props.sizing,
4193
- restProps = _objectWithoutPropertiesLoose(props, _excluded$D);
4292
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$E);
4194
4293
 
4195
4294
  return /*#__PURE__*/React__default["default"].createElement(Root$A, _extends({
4196
- "data-as": asProp,
4295
+ "data-as": typeof asProp === 'string' ? asProp : undefined,
4197
4296
  "data-ui": "Box"
4198
4297
  }, restProps, {
4199
- "$column": column,
4200
- "$columnStart": columnStart,
4201
- "$columnEnd": columnEnd,
4202
- "$display": display,
4203
- "$flex": flex,
4204
- "$height": height,
4205
- "$margin": margin,
4206
- "$marginX": marginX,
4207
- "$marginY": marginY,
4208
- "$marginTop": marginTop,
4209
- "$marginRight": marginRight,
4210
- "$marginBottom": marginBottom,
4211
- "$marginLeft": marginLeft,
4212
- "$overflow": overflow,
4213
- "$padding": padding,
4214
- "$paddingX": paddingX,
4215
- "$paddingY": paddingY,
4216
- "$paddingTop": paddingTop,
4217
- "$paddingRight": paddingRight,
4218
- "$paddingBottom": paddingBottom,
4219
- "$paddingLeft": paddingLeft,
4220
- "$row": row,
4221
- "$rowStart": rowStart,
4222
- "$rowEnd": rowEnd,
4223
- "$sizing": sizing,
4298
+ "$column": useArrayProp(column),
4299
+ "$columnStart": useArrayProp(columnStart),
4300
+ "$columnEnd": useArrayProp(columnEnd),
4301
+ "$display": useArrayProp(display),
4302
+ "$flex": useArrayProp(flex),
4303
+ "$height": useArrayProp(height),
4304
+ "$margin": useArrayProp(margin),
4305
+ "$marginX": useArrayProp(marginX),
4306
+ "$marginY": useArrayProp(marginY),
4307
+ "$marginTop": useArrayProp(marginTop),
4308
+ "$marginRight": useArrayProp(marginRight),
4309
+ "$marginBottom": useArrayProp(marginBottom),
4310
+ "$marginLeft": useArrayProp(marginLeft),
4311
+ "$overflow": useArrayProp(overflow),
4312
+ "$padding": useArrayProp(padding),
4313
+ "$paddingX": useArrayProp(paddingX),
4314
+ "$paddingY": useArrayProp(paddingY),
4315
+ "$paddingTop": useArrayProp(paddingTop),
4316
+ "$paddingRight": useArrayProp(paddingRight),
4317
+ "$paddingBottom": useArrayProp(paddingBottom),
4318
+ "$paddingLeft": useArrayProp(paddingLeft),
4319
+ "$row": useArrayProp(row),
4320
+ "$rowStart": useArrayProp(rowStart),
4321
+ "$rowEnd": useArrayProp(rowEnd),
4322
+ "$sizing": useArrayProp(sizing),
4224
4323
  as: asProp,
4225
4324
  ref: ref
4226
4325
  }), props.children);
4227
4326
  });
4228
4327
 
4229
- var _templateObject$y, _templateObject2$l, _templateObject3$c;
4328
+ var _templateObject$x, _templateObject2$k, _templateObject3$b;
4230
4329
  function labelBaseStyle(props) {
4231
4330
  var $accent = props.$accent,
4232
4331
  $muted = props.$muted,
4233
4332
  theme = props.theme;
4234
4333
  var fonts = theme.sanity.fonts;
4235
- return styled.css(_templateObject$y || (_templateObject$y = _taggedTemplateLiteralLoose(["\n text-transform: uppercase;\n\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), $accent && styled.css(_templateObject2$l || (_templateObject2$l = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && styled.css(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), fonts.code.family);
4334
+ return styled.css(_templateObject$x || (_templateObject$x = _taggedTemplateLiteralLoose(["\n text-transform: uppercase;\n\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), $accent && styled.css(_templateObject2$k || (_templateObject2$k = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && styled.css(_templateObject3$b || (_templateObject3$b = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), fonts.code.family);
4236
4335
  }
4237
4336
 
4238
- var _excluded$C = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
4337
+ var _excluded$D = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
4239
4338
 
4240
- var _templateObject$x;
4339
+ var _templateObject$w;
4241
4340
  var Root$z = styled__default["default"].div(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle);
4242
- var SpanWithTextOverflow$1 = styled__default["default"].span(_templateObject$x || (_templateObject$x = _taggedTemplateLiteralLoose(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"])));
4341
+ var SpanWithTextOverflow$1 = styled__default["default"].span(_templateObject$w || (_templateObject$w = _taggedTemplateLiteralLoose(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"])));
4243
4342
  /**
4244
4343
  * @public
4245
4344
  */
@@ -4254,7 +4353,7 @@ var Label = /*#__PURE__*/React.forwardRef(function Label(props, ref) {
4254
4353
  size = _props$size === void 0 ? 2 : _props$size,
4255
4354
  textOverflow = props.textOverflow,
4256
4355
  weight = props.weight,
4257
- restProps = _objectWithoutPropertiesLoose(props, _excluded$C);
4356
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$D);
4258
4357
 
4259
4358
  var children = childrenProp;
4260
4359
 
@@ -4268,9 +4367,9 @@ var Label = /*#__PURE__*/React.forwardRef(function Label(props, ref) {
4268
4367
  "data-ui": "Label"
4269
4368
  }, restProps, {
4270
4369
  "$accent": accent,
4271
- "$align": align,
4370
+ "$align": useArrayProp(align),
4272
4371
  "$muted": muted,
4273
- "$size": size,
4372
+ "$size": useArrayProp(size),
4274
4373
  "$weight": weight,
4275
4374
  ref: ref
4276
4375
  }), children);
@@ -4293,7 +4392,7 @@ function badgeStyle(props) {
4293
4392
  };
4294
4393
  }
4295
4394
 
4296
- var _excluded$B = ["children", "fontSize", "mode", "padding", "radius", "tone"];
4395
+ var _excluded$C = ["children", "fontSize", "mode", "padding", "radius", "tone"];
4297
4396
  var Root$y = styled__default["default"](Box)(responsiveRadiusStyle, badgeStyle);
4298
4397
  /**
4299
4398
  * @public
@@ -4310,22 +4409,22 @@ var Badge = /*#__PURE__*/React.forwardRef(function Badge(props, ref) {
4310
4409
  radius = _props$radius === void 0 ? 2 : _props$radius,
4311
4410
  _props$tone = props.tone,
4312
4411
  tone = _props$tone === void 0 ? 'default' : _props$tone,
4313
- restProps = _objectWithoutPropertiesLoose(props, _excluded$B);
4412
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$C);
4314
4413
 
4315
4414
  return /*#__PURE__*/React__default["default"].createElement(Root$y, _extends({
4316
4415
  "data-ui": "Badge"
4317
4416
  }, restProps, {
4318
4417
  "$mode": mode,
4319
4418
  "$tone": tone,
4320
- "$radius": radius,
4321
- padding: padding,
4419
+ "$radius": useArrayProp(radius),
4420
+ padding: useArrayProp(padding),
4322
4421
  ref: ref
4323
4422
  }), /*#__PURE__*/React__default["default"].createElement(Label, {
4324
4423
  size: fontSize
4325
4424
  }, children));
4326
4425
  });
4327
4426
 
4328
- var _excluded$A = ["align", "as", "direction", "gap", "justify", "wrap"];
4427
+ var _excluded$B = ["align", "as", "direction", "gap", "justify", "wrap"];
4329
4428
  var Root$x = styled__default["default"](Box)(flexItemStyle, responsiveFlexStyle);
4330
4429
  /**
4331
4430
  * @public
@@ -4339,24 +4438,24 @@ var Flex = /*#__PURE__*/React.forwardRef(function Flex(props, ref) {
4339
4438
  gap = props.gap,
4340
4439
  justify = props.justify,
4341
4440
  wrap = props.wrap,
4342
- restProps = _objectWithoutPropertiesLoose(props, _excluded$A);
4441
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$B);
4343
4442
 
4344
4443
  return /*#__PURE__*/React__default["default"].createElement(Root$x, _extends({
4345
4444
  "data-ui": "Flex"
4346
4445
  }, restProps, {
4347
- "$align": align,
4348
- "$direction": direction,
4349
- "$gap": gap,
4350
- "$justify": justify,
4351
- "$wrap": wrap,
4446
+ "$align": useArrayProp(align),
4447
+ "$direction": useArrayProp(direction),
4448
+ "$gap": useArrayProp(gap),
4449
+ "$justify": useArrayProp(justify),
4450
+ "$wrap": useArrayProp(wrap),
4352
4451
  forwardedAs: as,
4353
4452
  ref: ref
4354
4453
  }));
4355
4454
  });
4356
4455
 
4357
- var _templateObject$w, _templateObject2$k;
4358
- var rotate$1 = styled.keyframes(_templateObject$w || (_templateObject$w = _taggedTemplateLiteralLoose(["\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n"])));
4359
- var Root$w = styled__default["default"](Text)(_templateObject2$k || (_templateObject2$k = _taggedTemplateLiteralLoose(["\n & > span > svg {\n animation: ", " 500ms linear infinite;\n }\n"])), rotate$1);
4456
+ var _templateObject$v, _templateObject2$j;
4457
+ var rotate$1 = styled.keyframes(_templateObject$v || (_templateObject$v = _taggedTemplateLiteralLoose(["\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n"])));
4458
+ var Root$w = styled__default["default"](Text)(_templateObject2$j || (_templateObject2$j = _taggedTemplateLiteralLoose(["\n & > span > svg {\n animation: ", " 500ms linear infinite;\n }\n"])), rotate$1);
4360
4459
  /**
4361
4460
  * @public
4362
4461
  */
@@ -4406,13 +4505,13 @@ function _colorVarsStyle(base, color, checkered) {
4406
4505
  };
4407
4506
  }
4408
4507
 
4409
- var _templateObject$v;
4508
+ var _templateObject$u;
4410
4509
  /**
4411
4510
  * @internal
4412
4511
  */
4413
4512
 
4414
4513
  function buttonBaseStyles() {
4415
- return styled.css(_templateObject$v || (_templateObject$v = _taggedTemplateLiteralLoose(["\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n "])));
4514
+ return styled.css(_templateObject$u || (_templateObject$u = _taggedTemplateLiteralLoose(["\n -webkit-font-smoothing: inherit;\n appearance: none;\n display: inline-flex;\n align-items: center;\n font: inherit;\n border: 0;\n outline: none;\n user-select: none;\n text-decoration: none;\n border: 0;\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n white-space: nowrap;\n text-align: left;\n position: relative;\n\n & > span {\n display: block;\n flex: 1;\n min-width: 0;\n border-radius: inherit;\n }\n\n &::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n "])));
4416
4515
  }
4417
4516
  var buttonTheme = {
4418
4517
  border: {
@@ -4461,11 +4560,11 @@ function buttonColorStyles(props) {
4461
4560
  }, (_theme$sanity$styles = theme.sanity.styles) == null ? void 0 : (_theme$sanity$styles$ = _theme$sanity$styles.button) == null ? void 0 : _theme$sanity$styles$.root].filter(Boolean);
4462
4561
  }
4463
4562
 
4464
- var _excluded$z = ["children", "disabled", "fontSize", "icon", "iconRight", "justify", "loading", "mode", "padding", "paddingX", "paddingY", "paddingTop", "paddingBottom", "paddingLeft", "paddingRight", "radius", "selected", "space", "text", "textAlign", "tone", "type"];
4563
+ var _excluded$A = ["children", "disabled", "fontSize", "icon", "iconRight", "justify", "loading", "mode", "padding", "paddingX", "paddingY", "paddingTop", "paddingBottom", "paddingLeft", "paddingRight", "radius", "selected", "space", "text", "textAlign", "tone", "type"];
4465
4564
 
4466
- var _templateObject$u;
4565
+ var _templateObject$t;
4467
4566
  var Root$v = styled__default["default"].button(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles);
4468
- var LoadingBox = styled__default["default"].div(_templateObject$u || (_templateObject$u = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--card-bg-color);\n border-radius: inherit;\n z-index: 1;\n box-shadow: inherit;\n"])));
4567
+ var LoadingBox = styled__default["default"].div(_templateObject$t || (_templateObject$t = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: var(--card-bg-color);\n border-radius: inherit;\n z-index: 1;\n box-shadow: inherit;\n"])));
4469
4568
  /**
4470
4569
  * @public
4471
4570
  */
@@ -4477,31 +4576,41 @@ var Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
4477
4576
  icon = props.icon,
4478
4577
  iconRight = props.iconRight,
4479
4578
  _props$justify = props.justify,
4480
- justify = _props$justify === void 0 ? 'center' : _props$justify,
4579
+ justifyProp = _props$justify === void 0 ? 'center' : _props$justify,
4481
4580
  loading = props.loading,
4482
4581
  _props$mode = props.mode,
4483
4582
  mode = _props$mode === void 0 ? 'default' : _props$mode,
4484
4583
  _props$padding = props.padding,
4485
- padding = _props$padding === void 0 ? 3 : _props$padding,
4486
- paddingX = props.paddingX,
4487
- paddingY = props.paddingY,
4488
- paddingTop = props.paddingTop,
4489
- paddingBottom = props.paddingBottom,
4490
- paddingLeft = props.paddingLeft,
4491
- paddingRight = props.paddingRight,
4584
+ paddingProp = _props$padding === void 0 ? 3 : _props$padding,
4585
+ paddingXProp = props.paddingX,
4586
+ paddingYProp = props.paddingY,
4587
+ paddingTopProp = props.paddingTop,
4588
+ paddingBottomProp = props.paddingBottom,
4589
+ paddingLeftProp = props.paddingLeft,
4590
+ paddingRightProp = props.paddingRight,
4492
4591
  _props$radius = props.radius,
4493
- radius = _props$radius === void 0 ? 2 : _props$radius,
4592
+ radiusProp = _props$radius === void 0 ? 2 : _props$radius,
4494
4593
  selected = props.selected,
4495
4594
  _props$space = props.space,
4496
- space = _props$space === void 0 ? 3 : _props$space,
4595
+ spaceProp = _props$space === void 0 ? 3 : _props$space,
4497
4596
  text = props.text,
4498
4597
  textAlign = props.textAlign,
4499
4598
  _props$tone = props.tone,
4500
4599
  tone = _props$tone === void 0 ? 'default' : _props$tone,
4501
4600
  _props$type = props.type,
4502
4601
  type = _props$type === void 0 ? 'button' : _props$type,
4503
- restProps = _objectWithoutPropertiesLoose(props, _excluded$z);
4602
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$A);
4504
4603
 
4604
+ var justify = useArrayProp(justifyProp);
4605
+ var padding = useArrayProp(paddingProp);
4606
+ var paddingX = useArrayProp(paddingXProp);
4607
+ var paddingY = useArrayProp(paddingYProp);
4608
+ var paddingTop = useArrayProp(paddingTopProp);
4609
+ var paddingBottom = useArrayProp(paddingBottomProp);
4610
+ var paddingLeft = useArrayProp(paddingLeftProp);
4611
+ var paddingRight = useArrayProp(paddingRightProp);
4612
+ var radius = useArrayProp(radiusProp);
4613
+ var space = useArrayProp(spaceProp);
4505
4614
  var theme = useTheme();
4506
4615
  var boxProps = React.useMemo(function () {
4507
4616
  return {
@@ -4549,7 +4658,7 @@ var Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
4549
4658
  }, boxProps), children));
4550
4659
  });
4551
4660
 
4552
- var _templateObject$t, _templateObject2$j, _templateObject3$b;
4661
+ var _templateObject$s, _templateObject2$i, _templateObject3$a;
4553
4662
  function cardStyle(props) {
4554
4663
  return [cardBaseStyle(props), cardColorStyle(props)];
4555
4664
  }
@@ -4557,7 +4666,7 @@ function cardBaseStyle(props) {
4557
4666
  var $checkered = props.$checkered,
4558
4667
  theme = props.theme;
4559
4668
  var space = theme.sanity.space;
4560
- return styled.css(_templateObject$t || (_templateObject$t = _taggedTemplateLiteralLoose(["\n ", "\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n "])), $checkered && styled.css(_templateObject2$j || (_templateObject2$j = _taggedTemplateLiteralLoose(["\n background-size: ", "px ", "px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n "])), space[3], space[3]));
4669
+ return styled.css(_templateObject$s || (_templateObject$s = _taggedTemplateLiteralLoose(["\n ", "\n\n &[data-as='button'] {\n -webkit-font-smoothing: inherit;\n appearance: none;\n outline: none;\n font: inherit;\n text-align: inherit;\n border: 0;\n width: stretch;\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n outline: none;\n text-decoration: none;\n }\n\n /* &:is(pre) */\n &[data-as='pre'] {\n font: inherit;\n }\n "])), $checkered && styled.css(_templateObject2$i || (_templateObject2$i = _taggedTemplateLiteralLoose(["\n background-size: ", "px ", "px;\n background-position: 50% 50%;\n background-image: var(--card-bg-image);\n "])), space[3], space[3]));
4561
4670
  }
4562
4671
  function cardColorStyle(props) {
4563
4672
  var _theme$sanity$styles, _theme$sanity$styles$;
@@ -4573,7 +4682,7 @@ function cardColorStyle(props) {
4573
4682
  width: 0,
4574
4683
  color: 'var(--card-border-color)'
4575
4684
  };
4576
- return styled.css(_templateObject3$b || (_templateObject3$b = _taggedTemplateLiteralLoose(["\n ", "\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ", "\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ", "\n }\n\n &[data-selected] {\n ", "\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &:hover {\n ", "\n }\n\n &:active {\n ", "\n }\n }\n }\n\n &:focus {\n --card-focus-ring-box-shadow: ", ";\n }\n\n &:focus:not(:focus-visible) {\n --card-focus-ring-box-shadow: ", ";\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ", "\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ", "\n }\n\n &[data-selected] {\n ", "\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &:hover {\n ", "\n }\n\n &:active {\n ", "\n }\n }\n }\n\n &:focus {\n --card-focus-ring-box-shadow: ", ";\n }\n\n &:focus:not(:focus-visible) {\n --card-focus-ring-box-shadow: ", ";\n }\n }\n }\n\n ", "\n "])), _colorVarsStyle(base, card.enabled, $checkered), _colorVarsStyle(base, card.disabled, $checkered), _colorVarsStyle(base, card.pressed, $checkered), _colorVarsStyle(base, card.selected, $checkered), _colorVarsStyle(base, card.hovered, $checkered), _colorVarsStyle(base, card.pressed, $checkered), $focusRing ? focusRingStyle({
4685
+ return styled.css(_templateObject3$a || (_templateObject3$a = _taggedTemplateLiteralLoose(["\n ", "\n\n background-color: var(--card-bg-color);\n color: var(--card-fg-color);\n\n /* &:is(button) */\n &[data-as='button'] {\n --card-focus-ring-box-shadow: none;\n\n cursor: default;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &:disabled {\n ", "\n }\n\n &:not(:disabled) {\n &[data-pressed] {\n ", "\n }\n\n &[data-selected] {\n ", "\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &:hover {\n ", "\n }\n\n &:active {\n ", "\n }\n }\n }\n\n &:focus {\n --card-focus-ring-box-shadow: ", ";\n }\n\n &:focus:not(:focus-visible) {\n --card-focus-ring-box-shadow: ", ";\n }\n }\n }\n\n /* &:is(a) */\n &[data-as='a'] {\n cursor: pointer;\n box-shadow: var(--card-focus-ring-box-shadow);\n\n &[data-disabled] {\n ", "\n }\n\n &:not([data-disabled]) {\n &[data-pressed] {\n ", "\n }\n\n &[data-selected] {\n ", "\n }\n\n @media (hover: hover) {\n &:not([data-pressed]):not([data-selected]) {\n &:hover {\n ", "\n }\n\n &:active {\n ", "\n }\n }\n }\n\n &:focus {\n --card-focus-ring-box-shadow: ", ";\n }\n\n &:focus:not(:focus-visible) {\n --card-focus-ring-box-shadow: ", ";\n }\n }\n }\n\n ", "\n "])), _colorVarsStyle(base, card.enabled, $checkered), _colorVarsStyle(base, card.disabled, $checkered), _colorVarsStyle(base, card.pressed, $checkered), _colorVarsStyle(base, card.selected, $checkered), _colorVarsStyle(base, card.hovered, $checkered), _colorVarsStyle(base, card.pressed, $checkered), $focusRing ? focusRingStyle({
4577
4686
  base: base,
4578
4687
  border: border,
4579
4688
  focusRing: focusRing
@@ -4584,16 +4693,14 @@ function cardColorStyle(props) {
4584
4693
  }) : 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);
4585
4694
  }
4586
4695
 
4587
- var _excluded$y = ["pressed", "__unstable_checkered", "__unstable_focusRing", "as", "border", "borderTop", "borderRight", "borderBottom", "borderLeft", "radius", "scheme", "selected", "shadow", "tone"];
4696
+ var _excluded$z = ["__unstable_checkered", "__unstable_focusRing", "as", "border", "borderTop", "borderRight", "borderBottom", "borderLeft", "pressed", "radius", "scheme", "selected", "shadow", "tone"];
4588
4697
  var Root$u = styled__default["default"](Box)(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle);
4589
4698
  /**
4590
4699
  * @public
4591
4700
  */
4592
4701
 
4593
4702
  var Card = /*#__PURE__*/React.forwardRef(function Card(props, ref) {
4594
- var _props$pressed = props.pressed,
4595
- pressed = _props$pressed === void 0 ? false : _props$pressed,
4596
- _props$__unstable_che = props.__unstable_checkered,
4703
+ var _props$__unstable_che = props.__unstable_checkered,
4597
4704
  checkered = _props$__unstable_che === void 0 ? false : _props$__unstable_che,
4598
4705
  _props$__unstable_foc = props.__unstable_focusRing,
4599
4706
  focusRing = _props$__unstable_foc === void 0 ? false : _props$__unstable_foc,
@@ -4603,6 +4710,7 @@ var Card = /*#__PURE__*/React.forwardRef(function Card(props, ref) {
4603
4710
  borderRight = props.borderRight,
4604
4711
  borderBottom = props.borderBottom,
4605
4712
  borderLeft = props.borderLeft,
4713
+ pressed = props.pressed,
4606
4714
  _props$radius = props.radius,
4607
4715
  radius = _props$radius === void 0 ? 0 : _props$radius,
4608
4716
  scheme = props.scheme,
@@ -4610,7 +4718,7 @@ var Card = /*#__PURE__*/React.forwardRef(function Card(props, ref) {
4610
4718
  shadow = props.shadow,
4611
4719
  _props$tone = props.tone,
4612
4720
  toneProp = _props$tone === void 0 ? 'default' : _props$tone,
4613
- restProps = _objectWithoutPropertiesLoose(props, _excluded$y);
4721
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$z);
4614
4722
 
4615
4723
  var as = ReactIs.isValidElementType(asProp) ? asProp : 'div';
4616
4724
  var rootTheme = useRootTheme();
@@ -4620,32 +4728,32 @@ var Card = /*#__PURE__*/React.forwardRef(function Card(props, ref) {
4620
4728
  tone: tone
4621
4729
  }, /*#__PURE__*/React__default["default"].createElement(Root$u, _extends({
4622
4730
  "data-as": typeof as === 'string' ? as : undefined,
4623
- "data-checkered": checkered ? '' : undefined,
4624
- "data-pressed": pressed ? '' : undefined,
4625
4731
  "data-scheme": rootTheme.scheme,
4626
- "data-selected": selected ? '' : undefined,
4627
4732
  "data-ui": "Card",
4628
4733
  "data-tone": tone
4629
4734
  }, restProps, {
4630
- "$border": border,
4631
- "$borderTop": borderTop,
4632
- "$borderRight": borderRight,
4633
- "$borderBottom": borderBottom,
4634
- "$borderLeft": borderLeft,
4735
+ "$border": useArrayProp(border),
4736
+ "$borderTop": useArrayProp(borderTop),
4737
+ "$borderRight": useArrayProp(borderRight),
4738
+ "$borderBottom": useArrayProp(borderBottom),
4739
+ "$borderLeft": useArrayProp(borderLeft),
4635
4740
  "$checkered": checkered,
4636
4741
  "$focusRing": focusRing,
4637
- "$radius": radius,
4638
- "$shadow": shadow,
4742
+ "$radius": useArrayProp(radius),
4743
+ "$shadow": useArrayProp(shadow),
4639
4744
  "$tone": tone,
4745
+ "data-checkered": checkered ? '' : undefined,
4746
+ "data-pressed": pressed ? '' : undefined,
4747
+ "data-selected": selected ? '' : undefined,
4640
4748
  forwardedAs: as,
4641
4749
  ref: ref,
4642
4750
  selected: selected
4643
4751
  })));
4644
4752
  });
4645
4753
 
4646
- var _templateObject$s, _templateObject2$i;
4754
+ var _templateObject$r, _templateObject2$h;
4647
4755
  function checkboxBaseStyles() {
4648
- return styled.css(_templateObject$s || (_templateObject$s = _taggedTemplateLiteralLoose(["\n position: relative;\n display: inline-block;\n "])));
4756
+ return styled.css(_templateObject$r || (_templateObject$r = _taggedTemplateLiteralLoose(["\n position: relative;\n display: inline-block;\n "])));
4649
4757
  }
4650
4758
  function inputElementStyles(props) {
4651
4759
  var theme = props.theme;
@@ -4654,7 +4762,7 @@ function inputElementStyles(props) {
4654
4762
  focusRing = _theme$sanity.focusRing,
4655
4763
  input = _theme$sanity.input,
4656
4764
  radius = _theme$sanity.radius;
4657
- return styled.css(_templateObject2$i || (_templateObject2$i = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ", ";\n width: ", ";\n box-sizing: border-box;\n box-shadow: ", ";\n border-radius: ", ";\n line-height: 1;\n background-color: ", ";\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 2 !important;\n }\n }\n }\n\n &:not(:disabled):focus + span {\n box-shadow: ", ";\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ", ";\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n\n &[data-read-only] + span {\n background-color: ", ";\n box-shadow: ", ";\n color: ", ";\n }\n\n &:not([data-read-only]):disabled + span {\n background-color: ", ";\n box-shadow: ", ";\n color: ", ";\n }\n\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n "])), rem(input.checkbox.size), rem(input.checkbox.size), focusRingBorderStyle({
4765
+ return styled.css(_templateObject2$h || (_templateObject2$h = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n outline: none;\n opacity: 0;\n z-index: 1;\n padding: 0;\n margin: 0;\n\n & + span {\n position: relative;\n display: block;\n height: ", ";\n width: ", ";\n box-sizing: border-box;\n box-shadow: ", ";\n border-radius: ", ";\n line-height: 1;\n background-color: ", ";\n\n & > svg {\n display: block;\n position: absolute;\n opacity: 0;\n height: 100%;\n width: 100%;\n\n & > path {\n vector-effect: non-scaling-stroke;\n stroke-width: 2 !important;\n }\n }\n }\n\n &:not(:disabled):focus + span {\n box-shadow: ", ";\n }\n\n &:not(:disabled):focus:not(:focus-visible) + span {\n box-shadow: ", ";\n }\n\n &:checked + span > svg:first-child {\n opacity: 1;\n }\n\n &[data-read-only] + span {\n background-color: ", ";\n box-shadow: ", ";\n color: ", ";\n }\n\n &:not([data-read-only]):disabled + span {\n background-color: ", ";\n box-shadow: ", ";\n color: ", ";\n }\n\n &:indeterminate + span > svg:last-child {\n opacity: 1;\n }\n "])), rem(input.checkbox.size), rem(input.checkbox.size), focusRingBorderStyle({
4658
4766
  color: color["default"].enabled.border,
4659
4767
  width: input.border.width
4660
4768
  }), rem(radius[2]), color["default"].enabled.bg, focusRingStyle({
@@ -4675,7 +4783,7 @@ function inputElementStyles(props) {
4675
4783
  }), color["default"].disabled.fg);
4676
4784
  }
4677
4785
 
4678
- var _excluded$x = ["checked", "className", "disabled", "indeterminate", "customValidity", "readOnly", "style"];
4786
+ var _excluded$y = ["checked", "className", "disabled", "indeterminate", "customValidity", "readOnly", "style"];
4679
4787
  var Root$t = styled__default["default"].div(checkboxBaseStyles);
4680
4788
  var Input$5 = styled__default["default"].input(inputElementStyles);
4681
4789
  /**
@@ -4690,7 +4798,7 @@ var Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(props, forwardedR
4690
4798
  customValidity = props.customValidity,
4691
4799
  readOnly = props.readOnly,
4692
4800
  style = props.style,
4693
- restProps = _objectWithoutPropertiesLoose(props, _excluded$x);
4801
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$y);
4694
4802
 
4695
4803
  var ref = useForwardedRef(forwardedRef);
4696
4804
  useCustomValidity(ref, customValidity);
@@ -4715,7 +4823,7 @@ var Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(props, forwardedR
4715
4823
  })), /*#__PURE__*/React__default["default"].createElement("span", null, /*#__PURE__*/React__default["default"].createElement(icons.CheckmarkIcon, null), /*#__PURE__*/React__default["default"].createElement(icons.RemoveIcon, null)));
4716
4824
  });
4717
4825
 
4718
- var _templateObject$r;
4826
+ var _templateObject$q;
4719
4827
 
4720
4828
  function codeSyntaxHighlightingStyle(_ref) {
4721
4829
  var theme = _ref.theme;
@@ -4833,10 +4941,10 @@ function codeSyntaxHighlightingStyle(_ref) {
4833
4941
  }
4834
4942
 
4835
4943
  function codeBaseStyle() {
4836
- return styled.css(_templateObject$r || (_templateObject$r = _taggedTemplateLiteralLoose(["\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ", "\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), codeSyntaxHighlightingStyle);
4944
+ return styled.css(_templateObject$q || (_templateObject$q = _taggedTemplateLiteralLoose(["\n color: var(--card-code-fg-color);\n\n & code {\n font-family: inherit;\n\n &.refractor .token {\n ", "\n }\n }\n\n & a {\n color: inherit;\n text-decoration: underline;\n border-radius: 1px;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), codeSyntaxHighlightingStyle);
4837
4945
  }
4838
4946
 
4839
- var _excluded$w = ["children", "language", "size", "weight"];
4947
+ var _excluded$x = ["children", "language", "size", "weight"];
4840
4948
  var Root$s = styled__default["default"].pre(codeBaseStyle, responsiveCodeFontStyle);
4841
4949
  /**
4842
4950
  * @public
@@ -4848,14 +4956,14 @@ var Code = /*#__PURE__*/React.forwardRef(function Code(props, ref) {
4848
4956
  _props$size = props.size,
4849
4957
  size = _props$size === void 0 ? 2 : _props$size,
4850
4958
  weight = props.weight,
4851
- restProps = _objectWithoutPropertiesLoose(props, _excluded$w);
4959
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$x);
4852
4960
 
4853
4961
  var language = typeof languageProp === 'string' ? languageProp : undefined;
4854
4962
  var registered = language ? Refractor__default["default"].hasLanguage(language) : false;
4855
4963
  return /*#__PURE__*/React__default["default"].createElement(Root$s, _extends({
4856
4964
  "data-ui": "Code"
4857
4965
  }, restProps, {
4858
- "$size": size,
4966
+ "$size": useArrayProp(size),
4859
4967
  "$weight": weight,
4860
4968
  ref: ref
4861
4969
  }), !(language && registered) && /*#__PURE__*/React__default["default"].createElement("code", null, children), language && registered && /*#__PURE__*/React__default["default"].createElement(Refractor__default["default"], {
@@ -4877,14 +4985,14 @@ function responsiveContainerWidthStyle(props) {
4877
4985
  var _theme$sanity = theme.sanity,
4878
4986
  container = _theme$sanity.container,
4879
4987
  media = _theme$sanity.media;
4880
- return responsive(media, getResponsiveProp(props.$width), function (val) {
4988
+ return _responsive(media, props.$width, function (val) {
4881
4989
  return {
4882
4990
  maxWidth: val === 'auto' ? 'none' : rem(container[val])
4883
4991
  };
4884
4992
  });
4885
4993
  }
4886
4994
 
4887
- var _excluded$v = ["as", "width"];
4995
+ var _excluded$w = ["as", "width"];
4888
4996
  var Root$r = styled__default["default"](Box)(containerBaseStyle, responsiveContainerWidthStyle);
4889
4997
  /**
4890
4998
  * @public
@@ -4894,18 +5002,18 @@ var Container = /*#__PURE__*/React.forwardRef(function Container(props, ref) {
4894
5002
  var as = props.as,
4895
5003
  _props$width = props.width,
4896
5004
  width = _props$width === void 0 ? 2 : _props$width,
4897
- restProps = _objectWithoutPropertiesLoose(props, _excluded$v);
5005
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$w);
4898
5006
 
4899
5007
  return /*#__PURE__*/React__default["default"].createElement(Root$r, _extends({
4900
5008
  "data-ui": "Container"
4901
5009
  }, restProps, {
4902
- "$width": width,
5010
+ "$width": useArrayProp(width),
4903
5011
  forwardedAs: as,
4904
5012
  ref: ref
4905
5013
  }));
4906
5014
  });
4907
5015
 
4908
- var _excluded$u = ["as", "autoRows", "autoCols", "autoFlow", "columns", "gap", "gapX", "gapY", "rows", "children"];
5016
+ var _excluded$v = ["as", "autoRows", "autoCols", "autoFlow", "columns", "gap", "gapX", "gapY", "rows", "children"];
4909
5017
  var Root$q = styled__default["default"](Box)(responsiveGridStyle);
4910
5018
  /**
4911
5019
  * @public
@@ -4922,38 +5030,38 @@ var Grid = /*#__PURE__*/React.forwardRef(function Grid(props, ref) {
4922
5030
  gapY = props.gapY,
4923
5031
  rows = props.rows,
4924
5032
  children = props.children,
4925
- restProps = _objectWithoutPropertiesLoose(props, _excluded$u);
5033
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$v);
4926
5034
 
4927
5035
  return /*#__PURE__*/React__default["default"].createElement(Root$q, _extends({
4928
5036
  "data-as": typeof as === 'string' ? as : undefined,
4929
5037
  "data-ui": "Grid"
4930
5038
  }, restProps, {
4931
- "$autoRows": autoRows,
4932
- "$autoCols": autoCols,
4933
- "$autoFlow": autoFlow,
4934
- "$columns": columns,
4935
- "$gap": gap,
4936
- "$gapX": gapX,
4937
- "$gapY": gapY,
4938
- "$rows": rows,
5039
+ "$autoRows": useArrayProp(autoRows),
5040
+ "$autoCols": useArrayProp(autoCols),
5041
+ "$autoFlow": useArrayProp(autoFlow),
5042
+ "$columns": useArrayProp(columns),
5043
+ "$gap": useArrayProp(gap),
5044
+ "$gapX": useArrayProp(gapX),
5045
+ "$gapY": useArrayProp(gapY),
5046
+ "$rows": useArrayProp(rows),
4939
5047
  forwardedAs: as,
4940
5048
  ref: ref
4941
5049
  }), children);
4942
5050
  });
4943
5051
 
4944
- var _templateObject$q, _templateObject2$h, _templateObject3$a;
5052
+ var _templateObject$p, _templateObject2$g, _templateObject3$9;
4945
5053
  function headingBaseStyle(props) {
4946
5054
  var $accent = props.$accent,
4947
5055
  $muted = props.$muted,
4948
5056
  theme = props.theme;
4949
- return styled.css(_templateObject$q || (_templateObject$q = _taggedTemplateLiteralLoose(["\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow: 0 0 0 1px var(--card-bg-color), 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), $accent && styled.css(_templateObject2$h || (_templateObject2$h = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && styled.css(_templateObject3$a || (_templateObject3$a = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), theme.sanity.fonts.code.family);
5057
+ return styled.css(_templateObject$p || (_templateObject$p = _taggedTemplateLiteralLoose(["\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow: 0 0 0 1px var(--card-bg-color), 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), $accent && styled.css(_templateObject2$g || (_templateObject2$g = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && styled.css(_templateObject3$9 || (_templateObject3$9 = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), theme.sanity.fonts.code.family);
4950
5058
  }
4951
5059
 
4952
- var _excluded$t = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
5060
+ var _excluded$u = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
4953
5061
 
4954
- var _templateObject$p;
5062
+ var _templateObject$o;
4955
5063
  var Root$p = styled__default["default"].div(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont);
4956
- var SpanWithTextOverflow = styled__default["default"].span(_templateObject$p || (_templateObject$p = _taggedTemplateLiteralLoose(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"])));
5064
+ var SpanWithTextOverflow = styled__default["default"].span(_templateObject$o || (_templateObject$o = _taggedTemplateLiteralLoose(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"])));
4957
5065
  /**
4958
5066
  * @public
4959
5067
  */
@@ -4969,7 +5077,7 @@ var Heading = /*#__PURE__*/React.forwardRef(function Heading(props, ref) {
4969
5077
  size = _props$size === void 0 ? 2 : _props$size,
4970
5078
  textOverflow = props.textOverflow,
4971
5079
  weight = props.weight,
4972
- restProps = _objectWithoutPropertiesLoose(props, _excluded$t);
5080
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$u);
4973
5081
 
4974
5082
  var children = childrenProp;
4975
5083
 
@@ -4981,9 +5089,9 @@ var Heading = /*#__PURE__*/React.forwardRef(function Heading(props, ref) {
4981
5089
  "data-ui": "Heading"
4982
5090
  }, restProps, {
4983
5091
  "$accent": accent,
4984
- "$align": align,
5092
+ "$align": useArrayProp(align),
4985
5093
  "$muted": muted,
4986
- "$size": size,
5094
+ "$size": useArrayProp(size),
4987
5095
  "$weight": weight,
4988
5096
  ref: ref
4989
5097
  }), /*#__PURE__*/React__default["default"].createElement("span", null, children));
@@ -5003,7 +5111,7 @@ function inlineBaseStyle() {
5003
5111
  }
5004
5112
  function inlineSpaceStyle(props) {
5005
5113
  var theme = props.theme;
5006
- return responsive(theme.sanity.media, getResponsiveProp(props.$space), function (spaceIndex) {
5114
+ return _responsive(theme.sanity.media, props.$space, function (spaceIndex) {
5007
5115
  var space = rem(theme.sanity.space[spaceIndex]);
5008
5116
  return {
5009
5117
  margin: "-" + space + " 0 0 -" + space,
@@ -5014,7 +5122,7 @@ function inlineSpaceStyle(props) {
5014
5122
  });
5015
5123
  }
5016
5124
 
5017
- var _excluded$s = ["as", "children", "space"];
5125
+ var _excluded$t = ["as", "children", "space"];
5018
5126
  var Root$o = styled__default["default"](Box)(inlineBaseStyle, inlineSpaceStyle);
5019
5127
  /**
5020
5128
  * @public
@@ -5024,28 +5132,30 @@ var Inline = /*#__PURE__*/React.forwardRef(function Inline(props, ref) {
5024
5132
  var as = props.as,
5025
5133
  childrenProp = props.children,
5026
5134
  space = props.space,
5027
- restProps = _objectWithoutPropertiesLoose(props, _excluded$s);
5135
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$t);
5028
5136
 
5029
- var children = childrenToElementArray(childrenProp).filter(Boolean);
5137
+ var children = React.useMemo(function () {
5138
+ return childrenToElementArray(childrenProp).filter(Boolean).map(function (child, idx) {
5139
+ return /*#__PURE__*/React__default["default"].createElement("div", {
5140
+ key: idx
5141
+ }, child);
5142
+ });
5143
+ }, [childrenProp]);
5030
5144
  return /*#__PURE__*/React__default["default"].createElement(Root$o, _extends({
5031
5145
  "data-ui": "Inline"
5032
5146
  }, restProps, {
5033
- "$space": space,
5147
+ "$space": useArrayProp(space),
5034
5148
  forwardedAs: as,
5035
5149
  ref: ref
5036
- }), children.map(function (child, idx) {
5037
- return /*#__PURE__*/React__default["default"].createElement("div", {
5038
- key: idx
5039
- }, child);
5040
- }));
5150
+ }), children);
5041
5151
  });
5042
5152
 
5043
- var _excluded$r = ["children", "fontSize", "padding", "radius"];
5153
+ var _excluded$s = ["children", "fontSize", "padding", "radius"];
5044
5154
 
5045
- var _templateObject$o;
5155
+ var _templateObject$n;
5046
5156
 
5047
5157
  function kbdStyle() {
5048
- return styled.css(_templateObject$o || (_templateObject$o = _taggedTemplateLiteralLoose(["\n background: var(--card-bg-color);\n font: inherit;\n box-shadow: inset 0 0 0 1px var(--card-hairline-hard-color);\n\n &:not([hidden]) {\n display: inline-block;\n }\n "])));
5158
+ return styled.css(_templateObject$n || (_templateObject$n = _taggedTemplateLiteralLoose(["\n background: var(--card-bg-color);\n font: inherit;\n box-shadow: inset 0 0 0 1px var(--card-hairline-hard-color);\n\n &:not([hidden]) {\n display: inline-block;\n }\n "])));
5049
5159
  }
5050
5160
 
5051
5161
  var Root$n = styled__default["default"].kbd(responsiveRadiusStyle, kbdStyle);
@@ -5061,12 +5171,12 @@ var KBD = /*#__PURE__*/React.forwardRef(function KBD(props, ref) {
5061
5171
  padding = _props$padding === void 0 ? 1 : _props$padding,
5062
5172
  _props$radius = props.radius,
5063
5173
  radius = _props$radius === void 0 ? 2 : _props$radius,
5064
- restProps = _objectWithoutPropertiesLoose(props, _excluded$r);
5174
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$s);
5065
5175
 
5066
5176
  return /*#__PURE__*/React__default["default"].createElement(Root$n, _extends({
5067
5177
  "data-ui": "KBD"
5068
5178
  }, restProps, {
5069
- "$radius": radius,
5179
+ "$radius": useArrayProp(radius),
5070
5180
  ref: ref
5071
5181
  }), /*#__PURE__*/React__default["default"].createElement(Box, {
5072
5182
  as: "span",
@@ -5120,12 +5230,6 @@ function useBoundaryElement() {
5120
5230
  return value || DEFAULT_VALUE;
5121
5231
  }
5122
5232
 
5123
- /**
5124
- * @internal
5125
- */
5126
-
5127
- var RO = typeof window !== 'undefined' && window.ResizeObserver ? window.ResizeObserver : resizeObserver.ResizeObserver;
5128
-
5129
5233
  function findMaxBreakpoints(media, width) {
5130
5234
  var ret = [];
5131
5235
 
@@ -5153,7 +5257,7 @@ function findMinBreakpoints(media, width) {
5153
5257
  return ret;
5154
5258
  }
5155
5259
 
5156
- var _excluded$q = ["children", "media"];
5260
+ var _excluded$r = ["children", "media"];
5157
5261
  /**
5158
5262
  * DO NOT USE IN PRODUCTION.
5159
5263
  * @beta
@@ -5165,33 +5269,20 @@ var ElementQuery = /*#__PURE__*/React.forwardRef(function ElementQuery(props, re
5165
5269
  var children = props.children,
5166
5270
  _props$media = props.media,
5167
5271
  media = _props$media === void 0 ? theme.sanity.media : _props$media,
5168
- restProps = _objectWithoutPropertiesLoose(props, _excluded$q);
5169
-
5170
- var _useState = React.useState(function () {
5171
- return window.innerWidth;
5172
- }),
5173
- width = _useState[0],
5174
- setWidth = _useState[1];
5272
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$r);
5175
5273
 
5176
5274
  var forwardedRef = useForwardedRef(ref);
5177
5275
 
5178
- var _useState2 = React.useState(null),
5179
- element = _useState2[0],
5180
- setElement = _useState2[1];
5181
-
5182
- React.useEffect(function () {
5183
- if (!element) return;
5276
+ var _useState = React.useState(null),
5277
+ element = _useState[0],
5278
+ setElement = _useState[1];
5184
5279
 
5185
- var handleResizeEntries = function handleResizeEntries(entries) {
5186
- setWidth(entries[0].contentRect.width);
5187
- };
5280
+ var elementSize = useElementSize(element);
5281
+ var width = React.useMemo(function () {
5282
+ var _elementSize$border$w;
5188
5283
 
5189
- var ro = new RO(handleResizeEntries);
5190
- ro.observe(element);
5191
- return function () {
5192
- return ro.disconnect();
5193
- };
5194
- }, [element]);
5284
+ return (_elementSize$border$w = elementSize == null ? void 0 : elementSize.border.width) != null ? _elementSize$border$w : window.innerWidth;
5285
+ }, [elementSize]);
5195
5286
  var max = React.useMemo(function () {
5196
5287
  return findMaxBreakpoints(media, width);
5197
5288
  }, [media, width]);
@@ -5297,7 +5388,7 @@ function LayerProvider(props) {
5297
5388
  _props$zOffset = props.zOffset,
5298
5389
  zOffsetProp = _props$zOffset === void 0 ? 0 : _props$zOffset;
5299
5390
  var parent = React.useContext(LayerContext);
5300
- var zOffset = useResponsiveProp(zOffsetProp);
5391
+ var zOffset = useArrayProp(zOffsetProp);
5301
5392
  var maxMediaIndex = zOffset.length - 1;
5302
5393
  var mediaIndex = Math.min(useMediaIndex(), maxMediaIndex);
5303
5394
  var zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex];
@@ -5335,21 +5426,22 @@ function LayerProvider(props) {
5335
5426
  }, children);
5336
5427
  }
5337
5428
 
5338
- var _excluded$p = ["children", "style"],
5429
+ var _excluded$q = ["children", "style"],
5339
5430
  _excluded2$1 = ["children", "zOffset"];
5340
5431
 
5341
- var _templateObject$n;
5342
- var Root$m = styled__default["default"].div(_templateObject$n || (_templateObject$n = _taggedTemplateLiteralLoose(["\n position: relative;\n"])));
5432
+ var _templateObject$m;
5433
+ var Root$m = styled__default["default"].div(_templateObject$m || (_templateObject$m = _taggedTemplateLiteralLoose(["\n position: relative;\n"])));
5343
5434
  var LayerChildren = /*#__PURE__*/React.forwardRef(function LayerChildren(props, ref) {
5344
5435
  var children = props.children,
5345
5436
  _props$style = props.style,
5346
- style = _props$style === void 0 ? EMPTY_RECORD$1 : _props$style,
5347
- restProps = _objectWithoutPropertiesLoose(props, _excluded$p);
5437
+ style = _props$style === void 0 ? EMPTY_RECORD : _props$style,
5438
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$q);
5348
5439
 
5349
5440
  var _useLayer = useLayer(),
5350
5441
  zIndex = _useLayer.zIndex;
5351
5442
 
5352
5443
  return /*#__PURE__*/React__default["default"].createElement(Root$m, _extends({}, restProps, {
5444
+ "data-ui": "Layer",
5353
5445
  ref: ref,
5354
5446
  style: _extends({}, style, {
5355
5447
  zIndex: zIndex
@@ -5442,14 +5534,14 @@ function Portal(props) {
5442
5534
  function useUnique(value) {
5443
5535
  var valueRef = React.useRef(value);
5444
5536
 
5445
- if (!isEqual(valueRef.current, value)) {
5537
+ if (!_isEqual(valueRef.current, value)) {
5446
5538
  valueRef.current = value;
5447
5539
  }
5448
5540
 
5449
5541
  return valueRef.current;
5450
5542
  }
5451
5543
 
5452
- function isEqual(objA, objB) {
5544
+ function _isEqual(objA, objB) {
5453
5545
  if (!objA || !objB) {
5454
5546
  return objA === objB;
5455
5547
  }
@@ -5491,8 +5583,8 @@ function PortalProvider(props) {
5491
5583
  }, children);
5492
5584
  }
5493
5585
 
5494
- var _templateObject$m;
5495
- var Root$l = styled__default["default"].div(_templateObject$m || (_templateObject$m = _taggedTemplateLiteralLoose(["\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n"])));
5586
+ var _templateObject$l;
5587
+ var Root$l = styled__default["default"].div(_templateObject$l || (_templateObject$l = _taggedTemplateLiteralLoose(["\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n"])));
5496
5588
  /**
5497
5589
  * @public
5498
5590
  */
@@ -5674,11 +5766,11 @@ function _isScrollable(el) {
5674
5766
  return style.overflowX.includes('auto') || style.overflowX.includes('scroll') || style.overflowY.includes('auto') || style.overflowY.includes('scroll');
5675
5767
  }
5676
5768
 
5677
- var _excluded$o = ["as", "gap", "getItemKey", "items", "onChange", "renderItem"];
5769
+ var _excluded$p = ["as", "gap", "getItemKey", "items", "onChange", "renderItem"];
5678
5770
 
5679
- var _templateObject$l, _templateObject2$g;
5680
- var Root$k = styled__default["default"].div(_templateObject$l || (_templateObject$l = _taggedTemplateLiteralLoose(["\n position: relative;\n"])));
5681
- var ItemWrapper = styled__default["default"].div(_templateObject2$g || (_templateObject2$g = _taggedTemplateLiteralLoose(["\n position: absolute;\n left: 0;\n right: 0;\n"])));
5771
+ var _templateObject$k, _templateObject2$f;
5772
+ var Root$k = styled__default["default"].div(_templateObject$k || (_templateObject$k = _taggedTemplateLiteralLoose(["\n position: relative;\n"])));
5773
+ var ItemWrapper = styled__default["default"].div(_templateObject2$f || (_templateObject2$f = _taggedTemplateLiteralLoose(["\n position: absolute;\n left: 0;\n right: 0;\n"])));
5682
5774
  /**
5683
5775
  * @beta
5684
5776
  */
@@ -5693,7 +5785,7 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function VirtualList(props, ref)
5693
5785
  items = _props$items === void 0 ? [] : _props$items,
5694
5786
  onChange = props.onChange,
5695
5787
  renderItem = props.renderItem,
5696
- restProps = _objectWithoutPropertiesLoose(props, _excluded$o);
5788
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$p);
5697
5789
 
5698
5790
  var space = useTheme().sanity.space;
5699
5791
  var forwardedRef = useForwardedRef(ref);
@@ -5738,17 +5830,16 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function VirtualList(props, ref)
5738
5830
  scrollEl.addEventListener('scroll', _handleScroll, {
5739
5831
  passive: true
5740
5832
  });
5741
- var ro = new ResizeObserver(function (entries) {
5742
- setScrollHeight(entries[0].contentRect.height);
5833
+
5834
+ var disposeElementSizeListener = _elementSizeObserver.subscribe(scrollEl, function (scrollElementSize) {
5835
+ setScrollHeight(scrollElementSize.content.height);
5743
5836
  });
5744
- ro.observe(scrollEl);
5745
5837
 
5746
5838
  _handleScroll();
5747
5839
 
5748
5840
  return function () {
5749
5841
  scrollEl.removeEventListener('scroll', _handleScroll);
5750
- ro.unobserve(scrollEl);
5751
- ro.disconnect();
5842
+ disposeElementSizeListener();
5752
5843
  };
5753
5844
  }
5754
5845
 
@@ -5823,13 +5914,13 @@ var VirtualList = /*#__PURE__*/React.forwardRef(function VirtualList(props, ref)
5823
5914
  }, children));
5824
5915
  });
5825
5916
 
5826
- var _templateObject$k, _templateObject2$f, _templateObject3$9;
5827
- var Root$j = styled__default["default"].div(_templateObject$k || (_templateObject$k = _taggedTemplateLiteralLoose(["\n position: absolute;\n pointer-events: none;\n width: 27px;\n height: 27px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n transform-origin: 13.5px 13.5px;\n }\n\n [data-popper-placement^='top'] > div > & {\n bottom: -27px;\n }\n\n [data-popper-placement^='right'] > div > & {\n left: -27px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-popper-placement^='left'] > div > & {\n right: -27px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-popper-placement^='bottom'] > div > & {\n top: -27px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n"])));
5828
- var BorderPath = styled__default["default"].path(_templateObject2$f || (_templateObject2$f = _taggedTemplateLiteralLoose(["\n fill: var(--card-shadow-outline-color);\n"])));
5829
- var ShapePath = styled__default["default"].path(_templateObject3$9 || (_templateObject3$9 = _taggedTemplateLiteralLoose(["\n fill: var(--card-bg-color);\n"])));
5917
+ var _templateObject$j, _templateObject2$e, _templateObject3$8;
5918
+ var Root$j = styled__default["default"].div(_templateObject$j || (_templateObject$j = _taggedTemplateLiteralLoose(["\n position: absolute;\n pointer-events: none;\n width: 27px;\n height: 27px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n transform-origin: 13.5px 13.5px;\n }\n\n [data-placement^='top'] > & {\n bottom: -27px;\n }\n\n [data-placement^='right'] > & {\n left: -27px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -27px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -27px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n"])));
5919
+ var BorderPath = styled__default["default"].path(_templateObject2$e || (_templateObject2$e = _taggedTemplateLiteralLoose(["\n fill: var(--card-shadow-outline-color);\n"])));
5920
+ var ShapePath = styled__default["default"].path(_templateObject3$8 || (_templateObject3$8 = _taggedTemplateLiteralLoose(["\n fill: var(--card-bg-color);\n"])));
5830
5921
  var PopoverArrow = /*#__PURE__*/React.forwardRef(function PopoverArrow(props, ref) {
5831
5922
  return /*#__PURE__*/React__default["default"].createElement(Root$j, _extends({
5832
- "data-ui": "PopoverArrow"
5923
+ "data-ui": "Popover__arrow"
5833
5924
  }, props, {
5834
5925
  ref: ref
5835
5926
  }), /*#__PURE__*/React__default["default"].createElement("svg", {
@@ -5845,316 +5936,309 @@ var PopoverArrow = /*#__PURE__*/React.forwardRef(function PopoverArrow(props, re
5845
5936
  })));
5846
5937
  });
5847
5938
 
5848
- /*
5849
-
5850
- The order of popper phases:
5939
+ var _excluded$o = ["__unstable_margins", "arrow", "arrowRef", "arrowX", "arrowY", "availableHeight", "availableWidth", "boundaryWidth", "children", "padding", "placement", "overflow", "radius", "referenceWidth", "scheme", "shadow", "strategy", "tone", "width", "x", "y"];
5851
5940
 
5852
- - beforeRead
5853
- - read
5854
- - afterRead
5855
- - beforeMain
5856
- - main
5857
- - afterMain
5858
- - beforeWrite
5859
- - write
5860
- - afterWrite
5941
+ function popoverCardStyle(props) {
5942
+ var $boundaryWidth = props.$boundaryWidth;
5943
+ return {
5944
+ maxWidth: $boundaryWidth ? $boundaryWidth - 16 + "px" : 'calc(100% - 16px)'
5945
+ };
5946
+ }
5861
5947
 
5862
- */
5948
+ var Root$i = /*#__PURE__*/React.memo(styled__default["default"](Card)(popoverCardStyle));
5949
+ /**
5950
+ * @internal
5951
+ */
5863
5952
 
5864
- function getPopoverModifiers(props) {
5865
- var allowedAutoPlacements = props.allowedAutoPlacements,
5953
+ var PopoverCard = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function PopoverCard(props, ref) {
5954
+ var marginsProp = props.__unstable_margins,
5866
5955
  arrow = props.arrow,
5867
- arrowElement = props.arrowElement,
5868
- boundaryElement = props.boundaryElement,
5869
- constrainSize = props.constrainSize,
5870
- distance = props.distance,
5871
- fallbackPlacements = props.fallbackPlacements,
5872
- margins = props.margins,
5873
- matchReferenceWidth = props.matchReferenceWidth,
5874
- open = props.open,
5875
- preventOverflow = props.preventOverflow,
5876
- skidding = props.skidding,
5877
- tether = props.tether,
5878
- tetherOffset = props.tetherOffset; // NOTE: For later viewers:
5879
- // Prior to adding this change, the popover would get `maxWidth: 0` the 2nd time it
5880
- // was opened, when used with `constrainSize`. I was looking for a way to "reset"
5881
- // the size of the popover as measured by Popper.js, and this seems to be a workaround.
5882
-
5883
- if (!open) {
5884
- return [];
5885
- }
5956
+ arrowRef = props.arrowRef,
5957
+ arrowX = props.arrowX,
5958
+ arrowY = props.arrowY,
5959
+ availableHeight = props.availableHeight,
5960
+ availableWidth = props.availableWidth,
5961
+ boundaryWidth = props.boundaryWidth,
5962
+ children = props.children,
5963
+ padding = props.padding,
5964
+ placement = props.placement,
5965
+ overflow = props.overflow,
5966
+ radius = props.radius,
5967
+ referenceWidthProp = props.referenceWidth,
5968
+ scheme = props.scheme,
5969
+ shadow = props.shadow,
5970
+ strategy = props.strategy,
5971
+ tone = props.tone,
5972
+ width = props.width,
5973
+ xProp = props.x,
5974
+ yProp = props.y,
5975
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$o);
5886
5976
 
5887
- var detectOverflowOptions = {
5888
- altAxis: !constrainSize,
5889
- boundary: boundaryElement || undefined,
5890
- padding: 8,
5891
- tether: tether,
5892
- tetherOffset: tetherOffset
5893
- };
5894
- return [constrainSize && _extends({}, maxSizeModifier__default["default"], {
5895
- options: detectOverflowOptions
5896
- }), constrainSize && {
5897
- name: 'applyMaxSize',
5898
- enabled: true,
5899
- phase: 'beforeWrite',
5900
- requires: ['maxSize'],
5901
- fn: function fn(_ref) {
5902
- var state = _ref.state;
5903
- var _state$modifiersData$ = state.modifiersData.maxSize,
5904
- width = _state$modifiersData$.width,
5905
- height = _state$modifiersData$.height;
5906
- state.styles.popper = _extends({}, state.styles.popper, {
5907
- maxWidth: width + "px",
5908
- maxHeight: height + "px"
5909
- });
5910
- }
5911
- }, arrow && {
5912
- name: 'arrow',
5913
- options: {
5914
- element: arrowElement,
5915
- padding: 4
5916
- }
5917
- }, (constrainSize || preventOverflow) && {
5918
- name: 'preventOverflow',
5919
- options: detectOverflowOptions
5920
- }, {
5921
- name: 'offset',
5922
- options: {
5923
- offset: [skidding, distance]
5924
- }
5925
- }, margins && {
5926
- name: 'margins',
5927
- enabled: true,
5928
- phase: 'beforeRead',
5929
- fn: function fn(_ref2) {
5930
- var state = _ref2.state;
5931
- var rects = state.rects;
5932
-
5933
- if (rects.reference) {
5934
- rects.reference.x += margins[3];
5935
- rects.reference.y += margins[1];
5936
- rects.reference.width -= margins[1] + margins[3];
5937
- rects.reference.height -= margins[0] + margins[2];
5938
- }
5939
- }
5940
- }, {
5941
- name: 'flip',
5942
- options: {
5943
- allowedAutoPlacements: allowedAutoPlacements,
5944
- boundary: boundaryElement || undefined,
5945
- fallbackPlacements: fallbackPlacements,
5946
- padding: 8
5947
- }
5948
- }, matchReferenceWidth && {
5949
- name: 'matchWidth',
5950
- enabled: true,
5951
- phase: 'beforeWrite',
5952
- requires: ['computeStyles'],
5953
- fn: function fn(_ref3) {
5954
- var state = _ref3.state;
5955
- var width = state.rects.reference.width;
5956
- state.styles.popper.width = width + "px";
5957
- },
5958
- effect: function effect(_ref4) {
5959
- var state = _ref4.state;
5960
- var refElement = state.elements.reference;
5977
+ var _useLayer = useLayer(),
5978
+ zIndex = _useLayer.zIndex; // top right bottom left
5961
5979
 
5962
- if (refElement instanceof HTMLElement) {
5963
- state.elements.popper.style.width = refElement.offsetWidth - (margins ? margins[1] + margins[3] : 0) + "px";
5964
- }
5965
- }
5966
- }].filter(Boolean);
5967
- }
5968
5980
 
5969
- function usePopoverModifiers(props) {
5970
- var allowedAutoPlacements = props.allowedAutoPlacements,
5971
- arrow = props.arrow,
5972
- arrowElement = props.arrowElement,
5973
- boundaryElement = props.boundaryElement,
5974
- constrainSize = props.constrainSize,
5975
- distance = props.distance,
5976
- fallbackPlacements = props.fallbackPlacements,
5977
- margins = props.margins,
5978
- matchReferenceWidth = props.matchReferenceWidth,
5979
- open = props.open,
5980
- preventOverflow = props.preventOverflow,
5981
- skidding = props.skidding,
5982
- tether = props.tether,
5983
- tetherOffset = props.tetherOffset;
5984
- return React.useMemo(function () {
5985
- return getPopoverModifiers({
5986
- allowedAutoPlacements: allowedAutoPlacements,
5987
- arrow: arrow,
5988
- arrowElement: arrowElement,
5989
- boundaryElement: boundaryElement,
5990
- constrainSize: constrainSize,
5991
- distance: distance,
5992
- fallbackPlacements: fallbackPlacements,
5993
- margins: margins,
5994
- matchReferenceWidth: matchReferenceWidth,
5995
- open: open,
5996
- preventOverflow: preventOverflow,
5997
- skidding: skidding,
5998
- tether: tether,
5999
- tetherOffset: tetherOffset
6000
- });
6001
- }, [allowedAutoPlacements, arrow, arrowElement, boundaryElement, constrainSize, distance, fallbackPlacements, margins, matchReferenceWidth, open, preventOverflow, skidding, tether, tetherOffset]);
6002
- }
5981
+ var margins = React.useMemo(function () {
5982
+ return marginsProp || [0, 0, 0, 0];
5983
+ }, [marginsProp]); // translate according to margins
6003
5984
 
6004
- var _excluded$n = ["__unstable_margins", "allowedAutoPlacements", "arrow", "boundaryElement", "children", "content", "constrainSize", "disabled", "fallbackPlacements", "open", "padding", "placement", "portal", "preventOverflow", "radius", "referenceElement", "matchReferenceWidth", "shadow", "scheme", "style", "tether", "tetherOffset", "tone", "width", "zOffset"];
5985
+ var referenceWidth = referenceWidthProp ? referenceWidthProp - margins[1] - margins[3] : undefined;
5986
+ var x = (xProp != null ? xProp : 0) + margins[3];
5987
+ var y = (yProp != null ? yProp : 0) + margins[0];
5988
+ var maxWidth = availableWidth ? Math.min(availableWidth - 8, referenceWidth || Infinity) : undefined;
5989
+ var rootStyle = React.useMemo(function () {
5990
+ return {
5991
+ position: strategy,
5992
+ top: y,
5993
+ left: x,
5994
+ zIndex: zIndex,
5995
+ width: referenceWidth,
5996
+ maxWidth: referenceWidth ? undefined : maxWidth
5997
+ };
5998
+ }, [referenceWidth, maxWidth, strategy, x, y, zIndex]);
5999
+ var wrapperStyle = React.useMemo(function () {
6000
+ return {
6001
+ minHeight: 25,
6002
+ maxHeight: availableHeight ? availableHeight - 8 : undefined
6003
+ };
6004
+ }, [availableHeight]);
6005
+ var staticSide = placement && FLOATING_STATIC_SIDES[placement.split('-')[0]];
6006
+ var arrowStyle = React.useMemo(function () {
6007
+ var style = {
6008
+ left: arrowX !== null ? arrowX : undefined,
6009
+ top: arrowY !== null ? arrowY : undefined,
6010
+ right: undefined,
6011
+ bottom: undefined
6012
+ };
6013
+ if (staticSide) style[staticSide] = -27;
6014
+ return style;
6015
+ }, [arrowX, arrowY, staticSide]);
6016
+ return /*#__PURE__*/React__default["default"].createElement(Root$i, _extends({}, restProps, {
6017
+ "$boundaryWidth": boundaryWidth,
6018
+ "data-placement": placement,
6019
+ "data-ui": "Popover",
6020
+ radius: radius,
6021
+ ref: ref,
6022
+ scheme: scheme,
6023
+ shadow: shadow,
6024
+ style: rootStyle,
6025
+ tone: tone,
6026
+ "$width": width
6027
+ }), /*#__PURE__*/React__default["default"].createElement(Box, {
6028
+ "data-ui": "Popover__wrapper",
6029
+ overflow: overflow,
6030
+ padding: padding,
6031
+ sizing: "border",
6032
+ style: wrapperStyle
6033
+ }, children), arrow && /*#__PURE__*/React__default["default"].createElement(PopoverArrow, {
6034
+ ref: arrowRef,
6035
+ style: arrowStyle
6036
+ }));
6037
+ }));
6038
+ PopoverCard.displayName = 'PopoverCard';
6005
6039
 
6006
- var _templateObject$j, _templateObject2$e, _templateObject3$8;
6007
- var Root$i = styled__default["default"](Layer)(function (_ref) {
6008
- var $preventOverflow = _ref.$preventOverflow;
6009
- return styled.css(_templateObject$j || (_templateObject$j = _taggedTemplateLiteralLoose(["\n pointer-events: none;\n display: flex;\n flex-direction: column;\n max-width: calc(100% - 16px);\n\n & > * {\n min-height: 0;\n }\n\n /* Hide the popover when the reference element is out of bounds */\n ", "\n "])), $preventOverflow && styled.css(_templateObject2$e || (_templateObject2$e = _taggedTemplateLiteralLoose(["\n &[data-popper-reference-hidden='true'] {\n display: none;\n }\n "]))));
6010
- });
6011
- var PopoverCard = styled__default["default"](Card)(function (_ref2) {
6012
- var $constrainSize = _ref2.$constrainSize;
6013
- return styled.css(_templateObject3$8 || (_templateObject3$8 = _taggedTemplateLiteralLoose(["\n flex: 1;\n max-height: ", ";\n pointer-events: all;\n\n && {\n display: flex;\n }\n\n flex-direction: column;\n\n & > * {\n min-height: 0;\n }\n\n ", "\n "])), $constrainSize && '100%', responsiveContainerWidthStyle);
6014
- });
6015
- /**
6016
- * @public
6017
- */
6040
+ var _excluded$n = ["__unstable_margins", "allowedAutoPlacements", "arrow", "boundaryElement", "children", "constrainSize", "content", "disabled", "fallbackPlacements", "matchReferenceWidth", "open", "overflow", "padding", "placement", "portal", "preventOverflow", "radius", "referenceElement", "scheme", "shadow", "tether", "tetherOffset", "tone", "width", "zOffset"];
6018
6041
 
6019
- var Popover = /*#__PURE__*/React.forwardRef(function Popover(props, ref) {
6020
- var _theme$sanity$layer;
6042
+ function size(scope) {
6043
+ return reactDom.size({
6044
+ apply: function apply(args) {
6045
+ if (scope.constrainSize) {
6046
+ scope.setAvailableWidth(args.availableWidth);
6047
+ scope.setAvailableHeight(args.availableHeight);
6048
+ }
6049
+
6050
+ if (scope.matchReferenceWidth) {
6051
+ scope.setReferenceWidth(args.rects.reference.width);
6052
+ }
6053
+ },
6054
+ boundary: scope.boundaryElement || undefined
6055
+ });
6056
+ }
6057
+
6058
+ var Popover = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function Popover(props, ref) {
6059
+ var _theme$sanity$layer, _useElementSize, _middlewareData$arrow, _middlewareData$arrow2;
6021
6060
 
6022
- var boundaryElementContext = useBoundaryElement();
6023
6061
  var theme = useTheme();
6062
+ var boundaryElementContext = useBoundaryElement();
6024
6063
 
6025
6064
  var margins = props.__unstable_margins,
6026
- allowedAutoPlacements = props.allowedAutoPlacements,
6027
6065
  _props$arrow = props.arrow,
6028
- arrow = _props$arrow === void 0 ? true : _props$arrow,
6066
+ arrowProp = _props$arrow === void 0 ? true : _props$arrow,
6029
6067
  _props$boundaryElemen = props.boundaryElement,
6030
- boundaryElementProp = _props$boundaryElemen === void 0 ? boundaryElementContext.element : _props$boundaryElemen,
6031
- child = props.children,
6068
+ boundaryElement = _props$boundaryElemen === void 0 ? boundaryElementContext.element : _props$boundaryElemen,
6069
+ childProp = props.children,
6070
+ _props$constrainSize = props.constrainSize,
6071
+ constrainSize = _props$constrainSize === void 0 ? false : _props$constrainSize,
6032
6072
  content = props.content,
6033
- constrainSize = props.constrainSize,
6034
6073
  disabled = props.disabled,
6035
6074
  fallbackPlacements = props.fallbackPlacements,
6036
- _props$open = props.open,
6037
- open = _props$open === void 0 ? false : _props$open,
6038
- padding = props.padding,
6075
+ matchReferenceWidthProp = props.matchReferenceWidth,
6076
+ open = props.open,
6077
+ _props$overflow = props.overflow,
6078
+ overflow = _props$overflow === void 0 ? props.constrainSize ? 'auto' : undefined : _props$overflow,
6079
+ paddingProp = props.padding,
6039
6080
  _props$placement = props.placement,
6040
- placement = _props$placement === void 0 ? 'bottom' : _props$placement,
6041
- _props$portal = props.portal,
6042
- portalProp = _props$portal === void 0 ? false : _props$portal,
6043
- preventOverflow = props.preventOverflow,
6081
+ placementProp = _props$placement === void 0 ? 'bottom' : _props$placement,
6082
+ portal = props.portal,
6083
+ _props$preventOverflo = props.preventOverflow,
6084
+ preventOverflow = _props$preventOverflo === void 0 ? true : _props$preventOverflo,
6044
6085
  _props$radius = props.radius,
6045
- radius = _props$radius === void 0 ? 3 : _props$radius,
6046
- referenceElementProp = props.referenceElement,
6047
- matchReferenceWidth = props.matchReferenceWidth,
6048
- _props$shadow = props.shadow,
6049
- shadow = _props$shadow === void 0 ? 3 : _props$shadow,
6086
+ radiusProp = _props$radius === void 0 ? 3 : _props$radius,
6087
+ referenceElement = props.referenceElement,
6050
6088
  scheme = props.scheme,
6051
- _props$style = props.style,
6052
- style = _props$style === void 0 ? EMPTY_RECORD$1 : _props$style,
6053
- tether = props.tether,
6054
- tetherOffset = props.tetherOffset,
6089
+ _props$shadow = props.shadow,
6090
+ shadowProp = _props$shadow === void 0 ? 3 : _props$shadow,
6055
6091
  _props$tone = props.tone,
6056
6092
  tone = _props$tone === void 0 ? 'inherit' : _props$tone,
6057
6093
  _props$width = props.width,
6058
- width = _props$width === void 0 ? 0 : _props$width,
6094
+ widthProp = _props$width === void 0 ? undefined : _props$width,
6059
6095
  _props$zOffset = props.zOffset,
6060
- zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.popover.zOffset : _props$zOffset,
6096
+ zOffsetProp = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.popover.zOffset : _props$zOffset,
6061
6097
  restProps = _objectWithoutPropertiesLoose(props, _excluded$n);
6062
6098
 
6099
+ var boundarySize = (_useElementSize = useElementSize(boundaryElement)) == null ? void 0 : _useElementSize.border;
6100
+ var padding = useArrayProp(paddingProp);
6101
+ var radius = useArrayProp(radiusProp);
6102
+ var shadow = useArrayProp(shadowProp);
6103
+ var width = useArrayProp(widthProp);
6104
+ var zOffset = useArrayProp(zOffsetProp);
6105
+
6106
+ var _useState = React.useState(undefined),
6107
+ availableWidth = _useState[0],
6108
+ setAvailableWidth = _useState[1];
6109
+
6110
+ var _useState2 = React.useState(undefined),
6111
+ availableHeight = _useState2[0],
6112
+ setAvailableHeight = _useState2[1];
6113
+
6114
+ var _useState3 = React.useState(undefined),
6115
+ referenceWidth = _useState3[0],
6116
+ setReferenceWidth = _useState3[1];
6117
+
6063
6118
  var forwardedRef = useForwardedRef(ref);
6064
- var portal = usePortal();
6119
+ var arrowRef = React.useRef(null);
6120
+ var rootBoundary = 'viewport';
6121
+ var middleware = React.useMemo(function () {
6122
+ var ret = []; // Flip the floating element when leaving the boundary box
6065
6123
 
6066
- var _useState = React.useState(null),
6067
- referenceElement = _useState[0],
6068
- setReferenceElement = _useState[1];
6124
+ if (constrainSize || preventOverflow) {
6125
+ ret.push(reactDom.flip({
6126
+ boundary: boundaryElement || undefined,
6127
+ fallbackPlacements: fallbackPlacements,
6128
+ padding: 8,
6129
+ rootBoundary: rootBoundary
6130
+ }));
6131
+ } // Track sizes
6069
6132
 
6070
- var _useState2 = React.useState(null),
6071
- popperElement = _useState2[0],
6072
- setPopperElement = _useState2[1];
6073
6133
 
6074
- var _useState3 = React.useState(null),
6075
- arrowElement = _useState3[0],
6076
- setArrowElement = _useState3[1];
6077
-
6078
- var popperReferenceElement = referenceElementProp || referenceElement;
6079
- var modifiers = usePopoverModifiers({
6080
- allowedAutoPlacements: allowedAutoPlacements,
6081
- arrow: arrow,
6082
- arrowElement: arrowElement,
6083
- boundaryElement: boundaryElementProp || portal.boundaryElement,
6084
- constrainSize: constrainSize,
6085
- distance: arrow ? 4 : 0,
6086
- fallbackPlacements: fallbackPlacements,
6087
- margins: margins,
6088
- matchReferenceWidth: matchReferenceWidth,
6089
- open: open,
6090
- preventOverflow: preventOverflow,
6091
- skidding: 0,
6092
- tether: tether,
6093
- tetherOffset: tetherOffset
6094
- });
6095
- var popper = reactPopper.usePopper(popperReferenceElement, popperElement, {
6096
- placement: placement,
6097
- modifiers: modifiers
6098
- });
6099
- var attributes = popper.attributes,
6100
- forceUpdate = popper.forceUpdate,
6101
- styles = popper.styles;
6102
- var setRef = React.useCallback(function (el) {
6103
- var childRef = child.ref;
6104
- setReferenceElement(el);
6134
+ ret.push(size({
6135
+ boundaryElement: boundaryElement,
6136
+ constrainSize: constrainSize,
6137
+ matchReferenceWidth: matchReferenceWidthProp,
6138
+ setAvailableHeight: setAvailableHeight,
6139
+ setAvailableWidth: setAvailableWidth,
6140
+ setReferenceWidth: setReferenceWidth
6141
+ })); // Define distance between reference and floating element
6142
+
6143
+ ret.push(reactDom.offset({
6144
+ mainAxis: arrowProp ? 4 : 0
6145
+ })); // Shift the popover so its sits with the boundary eleement
6146
+
6147
+ if (preventOverflow) {
6148
+ ret.push(reactDom.shift({
6149
+ boundary: boundaryElement || undefined,
6150
+ rootBoundary: rootBoundary,
6151
+ padding: 8
6152
+ }));
6153
+ } // Place arrow
6154
+
6155
+
6156
+ if (arrowProp) {
6157
+ ret.push(reactDom.arrow({
6158
+ element: arrowRef,
6159
+ padding: 4
6160
+ }));
6161
+ }
6162
+
6163
+ return ret;
6164
+ }, [arrowProp, boundaryElement, constrainSize, fallbackPlacements, matchReferenceWidthProp, preventOverflow]);
6165
+
6166
+ var _useFloating = reactDom.useFloating({
6167
+ middleware: middleware,
6168
+ placement: placementProp,
6169
+ whileElementsMounted: reactDom.autoUpdate
6170
+ }),
6171
+ x = _useFloating.x,
6172
+ y = _useFloating.y,
6173
+ placement = _useFloating.placement,
6174
+ reference = _useFloating.reference,
6175
+ floating = _useFloating.floating,
6176
+ middlewareData = _useFloating.middlewareData,
6177
+ strategy = _useFloating.strategy;
6178
+
6179
+ var arrowX = (_middlewareData$arrow = middlewareData.arrow) == null ? void 0 : _middlewareData$arrow.x;
6180
+ var arrowY = (_middlewareData$arrow2 = middlewareData.arrow) == null ? void 0 : _middlewareData$arrow2.y;
6181
+ var setArrow = React.useCallback(function (arrowEl) {
6182
+ arrowRef.current = arrowEl;
6183
+ }, []);
6184
+ var setFloating = React.useCallback(function (node) {
6185
+ forwardedRef.current = node;
6186
+ floating(node);
6187
+ }, [floating, forwardedRef]);
6188
+ var setReference = React.useCallback(function (node) {
6189
+ reference(node);
6190
+ var childRef = childProp == null ? void 0 : childProp.ref;
6105
6191
 
6106
6192
  if (typeof childRef === 'function') {
6107
- childRef(el);
6193
+ childRef(node);
6108
6194
  } else if (childRef) {
6109
- childRef.current = el;
6195
+ childRef.current = node;
6110
6196
  }
6111
- }, [child]);
6112
- var setRootRef = React.useCallback(function (el) {
6113
- setPopperElement(el);
6114
- forwardedRef.current = el;
6115
- }, [forwardedRef]);
6116
- var popoverStyle = React.useMemo(function () {
6117
- return _extends({}, style, styles.popper);
6118
- }, [style, styles]);
6197
+ }, [childProp, reference]);
6198
+ var child = React.useMemo(function () {
6199
+ if (!childProp || referenceElement) return null;
6200
+ return /*#__PURE__*/React.cloneElement(childProp, {
6201
+ ref: setReference
6202
+ });
6203
+ }, [childProp, referenceElement, setReference]);
6119
6204
  React.useEffect(function () {
6120
- if (forceUpdate) {
6121
- try {
6122
- forceUpdate();
6123
- } catch (_) {// ignore caught error
6124
- }
6125
- }
6126
- }, [content, forceUpdate, open, popperReferenceElement]);
6205
+ if (referenceElement) reference(referenceElement);
6206
+ }, [reference, referenceElement]);
6127
6207
 
6128
6208
  if (disabled) {
6129
- return child || /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
6209
+ return childProp || /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
6130
6210
  }
6131
6211
 
6132
- var node = /*#__PURE__*/React__default["default"].createElement(Root$i, _extends({
6133
- "data-ui": "Popover"
6134
- }, restProps, {
6135
- "$preventOverflow": preventOverflow,
6136
- ref: setRootRef,
6137
- style: popoverStyle,
6212
+ var popover = /*#__PURE__*/React__default["default"].createElement(LayerProvider, {
6138
6213
  zOffset: zOffset
6139
- }, attributes.popper), /*#__PURE__*/React__default["default"].createElement(PopoverCard, {
6140
- "$constrainSize": constrainSize,
6141
- "data-ui": "PopoverCard",
6214
+ }, /*#__PURE__*/React__default["default"].createElement(PopoverCard, _extends({}, restProps, {
6215
+ __unstable_margins: margins,
6216
+ arrow: arrowProp,
6217
+ arrowRef: setArrow,
6218
+ arrowX: arrowX,
6219
+ arrowY: arrowY,
6220
+ availableWidth: constrainSize ? availableWidth : undefined,
6221
+ availableHeight: constrainSize ? availableHeight : undefined,
6222
+ boundaryWidth: boundarySize == null ? void 0 : boundarySize.width,
6223
+ overflow: overflow,
6142
6224
  padding: padding,
6225
+ placement: placement,
6143
6226
  radius: radius,
6227
+ ref: setFloating,
6228
+ referenceWidth: matchReferenceWidthProp ? referenceWidth : undefined,
6144
6229
  scheme: scheme,
6145
6230
  shadow: shadow,
6231
+ strategy: strategy,
6146
6232
  tone: tone,
6233
+ x: x,
6234
+ y: y,
6147
6235
  width: width
6148
- }, arrow && /*#__PURE__*/React__default["default"].createElement(PopoverArrow, {
6149
- ref: setArrowElement,
6150
- style: styles.arrow
6151
6236
  }), content));
6152
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, child && !referenceElementProp ? /*#__PURE__*/React.cloneElement(child, {
6153
- ref: setRef
6154
- }) : child || /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null), open && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, portalProp && /*#__PURE__*/React__default["default"].createElement(Portal, {
6155
- __unstable_name: typeof portalProp === 'string' ? portalProp : undefined
6156
- }, node), !portalProp && node));
6157
- });
6237
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, open && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, portal ? /*#__PURE__*/React__default["default"].createElement(Portal, {
6238
+ __unstable_name: typeof portal === 'string' ? portal : undefined
6239
+ }, popover) : popover), child);
6240
+ }));
6241
+ Popover.displayName = 'Popover';
6158
6242
 
6159
6243
  var _templateObject$i, _templateObject2$d;
6160
6244
  function radioBaseStyle() {
@@ -6263,7 +6347,7 @@ function inputTextSizeStyle(props) {
6263
6347
  var theme = props.theme,
6264
6348
  $fontSize = props.$fontSize;
6265
6349
  var sizes = theme.sanity.fonts.text.sizes;
6266
- return responsive(theme.sanity.media, getResponsiveProp($fontSize), function (sizeIndex) {
6350
+ return _responsive(theme.sanity.media, $fontSize, function (sizeIndex) {
6267
6351
  return textSize(sizes[sizeIndex] || sizes[2]);
6268
6352
  });
6269
6353
  }
@@ -6315,10 +6399,10 @@ var Select = /*#__PURE__*/React.forwardRef(function Select(props, forwardedRef)
6315
6399
  "data-read-only": !disabled && readOnly ? '' : undefined,
6316
6400
  "data-ui": "Select"
6317
6401
  }, restProps, {
6318
- "$fontSize": fontSize,
6319
- "$padding": padding,
6320
- "$radius": radius,
6321
- "$space": space,
6402
+ "$fontSize": useArrayProp(fontSize),
6403
+ "$padding": useArrayProp(padding),
6404
+ "$radius": useArrayProp(radius),
6405
+ "$space": useArrayProp(space),
6322
6406
  disabled: disabled || readOnly,
6323
6407
  ref: ref
6324
6408
  }), children), /*#__PURE__*/React__default["default"].createElement(IconBox, {
@@ -6346,7 +6430,7 @@ function responsiveStackSpaceStyle(props) {
6346
6430
  var _theme$sanity = theme.sanity,
6347
6431
  media = _theme$sanity.media,
6348
6432
  space = _theme$sanity.space;
6349
- return responsive(media, getResponsiveProp(props.$space), function (spaceIndex) {
6433
+ return _responsive(media, props.$space, function (spaceIndex) {
6350
6434
  return {
6351
6435
  gridGap: rem(space[spaceIndex])
6352
6436
  };
@@ -6368,13 +6452,13 @@ var Stack = /*#__PURE__*/React.forwardRef(function Stack(props, ref) {
6368
6452
  "data-as": typeof as === 'string' ? as : undefined,
6369
6453
  "data-ui": "Stack"
6370
6454
  }, restProps, {
6371
- "$space": space,
6455
+ "$space": useArrayProp(space),
6372
6456
  forwardedAs: as,
6373
6457
  ref: ref
6374
6458
  }));
6375
6459
  });
6376
6460
 
6377
- var _templateObject$g, _templateObject2$b, _templateObject3$6, _templateObject4$4, _templateObject5$3, _templateObject6$1, _templateObject7;
6461
+ var _templateObject$g, _templateObject2$b, _templateObject3$6, _templateObject4$4, _templateObject5$3, _templateObject6$2, _templateObject7;
6378
6462
  /* Root */
6379
6463
 
6380
6464
  function switchBaseStyles() {
@@ -6418,7 +6502,7 @@ function switchThumbStyles(props) {
6418
6502
  var checkedOffset = trackWidth - trackPadding * 2 - size;
6419
6503
  var indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding;
6420
6504
  var checked = $indeterminate !== true && props.$checked === true;
6421
- return styled.css(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteralLoose(["\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ", ";\n top: ", ";\n height: ", ";\n width: ", ";\n border-radius: ", ";\n transition-property: transform;\n transition-duration: ", "ms;\n transition-timing-function: ", ";\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n\n ", "\n\n ", "\n "])), rem(trackPadding), rem(trackPadding), rem(size), rem(size), rem(size / 2), input["switch"].transitionDurationMs, input["switch"].transitionTimingFunction, checked && styled.css(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), checkedOffset), $indeterminate && styled.css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), indeterminateOffset));
6505
+ return styled.css(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteralLoose(["\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ", ";\n top: ", ";\n height: ", ";\n width: ", ";\n border-radius: ", ";\n transition-property: transform;\n transition-duration: ", "ms;\n transition-timing-function: ", ";\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n\n ", "\n\n ", "\n "])), rem(trackPadding), rem(trackPadding), rem(size), rem(size), rem(size / 2), input["switch"].transitionDurationMs, input["switch"].transitionTimingFunction, checked && styled.css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), checkedOffset), $indeterminate && styled.css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), indeterminateOffset));
6422
6506
  }
6423
6507
 
6424
6508
  var _excluded$j = ["checked", "className", "disabled", "indeterminate", "readOnly", "style"];
@@ -6467,7 +6551,7 @@ var Switch = /*#__PURE__*/React.forwardRef(function Switch(props, forwardedRef)
6467
6551
  })));
6468
6552
  });
6469
6553
 
6470
- var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius"];
6554
+ var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius", "weight"];
6471
6555
 
6472
6556
  var _templateObject$f;
6473
6557
  var Root$d = styled__default["default"].span(textInputRootStyle);
@@ -6490,32 +6574,42 @@ var TextArea = /*#__PURE__*/React.forwardRef(function TextArea(props, forwardedR
6490
6574
  padding = _props$padding === void 0 ? 3 : _props$padding,
6491
6575
  _props$radius = props.radius,
6492
6576
  radius = _props$radius === void 0 ? 1 : _props$radius,
6577
+ weight = props.weight,
6493
6578
  restProps = _objectWithoutPropertiesLoose(props, _excluded$i);
6494
6579
 
6495
6580
  var ref = useForwardedRef(forwardedRef);
6581
+ var rootTheme = useRootTheme();
6496
6582
  useCustomValidity(ref, customValidity);
6497
6583
  return /*#__PURE__*/React__default["default"].createElement(Root$d, {
6498
6584
  "data-ui": "TextArea"
6499
6585
  }, /*#__PURE__*/React__default["default"].createElement(InputRoot$1, null, /*#__PURE__*/React__default["default"].createElement(Input$1, _extends({
6500
- "data-as": "textarea"
6586
+ "data-as": "textarea",
6587
+ "data-tone": rootTheme.tone
6501
6588
  }, restProps, {
6502
- "$fontSize": fontSize,
6503
- "$padding": padding,
6589
+ "$fontSize": useArrayProp(fontSize),
6590
+ "$padding": useArrayProp(padding),
6591
+ "$space": useArrayProp(0),
6592
+ "$tone": rootTheme.tone,
6593
+ "$weight": weight,
6504
6594
  disabled: disabled,
6505
6595
  ref: ref
6506
6596
  })), /*#__PURE__*/React__default["default"].createElement(Presentation$1, {
6507
6597
  "$border": border,
6508
- "$radius": radius
6598
+ "$radius": useArrayProp(radius),
6599
+ "$tone": rootTheme.tone,
6600
+ "data-tone": rootTheme.tone
6509
6601
  })));
6510
6602
  });
6511
6603
 
6512
- var _excluded$h = ["border", "clearButton", "disabled", "fontSize", "icon", "iconRight", "onClear", "padding", "prefix", "radius", "readOnly", "space", "suffix", "customValidity", "type"];
6604
+ var _excluded$h = ["border", "clearButton", "disabled", "fontSize", "icon", "iconRight", "onClear", "padding", "prefix", "radius", "readOnly", "space", "suffix", "customValidity", "type", "weight"];
6513
6605
 
6514
- var _templateObject$e, _templateObject2$a, _templateObject3$5, _templateObject4$3, _templateObject5$2;
6606
+ var _templateObject$e, _templateObject2$a, _templateObject3$5, _templateObject4$3, _templateObject5$2, _templateObject6$1;
6515
6607
  var CLEAR_BUTTON_BOX_STYLE = {
6516
6608
  zIndex: 2
6517
6609
  };
6518
- var Root$c = styled__default["default"].span(textInputRootStyle);
6610
+ var Root$c = styled__default["default"](Card).attrs({
6611
+ forwardedAs: 'span'
6612
+ })(textInputRootStyle);
6519
6613
  var InputRoot = styled__default["default"].span(_templateObject$e || (_templateObject$e = _taggedTemplateLiteralLoose(["\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n"])));
6520
6614
  var Prefix = styled__default["default"](Card).attrs({
6521
6615
  forwardedAs: 'span'
@@ -6526,7 +6620,8 @@ var Suffix = styled__default["default"](Card).attrs({
6526
6620
  var Input = styled__default["default"].input(responsiveInputPaddingStyle, textInputBaseStyle, textInputFontSizeStyle);
6527
6621
  var Presentation = styled__default["default"].span(responsiveRadiusStyle, textInputRepresentationStyle);
6528
6622
  var LeftBox = styled__default["default"](Box)(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n"])));
6529
- var RightCard = styled__default["default"](Card)(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
6623
+ var RightBox = styled__default["default"](Box)(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n right: 0;\n"])));
6624
+ var RightCard = styled__default["default"](Card)(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteralLoose(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
6530
6625
  /**
6531
6626
  * @public
6532
6627
  */
@@ -6538,7 +6633,7 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6538
6633
  _props$disabled = props.disabled,
6539
6634
  disabled = _props$disabled === void 0 ? false : _props$disabled,
6540
6635
  _props$fontSize = props.fontSize,
6541
- fontSize = _props$fontSize === void 0 ? 2 : _props$fontSize,
6636
+ fontSizeProp = _props$fontSize === void 0 ? 2 : _props$fontSize,
6542
6637
  icon = props.icon,
6543
6638
  iconRight = props.iconRight,
6544
6639
  onClear = props.onClear,
@@ -6549,16 +6644,20 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6549
6644
  radiusProp = _props$radius === void 0 ? 1 : _props$radius,
6550
6645
  readOnly = props.readOnly,
6551
6646
  _props$space = props.space,
6552
- space = _props$space === void 0 ? 3 : _props$space,
6647
+ spaceProp = _props$space === void 0 ? 3 : _props$space,
6553
6648
  suffix = props.suffix,
6554
6649
  customValidity = props.customValidity,
6555
6650
  _props$type = props.type,
6556
6651
  type = _props$type === void 0 ? 'text' : _props$type,
6652
+ weight = props.weight,
6557
6653
  restProps = _objectWithoutPropertiesLoose(props, _excluded$h);
6558
6654
 
6559
6655
  var ref = useForwardedRef(forwardedRef);
6560
- var padding = useResponsiveProp(paddingProp);
6561
- var radius = useResponsiveProp(radiusProp); // Transient properties
6656
+ var rootTheme = useRootTheme();
6657
+ var fontSize = useArrayProp(fontSizeProp);
6658
+ var padding = useArrayProp(paddingProp);
6659
+ var radius = useArrayProp(radiusProp);
6660
+ var space = useArrayProp(spaceProp); // Transient properties
6562
6661
 
6563
6662
  var $hasClearButton = Boolean(clearButton);
6564
6663
  var $hasIcon = Boolean(icon);
@@ -6597,17 +6696,19 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6597
6696
  "$border": border,
6598
6697
  "$hasPrefix": $hasPrefix,
6599
6698
  "$hasSuffix": $hasSuffix,
6600
- "$radius": radius
6699
+ "$radius": radius,
6700
+ "$tone": rootTheme.tone,
6701
+ "data-tone": rootTheme.tone
6601
6702
  }, icon && /*#__PURE__*/React__default["default"].createElement(LeftBox, {
6602
6703
  padding: padding
6603
6704
  }, /*#__PURE__*/React__default["default"].createElement(Text, {
6604
6705
  size: fontSize
6605
- }, /*#__PURE__*/React.isValidElement(icon) && icon, ReactIs.isValidElementType(icon) && /*#__PURE__*/React.createElement(icon))), !$hasClearButton && iconRight && /*#__PURE__*/React__default["default"].createElement(RightCard, {
6706
+ }, /*#__PURE__*/React.isValidElement(icon) && icon, ReactIs.isValidElementType(icon) && /*#__PURE__*/React.createElement(icon))), !$hasClearButton && iconRight && /*#__PURE__*/React__default["default"].createElement(RightBox, {
6606
6707
  padding: padding
6607
6708
  }, /*#__PURE__*/React__default["default"].createElement(Text, {
6608
6709
  size: fontSize
6609
6710
  }, /*#__PURE__*/React.isValidElement(iconRight) && iconRight, ReactIs.isValidElementType(iconRight) && /*#__PURE__*/React.createElement(iconRight))));
6610
- }, [border, fontSize, icon, iconRight, padding, radius, $hasClearButton, $hasPrefix, $hasSuffix]); // Render clear button (memoized)
6711
+ }, [border, fontSize, icon, iconRight, padding, radius, rootTheme.tone, $hasClearButton, $hasPrefix, $hasSuffix]); // Render clear button (memoized)
6611
6712
 
6612
6713
  var clearButtonBoxPadding = React.useMemo(function () {
6613
6714
  return padding.map(function (v) {
@@ -6626,7 +6727,7 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6626
6727
  });
6627
6728
  }, [padding]);
6628
6729
  var clearButtonProps = React.useMemo(function () {
6629
- return typeof clearButton === 'object' ? clearButton : EMPTY_RECORD$1;
6730
+ return typeof clearButton === 'object' ? clearButton : EMPTY_RECORD;
6630
6731
  }, [clearButton]);
6631
6732
  var clearButtonNode = React.useMemo(function () {
6632
6733
  return !disabled && !readOnly && clearButton && /*#__PURE__*/React__default["default"].createElement(RightCard, {
@@ -6658,15 +6759,19 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6658
6759
  }, /*#__PURE__*/React__default["default"].createElement("span", null, suffix));
6659
6760
  }, [radius, suffix]);
6660
6761
  return /*#__PURE__*/React__default["default"].createElement(Root$c, {
6661
- "data-ui": "TextInput"
6762
+ "data-ui": "TextInput",
6763
+ tone: rootTheme.tone
6662
6764
  }, prefixNode, /*#__PURE__*/React__default["default"].createElement(InputRoot, null, /*#__PURE__*/React__default["default"].createElement(Input, _extends({
6663
- "data-as": "input"
6765
+ "data-as": "input",
6766
+ "data-tone": rootTheme.tone
6664
6767
  }, restProps, {
6768
+ "$fontSize": fontSize,
6665
6769
  "$iconLeft": $hasIcon,
6666
6770
  "$iconRight": $hasIconRight || $hasClearButton,
6667
6771
  "$padding": padding,
6668
6772
  "$space": space,
6669
- "$fontSize": fontSize,
6773
+ "$tone": rootTheme.tone,
6774
+ "$weight": weight,
6670
6775
  disabled: disabled,
6671
6776
  readOnly: readOnly,
6672
6777
  ref: ref,
@@ -6675,13 +6780,15 @@ var TextInput = /*#__PURE__*/React.forwardRef(function TextInput(props, forwarde
6675
6780
  });
6676
6781
 
6677
6782
  var _templateObject$d, _templateObject2$9, _templateObject3$4;
6678
- var Root$b = styled__default["default"].div(_templateObject$d || (_templateObject$d = _taggedTemplateLiteralLoose(["\n position: absolute;\n width: 15px;\n height: 15px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n &:not([hidden]) {\n display: block;\n }\n transform-origin: 7.5px 7.5px;\n }\n\n [data-popper-placement^='top'] > div > & {\n bottom: -15px;\n }\n\n [data-popper-placement^='right'] > div > & {\n left: -15px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-popper-placement^='left'] > div > & {\n right: -15px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-popper-placement^='bottom'] > div > & {\n top: -15px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n"])));
6783
+ var Root$b = styled__default["default"].div(_templateObject$d || (_templateObject$d = _taggedTemplateLiteralLoose(["\n position: absolute;\n pointer-events: none;\n width: 15px;\n height: 15px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n display: block;\n transform-origin: 7.5px 7.5px;\n }\n\n /* position: absolute;\n width: 15px;\n height: 15px;\n fill: none;\n\n :empty + & {\n display: none;\n }\n\n & > svg {\n &:not([hidden]) {\n display: block;\n }\n transform-origin: 7.5px 7.5px;\n } */\n\n [data-placement^='top'] > & {\n bottom: -27px;\n }\n\n [data-placement^='right'] > & {\n left: -27px;\n\n & > svg {\n transform: rotate(90deg);\n }\n }\n\n [data-placement^='left'] > & {\n right: -27px;\n\n & > svg {\n transform: rotate(-90deg);\n }\n }\n\n [data-placement^='bottom'] > & {\n top: -27px;\n\n & > svg {\n transform: rotate(180deg);\n }\n }\n"])));
6679
6784
  var Border = styled__default["default"].path(_templateObject2$9 || (_templateObject2$9 = _taggedTemplateLiteralLoose(["\n fill: var(--card-shadow-outline-color);\n"])));
6680
6785
  var Shape = styled__default["default"].path(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteralLoose(["\n fill: var(--card-bg-color);\n"])));
6681
6786
  var TooltipArrow = /*#__PURE__*/React.forwardRef(function TooltipArrow(props, ref) {
6682
6787
  var restProps = _extends({}, props);
6683
6788
 
6684
- return /*#__PURE__*/React__default["default"].createElement(Root$b, _extends({}, restProps, {
6789
+ return /*#__PURE__*/React__default["default"].createElement(Root$b, _extends({
6790
+ "data-ui": "Tooltip__arrow"
6791
+ }, restProps, {
6685
6792
  ref: ref
6686
6793
  }), /*#__PURE__*/React__default["default"].createElement("svg", {
6687
6794
  width: "15",
@@ -6694,7 +6801,7 @@ var TooltipArrow = /*#__PURE__*/React.forwardRef(function TooltipArrow(props, re
6694
6801
  })));
6695
6802
  });
6696
6803
 
6697
- var _excluded$g = ["allowedAutoPlacements", "boundaryElement", "children", "content", "disabled", "fallbackPlacements", "placement", "portal", "scheme", "zOffset"];
6804
+ var _excluded$g = ["boundaryElement", "children", "content", "disabled", "fallbackPlacements", "placement", "portal", "scheme", "shadow", "zOffset"];
6698
6805
 
6699
6806
  var _templateObject$c;
6700
6807
  var Root$a = styled__default["default"](Layer)(_templateObject$c || (_templateObject$c = _taggedTemplateLiteralLoose(["\n pointer-events: none;\n"])));
@@ -6703,73 +6810,101 @@ var Root$a = styled__default["default"](Layer)(_templateObject$c || (_templateOb
6703
6810
  */
6704
6811
 
6705
6812
  var Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(props, ref) {
6706
- var _theme$sanity$layer;
6813
+ var _theme$sanity$layer, _middlewareData$arrow, _middlewareData$arrow2;
6707
6814
 
6708
6815
  var boundaryElementContext = useBoundaryElement();
6709
6816
  var theme = useTheme();
6710
6817
 
6711
- var allowedAutoPlacements = props.allowedAutoPlacements,
6712
- _props$boundaryElemen = props.boundaryElement,
6818
+ var _props$boundaryElemen = props.boundaryElement,
6713
6819
  boundaryElement = _props$boundaryElemen === void 0 ? boundaryElementContext == null ? void 0 : boundaryElementContext.element : _props$boundaryElemen,
6714
- children = props.children,
6820
+ childProp = props.children,
6715
6821
  content = props.content,
6716
6822
  disabled = props.disabled,
6717
- fallbackPlacements = props.fallbackPlacements,
6823
+ fallbackPlacementsProp = props.fallbackPlacements,
6718
6824
  _props$placement = props.placement,
6719
- placement = _props$placement === void 0 ? 'bottom' : _props$placement,
6825
+ placementProp = _props$placement === void 0 ? 'bottom' : _props$placement,
6720
6826
  portal = props.portal,
6721
6827
  scheme = props.scheme,
6828
+ _props$shadow = props.shadow,
6829
+ shadow = _props$shadow === void 0 ? 2 : _props$shadow,
6722
6830
  _props$zOffset = props.zOffset,
6723
6831
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.tooltip.zOffset : _props$zOffset,
6724
6832
  restProps = _objectWithoutPropertiesLoose(props, _excluded$g);
6725
6833
 
6834
+ var fallbackPlacements = useArrayProp(fallbackPlacementsProp);
6726
6835
  var forwardedRef = useForwardedRef(ref);
6727
6836
 
6728
6837
  var _useState = React.useState(null),
6729
6838
  referenceElement = _useState[0],
6730
6839
  setReferenceElement = _useState[1];
6731
6840
 
6732
- var _useState2 = React.useState(null),
6733
- popperElement = _useState2[0],
6734
- setPopperElement = _useState2[1];
6841
+ var arrowRef = React.useRef(null);
6842
+ var rootBoundary = 'viewport';
6843
+ var middleware = React.useMemo(function () {
6844
+ var ret = []; // Flip the floating element when leaving the boundary box
6735
6845
 
6736
- var _useState3 = React.useState(null),
6737
- arrowElement = _useState3[0],
6738
- setArrowElement = _useState3[1];
6846
+ ret.push(reactDom.flip({
6847
+ boundary: boundaryElement || undefined,
6848
+ fallbackPlacements: fallbackPlacements,
6849
+ padding: 4,
6850
+ rootBoundary: rootBoundary
6851
+ })); // Define distance between reference and floating element
6739
6852
 
6740
- var popper = reactPopper.usePopper(referenceElement, popperElement, {
6741
- placement: placement,
6742
- modifiers: [{
6743
- name: 'arrow',
6744
- options: {
6745
- element: arrowElement,
6746
- padding: 4
6747
- }
6748
- }, {
6749
- name: 'preventOverflow',
6750
- options: {
6751
- altAxis: true,
6752
- boundary: boundaryElement || undefined,
6753
- padding: 4
6754
- }
6755
- }, {
6756
- name: 'offset',
6757
- options: {
6758
- offset: [0, 3]
6759
- }
6760
- }, {
6761
- name: 'flip',
6762
- options: {
6763
- allowedAutoPlacements: allowedAutoPlacements,
6764
- fallbackPlacements: fallbackPlacements
6765
- }
6766
- }]
6767
- });
6768
- var forceUpdate = popper.forceUpdate;
6853
+ ret.push(reactDom.offset({
6854
+ mainAxis: 3
6855
+ })); // Shift the tooltip so its sits with the boundary eleement
6856
+
6857
+ ret.push(reactDom.shift({
6858
+ boundary: boundaryElement || undefined,
6859
+ rootBoundary: rootBoundary,
6860
+ padding: 4
6861
+ })); // Place arrow
6862
+
6863
+ ret.push(reactDom.arrow({
6864
+ element: arrowRef,
6865
+ padding: 2
6866
+ }));
6867
+ return ret;
6868
+ }, [boundaryElement, fallbackPlacements]);
6869
+
6870
+ var _useFloating = reactDom.useFloating({
6871
+ middleware: middleware,
6872
+ placement: placementProp,
6873
+ whileElementsMounted: reactDom.autoUpdate
6874
+ }),
6875
+ x = _useFloating.x,
6876
+ y = _useFloating.y,
6877
+ placement = _useFloating.placement,
6878
+ reference = _useFloating.reference,
6879
+ floating = _useFloating.floating,
6880
+ middlewareData = _useFloating.middlewareData,
6881
+ update = _useFloating.update,
6882
+ strategy = _useFloating.strategy;
6883
+
6884
+ var rootStyle = React.useMemo(function () {
6885
+ return {
6886
+ position: strategy,
6887
+ top: y != null ? y : 0,
6888
+ left: x != null ? x : 0
6889
+ };
6890
+ }, [strategy, x, y]);
6891
+ var staticSide = placement && FLOATING_STATIC_SIDES[placement.split('-')[0]];
6892
+ var arrowX = (_middlewareData$arrow = middlewareData.arrow) == null ? void 0 : _middlewareData$arrow.x;
6893
+ var arrowY = (_middlewareData$arrow2 = middlewareData.arrow) == null ? void 0 : _middlewareData$arrow2.y;
6894
+ var arrowStyle = React.useMemo(function () {
6895
+ var style = {
6896
+ left: arrowX !== null ? arrowX : undefined,
6897
+ top: arrowY !== null ? arrowY : undefined,
6898
+ right: undefined,
6899
+ bottom: undefined
6900
+ };
6901
+ if (staticSide) style[staticSide] = -15;
6902
+ return style;
6903
+ }, [arrowX, arrowY, staticSide]);
6769
6904
 
6770
- var _useState4 = React.useState(false),
6771
- isOpen = _useState4[0],
6772
- setIsOpen = _useState4[1];
6905
+ var _useState2 = React.useState(false),
6906
+ isOpen = _useState2[0],
6907
+ setIsOpen = _useState2[1];
6773
6908
 
6774
6909
  var handleBlur = React.useCallback(function () {
6775
6910
  return setIsOpen(false);
@@ -6803,15 +6938,7 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(props, ref) {
6803
6938
  return function () {
6804
6939
  window.removeEventListener('mousemove', handleWindowMouseMove);
6805
6940
  };
6806
- }, [isOpen, referenceElement]);
6807
- React.useEffect(function () {
6808
- if (forceUpdate) {
6809
- try {
6810
- forceUpdate();
6811
- } catch (_) {// ignore caught error
6812
- }
6813
- }
6814
- }, [forceUpdate, content]); // Close when `disabled` changes to `true`
6941
+ }, [isOpen, referenceElement]); // Close when `disabled` changes to `true`
6815
6942
 
6816
6943
  React.useEffect(function () {
6817
6944
  if (disabled) setIsOpen(false);
@@ -6819,40 +6946,61 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(props, ref) {
6819
6946
 
6820
6947
  React.useEffect(function () {
6821
6948
  if (!content) setIsOpen(false);
6822
- }, [content]);
6823
-
6824
- var setRef = function setRef(el) {
6825
- setPopperElement(el);
6826
- forwardedRef.current = el;
6827
- };
6949
+ }, [content]); // Update reference
6828
6950
 
6829
- if (!children) return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
6830
- if (disabled) return children;
6831
- var referenceProps = {
6832
- onBlur: handleBlur,
6833
- onFocus: handleFocus,
6834
- onMouseEnter: handleMouseEnter,
6835
- onMouseLeave: handleMouseLeave,
6836
- ref: setReferenceElement
6837
- };
6838
- var referenceNode = /*#__PURE__*/React.cloneElement(children, referenceProps);
6839
- var popperNode = /*#__PURE__*/React__default["default"].createElement(Root$a, _extends({
6951
+ React.useEffect(function () {
6952
+ return reference(referenceElement);
6953
+ }, [reference, referenceElement]);
6954
+ var setArrow = React.useCallback(function (arrowEl) {
6955
+ arrowRef.current = arrowEl;
6956
+ update();
6957
+ }, [update]);
6958
+ var setFloating = React.useCallback(function (node) {
6959
+ forwardedRef.current = node;
6960
+ floating(node);
6961
+ }, [floating, forwardedRef]);
6962
+ var childRef = childProp == null ? void 0 : childProp.ref;
6963
+ var setReference = React.useCallback(function (node) {
6964
+ if (typeof childRef === 'function') {
6965
+ childRef(node);
6966
+ } else if (childRef) {
6967
+ childRef.current = node;
6968
+ } // childRef.current = node
6969
+
6970
+
6971
+ setReferenceElement(node);
6972
+ }, [childRef]);
6973
+ var child = React.useMemo(function () {
6974
+ if (!childProp) return null;
6975
+ return /*#__PURE__*/React.cloneElement(childProp, {
6976
+ onBlur: handleBlur,
6977
+ onFocus: handleFocus,
6978
+ onMouseEnter: handleMouseEnter,
6979
+ onMouseLeave: handleMouseLeave,
6980
+ ref: setReference
6981
+ });
6982
+ }, [childProp, handleBlur, handleFocus, handleMouseEnter, handleMouseLeave, setReference]);
6983
+ if (!child) return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
6984
+ if (disabled) return child;
6985
+ var root = /*#__PURE__*/React__default["default"].createElement(Root$a, _extends({
6840
6986
  "data-ui": "Tooltip"
6841
- }, restProps, popper.attributes.popper, {
6842
- ref: setRef,
6843
- style: popper.styles.popper,
6987
+ }, restProps, {
6988
+ ref: setFloating,
6989
+ style: rootStyle,
6844
6990
  zOffset: zOffset
6845
6991
  }), /*#__PURE__*/React__default["default"].createElement(Card, {
6992
+ "data-ui": "Tooltip__card",
6993
+ "data-placement": placement,
6846
6994
  radius: 2,
6847
6995
  scheme: scheme,
6848
- shadow: 3
6996
+ shadow: shadow
6849
6997
  }, content, /*#__PURE__*/React__default["default"].createElement(TooltipArrow, {
6850
- ref: setArrowElement,
6851
- style: popper.styles.arrow
6998
+ ref: setArrow,
6999
+ style: arrowStyle
6852
7000
  })));
6853
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, referenceNode, isOpen && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, portal && /*#__PURE__*/React__default["default"].createElement(Portal, {
7001
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, child, isOpen && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, portal ? /*#__PURE__*/React__default["default"].createElement(Portal, {
6854
7002
  __unstable_name: typeof portal === 'string' ? portal : undefined
6855
- }, popperNode), !portal && popperNode));
7003
+ }, root) : root));
6856
7004
  });
6857
7005
 
6858
7006
  var _templateObject$b, _templateObject2$8, _templateObject3$3, _templateObject4$2, _templateObject5$1;
@@ -6860,7 +7008,7 @@ var _templateObject$b, _templateObject2$8, _templateObject3$3, _templateObject4$
6860
7008
  * @internal
6861
7009
  */
6862
7010
 
6863
- var Root$9 = styled__default["default"].div(_templateObject$b || (_templateObject$b = _taggedTemplateLiteralLoose(["\n /* position: relative; */\n line-height: 0;\n"])));
7011
+ var Root$9 = styled__default["default"].div(_templateObject$b || (_templateObject$b = _taggedTemplateLiteralLoose(["\n line-height: 0;\n"])));
6864
7012
  /**
6865
7013
  * @internal
6866
7014
  */
@@ -6870,7 +7018,7 @@ var ListBox = styled__default["default"](Box)(_templateObject2$8 || (_templateOb
6870
7018
  * @internal
6871
7019
  */
6872
7020
 
6873
- var ResultsPopover = styled__default["default"](Popover)(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteralLoose(["\n & > div {\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n }\n\n &[data-popper-reference-hidden='true'] {\n display: none;\n }\n"])));
7021
+ var ResultsPopover = styled__default["default"](Popover)(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteralLoose(["\n &[data-popper-reference-hidden='true'] {\n display: none;\n }\n"])));
6874
7022
  var rotate = styled.keyframes(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteralLoose(["\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n"])));
6875
7023
  /**
6876
7024
  * @internal
@@ -6981,27 +7129,22 @@ function autocompleteReducer(state, msg) {
6981
7129
  /**
6982
7130
  * @internal
6983
7131
  */
6984
- var EMPTY_RECORD = {};
6985
- /**
6986
- * @internal
6987
- */
6988
-
6989
7132
  var AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = ['Control', 'Shift', 'Alt', 'Enter', 'Home', 'End', 'PageUp', 'PageDown', 'Meta', 'Tab', 'CapsLock'];
6990
7133
  /**
6991
7134
  * @internal
6992
7135
  */
6993
7136
 
6994
- var AUTOCOMPLETE_POPOVER_MARGINS = [0, 1, 1, 1];
7137
+ var AUTOCOMPLETE_POPOVER_MARGINS = [0, 1, 0, 0];
6995
7138
  /**
6996
7139
  * @internal
6997
7140
  */
6998
7141
 
6999
- var AUTOCOMPLETE_POPOVER_PLACEMENT = 'bottom-start';
7142
+ var AUTOCOMPLETE_POPOVER_PLACEMENT = 'bottom';
7000
7143
  /**
7001
7144
  * @internal
7002
7145
  */
7003
7146
 
7004
- var AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS = ['top-start'];
7147
+ var AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS = ['bottom', 'top'];
7005
7148
 
7006
7149
  var _excluded$f = ["border", "customValidity", "disabled", "filterOption", "fontSize", "icon", "id", "listBox", "loading", "onBlur", "onChange", "onFocus", "onQueryChange", "onSelect", "openButton", "options", "padding", "popover", "prefix", "radius", "readOnly", "relatedElements", "renderOption", "renderPopover", "renderValue", "suffix", "value"];
7007
7150
 
@@ -7097,7 +7240,7 @@ var InnerAutocomplete = /*#__PURE__*/React.forwardRef(function InnerAutocomplete
7097
7240
  var popoverMouseWithinRef = React.useRef(false);
7098
7241
  var listBoxId = id + "-listbox";
7099
7242
  var options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY;
7100
- var padding = useResponsiveProp(paddingProp);
7243
+ var padding = useArrayProp(paddingProp);
7101
7244
  var currentOption = React.useMemo(function () {
7102
7245
  return value !== null ? options.find(function (o) {
7103
7246
  return o.value === value;
@@ -7441,6 +7584,7 @@ var InnerAutocomplete = /*#__PURE__*/React.forwardRef(function InnerAutocomplete
7441
7584
  var content = React.useMemo(function () {
7442
7585
  if (filteredOptions.length === 0) return null;
7443
7586
  return /*#__PURE__*/React__default["default"].createElement(ListBox, _extends({
7587
+ "data-ui": "AutoComplete__results",
7444
7588
  onKeyDown: handleListBoxKeyDown,
7445
7589
  padding: 1
7446
7590
  }, listBox, {
@@ -7448,6 +7592,7 @@ var InnerAutocomplete = /*#__PURE__*/React.forwardRef(function InnerAutocomplete
7448
7592
  }), /*#__PURE__*/React__default["default"].createElement(Stack, {
7449
7593
  as: "ul",
7450
7594
  "aria-multiselectable": false,
7595
+ "data-ui": "AutoComplete__resultsList",
7451
7596
  id: listBoxId,
7452
7597
  ref: listBoxElementRef,
7453
7598
  role: "listbox",
@@ -7527,9 +7672,11 @@ var Breadcrumbs = /*#__PURE__*/React.forwardRef(function Breadcrumbs(props, ref)
7527
7672
  maxLength = props.maxLength,
7528
7673
  separator = props.separator,
7529
7674
  _props$space = props.space,
7530
- space = _props$space === void 0 ? 2 : _props$space,
7675
+ spaceRaw = _props$space === void 0 ? 2 : _props$space,
7531
7676
  restProps = _objectWithoutPropertiesLoose(props, _excluded$e);
7532
7677
 
7678
+ var space = useArrayProp(spaceRaw);
7679
+
7533
7680
  var _useState = React.useState(false),
7534
7681
  open = _useState[0],
7535
7682
  setOpen = _useState[1];
@@ -7625,7 +7772,7 @@ function dialogStyle(_ref) {
7625
7772
  function responsiveDialogPositionStyle(props) {
7626
7773
  var theme = props.theme;
7627
7774
  var media = theme.sanity.media;
7628
- return responsive(media, getResponsiveProp(props.$position), function (position) {
7775
+ return _responsive(media, props.$position, function (position) {
7629
7776
  return {
7630
7777
  '&&': {
7631
7778
  position: position
@@ -7673,10 +7820,13 @@ var DialogCard = /*#__PURE__*/React.forwardRef(function DialogCard(props, ref) {
7673
7820
  id = props.id,
7674
7821
  onClickOutside = props.onClickOutside,
7675
7822
  onClose = props.onClose,
7676
- radius = props.radius,
7823
+ radiusProp = props.radius,
7677
7824
  scheme = props.scheme,
7678
- shadow = props.shadow,
7679
- width = props.width;
7825
+ shadowProp = props.shadow,
7826
+ widthProp = props.width;
7827
+ var radius = useArrayProp(radiusProp);
7828
+ var shadow = useArrayProp(shadowProp);
7829
+ var width = useArrayProp(widthProp);
7680
7830
  var forwardedRef = useForwardedRef(ref);
7681
7831
 
7682
7832
  var _useState = React.useState(null),
@@ -7763,7 +7913,7 @@ var Dialog = /*#__PURE__*/React.forwardRef(function Dialog(props, ref) {
7763
7913
  _props$__unstable_hid = props.__unstable_hideCloseButton,
7764
7914
  hideCloseButton = _props$__unstable_hid === void 0 ? false : _props$__unstable_hid,
7765
7915
  _props$cardRadius = props.cardRadius,
7766
- cardRadius = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7916
+ cardRadiusProp = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7767
7917
  _props$cardShadow = props.cardShadow,
7768
7918
  cardShadow = _props$cardShadow === void 0 ? 4 : _props$cardShadow,
7769
7919
  children = props.children,
@@ -7774,17 +7924,22 @@ var Dialog = /*#__PURE__*/React.forwardRef(function Dialog(props, ref) {
7774
7924
  onClickOutside = props.onClickOutside,
7775
7925
  onClose = props.onClose,
7776
7926
  _props$padding = props.padding,
7777
- padding = _props$padding === void 0 ? 4 : _props$padding,
7927
+ paddingProp = _props$padding === void 0 ? 4 : _props$padding,
7778
7928
  portal = props.portal,
7779
7929
  _props$position = props.position,
7780
- position = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7930
+ positionProp = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7781
7931
  scheme = props.scheme,
7782
7932
  _props$width = props.width,
7783
- width = _props$width === void 0 ? 0 : _props$width,
7933
+ widthProp = _props$width === void 0 ? 0 : _props$width,
7784
7934
  _props$zOffset = props.zOffset,
7785
- zOffset = _props$zOffset === void 0 ? dialog.zOffset || ((_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.dialog.zOffset) : _props$zOffset,
7935
+ zOffsetProp = _props$zOffset === void 0 ? dialog.zOffset || ((_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.dialog.zOffset) : _props$zOffset,
7786
7936
  restProps = _objectWithoutPropertiesLoose(props, _excluded$d);
7787
7937
 
7938
+ var cardRadius = useArrayProp(cardRadiusProp);
7939
+ var padding = useArrayProp(paddingProp);
7940
+ var position = useArrayProp(positionProp);
7941
+ var width = useArrayProp(widthProp);
7942
+ var zOffset = useArrayProp(zOffsetProp);
7788
7943
  var preDivRef = React.useRef(null);
7789
7944
  var postDivRef = React.useRef(null);
7790
7945
  var cardRef = React.useRef(null);
@@ -7879,9 +8034,11 @@ var Hotkeys = /*#__PURE__*/React.forwardRef(function Hotkeys(props, ref) {
7879
8034
  padding = props.padding,
7880
8035
  radius = props.radius,
7881
8036
  _props$space = props.space,
7882
- space = _props$space === void 0 ? 1 : _props$space,
8037
+ spaceProp = _props$space === void 0 ? 1 : _props$space,
7883
8038
  restProps = _objectWithoutPropertiesLoose(props, _excluded$c);
7884
8039
 
8040
+ var space = useArrayProp(spaceProp);
8041
+
7885
8042
  if (!keys || keys.length === 0) {
7886
8043
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null);
7887
8044
  }
@@ -8292,17 +8449,18 @@ var Menu = /*#__PURE__*/React.forwardRef(function Menu(props, ref) {
8292
8449
  var MenuButton = /*#__PURE__*/React.forwardRef(function MenuButton(props, ref) {
8293
8450
  var _props$__unstable_dis = props.__unstable_disableRestoreFocusOnClose,
8294
8451
  disableRestoreFocusOnClose = _props$__unstable_dis === void 0 ? false : _props$__unstable_dis,
8295
- boundaryElement = props.boundaryElement,
8452
+ deprecated_boundaryElement = props.boundaryElement,
8296
8453
  buttonProp = props.button,
8297
8454
  id = props.id,
8298
8455
  menuProp = props.menu,
8299
8456
  onClose = props.onClose,
8300
- placement = props.placement,
8301
- popoverScheme = props.popoverScheme,
8302
- portal = props.portal,
8457
+ deprecated_placement = props.placement,
8458
+ deprecated_popoverScheme = props.popoverScheme,
8459
+ _props$portal = props.portal,
8460
+ deprecated_portal = _props$portal === void 0 ? true : _props$portal,
8303
8461
  popover = props.popover,
8304
- popoverRadius = props.popoverRadius,
8305
- preventOverflow = props.preventOverflow;
8462
+ deprecated_popoverRadius = props.popoverRadius,
8463
+ deprecated_preventOverflow = props.preventOverflow;
8306
8464
 
8307
8465
  var _useState = React.useState(false),
8308
8466
  open = _useState[0],
@@ -8450,14 +8608,14 @@ var MenuButton = /*#__PURE__*/React.forwardRef(function MenuButton(props, ref) {
8450
8608
  }, [buttonProp, handleButtonClick, handleButtonKeyDown, id, open, setButtonRef]);
8451
8609
  var popoverProps = React.useMemo(function () {
8452
8610
  return _extends({
8453
- boundaryElement: boundaryElement,
8454
- placement: placement,
8455
- portal: portal,
8456
- radius: popoverRadius,
8457
- overflow: preventOverflow,
8458
- scheme: popoverScheme
8611
+ boundaryElement: deprecated_boundaryElement,
8612
+ placement: deprecated_placement,
8613
+ portal: deprecated_portal,
8614
+ radius: deprecated_popoverRadius,
8615
+ preventOverflow: deprecated_preventOverflow,
8616
+ scheme: deprecated_popoverScheme
8459
8617
  }, popover || {});
8460
- }, [boundaryElement, placement, popover, popoverRadius, portal, preventOverflow, popoverScheme]);
8618
+ }, [deprecated_boundaryElement, deprecated_preventOverflow, deprecated_placement, popover, deprecated_popoverRadius, deprecated_portal, deprecated_popoverScheme]);
8461
8619
  return /*#__PURE__*/React__default["default"].createElement(Popover, _extends({}, popoverProps, {
8462
8620
  content: menu,
8463
8621
  "data-ui": "MenuButton__popover",
@@ -8494,7 +8652,7 @@ function selectableColorStyle(props) {
8494
8652
  * @internal
8495
8653
  */
8496
8654
 
8497
- var Selectable = styled__default["default"](Box)(responsiveBorderStyle, responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8655
+ var Selectable = styled__default["default"](Box)(responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8498
8656
 
8499
8657
  function useMenu() {
8500
8658
  var value = React.useContext(MenuContext);
@@ -8527,8 +8685,7 @@ function MenuGroup(props) {
8527
8685
  onClick = props.onClick,
8528
8686
  _props$padding = props.padding,
8529
8687
  padding = _props$padding === void 0 ? 3 : _props$padding,
8530
- _props$popover = props.popover,
8531
- popover = _props$popover === void 0 ? {} : _props$popover,
8688
+ popover = props.popover,
8532
8689
  _props$radius = props.radius,
8533
8690
  radius = _props$radius === void 0 ? 2 : _props$radius,
8534
8691
  _props$space = props.space,
@@ -8642,7 +8799,7 @@ function MenuGroup(props) {
8642
8799
  "aria-pressed": as === 'button' ? withinMenu : undefined,
8643
8800
  "data-pressed": as !== 'button' ? withinMenu : undefined,
8644
8801
  "data-selected": !withinMenu && active ? '' : undefined,
8645
- "$radius": radius,
8802
+ "$radius": useArrayProp(radius),
8646
8803
  "$tone": tone,
8647
8804
  onClick: handleClick,
8648
8805
  onKeyDown: handleKeyDown,
@@ -8741,21 +8898,20 @@ var MenuItem = /*#__PURE__*/React.forwardRef(function MenuItem(props, forwardedR
8741
8898
  setRootElement(el);
8742
8899
  }, [ref]);
8743
8900
  return /*#__PURE__*/React__default["default"].createElement(Selectable, _extends({
8744
- "data-as": as,
8745
- "data-ui": "MenuItem",
8746
- forwardedAs: as
8901
+ "data-ui": "MenuItem"
8747
8902
  }, restProps, {
8748
8903
  "aria-pressed": as === 'button' && pressed,
8749
8904
  "data-pressed": as !== 'button' && pressed ? '' : undefined,
8750
8905
  "data-selected": active ? '' : undefined,
8751
8906
  "data-disabled": disabled ? '' : undefined,
8752
- "$radius": radius,
8907
+ forwardedAs: as,
8908
+ "$radius": useArrayProp(radius),
8909
+ "$padding": useArrayProp(0),
8753
8910
  "$tone": tone,
8754
8911
  disabled: disabled,
8755
8912
  onClick: handleClick,
8756
8913
  onMouseEnter: onItemMouseEnter,
8757
8914
  onMouseLeave: onItemMouseLeave,
8758
- padding: 0,
8759
8915
  ref: setRef,
8760
8916
  role: "menuitem",
8761
8917
  tabIndex: -1,
@@ -8837,7 +8993,7 @@ var Skeleton = /*#__PURE__*/React.forwardRef(function Skeleton(props, ref) {
8837
8993
  }, [delay]);
8838
8994
  return /*#__PURE__*/React__default["default"].createElement(Root$4, _extends({}, restProps, {
8839
8995
  "$animated": animated,
8840
- "$radius": radius,
8996
+ "$radius": useArrayProp(radius),
8841
8997
  "$visible": visible,
8842
8998
  ref: ref
8843
8999
  }));
@@ -8853,13 +9009,15 @@ var Root$3 = styled__default["default"](Skeleton)(function (_ref) {
8853
9009
  theme = _ref.theme;
8854
9010
  var media = theme.sanity.media;
8855
9011
  var font = theme.sanity.fonts[$style];
8856
- var styles = responsive(media, $size, function (sizeIndex) {
9012
+
9013
+ var styles = _responsive(media, $size, function (sizeIndex) {
8857
9014
  var fontSize = font.sizes[sizeIndex];
8858
9015
  var capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight;
8859
9016
  return {
8860
9017
  height: capHeight
8861
9018
  };
8862
9019
  });
9020
+
8863
9021
  return styles;
8864
9022
  });
8865
9023
  /**
@@ -8872,7 +9030,7 @@ var TextSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props, re
8872
9030
  size = _props$size === void 0 ? 2 : _props$size,
8873
9031
  restProps = _objectWithoutPropertiesLoose(props, _excluded$7);
8874
9032
 
8875
- var $size = useResponsiveProp(size);
9033
+ var $size = useArrayProp(size);
8876
9034
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
8877
9035
  "$size": $size,
8878
9036
  ref: ref,
@@ -8889,7 +9047,7 @@ var LabelSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props, r
8889
9047
  size = _props$size2 === void 0 ? 2 : _props$size2,
8890
9048
  restProps = _objectWithoutPropertiesLoose(props, _excluded2);
8891
9049
 
8892
- var $size = useResponsiveProp(size);
9050
+ var $size = useArrayProp(size);
8893
9051
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
8894
9052
  "$size": $size,
8895
9053
  ref: ref,
@@ -8906,7 +9064,7 @@ var HeadingSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props,
8906
9064
  size = _props$size3 === void 0 ? 2 : _props$size3,
8907
9065
  restProps = _objectWithoutPropertiesLoose(props, _excluded3);
8908
9066
 
8909
- var $size = useResponsiveProp(size);
9067
+ var $size = useArrayProp(size);
8910
9068
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
8911
9069
  "$size": $size,
8912
9070
  ref: ref,
@@ -8923,7 +9081,7 @@ var CodeSkeleton = /*#__PURE__*/React.forwardRef(function TextSkeleton(props, re
8923
9081
  size = _props$size4 === void 0 ? 2 : _props$size4,
8924
9082
  restProps = _objectWithoutPropertiesLoose(props, _excluded4);
8925
9083
 
8926
- var $size = useResponsiveProp(size);
9084
+ var $size = useArrayProp(size);
8927
9085
  return /*#__PURE__*/React__default["default"].createElement(Root$3, _extends({}, restProps, {
8928
9086
  "$size": $size,
8929
9087
  ref: ref,
@@ -9836,7 +9994,6 @@ exports.Popover = Popover;
9836
9994
  exports.Portal = Portal;
9837
9995
  exports.PortalProvider = PortalProvider;
9838
9996
  exports.Radio = Radio;
9839
- exports.ResizeObserver = RO;
9840
9997
  exports.Select = Select;
9841
9998
  exports.Skeleton = Skeleton;
9842
9999
  exports.Spinner = Spinner;
@@ -9858,18 +10015,21 @@ exports.Tooltip = Tooltip;
9858
10015
  exports.Tree = Tree;
9859
10016
  exports.TreeItem = TreeItem;
9860
10017
  exports.VirtualList = VirtualList;
10018
+ exports._ResizeObserver = _ResizeObserver;
10019
+ exports._elementSizeObserver = _elementSizeObserver;
10020
+ exports._fillCSSObject = _fillCSSObject;
10021
+ exports._getArrayProp = _getArrayProp;
10022
+ exports._getResponsiveSpace = _getResponsiveSpace;
9861
10023
  exports._hasFocus = _hasFocus;
9862
10024
  exports._isEnterToClickElement = _isEnterToClickElement;
9863
10025
  exports._isScrollable = _isScrollable;
9864
10026
  exports._raf = _raf;
9865
10027
  exports._raf2 = _raf2;
10028
+ exports._responsive = _responsive;
9866
10029
  exports.attemptFocus = attemptFocus;
9867
10030
  exports.createColorTheme = createColorTheme;
9868
- exports.fillCSSObject = fillCSSObject;
9869
10031
  exports.focusFirstDescendant = focusFirstDescendant;
9870
10032
  exports.focusLastDescendant = focusLastDescendant;
9871
- exports.getResponsiveProp = getResponsiveProp;
9872
- exports.getResponsiveSpace = getResponsiveSpace;
9873
10033
  exports.hexToRgb = hexToRgb;
9874
10034
  exports.hslToRgb = hslToRgb;
9875
10035
  exports.isFocusable = isFocusable;
@@ -9882,7 +10042,6 @@ exports.isHTMLTextAreaElement = isHTMLTextAreaElement;
9882
10042
  exports.multiply = multiply$1;
9883
10043
  exports.parseColor = parseColor;
9884
10044
  exports.rem = rem;
9885
- exports.responsive = responsive;
9886
10045
  exports.responsiveCodeFontStyle = responsiveCodeFontStyle;
9887
10046
  exports.responsiveHeadingFont = responsiveHeadingFont;
9888
10047
  exports.responsiveLabelFont = responsiveLabelFont;
@@ -9893,18 +10052,19 @@ exports.rgbToHsl = rgbToHsl;
9893
10052
  exports.rgba = rgba;
9894
10053
  exports.screen = screen$1;
9895
10054
  exports.studioTheme = studioTheme;
10055
+ exports.useArrayProp = useArrayProp;
9896
10056
  exports.useBoundaryElement = useBoundaryElement;
9897
10057
  exports.useClickOutside = useClickOutside;
9898
10058
  exports.useCustomValidity = useCustomValidity;
9899
10059
  exports.useDialog = useDialog;
9900
10060
  exports.useElementRect = useElementRect;
10061
+ exports.useElementSize = useElementSize;
9901
10062
  exports.useForwardedRef = useForwardedRef;
9902
10063
  exports.useGlobalKeyDown = useGlobalKeyDown;
9903
10064
  exports.useLayer = useLayer;
9904
10065
  exports.useMediaIndex = useMediaIndex;
9905
10066
  exports.usePortal = usePortal;
9906
10067
  exports.usePrefersDark = usePrefersDark;
9907
- exports.useResponsiveProp = useResponsiveProp;
9908
10068
  exports.useRootTheme = useRootTheme;
9909
10069
  exports.useTheme = useTheme;
9910
10070
  exports.useToast = useToast;