@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
@@ -1,14 +1,13 @@
1
1
  import { useId } from '@reach/auto-id';
2
- import React, { useState, useRef, useEffect, createContext, useContext, useMemo, useLayoutEffect, forwardRef, useCallback, cloneElement, isValidElement, createElement, useReducer, Children, Fragment, memo } from 'react';
2
+ import React, { useMemo, useState, useRef, useEffect, createContext, useContext, useLayoutEffect, forwardRef, useCallback, cloneElement, isValidElement, createElement, memo, useReducer, Children, Fragment } from 'react';
3
3
  import ReactIs, { isElement, isFragment, isValidElementType } from 'react-is';
4
4
  import styled, { ThemeProvider as ThemeProvider$1, useTheme as useTheme$1, css, keyframes } from 'styled-components';
5
+ import { ResizeObserver } from '@juggle/resize-observer';
5
6
  import { white as white$1, black as black$1, hues } from '@sanity/color';
6
7
  import { SpinnerIcon, CheckmarkIcon, RemoveIcon, SelectIcon, CloseIcon, ChevronDownIcon, ChevronRightIcon, ToggleArrowRightIcon } from '@sanity/icons';
7
8
  import Refractor from 'react-refractor';
8
- import { usePopper } from 'react-popper';
9
- import { ResizeObserver as ResizeObserver$1 } from '@juggle/resize-observer';
9
+ import { flip, size as size$1, offset, shift, arrow, useFloating, autoUpdate } from '@floating-ui/react-dom';
10
10
  import ReactDOM from 'react-dom';
11
- import maxSizeModifier from 'popper-max-size-modifier';
12
11
  import { AnimatePresence, motion } from 'framer-motion';
13
12
 
14
13
  function _extends() {
@@ -107,8 +106,234 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
107
106
  throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
108
107
  }
109
108
 
109
+ /**
110
+ * @internal
111
+ */
110
112
  var EMPTY_ARRAY = [];
111
- var EMPTY_RECORD$1 = {};
113
+ /**
114
+ * @internal
115
+ */
116
+
117
+ var EMPTY_RECORD = {};
118
+ /**
119
+ * @internal
120
+ */
121
+
122
+ var FLOATING_STATIC_SIDES = {
123
+ top: 'bottom',
124
+ right: 'left',
125
+ bottom: 'top',
126
+ left: 'right'
127
+ };
128
+
129
+ /**
130
+ * @internal
131
+ */
132
+
133
+ function _fillCSSObject(keys, value) {
134
+ return keys.reduce(function (style, key) {
135
+ style[key] = value;
136
+ return style;
137
+ }, {});
138
+ }
139
+ /**
140
+ * @public
141
+ */
142
+
143
+ function rem(pixelValue) {
144
+ if (pixelValue === 0) return 0;
145
+ return pixelValue / 16 + "rem";
146
+ }
147
+ /**
148
+ * @internal
149
+ */
150
+
151
+ function _responsive(media, values, callback) {
152
+ var statements = values.map(callback);
153
+ return statements.map(function (statement, mediaIndex) {
154
+ var _ref;
155
+
156
+ if (mediaIndex === 0) return statement;
157
+ return _ref = {}, _ref["@media screen and (min-width: " + media[mediaIndex - 1] + "px)"] = statement, _ref;
158
+ });
159
+ }
160
+ /**
161
+ * @internal
162
+ */
163
+
164
+ function _getArrayProp(val, defaultVal) {
165
+ if (val === undefined) return defaultVal || EMPTY_ARRAY;
166
+ return Array.isArray(val) ? val : [val];
167
+ }
168
+ /**
169
+ * @internal
170
+ */
171
+
172
+ function _getResponsiveSpace(theme, props, spaceIndexes) {
173
+ if (spaceIndexes === void 0) {
174
+ spaceIndexes = EMPTY_ARRAY;
175
+ }
176
+
177
+ if (!Array.isArray(spaceIndexes)) {
178
+ throw new Error('the property must be array of numbers');
179
+ }
180
+
181
+ if (spaceIndexes.length === 0) {
182
+ return null;
183
+ }
184
+
185
+ return _responsive(theme.sanity.media, spaceIndexes, function (spaceIndex) {
186
+ return _fillCSSObject(props, rem(theme.sanity.space[spaceIndex]));
187
+ });
188
+ }
189
+
190
+ /**
191
+ * A utility function getting responsive font styles.
192
+ * @internal
193
+ */
194
+
195
+ function responsiveFont(fontKey, props) {
196
+ var $size = props.$size,
197
+ $weight = props.$weight,
198
+ theme = props.theme;
199
+ var _theme$sanity = theme.sanity,
200
+ fonts = _theme$sanity.fonts,
201
+ media = _theme$sanity.media;
202
+ var _fonts$fontKey = fonts[fontKey],
203
+ family = _fonts$fontKey.family,
204
+ sizes = _fonts$fontKey.sizes,
205
+ weights = _fonts$fontKey.weights;
206
+ var fontWeight = $weight && weights[$weight] || weights.regular; // @todo: make this configurable
207
+
208
+ var defaultSize = sizes[2];
209
+ var base = {
210
+ position: 'relative',
211
+ fontFamily: family,
212
+ fontWeight: fontWeight,
213
+ padding: '1px 0',
214
+ margin: 0,
215
+ '&:before': {
216
+ content: '""',
217
+ display: 'block',
218
+ height: 0
219
+ },
220
+ '&:after': {
221
+ content: '""',
222
+ display: 'block',
223
+ height: 0
224
+ },
225
+ '& > code, & > span': {
226
+ display: 'block'
227
+ },
228
+ '&:not([hidden])': {
229
+ display: 'block'
230
+ }
231
+ };
232
+
233
+ var resp = _responsive(media, $size, function (sizeIndex) {
234
+ return fontSize(sizes[sizeIndex] || defaultSize);
235
+ });
236
+
237
+ return [base].concat(resp);
238
+ }
239
+ function fontSize(size) {
240
+ var ascenderHeight = size.ascenderHeight,
241
+ descenderHeight = size.descenderHeight,
242
+ fontSize = size.fontSize,
243
+ iconSize = size.iconSize,
244
+ letterSpacing = size.letterSpacing,
245
+ lineHeight = size.lineHeight;
246
+ var negHeight = ascenderHeight + descenderHeight;
247
+ var capHeight = lineHeight - negHeight;
248
+ var iconOffset = (capHeight - iconSize) / 2;
249
+ var customIconSize = Math.floor(fontSize * 1.125 / 2) * 2 + 1;
250
+ var customIconOffset = (capHeight - customIconSize) / 2;
251
+ return {
252
+ fontSize: rem(fontSize),
253
+ lineHeight: "calc(" + lineHeight + " / " + fontSize + ")",
254
+ letterSpacing: rem(letterSpacing),
255
+ transform: "translateY(" + rem(descenderHeight) + ")",
256
+ '&:before': {
257
+ marginTop: "calc(" + rem(0 - negHeight) + " - 1px)"
258
+ },
259
+ '&:after': {
260
+ marginBottom: '-1px'
261
+ },
262
+ '& svg:not([data-sanity-icon])': {
263
+ fontSize: "calc(" + customIconSize + " / 16 * 1rem)",
264
+ margin: rem(customIconOffset)
265
+ },
266
+ '& [data-sanity-icon]': {
267
+ fontSize: "calc(" + iconSize + " / 16 * 1rem)",
268
+ margin: rem(iconOffset)
269
+ }
270
+ };
271
+ }
272
+
273
+ /**
274
+ * Get responsive CSS for the `code` font style.
275
+ * @internal
276
+ */
277
+
278
+ function responsiveCodeFontStyle(props) {
279
+ return responsiveFont('code', props);
280
+ }
281
+
282
+ /**
283
+ * Get responsive CSS for the `heading` font style.
284
+ * @internal
285
+ */
286
+
287
+ function responsiveHeadingFont(props) {
288
+ return responsiveFont('heading', props);
289
+ }
290
+
291
+ /**
292
+ * Get responsive CSS for the `label` font style.
293
+ * @internal
294
+ */
295
+
296
+ function responsiveLabelFont(props) {
297
+ return responsiveFont('label', props);
298
+ }
299
+
300
+ /**
301
+ * Get responsive text align styles.
302
+ * @internal
303
+ */
304
+
305
+ function responsiveTextAlignStyle(props) {
306
+ var theme = props.theme;
307
+ return _responsive(theme.sanity.media, props.$align, function (textAlign) {
308
+ return {
309
+ textAlign: textAlign
310
+ };
311
+ });
312
+ }
313
+
314
+ /**
315
+ * Get responsive CSS for the `text` font style.
316
+ * @internal
317
+ */
318
+
319
+ function responsiveTextFont(props) {
320
+ return responsiveFont('text', props);
321
+ }
322
+
323
+ /**
324
+ * This API might change. DO NOT USE IN PRODUCTION.
325
+ * @beta
326
+ */
327
+
328
+ function useArrayProp(val, defaultVal) {
329
+ var __perf_hash__ = JSON.stringify(val != null ? val : defaultVal);
330
+
331
+ return useMemo(function () {
332
+ return _getArrayProp(val, defaultVal);
333
+ }, // Improve performance: Keep object identify for a given hash of the value
334
+ // eslint-disable-next-line react-hooks/exhaustive-deps
335
+ [__perf_hash__]);
336
+ }
112
337
 
113
338
  function _getElements(element, elementsArg) {
114
339
  var ret = [element];
@@ -211,26 +436,110 @@ function useClickOutside(listener, elementsArg, boundaryElement) {
211
436
  }
212
437
 
213
438
  /**
214
- * Subscribe to the rect of a DOM element.
439
+ * @internal
440
+ */
441
+
442
+ var _ResizeObserver = typeof window !== 'undefined' && window.ResizeObserver ? window.ResizeObserver : ResizeObserver;
443
+
444
+ // NOTE: this should NOT have size effects
445
+
446
+ /**
447
+ * @internal
448
+ */
449
+
450
+ var _elementSizeObserver = _createElementSizeObserver();
451
+
452
+ function _createElementRectValueListener() {
453
+ return {
454
+ subscribe: function subscribe(element, subscriber) {
455
+ var resizeObserver = new _ResizeObserver(function (_ref) {
456
+ var entry = _ref[0];
457
+ subscriber({
458
+ _contentRect: entry.contentRect,
459
+ border: {
460
+ width: entry.borderBoxSize[0].inlineSize,
461
+ height: entry.borderBoxSize[0].blockSize
462
+ },
463
+ content: {
464
+ width: entry.contentRect.width,
465
+ height: entry.contentRect.height
466
+ }
467
+ });
468
+ });
469
+ resizeObserver.observe(element);
470
+ return function () {
471
+ resizeObserver.unobserve(element);
472
+ resizeObserver.disconnect();
473
+ };
474
+ }
475
+ };
476
+ }
477
+
478
+ function _createElementSizeObserver() {
479
+ var disposeCache = new WeakMap();
480
+ var subscribersCache = new WeakMap();
481
+ return {
482
+ subscribe: function subscribe(element, subscriber) {
483
+ var subscribers = subscribersCache.get(element) || [];
484
+ var dispose = disposeCache.get(element);
485
+
486
+ if (!subscribersCache.has(element)) {
487
+ subscribersCache.set(element, subscribers);
488
+
489
+ var listener = _createElementRectValueListener(); // listen
490
+
491
+
492
+ dispose = listener.subscribe(element, function (elementRect) {
493
+ for (var _iterator = _createForOfIteratorHelperLoose(subscribers), _step; !(_step = _iterator()).done;) {
494
+ var sub = _step.value;
495
+ sub(elementRect);
496
+ }
497
+ });
498
+ }
499
+
500
+ subscribers.push(subscriber);
501
+ return function () {
502
+ // dispose
503
+ var idx = subscribers.indexOf(subscriber);
504
+
505
+ if (idx > -1) {
506
+ subscribers.splice(idx, 1);
507
+ }
508
+
509
+ if (subscribers.length === 0) {
510
+ // unlisten
511
+ if (dispose) dispose();
512
+ }
513
+ };
514
+ }
515
+ };
516
+ }
517
+
518
+ /**
519
+ * Subscribe to the size of a DOM element.
215
520
  * @beta
216
521
  */
217
522
 
218
- function useElementRect(element) {
523
+ function useElementSize(element) {
219
524
  var _useState = useState(null),
220
- rect = _useState[0],
221
- setRect = _useState[1];
525
+ size = _useState[0],
526
+ setSize = _useState[1];
222
527
 
223
528
  useEffect(function () {
224
529
  if (!element) return undefined;
225
- var ro = new ResizeObserver(function (entries) {
226
- setRect(entries[0].contentRect);
227
- });
228
- ro.observe(element);
229
- return function () {
230
- return ro.disconnect();
231
- };
530
+ return _elementSizeObserver.subscribe(element, setSize);
232
531
  }, [element]);
233
- return rect;
532
+ return size;
533
+ }
534
+
535
+ /**
536
+ * Subscribe to the rect of a DOM element.
537
+ * @deprecated Use `useElementSize` instead
538
+ */
539
+
540
+ function useElementRect(element) {
541
+ var elementSize = useElementSize(element);
542
+ return (elementSize == null ? void 0 : elementSize._contentRect) || null;
234
543
  }
235
544
 
236
545
  /**
@@ -2319,8 +2628,7 @@ var color = createColorTheme({
2319
2628
 
2320
2629
  var fonts = {
2321
2630
  code: {
2322
- family: '-apple-system-ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace',
2323
- horizontalOffset: 0.075,
2631
+ family: 'ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace',
2324
2632
  weights: {
2325
2633
  regular: 400,
2326
2634
  medium: 500,
@@ -2366,7 +2674,6 @@ var fonts = {
2366
2674
  },
2367
2675
  heading: {
2368
2676
  family: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Liberation Sans", Helvetica, Arial, system-ui, sans-serif',
2369
- horizontalOffset: 0.075,
2370
2677
  weights: {
2371
2678
  regular: 700,
2372
2679
  medium: 800,
@@ -2402,15 +2709,15 @@ var fonts = {
2402
2709
  lineHeight: 33,
2403
2710
  letterSpacing: 0
2404
2711
  }, {
2405
- ascenderHeight: 9,
2406
- descenderHeight: 7,
2712
+ ascenderHeight: 8,
2713
+ descenderHeight: 8,
2407
2714
  fontSize: 33,
2408
2715
  iconSize: 49,
2409
2716
  lineHeight: 39,
2410
2717
  letterSpacing: 0
2411
2718
  }, {
2412
- ascenderHeight: 10,
2413
- descenderHeight: 8,
2719
+ ascenderHeight: 9,
2720
+ descenderHeight: 9,
2414
2721
  fontSize: 38,
2415
2722
  iconSize: 53,
2416
2723
  lineHeight: 45,
@@ -2419,7 +2726,6 @@ var fonts = {
2419
2726
  },
2420
2727
  label: {
2421
2728
  family: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Liberation Sans", system-ui, sans-serif',
2422
- horizontalOffset: 0.075,
2423
2729
  weights: {
2424
2730
  regular: 600,
2425
2731
  medium: 700,
@@ -2465,7 +2771,6 @@ var fonts = {
2465
2771
  },
2466
2772
  text: {
2467
2773
  family: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Liberation Sans", Helvetica, Arial, system-ui, sans-serif',
2468
- horizontalOffset: 0.075,
2469
2774
  weights: {
2470
2775
  regular: 400,
2471
2776
  medium: 500,
@@ -2634,7 +2939,7 @@ globalScope[key$7] = globalScope[key$7] || /*#__PURE__*/createContext(null);
2634
2939
 
2635
2940
  var ThemeContext = globalScope[key$7];
2636
2941
 
2637
- var _excluded$H = ["color", "layer"];
2942
+ var _excluded$I = ["color", "layer"];
2638
2943
  /**
2639
2944
  * @public
2640
2945
  */
@@ -2653,7 +2958,7 @@ function ThemeProvider(props) {
2653
2958
 
2654
2959
  var rootColor = themeProp.color,
2655
2960
  rootLayer = themeProp.layer,
2656
- restTheme = _objectWithoutPropertiesLoose(themeProp, _excluded$H);
2961
+ restTheme = _objectWithoutPropertiesLoose(themeProp, _excluded$I);
2657
2962
 
2658
2963
  var colorScheme = rootColor[scheme] || rootColor.light;
2659
2964
  var color = colorScheme[tone] || colorScheme["default"];
@@ -2922,217 +3227,6 @@ function useCustomValidity(ref, customValidity) {
2922
3227
  }, [customValidity, ref]);
2923
3228
  }
2924
3229
 
2925
- /**
2926
- * @internal
2927
- */
2928
-
2929
- function fillCSSObject(propKeys, value) {
2930
- return propKeys.reduce(function (obj, propKey) {
2931
- obj[propKey] = value;
2932
- return obj;
2933
- }, {});
2934
- }
2935
- /**
2936
- * @public
2937
- */
2938
-
2939
- function rem(pixelValue) {
2940
- if (pixelValue === 0) return 0;
2941
- return pixelValue / 16 + "rem";
2942
- }
2943
- /**
2944
- * @internal
2945
- */
2946
-
2947
- function responsive(media, values, callback) {
2948
- var statements = values.map(callback);
2949
- return statements.map(function (statement, mediaIndex) {
2950
- var _ref;
2951
-
2952
- if (mediaIndex === 0) return statement;
2953
- return _ref = {}, _ref["@media screen and (min-width: " + media[mediaIndex - 1] + "px)"] = statement, _ref;
2954
- });
2955
- }
2956
- /**
2957
- * @internal
2958
- */
2959
-
2960
- function getResponsiveProp(val, defaultVal) {
2961
- if (val === undefined) return defaultVal || EMPTY_ARRAY;
2962
- return Array.isArray(val) ? val : [val];
2963
- }
2964
- /**
2965
- * @internal
2966
- */
2967
-
2968
- function getResponsiveSpace(theme, props, spaceIndexes) {
2969
- if (spaceIndexes === void 0) {
2970
- spaceIndexes = EMPTY_ARRAY;
2971
- }
2972
-
2973
- if (!Array.isArray(spaceIndexes)) {
2974
- throw new Error('the property must be array of numbers');
2975
- }
2976
-
2977
- if (spaceIndexes.length === 0) {
2978
- return null;
2979
- }
2980
-
2981
- return responsive(theme.sanity.media, spaceIndexes, function (spaceIndex) {
2982
- return fillCSSObject(props, rem(theme.sanity.space[spaceIndex]));
2983
- });
2984
- }
2985
-
2986
- /**
2987
- * A utility function getting responsive font styles.
2988
- * @internal
2989
- */
2990
-
2991
- function responsiveFont(fontKey, props) {
2992
- var $size = props.$size,
2993
- $weight = props.$weight,
2994
- theme = props.theme;
2995
- var _theme$sanity = theme.sanity,
2996
- fonts = _theme$sanity.fonts,
2997
- media = _theme$sanity.media;
2998
- var _fonts$fontKey = fonts[fontKey],
2999
- family = _fonts$fontKey.family,
3000
- sizes = _fonts$fontKey.sizes,
3001
- weights = _fonts$fontKey.weights,
3002
- horizontalOffset = _fonts$fontKey.horizontalOffset;
3003
- var fontWeight = $weight && weights[$weight] || weights.regular; // @todo: make this configurable
3004
-
3005
- var defaultSize = sizes[2];
3006
- var base = {
3007
- position: 'relative',
3008
- fontFamily: family,
3009
- fontWeight: fontWeight,
3010
- padding: '1px',
3011
- margin: 0,
3012
- '&:before': {
3013
- content: '""',
3014
- display: 'block',
3015
- height: 0
3016
- },
3017
- '&:after': {
3018
- content: '""',
3019
- display: 'block',
3020
- height: 0
3021
- },
3022
- '& > code, & > span': {
3023
- display: 'block'
3024
- },
3025
- '&:not([hidden])': {
3026
- display: 'block'
3027
- }
3028
- };
3029
- var resp = responsive(media, getResponsiveProp($size), function (sizeIndex) {
3030
- return fontSize(sizes[sizeIndex] || defaultSize, horizontalOffset);
3031
- });
3032
- return [base].concat(resp);
3033
- }
3034
- function fontSize(size, horizontalOffset) {
3035
- var ascenderHeight = size.ascenderHeight,
3036
- descenderHeight = size.descenderHeight,
3037
- fontSize = size.fontSize,
3038
- iconSize = size.iconSize,
3039
- letterSpacing = size.letterSpacing,
3040
- lineHeight = size.lineHeight;
3041
- var negHeight = ascenderHeight + descenderHeight;
3042
- var capHeight = lineHeight - negHeight;
3043
- var iconOffset = (capHeight - iconSize) / 2;
3044
- var customIconSize = Math.floor(fontSize * 1.125 / 2) * 2 + 1;
3045
- var customIconOffset = (capHeight - customIconSize) / 2;
3046
- return {
3047
- fontSize: rem(fontSize),
3048
- lineHeight: "calc(" + lineHeight + " / " + fontSize + ")",
3049
- letterSpacing: rem(letterSpacing),
3050
- transform: "translateY(" + rem(descenderHeight) + ")",
3051
- '&:before': {
3052
- marginTop: "calc(" + rem(0 - negHeight) + " - 1px)"
3053
- },
3054
- '&:after': {
3055
- marginBottom: '-1px'
3056
- },
3057
- '& > code, & > span': {
3058
- margin: horizontalOffset ? "0 calc(" + rem(0 - horizontalOffset * fontSize) + " - 1px)" : '0 -1px'
3059
- },
3060
- '& svg:not([data-sanity-icon])': {
3061
- fontSize: "calc(" + customIconSize + " / 16 * 1rem)",
3062
- margin: [// top & bottom
3063
- rem(customIconOffset), // left & right
3064
- horizontalOffset ? "calc(" + rem(customIconOffset) + " + " + rem(horizontalOffset * fontSize) + ")" : rem(customIconOffset)].join(' ')
3065
- },
3066
- '& [data-sanity-icon]': {
3067
- fontSize: "calc(" + iconSize + " / 16 * 1rem)",
3068
- margin: [// top & bottom
3069
- rem(iconOffset), // left & right
3070
- horizontalOffset ? "calc(" + rem(iconOffset) + " + " + rem(horizontalOffset * fontSize) + ")" : rem(iconOffset)].join(' ')
3071
- }
3072
- };
3073
- }
3074
-
3075
- /**
3076
- * Get responsive CSS for the `code` font style.
3077
- * @internal
3078
- */
3079
-
3080
- function responsiveCodeFontStyle(props) {
3081
- return responsiveFont('code', props);
3082
- }
3083
-
3084
- /**
3085
- * Get responsive CSS for the `heading` font style.
3086
- * @internal
3087
- */
3088
-
3089
- function responsiveHeadingFont(props) {
3090
- return responsiveFont('heading', props);
3091
- }
3092
-
3093
- /**
3094
- * Get responsive CSS for the `label` font style.
3095
- * @internal
3096
- */
3097
-
3098
- function responsiveLabelFont(props) {
3099
- return responsiveFont('label', props);
3100
- }
3101
-
3102
- /**
3103
- * Get responsive text align styles.
3104
- * @internal
3105
- */
3106
-
3107
- function responsiveTextAlignStyle(props) {
3108
- var theme = props.theme;
3109
- return responsive(theme.sanity.media, getResponsiveProp(props.$align), function (textAlign) {
3110
- return {
3111
- textAlign: textAlign
3112
- };
3113
- });
3114
- }
3115
-
3116
- /**
3117
- * Get responsive CSS for the `text` font style.
3118
- * @internal
3119
- */
3120
-
3121
- function responsiveTextFont(props) {
3122
- return responsiveFont('text', props);
3123
- }
3124
-
3125
- /**
3126
- * This API might change. DO NOT USE IN PRODUCTION.
3127
- * @beta
3128
- */
3129
-
3130
- function useResponsiveProp(val, defaultVal) {
3131
- return useMemo(function () {
3132
- return getResponsiveProp(val, defaultVal);
3133
- }, [defaultVal, val]);
3134
- }
3135
-
3136
3230
  var BORDER_VALUE = '1px solid var(--card-border-color)';
3137
3231
  function responsiveBorderStyle() {
3138
3232
  return [border, borderTop, borderRight, borderBottom, borderLeft];
@@ -3141,7 +3235,7 @@ function responsiveBorderStyle() {
3141
3235
  function border(props) {
3142
3236
  var theme = props.theme;
3143
3237
  var media = theme.sanity.media;
3144
- return responsive(media, getResponsiveProp(props.$border), function (value) {
3238
+ return _responsive(media, props.$border, function (value) {
3145
3239
  return value ? {
3146
3240
  '&&': {
3147
3241
  border: BORDER_VALUE
@@ -3157,7 +3251,7 @@ function border(props) {
3157
3251
  function borderTop(props) {
3158
3252
  var theme = props.theme;
3159
3253
  var media = theme.sanity.media;
3160
- return responsive(media, getResponsiveProp(props.$borderTop), function (value) {
3254
+ return _responsive(media, props.$borderTop, function (value) {
3161
3255
  return value ? {
3162
3256
  '&&': {
3163
3257
  borderTop: BORDER_VALUE
@@ -3173,7 +3267,7 @@ function borderTop(props) {
3173
3267
  function borderRight(props) {
3174
3268
  var theme = props.theme;
3175
3269
  var media = theme.sanity.media;
3176
- return responsive(media, getResponsiveProp(props.$borderRight), function (value) {
3270
+ return _responsive(media, props.$borderRight, function (value) {
3177
3271
  return value ? {
3178
3272
  '&&': {
3179
3273
  borderRight: BORDER_VALUE
@@ -3189,7 +3283,7 @@ function borderRight(props) {
3189
3283
  function borderBottom(props) {
3190
3284
  var theme = props.theme;
3191
3285
  var media = theme.sanity.media;
3192
- return responsive(media, getResponsiveProp(props.$borderBottom), function (value) {
3286
+ return _responsive(media, props.$borderBottom, function (value) {
3193
3287
  return value ? {
3194
3288
  '&&': {
3195
3289
  borderBottom: BORDER_VALUE
@@ -3205,7 +3299,7 @@ function borderBottom(props) {
3205
3299
  function borderLeft(props) {
3206
3300
  var theme = props.theme;
3207
3301
  var media = theme.sanity.media;
3208
- return responsive(media, getResponsiveProp(props.$borderLeft), function (value) {
3302
+ return _responsive(media, props.$borderLeft, function (value) {
3209
3303
  return value ? {
3210
3304
  '&&': {
3211
3305
  borderLeft: BORDER_VALUE
@@ -3241,7 +3335,7 @@ function responsiveBoxStyle() {
3241
3335
  function responsiveBoxDisplayStyle(props) {
3242
3336
  var theme = props.theme;
3243
3337
  var media = theme.sanity.media;
3244
- return responsive(media, getResponsiveProp(props.$display), function (display) {
3338
+ return _responsive(media, props.$display, function (display) {
3245
3339
  return {
3246
3340
  '&:not([hidden])': {
3247
3341
  display: display
@@ -3253,7 +3347,7 @@ function responsiveBoxDisplayStyle(props) {
3253
3347
  function responsiveBoxSizingStyle(props) {
3254
3348
  var theme = props.theme;
3255
3349
  var media = theme.sanity.media;
3256
- return responsive(media, getResponsiveProp(props.$sizing), function (sizing) {
3350
+ return _responsive(media, props.$sizing, function (sizing) {
3257
3351
  return {
3258
3352
  boxSizing: BOX_SIZING[sizing]
3259
3353
  };
@@ -3263,7 +3357,7 @@ function responsiveBoxSizingStyle(props) {
3263
3357
  function responsiveBoxHeightStyle(props) {
3264
3358
  var theme = props.theme;
3265
3359
  var media = theme.sanity.media;
3266
- return responsive(media, getResponsiveProp(props.$height), function (height) {
3360
+ return _responsive(media, props.$height, function (height) {
3267
3361
  return {
3268
3362
  height: BOX_HEIGHT[height]
3269
3363
  };
@@ -3273,7 +3367,7 @@ function responsiveBoxHeightStyle(props) {
3273
3367
  function responsiveBoxOverflowStyle(props) {
3274
3368
  var theme = props.theme;
3275
3369
  var media = theme.sanity.media;
3276
- return responsive(media, getResponsiveProp(props.$overflow), function (overflow) {
3370
+ return _responsive(media, props.$overflow, function (overflow) {
3277
3371
  return {
3278
3372
  overflow: overflow
3279
3373
  };
@@ -3291,7 +3385,7 @@ function responsiveFlexStyle() {
3291
3385
  function responsiveFlexAlignStyle(props) {
3292
3386
  var theme = props.theme;
3293
3387
  var media = theme.sanity.media;
3294
- return responsive(media, getResponsiveProp(props.$align), function (align) {
3388
+ return _responsive(media, props.$align, function (align) {
3295
3389
  return {
3296
3390
  alignItems: align
3297
3391
  };
@@ -3303,7 +3397,7 @@ function responsiveFlexGapStyle(props) {
3303
3397
  var _theme$sanity = theme.sanity,
3304
3398
  media = _theme$sanity.media,
3305
3399
  space = _theme$sanity.space;
3306
- return responsive(media, getResponsiveProp(props.$gap), function (gap) {
3400
+ return _responsive(media, props.$gap, function (gap) {
3307
3401
  return {
3308
3402
  gap: gap ? rem(space[gap]) : undefined
3309
3403
  };
@@ -3313,7 +3407,7 @@ function responsiveFlexGapStyle(props) {
3313
3407
  function responsiveFlexWrapStyle(props) {
3314
3408
  var theme = props.theme;
3315
3409
  var media = theme.sanity.media;
3316
- return responsive(media, getResponsiveProp(props.$wrap), function (wrap) {
3410
+ return _responsive(media, props.$wrap, function (wrap) {
3317
3411
  return {
3318
3412
  flexWrap: wrap
3319
3413
  };
@@ -3322,7 +3416,7 @@ function responsiveFlexWrapStyle(props) {
3322
3416
  function responsiveFlexJustifyStyle(props) {
3323
3417
  var theme = props.theme;
3324
3418
  var media = theme.sanity.media;
3325
- return responsive(media, getResponsiveProp(props.$justify), function (justify) {
3419
+ return _responsive(media, props.$justify, function (justify) {
3326
3420
  return {
3327
3421
  justifyContent: justify
3328
3422
  };
@@ -3331,7 +3425,7 @@ function responsiveFlexJustifyStyle(props) {
3331
3425
  function responsiveFlexDirectionStyle(props) {
3332
3426
  var theme = props.theme;
3333
3427
  var media = theme.sanity.media;
3334
- return responsive(media, getResponsiveProp(props.$direction), function (direction) {
3428
+ return _responsive(media, props.$direction, function (direction) {
3335
3429
  return {
3336
3430
  flexDirection: direction
3337
3431
  };
@@ -3348,7 +3442,8 @@ function flexItemStyle() {
3348
3442
  function responsiveFlexItemStyle(props) {
3349
3443
  var theme = props.theme;
3350
3444
  var media = theme.sanity.media;
3351
- return responsive(media, getResponsiveProp(props.$flex), function (flex) {
3445
+ if (!props.$flex) return EMPTY_ARRAY;
3446
+ return _responsive(media, props.$flex, function (flex) {
3352
3447
  return {
3353
3448
  flex: flex
3354
3449
  };
@@ -3395,7 +3490,7 @@ function responsiveGridStyle() {
3395
3490
  function responsiveGridAutoFlowStyle(props) {
3396
3491
  var theme = props.theme;
3397
3492
  var media = theme.sanity.media;
3398
- return responsive(media, getResponsiveProp(props.$autoFlow), function (autoFlow) {
3493
+ return _responsive(media, props.$autoFlow, function (autoFlow) {
3399
3494
  return {
3400
3495
  gridAutoFlow: autoFlow
3401
3496
  };
@@ -3405,7 +3500,7 @@ function responsiveGridAutoFlowStyle(props) {
3405
3500
  function responsiveGridAutoRowsStyle(props) {
3406
3501
  var theme = props.theme;
3407
3502
  var media = theme.sanity.media;
3408
- return responsive(media, getResponsiveProp(props.$autoRows), function (autoRows) {
3503
+ return _responsive(media, props.$autoRows, function (autoRows) {
3409
3504
  return {
3410
3505
  gridAutoRows: autoRows && GRID_AUTO_ROWS[autoRows]
3411
3506
  };
@@ -3415,7 +3510,7 @@ function responsiveGridAutoRowsStyle(props) {
3415
3510
  function responsiveGridAutoColsStyle(props) {
3416
3511
  var theme = props.theme;
3417
3512
  var media = theme.sanity.media;
3418
- return responsive(media, getResponsiveProp(props.$autoCols), function (autoCols) {
3513
+ return _responsive(media, props.$autoCols, function (autoCols) {
3419
3514
  return {
3420
3515
  gridAutoColumns: autoCols && GRID_AUTO_COLUMS[autoCols]
3421
3516
  };
@@ -3425,7 +3520,7 @@ function responsiveGridAutoColsStyle(props) {
3425
3520
  function responsiveGridColumnsStyle(props) {
3426
3521
  var theme = props.theme;
3427
3522
  var media = theme.sanity.media;
3428
- return responsive(media, getResponsiveProp(props.$columns), function (columns) {
3523
+ return _responsive(media, props.$columns, function (columns) {
3429
3524
  return {
3430
3525
  gridTemplateColumns: columns && "repeat(" + columns + ",minmax(0,1fr));"
3431
3526
  };
@@ -3435,7 +3530,7 @@ function responsiveGridColumnsStyle(props) {
3435
3530
  function responsiveGridRowsStyle(props) {
3436
3531
  var theme = props.theme;
3437
3532
  var media = theme.sanity.media;
3438
- return responsive(media, getResponsiveProp(props.$rows), function (rows) {
3533
+ return _responsive(media, props.$rows, function (rows) {
3439
3534
  return {
3440
3535
  gridTemplateRows: rows && "repeat(" + rows + ",minmax(0,1fr));"
3441
3536
  };
@@ -3447,7 +3542,7 @@ function responsiveGridGapStyle(props) {
3447
3542
  var _theme$sanity = theme.sanity,
3448
3543
  media = _theme$sanity.media,
3449
3544
  space = _theme$sanity.space;
3450
- return responsive(media, getResponsiveProp(props.$gap), function (gap) {
3545
+ return _responsive(media, props.$gap, function (gap) {
3451
3546
  return {
3452
3547
  gridGap: gap ? rem(space[gap]) : undefined
3453
3548
  };
@@ -3459,7 +3554,7 @@ function responsiveGridGapXStyle(props) {
3459
3554
  var _theme$sanity2 = theme.sanity,
3460
3555
  media = _theme$sanity2.media,
3461
3556
  space = _theme$sanity2.space;
3462
- return responsive(media, getResponsiveProp(props.$gapX), function (gapX) {
3557
+ return _responsive(media, props.$gapX, function (gapX) {
3463
3558
  return {
3464
3559
  columnGap: gapX ? rem(space[gapX]) : undefined
3465
3560
  };
@@ -3471,7 +3566,7 @@ function responsiveGridGapYStyle(props) {
3471
3566
  var _theme$sanity3 = theme.sanity,
3472
3567
  media = _theme$sanity3.media,
3473
3568
  space = _theme$sanity3.space;
3474
- return responsive(media, getResponsiveProp(props.$gapY), function (gapY) {
3569
+ return _responsive(media, props.$gapY, function (gapY) {
3475
3570
  return {
3476
3571
  rowGap: gapY ? rem(space[gapY]) : undefined
3477
3572
  };
@@ -3493,7 +3588,7 @@ var GRID_ITEM_COLUMN = {
3493
3588
  function responsiveGridItemRowStyle(props) {
3494
3589
  var theme = props.theme;
3495
3590
  var media = theme.sanity.media;
3496
- return responsive(media, getResponsiveProp(props.$row), function (row) {
3591
+ return _responsive(media, props.$row, function (row) {
3497
3592
  if (typeof row === 'number') {
3498
3593
  return {
3499
3594
  gridRow: "span " + row + " / span " + row
@@ -3509,7 +3604,7 @@ function responsiveGridItemRowStyle(props) {
3509
3604
  function responsiveGridItemRowStartStyle(props) {
3510
3605
  var theme = props.theme;
3511
3606
  var media = theme.sanity.media;
3512
- return responsive(media, getResponsiveProp(props.$rowStart), function (rowStart) {
3607
+ return _responsive(media, props.$rowStart, function (rowStart) {
3513
3608
  return {
3514
3609
  gridRowStart: rowStart
3515
3610
  };
@@ -3519,7 +3614,7 @@ function responsiveGridItemRowStartStyle(props) {
3519
3614
  function responsiveGridItemRowEndStyle(props) {
3520
3615
  var theme = props.theme;
3521
3616
  var media = theme.sanity.media;
3522
- return responsive(media, getResponsiveProp(props.$rowEnd), function (rowEnd) {
3617
+ return _responsive(media, props.$rowEnd, function (rowEnd) {
3523
3618
  return {
3524
3619
  gridRowEnd: rowEnd
3525
3620
  };
@@ -3529,7 +3624,7 @@ function responsiveGridItemRowEndStyle(props) {
3529
3624
  function responsiveGridItemColumnStyle(props) {
3530
3625
  var theme = props.theme;
3531
3626
  var media = theme.sanity.media;
3532
- return responsive(media, getResponsiveProp(props.$column), function (column) {
3627
+ return _responsive(media, props.$column, function (column) {
3533
3628
  if (typeof column === 'number') {
3534
3629
  return {
3535
3630
  gridColumn: "span " + column + " / span " + column
@@ -3545,7 +3640,7 @@ function responsiveGridItemColumnStyle(props) {
3545
3640
  function responsiveGridItemColumnStartStyle(props) {
3546
3641
  var theme = props.theme;
3547
3642
  var media = theme.sanity.media;
3548
- return responsive(media, getResponsiveProp(props.$columnStart), function (columnStart) {
3643
+ return _responsive(media, props.$columnStart, function (columnStart) {
3549
3644
  return {
3550
3645
  gridColumnStart: columnStart
3551
3646
  };
@@ -3555,7 +3650,7 @@ function responsiveGridItemColumnStartStyle(props) {
3555
3650
  function responsiveGridItemColumnEndStyle(props) {
3556
3651
  var theme = props.theme;
3557
3652
  var media = theme.sanity.media;
3558
- return responsive(media, getResponsiveProp(props.$columnEnd), function (columnEnd) {
3653
+ return _responsive(media, props.$columnEnd, function (columnEnd) {
3559
3654
  return {
3560
3655
  gridColumnEnd: columnEnd
3561
3656
  };
@@ -3563,36 +3658,36 @@ function responsiveGridItemColumnEndStyle(props) {
3563
3658
  }
3564
3659
 
3565
3660
  function responsiveInputPaddingStyle(props) {
3566
- var $iconLeft = props.$iconLeft,
3661
+ var $fontSize = props.$fontSize,
3662
+ $iconLeft = props.$iconLeft,
3567
3663
  $iconRight = props.$iconRight,
3664
+ $padding = props.$padding,
3665
+ $space = props.$space,
3568
3666
  theme = props.theme;
3569
3667
  var _theme$sanity = theme.sanity,
3570
3668
  fonts = _theme$sanity.fonts,
3571
3669
  media = _theme$sanity.media,
3572
3670
  spaceScale = _theme$sanity.space;
3573
- var padding = getResponsiveProp(props.$padding, [0]);
3574
- var space = getResponsiveProp(props.$space, [0]);
3575
- var size = getResponsiveProp(props.$fontSize, [0]);
3576
- var len = Math.max(padding.length, space.length, size.length);
3671
+ var len = Math.max($padding.length, $space.length, $fontSize.length);
3577
3672
  var _padding = [];
3578
3673
  var _space = [];
3579
- var _size = [];
3674
+ var _fontSize = [];
3580
3675
 
3581
3676
  for (var i = 0; i < len; i += 1) {
3582
- _padding[i] = padding[i] === undefined ? _padding[i - 1] : padding[i];
3583
- _space[i] = space[i] === undefined ? _space[i - 1] : space[i];
3584
- _size[i] = size[i] === undefined ? _size[i - 1] : size[i];
3677
+ _fontSize[i] = $fontSize[i] === undefined ? _fontSize[i - 1] : $fontSize[i];
3678
+ _padding[i] = $padding[i] === undefined ? _padding[i - 1] : $padding[i];
3679
+ _space[i] = $space[i] === undefined ? _space[i - 1] : $space[i];
3585
3680
  }
3586
3681
 
3587
- return responsive(media, _padding, function (_, i) {
3588
- var fontSize = fonts.text.sizes[_size[i]] || fonts.text.sizes[2];
3589
- var emSize = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight;
3682
+ return _responsive(media, _padding, function (_, i) {
3683
+ var size = fonts.text.sizes[_fontSize[i]] || fonts.text.sizes[2];
3684
+ var emSize = size.lineHeight - size.ascenderHeight - size.descenderHeight;
3590
3685
  var p = spaceScale[_padding[i]];
3591
3686
  var s = spaceScale[_space[i]];
3592
3687
  var styles = {
3593
- paddingTop: rem(p - fontSize.ascenderHeight),
3688
+ paddingTop: rem(p - size.ascenderHeight),
3594
3689
  paddingRight: rem(p),
3595
- paddingBottom: rem(p - fontSize.descenderHeight),
3690
+ paddingBottom: rem(p - size.descenderHeight),
3596
3691
  paddingLeft: rem(p)
3597
3692
  };
3598
3693
  if ($iconRight) styles.paddingRight = rem(p + emSize + s);
@@ -3606,24 +3701,25 @@ function responsiveInputPaddingIconRightStyle(props) {
3606
3701
  }));
3607
3702
  }
3608
3703
 
3609
- var _templateObject$D, _templateObject2$n, _templateObject3$e;
3610
- var ROOT_STYLE = css(_templateObject$D || (_templateObject$D = _taggedTemplateLiteralLoose(["\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n"])));
3704
+ var _templateObject$C, _templateObject2$m, _templateObject3$d;
3705
+ var ROOT_STYLE = css(_templateObject$C || (_templateObject$C = _taggedTemplateLiteralLoose(["\n &:not([hidden]) {\n display: flex;\n }\n\n align-items: center;\n"])));
3611
3706
  function textInputRootStyle() {
3612
3707
  return ROOT_STYLE;
3613
3708
  }
3614
3709
  function textInputBaseStyle(props) {
3615
3710
  var theme = props.theme,
3711
+ $tone = props.$tone,
3616
3712
  $weight = props.$weight;
3617
3713
  var font = theme.sanity.fonts.text;
3618
3714
  var color = theme.sanity.color.input;
3619
- return css(_templateObject2$n || (_templateObject2$n = _taggedTemplateLiteralLoose(["\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n\n appearance: none;\n background: none;\n border: 0;\n border-radius: 0;\n outline: none;\n width: 100%;\n box-sizing: border-box;\n font-family: ", ";\n font-weight: ", ";\n margin: 0;\n position: relative;\n z-index: 1;\n display: block;\n color: var(--input-fg-color);\n\n /* NOTE: This is a hack to disable Chrome\u2019s autofill styles */\n &:-webkit-autofill,\n &:-webkit-autofill:hover,\n &:-webkit-autofill:focus,\n &:-webkit-autofill:active {\n -webkit-text-fill-color: var(--input-fg-color) !important;\n transition: background-color 5000s;\n transition-delay: 86400s /* 24h */;\n }\n\n &::placeholder {\n color: var(--input-placeholder-color);\n }\n\n /* &:is(textarea) */\n &[data-as='textarea'] {\n resize: none;\n }\n\n /* enabled */\n &:not(:invalid):not(:disabled):not(:read-only) {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n\n /* disabled */\n &:not(:invalid):disabled {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n\n /* invalid */\n &:invalid {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n\n /* readOnly */\n &:read-only {\n --input-fg-color: ", ";\n --input-placeholder-color: ", ";\n }\n "])), color["default"].enabled.fg, color["default"].enabled.placeholder, font.family, $weight && font.weights[$weight] || font.weights.regular, color["default"].enabled.fg, color["default"].enabled.placeholder, color["default"].disabled.fg, color["default"].disabled.placeholder, color.invalid.enabled.fg, color.invalid.enabled.placeholder, color["default"].readOnly.fg, color["default"].readOnly.placeholder);
3715
+ return 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);
3620
3716
  }
3621
3717
  function textInputFontSizeStyle(props) {
3622
3718
  var theme = props.theme;
3623
3719
  var _theme$sanity = theme.sanity,
3624
3720
  fonts = _theme$sanity.fonts,
3625
3721
  media = _theme$sanity.media;
3626
- return responsive(media, getResponsiveProp(props.$fontSize, [2]), function (sizeIndex) {
3722
+ return _responsive(media, props.$fontSize, function (sizeIndex) {
3627
3723
  var size = fonts.text.sizes[sizeIndex] || fonts.text.sizes[2];
3628
3724
  return {
3629
3725
  fontSize: rem(size.fontSize),
@@ -3635,12 +3731,13 @@ function textInputRepresentationStyle(props) {
3635
3731
  var $border = props.$border,
3636
3732
  $hasPrefix = props.$hasPrefix,
3637
3733
  $hasSuffix = props.$hasSuffix,
3734
+ $tone = props.$tone,
3638
3735
  theme = props.theme;
3639
3736
  var _theme$sanity2 = theme.sanity,
3640
3737
  focusRing = _theme$sanity2.focusRing,
3641
3738
  input = _theme$sanity2.input;
3642
3739
  var color = theme.sanity.color.input;
3643
- return css(_templateObject3$e || (_templateObject3$e = _taggedTemplateLiteralLoose(["\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n --input-box-shadow: none;\n\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: block;\n pointer-events: none;\n z-index: 0;\n background-color: var(--card-bg-color);\n box-shadow: var(--input-box-shadow);\n\n border-top-left-radius: ", ";\n border-bottom-left-radius: ", ";\n border-top-right-radius: ", ";\n border-bottom-right-radius: ", ";\n\n /* enabled */\n *:not(:disabled) + && {\n --input-box-shadow: ", ";\n }\n\n /* invalid */\n *:not(:disabled):invalid + && {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n --input-box-shadow: ", ";\n }\n\n /* focused */\n *:not(:disabled):focus + && {\n --input-box-shadow: ", ";\n }\n\n /* disabled */\n *:disabled + && {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n --input-box-shadow: ", ";\n }\n\n /* hovered */\n @media (hover: hover) {\n *:not(:disabled):not(:read-only):not(:invalid):hover + && {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n }\n\n *:not(:disabled):not(:read-only):not(:invalid):not(:focus):hover + && {\n --input-box-shadow: ", ";\n }\n }\n\n /* readOnly */\n *:read-only + && {\n --card-bg-color: ", ";\n --card-fg-color: ", ";\n }\n "])), color["default"].enabled.bg, color["default"].enabled.fg, $hasPrefix ? 0 : undefined, $hasPrefix ? 0 : undefined, $hasSuffix ? 0 : undefined, $hasSuffix ? 0 : undefined, $border ? focusRingBorderStyle({
3740
+ return 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({
3644
3741
  color: color["default"].enabled.border,
3645
3742
  width: input.border.width
3646
3743
  }) : undefined, color.invalid.enabled.bg, color.invalid.enabled.fg, $border ? focusRingBorderStyle({
@@ -3655,20 +3752,20 @@ function textInputRepresentationStyle(props) {
3655
3752
  }), color["default"].disabled.bg, color["default"].disabled.fg, $border ? focusRingBorderStyle({
3656
3753
  color: color["default"].disabled.border,
3657
3754
  width: input.border.width
3658
- }) : 'none', color["default"].hovered.bg, color["default"].hovered.fg, $border ? focusRingBorderStyle({
3755
+ }) : 'none', color["default"].readOnly.bg, color["default"].readOnly.fg, color["default"].hovered.bg, color["default"].hovered.fg, $border ? focusRingBorderStyle({
3659
3756
  color: color["default"].hovered.border,
3660
3757
  width: input.border.width
3661
- }) : 'none', color["default"].readOnly.bg, color["default"].readOnly.fg);
3758
+ }) : 'none');
3662
3759
  }
3663
3760
 
3664
3761
  function responsiveMarginStyle(props) {
3665
3762
  var theme = props.theme;
3666
- return [getResponsiveSpace(theme, ['margin'], getResponsiveProp(props.$margin)), getResponsiveSpace(theme, ['marginLeft', 'marginRight'], getResponsiveProp(props.$marginX)), getResponsiveSpace(theme, ['marginTop', 'marginBottom'], getResponsiveProp(props.$marginY)), getResponsiveSpace(theme, ['marginTop'], getResponsiveProp(props.$marginTop)), getResponsiveSpace(theme, ['marginRight'], getResponsiveProp(props.$marginRight)), getResponsiveSpace(theme, ['marginBottom'], getResponsiveProp(props.$marginBottom)), getResponsiveSpace(theme, ['marginLeft'], getResponsiveProp(props.$marginLeft))].filter(Boolean);
3763
+ return [_getResponsiveSpace(theme, ['margin'], props.$margin), _getResponsiveSpace(theme, ['marginLeft', 'marginRight'], props.$marginX), _getResponsiveSpace(theme, ['marginTop', 'marginBottom'], props.$marginY), _getResponsiveSpace(theme, ['marginTop'], props.$marginTop), _getResponsiveSpace(theme, ['marginRight'], props.$marginRight), _getResponsiveSpace(theme, ['marginBottom'], props.$marginBottom), _getResponsiveSpace(theme, ['marginLeft'], props.$marginLeft)].filter(Boolean);
3667
3764
  }
3668
3765
 
3669
3766
  function responsivePaddingStyle(props) {
3670
3767
  var theme = props.theme;
3671
- return [getResponsiveSpace(theme, ['padding'], getResponsiveProp(props.$padding)), getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], getResponsiveProp(props.$paddingX)), getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], getResponsiveProp(props.$paddingY)), getResponsiveSpace(theme, ['paddingTop'], getResponsiveProp(props.$paddingTop)), getResponsiveSpace(theme, ['paddingRight'], getResponsiveProp(props.$paddingRight)), getResponsiveSpace(theme, ['paddingBottom'], getResponsiveProp(props.$paddingBottom)), getResponsiveSpace(theme, ['paddingLeft'], getResponsiveProp(props.$paddingLeft))].filter(Boolean);
3768
+ return [_getResponsiveSpace(theme, ['padding'], props.$padding), _getResponsiveSpace(theme, ['paddingLeft', 'paddingRight'], props.$paddingX), _getResponsiveSpace(theme, ['paddingTop', 'paddingBottom'], props.$paddingY), _getResponsiveSpace(theme, ['paddingTop'], props.$paddingTop), _getResponsiveSpace(theme, ['paddingRight'], props.$paddingRight), _getResponsiveSpace(theme, ['paddingBottom'], props.$paddingBottom), _getResponsiveSpace(theme, ['paddingLeft'], props.$paddingLeft)].filter(Boolean);
3672
3769
  }
3673
3770
 
3674
3771
  function responsiveRadiusStyle(props) {
@@ -3676,7 +3773,7 @@ function responsiveRadiusStyle(props) {
3676
3773
  var _theme$sanity = theme.sanity,
3677
3774
  media = _theme$sanity.media,
3678
3775
  radius = _theme$sanity.radius;
3679
- return responsive(media, getResponsiveProp(props.$radius), function (radiusIndex) {
3776
+ return _responsive(media, props.$radius, function (radiusIndex) {
3680
3777
  return {
3681
3778
  borderRadius: rem(radius[radiusIndex])
3682
3779
  };
@@ -3688,7 +3785,7 @@ function toBoxShadow(shadow, color) {
3688
3785
  }
3689
3786
 
3690
3787
  function shadowStyle(shadow) {
3691
- if (!shadow) return EMPTY_RECORD$1;
3788
+ if (!shadow) return EMPTY_RECORD;
3692
3789
  var outline = "0 0 0 " + rem(1) + " var(--card-shadow-outline-color)";
3693
3790
  var umbra = toBoxShadow(shadow.umbra, 'var(--card-shadow-umbra-color)');
3694
3791
  var penumbra = toBoxShadow(shadow.penumbra, 'var(--card-shadow-penumbra-color)');
@@ -3703,25 +3800,25 @@ function responsiveShadowStyle(props) {
3703
3800
  var _theme$sanity = theme.sanity,
3704
3801
  media = _theme$sanity.media,
3705
3802
  shadows = _theme$sanity.shadows;
3706
- return responsive(media, getResponsiveProp(props.$shadow), function (shadow) {
3803
+ return _responsive(media, props.$shadow, function (shadow) {
3707
3804
  return shadowStyle(shadows[shadow]);
3708
3805
  });
3709
3806
  }
3710
3807
 
3711
- var _templateObject$C, _templateObject2$m, _templateObject3$d;
3808
+ var _templateObject$B, _templateObject2$l, _templateObject3$c;
3712
3809
  function textBaseStyle(props) {
3713
3810
  var $accent = props.$accent,
3714
3811
  $muted = props.$muted,
3715
3812
  theme = props.theme;
3716
3813
  var weights = theme.sanity.fonts.text.weights;
3717
- return css(_templateObject$C || (_templateObject$C = _taggedTemplateLiteralLoose(["\n color: var(--card-fg-color);\n\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n background-color: var(--card-code-bg-color);\n color: var(--card-code-fg-color);\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n color: var(--card-link-color);\n outline: none;\n\n @media (hover: hover) {\n &:hover {\n text-decoration: underline;\n }\n }\n\n &:focus {\n box-shadow: 0 0 0 1px var(--card-bg-color), 0 0 0 3px var(--card-focus-ring-color);\n }\n\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n\n & strong {\n font-weight: ", ";\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), $accent && css(_templateObject2$m || (_templateObject2$m = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && css(_templateObject3$d || (_templateObject3$d = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), theme.sanity.fonts.code.family, weights.bold);
3814
+ return 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 && css(_templateObject2$l || (_templateObject2$l = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && css(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), theme.sanity.fonts.code.family, weights.bold);
3718
3815
  }
3719
3816
 
3720
- var _excluded$G = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
3817
+ var _excluded$H = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
3721
3818
 
3722
- var _templateObject$B;
3819
+ var _templateObject$A;
3723
3820
  var Root$E = styled.div(responsiveTextFont, responsiveTextAlignStyle, textBaseStyle);
3724
- var SpanWithTextOverflow$2 = styled.span(_templateObject$B || (_templateObject$B = _taggedTemplateLiteralLoose(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"])));
3821
+ var SpanWithTextOverflow$2 = styled.span(_templateObject$A || (_templateObject$A = _taggedTemplateLiteralLoose(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"])));
3725
3822
  /**
3726
3823
  * @public
3727
3824
  */
@@ -3737,7 +3834,7 @@ var Text = /*#__PURE__*/forwardRef(function Text(props, ref) {
3737
3834
  size = _props$size === void 0 ? 2 : _props$size,
3738
3835
  textOverflow = props.textOverflow,
3739
3836
  weight = props.weight,
3740
- restProps = _objectWithoutPropertiesLoose(props, _excluded$G);
3837
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$H);
3741
3838
 
3742
3839
  var children = childrenProp;
3743
3840
 
@@ -3749,10 +3846,10 @@ var Text = /*#__PURE__*/forwardRef(function Text(props, ref) {
3749
3846
  "data-ui": "Text"
3750
3847
  }, restProps, {
3751
3848
  "$accent": accent,
3752
- "$align": align,
3849
+ "$align": useArrayProp(align),
3753
3850
  "$muted": muted,
3754
3851
  ref: ref,
3755
- "$size": size,
3852
+ "$size": useArrayProp(size),
3756
3853
  "$weight": weight
3757
3854
  }), /*#__PURE__*/React.createElement("span", null, children));
3758
3855
  });
@@ -3848,7 +3945,7 @@ function responsiveAvatarSizeStyle(props) {
3848
3945
  var _theme$sanity = theme.sanity,
3849
3946
  avatar = _theme$sanity.avatar,
3850
3947
  media = _theme$sanity.media;
3851
- return responsive(media, props.$size, function (size) {
3948
+ return _responsive(media, props.$size, function (size) {
3852
3949
  var avatarSize = avatar.sizes[size] || avatar.sizes[0];
3853
3950
  return {
3854
3951
  width: rem(avatarSize.size),
@@ -3897,7 +3994,7 @@ function avatarStrokeStyle() {
3897
3994
  };
3898
3995
  }
3899
3996
 
3900
- var _excluded$F = ["as", "color", "src", "title", "initials", "onImageLoadError", "arrowPosition", "animateArrowFrom", "status", "size"];
3997
+ var _excluded$G = ["as", "color", "src", "title", "initials", "onImageLoadError", "arrowPosition", "animateArrowFrom", "status", "size"];
3901
3998
  var Root$D = styled.div(responsiveAvatarSizeStyle, avatarStyle.root);
3902
3999
  var Arrow = styled.div(avatarStyle.arrow);
3903
4000
  var BgStroke = styled.ellipse(avatarStyle.bgStroke);
@@ -3919,11 +4016,12 @@ var Avatar = /*#__PURE__*/forwardRef(function Avatar(props, ref) {
3919
4016
  animateArrowFrom = props.animateArrowFrom,
3920
4017
  _props$status = props.status,
3921
4018
  status = _props$status === void 0 ? 'online' : _props$status,
3922
- sizeProp = props.size,
3923
- restProps = _objectWithoutPropertiesLoose(props, _excluded$F);
4019
+ _props$size = props.size,
4020
+ sizeProp = _props$size === void 0 ? 0 : _props$size,
4021
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$G);
3924
4022
 
3925
4023
  var as = ReactIs.isValidElementType(asProp) ? asProp : 'div';
3926
- var size = useResponsiveProp(sizeProp, [0]);
4024
+ var size = useArrayProp(sizeProp);
3927
4025
  var theme = useTheme();
3928
4026
  var color = theme.sanity.color.spot[colorKey] || theme.sanity.color.spot.gray; // @todo: remove this
3929
4027
 
@@ -3963,6 +4061,11 @@ var Avatar = /*#__PURE__*/forwardRef(function Avatar(props, ref) {
3963
4061
  onImageLoadError(new Error('Avatar: the image failed to load'));
3964
4062
  }
3965
4063
  }, [onImageLoadError]);
4064
+ var initialsSize = useMemo(function () {
4065
+ return size.map(function (s) {
4066
+ return s === 0 ? 0 : s + 1;
4067
+ });
4068
+ }, [size]);
3966
4069
  return /*#__PURE__*/React.createElement(Root$D, _extends({
3967
4070
  as: as,
3968
4071
  "data-as": typeof as === 'string' ? as : undefined,
@@ -4016,22 +4119,20 @@ var Avatar = /*#__PURE__*/forwardRef(function Avatar(props, ref) {
4016
4119
  vectorEffect: "non-scaling-stroke"
4017
4120
  })), (imageFailed || !src) && initials && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Initials, null, /*#__PURE__*/React.createElement(Text, {
4018
4121
  as: "span",
4019
- size: size.map(function (s) {
4020
- return s === 0 ? 0 : s + 1;
4021
- })
4122
+ size: initialsSize
4022
4123
  }, /*#__PURE__*/React.createElement("strong", null, initials)))));
4023
4124
  });
4024
4125
 
4025
- var _templateObject$A;
4126
+ var _templateObject$z;
4026
4127
 
4027
- function responsiveAvatarCounterSizeStyle(props) {
4128
+ function _responsiveAvatarCounterSizeStyle(props) {
4028
4129
  var theme = props.theme;
4029
4130
  var _theme$sanity = theme.sanity,
4030
4131
  avatar = _theme$sanity.avatar,
4031
4132
  media = _theme$sanity.media;
4032
- return responsive(media, props.$size, function (size) {
4133
+ return _responsive(media, props.$size, function (size) {
4033
4134
  var avatarSize = avatar.sizes[size];
4034
- if (!avatarSize) return EMPTY_RECORD$1;
4135
+ if (!avatarSize) return EMPTY_RECORD;
4035
4136
  return {
4036
4137
  borderRadius: rem(avatarSize.size / 2),
4037
4138
  minWidth: rem(avatarSize.size),
@@ -4040,12 +4141,12 @@ function responsiveAvatarCounterSizeStyle(props) {
4040
4141
  });
4041
4142
  }
4042
4143
 
4043
- function avatarCounterBaseStyle(props) {
4144
+ function _avatarCounterBaseStyle(props) {
4044
4145
  var theme = props.theme;
4045
- return css(_templateObject$A || (_templateObject$A = _taggedTemplateLiteralLoose(["\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n user-select: none;\n color: inherit;\n color: var(--card-fg-color);\n background: var(--card-bg-color);\n box-shadow: 0 0 0 1px var(--card-bg-color), inset 0 0 0 1.5px var(--card-hairline-hard-color);\n padding: 0 ", ";\n\n &:not([hidden]) {\n display: flex;\n }\n "])), rem(theme.sanity.space[2]));
4146
+ return 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]));
4046
4147
  }
4047
4148
 
4048
- var Root$C = styled.div(responsiveAvatarCounterSizeStyle, avatarCounterBaseStyle);
4149
+ var Root$C = styled.div(_responsiveAvatarCounterSizeStyle, _avatarCounterBaseStyle);
4049
4150
  /**
4050
4151
  * @public
4051
4152
  */
@@ -4053,18 +4154,20 @@ var Root$C = styled.div(responsiveAvatarCounterSizeStyle, avatarCounterBaseStyle
4053
4154
  var AvatarCounter = /*#__PURE__*/forwardRef(function AvatarCounter(props, ref) {
4054
4155
  var count = props.count,
4055
4156
  _props$size = props.size,
4056
- sizeProp = _props$size === void 0 ? 0 : _props$size,
4057
- tone = props.tone;
4058
- var size = useResponsiveProp(sizeProp, [0]);
4157
+ sizeProp = _props$size === void 0 ? 0 : _props$size;
4158
+ var size = useArrayProp(sizeProp);
4159
+ var counterSize = useMemo(function () {
4160
+ return size.map(function (s) {
4161
+ return s === 0 ? 0 : s + 1;
4162
+ });
4163
+ }, [size]);
4059
4164
  return /*#__PURE__*/React.createElement(Root$C, {
4060
4165
  "$size": size,
4061
- "data-tone": tone,
4166
+ "data-ui": "AvatarCounter",
4062
4167
  ref: ref
4063
4168
  }, /*#__PURE__*/React.createElement(Text, {
4064
4169
  as: "span",
4065
- size: size.map(function (s) {
4066
- return s === 0 ? 0 : s + 1;
4067
- })
4170
+ size: counterSize
4068
4171
  }, /*#__PURE__*/React.createElement("strong", null, count)));
4069
4172
  });
4070
4173
 
@@ -4075,10 +4178,10 @@ function childrenToElementArray(children) {
4075
4178
  });
4076
4179
  }
4077
4180
 
4078
- var _excluded$E = ["children", "maxLength", "size", "tone"];
4181
+ var _excluded$F = ["children", "maxLength", "size"];
4079
4182
 
4080
- var _templateObject$z;
4081
- var BASE_STYLES = css(_templateObject$z || (_templateObject$z = _taggedTemplateLiteralLoose(["\n white-space: nowrap;\n\n & > div {\n vertical-align: top;\n\n &:not([hidden]) {\n display: inline-block;\n }\n }\n"])));
4183
+ var _templateObject$y;
4184
+ var BASE_STYLES = 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"])));
4082
4185
 
4083
4186
  function avatarStackStyle() {
4084
4187
  return BASE_STYLES;
@@ -4089,9 +4192,9 @@ function responsiveAvatarStackSizeStyle(props) {
4089
4192
  var _theme$sanity = theme.sanity,
4090
4193
  avatar = _theme$sanity.avatar,
4091
4194
  media = _theme$sanity.media;
4092
- return responsive(media, getResponsiveProp(props.size), function (size) {
4195
+ return _responsive(media, props.$size, function (size) {
4093
4196
  var avatarSize = avatar.sizes[size];
4094
- if (!avatarSize) return EMPTY_RECORD$1;
4197
+ if (!avatarSize) return EMPTY_RECORD;
4095
4198
  return {
4096
4199
  '& > div + div': {
4097
4200
  marginLeft: rem(avatarSize.distance)
@@ -4110,14 +4213,14 @@ var AvatarStack = /*#__PURE__*/forwardRef(function AvatarStack(props, ref) {
4110
4213
  _props$maxLength = props.maxLength,
4111
4214
  maxLengthProp = _props$maxLength === void 0 ? 4 : _props$maxLength,
4112
4215
  _props$size = props.size,
4113
- size = _props$size === void 0 ? 0 : _props$size,
4114
- tone = props.tone,
4115
- restProps = _objectWithoutPropertiesLoose(props, _excluded$E);
4216
+ sizeProp = _props$size === void 0 ? 0 : _props$size,
4217
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$F);
4116
4218
 
4117
- var maxLength = Math.max(maxLengthProp, 0);
4118
4219
  var children = childrenToElementArray(childrenProp).filter(function (child) {
4119
4220
  return typeof child !== 'string';
4120
4221
  });
4222
+ var maxLength = Math.max(maxLengthProp, 0);
4223
+ var size = useArrayProp(sizeProp);
4121
4224
  var len = children.length;
4122
4225
  var visibleCount = maxLength - 1;
4123
4226
  var extraCount = len - visibleCount;
@@ -4126,25 +4229,22 @@ var AvatarStack = /*#__PURE__*/forwardRef(function AvatarStack(props, ref) {
4126
4229
  "data-ui": "AvatarStack"
4127
4230
  }, restProps, {
4128
4231
  ref: ref,
4129
- size: size
4232
+ "$size": size
4130
4233
  }), len === 0 && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(AvatarCounter, {
4131
- count: len,
4132
- tone: tone
4234
+ count: len
4133
4235
  })), len !== 0 && extraCount > 1 && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(AvatarCounter, {
4134
4236
  count: extraCount,
4135
- size: size,
4136
- tone: tone
4237
+ size: size
4137
4238
  })), visibleChildren.map(function (child, childIndex) {
4138
4239
  return /*#__PURE__*/React.createElement("div", {
4139
4240
  key: String(childIndex)
4140
4241
  }, /*#__PURE__*/cloneElement(child, {
4141
- size: size,
4142
- tone: tone
4242
+ size: size
4143
4243
  }));
4144
4244
  }));
4145
4245
  });
4146
4246
 
4147
- 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"];
4247
+ 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"];
4148
4248
  var Root$A = styled.div(boxStyle, flexItemStyle, responsiveBoxStyle, responsiveGridItemStyle, responsiveMarginStyle, responsivePaddingStyle);
4149
4249
  /**
4150
4250
  * @public
@@ -4181,56 +4281,56 @@ var Box = /*#__PURE__*/forwardRef(function Box(props, ref) {
4181
4281
  rowStart = props.rowStart,
4182
4282
  rowEnd = props.rowEnd,
4183
4283
  sizing = props.sizing,
4184
- restProps = _objectWithoutPropertiesLoose(props, _excluded$D);
4284
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$E);
4185
4285
 
4186
4286
  return /*#__PURE__*/React.createElement(Root$A, _extends({
4187
- "data-as": asProp,
4287
+ "data-as": typeof asProp === 'string' ? asProp : undefined,
4188
4288
  "data-ui": "Box"
4189
4289
  }, restProps, {
4190
- "$column": column,
4191
- "$columnStart": columnStart,
4192
- "$columnEnd": columnEnd,
4193
- "$display": display,
4194
- "$flex": flex,
4195
- "$height": height,
4196
- "$margin": margin,
4197
- "$marginX": marginX,
4198
- "$marginY": marginY,
4199
- "$marginTop": marginTop,
4200
- "$marginRight": marginRight,
4201
- "$marginBottom": marginBottom,
4202
- "$marginLeft": marginLeft,
4203
- "$overflow": overflow,
4204
- "$padding": padding,
4205
- "$paddingX": paddingX,
4206
- "$paddingY": paddingY,
4207
- "$paddingTop": paddingTop,
4208
- "$paddingRight": paddingRight,
4209
- "$paddingBottom": paddingBottom,
4210
- "$paddingLeft": paddingLeft,
4211
- "$row": row,
4212
- "$rowStart": rowStart,
4213
- "$rowEnd": rowEnd,
4214
- "$sizing": sizing,
4290
+ "$column": useArrayProp(column),
4291
+ "$columnStart": useArrayProp(columnStart),
4292
+ "$columnEnd": useArrayProp(columnEnd),
4293
+ "$display": useArrayProp(display),
4294
+ "$flex": useArrayProp(flex),
4295
+ "$height": useArrayProp(height),
4296
+ "$margin": useArrayProp(margin),
4297
+ "$marginX": useArrayProp(marginX),
4298
+ "$marginY": useArrayProp(marginY),
4299
+ "$marginTop": useArrayProp(marginTop),
4300
+ "$marginRight": useArrayProp(marginRight),
4301
+ "$marginBottom": useArrayProp(marginBottom),
4302
+ "$marginLeft": useArrayProp(marginLeft),
4303
+ "$overflow": useArrayProp(overflow),
4304
+ "$padding": useArrayProp(padding),
4305
+ "$paddingX": useArrayProp(paddingX),
4306
+ "$paddingY": useArrayProp(paddingY),
4307
+ "$paddingTop": useArrayProp(paddingTop),
4308
+ "$paddingRight": useArrayProp(paddingRight),
4309
+ "$paddingBottom": useArrayProp(paddingBottom),
4310
+ "$paddingLeft": useArrayProp(paddingLeft),
4311
+ "$row": useArrayProp(row),
4312
+ "$rowStart": useArrayProp(rowStart),
4313
+ "$rowEnd": useArrayProp(rowEnd),
4314
+ "$sizing": useArrayProp(sizing),
4215
4315
  as: asProp,
4216
4316
  ref: ref
4217
4317
  }), props.children);
4218
4318
  });
4219
4319
 
4220
- var _templateObject$y, _templateObject2$l, _templateObject3$c;
4320
+ var _templateObject$x, _templateObject2$k, _templateObject3$b;
4221
4321
  function labelBaseStyle(props) {
4222
4322
  var $accent = props.$accent,
4223
4323
  $muted = props.$muted,
4224
4324
  theme = props.theme;
4225
4325
  var fonts = theme.sanity.fonts;
4226
- return css(_templateObject$y || (_templateObject$y = _taggedTemplateLiteralLoose(["\n text-transform: uppercase;\n\n ", "\n\n ", "\n\n & code {\n font-family: ", ";\n border-radius: 1px;\n }\n\n & a {\n text-decoration: none;\n border-radius: 1px;\n }\n\n & [data-sanity-icon] {\n vertical-align: baseline;\n }\n "])), $accent && css(_templateObject2$l || (_templateObject2$l = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && css(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), fonts.code.family);
4326
+ return 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 && css(_templateObject2$k || (_templateObject2$k = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && css(_templateObject3$b || (_templateObject3$b = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), fonts.code.family);
4227
4327
  }
4228
4328
 
4229
- var _excluded$C = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
4329
+ var _excluded$D = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
4230
4330
 
4231
- var _templateObject$x;
4331
+ var _templateObject$w;
4232
4332
  var Root$z = styled.div(responsiveLabelFont, responsiveTextAlignStyle, labelBaseStyle);
4233
- var SpanWithTextOverflow$1 = styled.span(_templateObject$x || (_templateObject$x = _taggedTemplateLiteralLoose(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"])));
4333
+ var SpanWithTextOverflow$1 = styled.span(_templateObject$w || (_templateObject$w = _taggedTemplateLiteralLoose(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"])));
4234
4334
  /**
4235
4335
  * @public
4236
4336
  */
@@ -4245,7 +4345,7 @@ var Label = /*#__PURE__*/forwardRef(function Label(props, ref) {
4245
4345
  size = _props$size === void 0 ? 2 : _props$size,
4246
4346
  textOverflow = props.textOverflow,
4247
4347
  weight = props.weight,
4248
- restProps = _objectWithoutPropertiesLoose(props, _excluded$C);
4348
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$D);
4249
4349
 
4250
4350
  var children = childrenProp;
4251
4351
 
@@ -4259,9 +4359,9 @@ var Label = /*#__PURE__*/forwardRef(function Label(props, ref) {
4259
4359
  "data-ui": "Label"
4260
4360
  }, restProps, {
4261
4361
  "$accent": accent,
4262
- "$align": align,
4362
+ "$align": useArrayProp(align),
4263
4363
  "$muted": muted,
4264
- "$size": size,
4364
+ "$size": useArrayProp(size),
4265
4365
  "$weight": weight,
4266
4366
  ref: ref
4267
4367
  }), children);
@@ -4284,7 +4384,7 @@ function badgeStyle(props) {
4284
4384
  };
4285
4385
  }
4286
4386
 
4287
- var _excluded$B = ["children", "fontSize", "mode", "padding", "radius", "tone"];
4387
+ var _excluded$C = ["children", "fontSize", "mode", "padding", "radius", "tone"];
4288
4388
  var Root$y = styled(Box)(responsiveRadiusStyle, badgeStyle);
4289
4389
  /**
4290
4390
  * @public
@@ -4301,22 +4401,22 @@ var Badge = /*#__PURE__*/forwardRef(function Badge(props, ref) {
4301
4401
  radius = _props$radius === void 0 ? 2 : _props$radius,
4302
4402
  _props$tone = props.tone,
4303
4403
  tone = _props$tone === void 0 ? 'default' : _props$tone,
4304
- restProps = _objectWithoutPropertiesLoose(props, _excluded$B);
4404
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$C);
4305
4405
 
4306
4406
  return /*#__PURE__*/React.createElement(Root$y, _extends({
4307
4407
  "data-ui": "Badge"
4308
4408
  }, restProps, {
4309
4409
  "$mode": mode,
4310
4410
  "$tone": tone,
4311
- "$radius": radius,
4312
- padding: padding,
4411
+ "$radius": useArrayProp(radius),
4412
+ padding: useArrayProp(padding),
4313
4413
  ref: ref
4314
4414
  }), /*#__PURE__*/React.createElement(Label, {
4315
4415
  size: fontSize
4316
4416
  }, children));
4317
4417
  });
4318
4418
 
4319
- var _excluded$A = ["align", "as", "direction", "gap", "justify", "wrap"];
4419
+ var _excluded$B = ["align", "as", "direction", "gap", "justify", "wrap"];
4320
4420
  var Root$x = styled(Box)(flexItemStyle, responsiveFlexStyle);
4321
4421
  /**
4322
4422
  * @public
@@ -4330,24 +4430,24 @@ var Flex = /*#__PURE__*/forwardRef(function Flex(props, ref) {
4330
4430
  gap = props.gap,
4331
4431
  justify = props.justify,
4332
4432
  wrap = props.wrap,
4333
- restProps = _objectWithoutPropertiesLoose(props, _excluded$A);
4433
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$B);
4334
4434
 
4335
4435
  return /*#__PURE__*/React.createElement(Root$x, _extends({
4336
4436
  "data-ui": "Flex"
4337
4437
  }, restProps, {
4338
- "$align": align,
4339
- "$direction": direction,
4340
- "$gap": gap,
4341
- "$justify": justify,
4342
- "$wrap": wrap,
4438
+ "$align": useArrayProp(align),
4439
+ "$direction": useArrayProp(direction),
4440
+ "$gap": useArrayProp(gap),
4441
+ "$justify": useArrayProp(justify),
4442
+ "$wrap": useArrayProp(wrap),
4343
4443
  forwardedAs: as,
4344
4444
  ref: ref
4345
4445
  }));
4346
4446
  });
4347
4447
 
4348
- var _templateObject$w, _templateObject2$k;
4349
- var rotate$1 = keyframes(_templateObject$w || (_templateObject$w = _taggedTemplateLiteralLoose(["\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n"])));
4350
- var Root$w = styled(Text)(_templateObject2$k || (_templateObject2$k = _taggedTemplateLiteralLoose(["\n & > span > svg {\n animation: ", " 500ms linear infinite;\n }\n"])), rotate$1);
4448
+ var _templateObject$v, _templateObject2$j;
4449
+ var rotate$1 = keyframes(_templateObject$v || (_templateObject$v = _taggedTemplateLiteralLoose(["\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n"])));
4450
+ var Root$w = styled(Text)(_templateObject2$j || (_templateObject2$j = _taggedTemplateLiteralLoose(["\n & > span > svg {\n animation: ", " 500ms linear infinite;\n }\n"])), rotate$1);
4351
4451
  /**
4352
4452
  * @public
4353
4453
  */
@@ -4397,13 +4497,13 @@ function _colorVarsStyle(base, color, checkered) {
4397
4497
  };
4398
4498
  }
4399
4499
 
4400
- var _templateObject$v;
4500
+ var _templateObject$u;
4401
4501
  /**
4402
4502
  * @internal
4403
4503
  */
4404
4504
 
4405
4505
  function buttonBaseStyles() {
4406
- return 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 "])));
4506
+ return 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 "])));
4407
4507
  }
4408
4508
  var buttonTheme = {
4409
4509
  border: {
@@ -4452,11 +4552,11 @@ function buttonColorStyles(props) {
4452
4552
  }, (_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);
4453
4553
  }
4454
4554
 
4455
- 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"];
4555
+ 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"];
4456
4556
 
4457
- var _templateObject$u;
4557
+ var _templateObject$t;
4458
4558
  var Root$v = styled.button(responsiveRadiusStyle, buttonBaseStyles, buttonColorStyles);
4459
- var LoadingBox = styled.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"])));
4559
+ var LoadingBox = styled.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"])));
4460
4560
  /**
4461
4561
  * @public
4462
4562
  */
@@ -4468,31 +4568,41 @@ var Button = /*#__PURE__*/forwardRef(function Button(props, ref) {
4468
4568
  icon = props.icon,
4469
4569
  iconRight = props.iconRight,
4470
4570
  _props$justify = props.justify,
4471
- justify = _props$justify === void 0 ? 'center' : _props$justify,
4571
+ justifyProp = _props$justify === void 0 ? 'center' : _props$justify,
4472
4572
  loading = props.loading,
4473
4573
  _props$mode = props.mode,
4474
4574
  mode = _props$mode === void 0 ? 'default' : _props$mode,
4475
4575
  _props$padding = props.padding,
4476
- padding = _props$padding === void 0 ? 3 : _props$padding,
4477
- paddingX = props.paddingX,
4478
- paddingY = props.paddingY,
4479
- paddingTop = props.paddingTop,
4480
- paddingBottom = props.paddingBottom,
4481
- paddingLeft = props.paddingLeft,
4482
- paddingRight = props.paddingRight,
4576
+ paddingProp = _props$padding === void 0 ? 3 : _props$padding,
4577
+ paddingXProp = props.paddingX,
4578
+ paddingYProp = props.paddingY,
4579
+ paddingTopProp = props.paddingTop,
4580
+ paddingBottomProp = props.paddingBottom,
4581
+ paddingLeftProp = props.paddingLeft,
4582
+ paddingRightProp = props.paddingRight,
4483
4583
  _props$radius = props.radius,
4484
- radius = _props$radius === void 0 ? 2 : _props$radius,
4584
+ radiusProp = _props$radius === void 0 ? 2 : _props$radius,
4485
4585
  selected = props.selected,
4486
4586
  _props$space = props.space,
4487
- space = _props$space === void 0 ? 3 : _props$space,
4587
+ spaceProp = _props$space === void 0 ? 3 : _props$space,
4488
4588
  text = props.text,
4489
4589
  textAlign = props.textAlign,
4490
4590
  _props$tone = props.tone,
4491
4591
  tone = _props$tone === void 0 ? 'default' : _props$tone,
4492
4592
  _props$type = props.type,
4493
4593
  type = _props$type === void 0 ? 'button' : _props$type,
4494
- restProps = _objectWithoutPropertiesLoose(props, _excluded$z);
4594
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$A);
4495
4595
 
4596
+ var justify = useArrayProp(justifyProp);
4597
+ var padding = useArrayProp(paddingProp);
4598
+ var paddingX = useArrayProp(paddingXProp);
4599
+ var paddingY = useArrayProp(paddingYProp);
4600
+ var paddingTop = useArrayProp(paddingTopProp);
4601
+ var paddingBottom = useArrayProp(paddingBottomProp);
4602
+ var paddingLeft = useArrayProp(paddingLeftProp);
4603
+ var paddingRight = useArrayProp(paddingRightProp);
4604
+ var radius = useArrayProp(radiusProp);
4605
+ var space = useArrayProp(spaceProp);
4496
4606
  var theme = useTheme();
4497
4607
  var boxProps = useMemo(function () {
4498
4608
  return {
@@ -4540,7 +4650,7 @@ var Button = /*#__PURE__*/forwardRef(function Button(props, ref) {
4540
4650
  }, boxProps), children));
4541
4651
  });
4542
4652
 
4543
- var _templateObject$t, _templateObject2$j, _templateObject3$b;
4653
+ var _templateObject$s, _templateObject2$i, _templateObject3$a;
4544
4654
  function cardStyle(props) {
4545
4655
  return [cardBaseStyle(props), cardColorStyle(props)];
4546
4656
  }
@@ -4548,7 +4658,7 @@ function cardBaseStyle(props) {
4548
4658
  var $checkered = props.$checkered,
4549
4659
  theme = props.theme;
4550
4660
  var space = theme.sanity.space;
4551
- return 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 && 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]));
4661
+ return 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 && 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]));
4552
4662
  }
4553
4663
  function cardColorStyle(props) {
4554
4664
  var _theme$sanity$styles, _theme$sanity$styles$;
@@ -4564,7 +4674,7 @@ function cardColorStyle(props) {
4564
4674
  width: 0,
4565
4675
  color: 'var(--card-border-color)'
4566
4676
  };
4567
- return 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({
4677
+ return 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({
4568
4678
  base: base,
4569
4679
  border: border,
4570
4680
  focusRing: focusRing
@@ -4575,16 +4685,14 @@ function cardColorStyle(props) {
4575
4685
  }) : undefined, $focusRing ? focusRingBorderStyle(border) : undefined, (_theme$sanity$styles = theme.sanity.styles) == null ? void 0 : (_theme$sanity$styles$ = _theme$sanity$styles.card) == null ? void 0 : _theme$sanity$styles$.root);
4576
4686
  }
4577
4687
 
4578
- var _excluded$y = ["pressed", "__unstable_checkered", "__unstable_focusRing", "as", "border", "borderTop", "borderRight", "borderBottom", "borderLeft", "radius", "scheme", "selected", "shadow", "tone"];
4688
+ var _excluded$z = ["__unstable_checkered", "__unstable_focusRing", "as", "border", "borderTop", "borderRight", "borderBottom", "borderLeft", "pressed", "radius", "scheme", "selected", "shadow", "tone"];
4579
4689
  var Root$u = styled(Box)(responsiveBorderStyle, responsiveRadiusStyle, responsiveShadowStyle, cardStyle);
4580
4690
  /**
4581
4691
  * @public
4582
4692
  */
4583
4693
 
4584
4694
  var Card = /*#__PURE__*/forwardRef(function Card(props, ref) {
4585
- var _props$pressed = props.pressed,
4586
- pressed = _props$pressed === void 0 ? false : _props$pressed,
4587
- _props$__unstable_che = props.__unstable_checkered,
4695
+ var _props$__unstable_che = props.__unstable_checkered,
4588
4696
  checkered = _props$__unstable_che === void 0 ? false : _props$__unstable_che,
4589
4697
  _props$__unstable_foc = props.__unstable_focusRing,
4590
4698
  focusRing = _props$__unstable_foc === void 0 ? false : _props$__unstable_foc,
@@ -4594,6 +4702,7 @@ var Card = /*#__PURE__*/forwardRef(function Card(props, ref) {
4594
4702
  borderRight = props.borderRight,
4595
4703
  borderBottom = props.borderBottom,
4596
4704
  borderLeft = props.borderLeft,
4705
+ pressed = props.pressed,
4597
4706
  _props$radius = props.radius,
4598
4707
  radius = _props$radius === void 0 ? 0 : _props$radius,
4599
4708
  scheme = props.scheme,
@@ -4601,7 +4710,7 @@ var Card = /*#__PURE__*/forwardRef(function Card(props, ref) {
4601
4710
  shadow = props.shadow,
4602
4711
  _props$tone = props.tone,
4603
4712
  toneProp = _props$tone === void 0 ? 'default' : _props$tone,
4604
- restProps = _objectWithoutPropertiesLoose(props, _excluded$y);
4713
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$z);
4605
4714
 
4606
4715
  var as = isValidElementType(asProp) ? asProp : 'div';
4607
4716
  var rootTheme = useRootTheme();
@@ -4611,32 +4720,32 @@ var Card = /*#__PURE__*/forwardRef(function Card(props, ref) {
4611
4720
  tone: tone
4612
4721
  }, /*#__PURE__*/React.createElement(Root$u, _extends({
4613
4722
  "data-as": typeof as === 'string' ? as : undefined,
4614
- "data-checkered": checkered ? '' : undefined,
4615
- "data-pressed": pressed ? '' : undefined,
4616
4723
  "data-scheme": rootTheme.scheme,
4617
- "data-selected": selected ? '' : undefined,
4618
4724
  "data-ui": "Card",
4619
4725
  "data-tone": tone
4620
4726
  }, restProps, {
4621
- "$border": border,
4622
- "$borderTop": borderTop,
4623
- "$borderRight": borderRight,
4624
- "$borderBottom": borderBottom,
4625
- "$borderLeft": borderLeft,
4727
+ "$border": useArrayProp(border),
4728
+ "$borderTop": useArrayProp(borderTop),
4729
+ "$borderRight": useArrayProp(borderRight),
4730
+ "$borderBottom": useArrayProp(borderBottom),
4731
+ "$borderLeft": useArrayProp(borderLeft),
4626
4732
  "$checkered": checkered,
4627
4733
  "$focusRing": focusRing,
4628
- "$radius": radius,
4629
- "$shadow": shadow,
4734
+ "$radius": useArrayProp(radius),
4735
+ "$shadow": useArrayProp(shadow),
4630
4736
  "$tone": tone,
4737
+ "data-checkered": checkered ? '' : undefined,
4738
+ "data-pressed": pressed ? '' : undefined,
4739
+ "data-selected": selected ? '' : undefined,
4631
4740
  forwardedAs: as,
4632
4741
  ref: ref,
4633
4742
  selected: selected
4634
4743
  })));
4635
4744
  });
4636
4745
 
4637
- var _templateObject$s, _templateObject2$i;
4746
+ var _templateObject$r, _templateObject2$h;
4638
4747
  function checkboxBaseStyles() {
4639
- return css(_templateObject$s || (_templateObject$s = _taggedTemplateLiteralLoose(["\n position: relative;\n display: inline-block;\n "])));
4748
+ return css(_templateObject$r || (_templateObject$r = _taggedTemplateLiteralLoose(["\n position: relative;\n display: inline-block;\n "])));
4640
4749
  }
4641
4750
  function inputElementStyles(props) {
4642
4751
  var theme = props.theme;
@@ -4645,7 +4754,7 @@ function inputElementStyles(props) {
4645
4754
  focusRing = _theme$sanity.focusRing,
4646
4755
  input = _theme$sanity.input,
4647
4756
  radius = _theme$sanity.radius;
4648
- return 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({
4757
+ return 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({
4649
4758
  color: color["default"].enabled.border,
4650
4759
  width: input.border.width
4651
4760
  }), rem(radius[2]), color["default"].enabled.bg, focusRingStyle({
@@ -4666,7 +4775,7 @@ function inputElementStyles(props) {
4666
4775
  }), color["default"].disabled.fg);
4667
4776
  }
4668
4777
 
4669
- var _excluded$x = ["checked", "className", "disabled", "indeterminate", "customValidity", "readOnly", "style"];
4778
+ var _excluded$y = ["checked", "className", "disabled", "indeterminate", "customValidity", "readOnly", "style"];
4670
4779
  var Root$t = styled.div(checkboxBaseStyles);
4671
4780
  var Input$5 = styled.input(inputElementStyles);
4672
4781
  /**
@@ -4681,7 +4790,7 @@ var Checkbox = /*#__PURE__*/forwardRef(function Checkbox(props, forwardedRef) {
4681
4790
  customValidity = props.customValidity,
4682
4791
  readOnly = props.readOnly,
4683
4792
  style = props.style,
4684
- restProps = _objectWithoutPropertiesLoose(props, _excluded$x);
4793
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$y);
4685
4794
 
4686
4795
  var ref = useForwardedRef(forwardedRef);
4687
4796
  useCustomValidity(ref, customValidity);
@@ -4706,7 +4815,7 @@ var Checkbox = /*#__PURE__*/forwardRef(function Checkbox(props, forwardedRef) {
4706
4815
  })), /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(CheckmarkIcon, null), /*#__PURE__*/React.createElement(RemoveIcon, null)));
4707
4816
  });
4708
4817
 
4709
- var _templateObject$r;
4818
+ var _templateObject$q;
4710
4819
 
4711
4820
  function codeSyntaxHighlightingStyle(_ref) {
4712
4821
  var theme = _ref.theme;
@@ -4824,10 +4933,10 @@ function codeSyntaxHighlightingStyle(_ref) {
4824
4933
  }
4825
4934
 
4826
4935
  function codeBaseStyle() {
4827
- return 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);
4936
+ return 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);
4828
4937
  }
4829
4938
 
4830
- var _excluded$w = ["children", "language", "size", "weight"];
4939
+ var _excluded$x = ["children", "language", "size", "weight"];
4831
4940
  var Root$s = styled.pre(codeBaseStyle, responsiveCodeFontStyle);
4832
4941
  /**
4833
4942
  * @public
@@ -4839,14 +4948,14 @@ var Code = /*#__PURE__*/forwardRef(function Code(props, ref) {
4839
4948
  _props$size = props.size,
4840
4949
  size = _props$size === void 0 ? 2 : _props$size,
4841
4950
  weight = props.weight,
4842
- restProps = _objectWithoutPropertiesLoose(props, _excluded$w);
4951
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$x);
4843
4952
 
4844
4953
  var language = typeof languageProp === 'string' ? languageProp : undefined;
4845
4954
  var registered = language ? Refractor.hasLanguage(language) : false;
4846
4955
  return /*#__PURE__*/React.createElement(Root$s, _extends({
4847
4956
  "data-ui": "Code"
4848
4957
  }, restProps, {
4849
- "$size": size,
4958
+ "$size": useArrayProp(size),
4850
4959
  "$weight": weight,
4851
4960
  ref: ref
4852
4961
  }), !(language && registered) && /*#__PURE__*/React.createElement("code", null, children), language && registered && /*#__PURE__*/React.createElement(Refractor, {
@@ -4868,14 +4977,14 @@ function responsiveContainerWidthStyle(props) {
4868
4977
  var _theme$sanity = theme.sanity,
4869
4978
  container = _theme$sanity.container,
4870
4979
  media = _theme$sanity.media;
4871
- return responsive(media, getResponsiveProp(props.$width), function (val) {
4980
+ return _responsive(media, props.$width, function (val) {
4872
4981
  return {
4873
4982
  maxWidth: val === 'auto' ? 'none' : rem(container[val])
4874
4983
  };
4875
4984
  });
4876
4985
  }
4877
4986
 
4878
- var _excluded$v = ["as", "width"];
4987
+ var _excluded$w = ["as", "width"];
4879
4988
  var Root$r = styled(Box)(containerBaseStyle, responsiveContainerWidthStyle);
4880
4989
  /**
4881
4990
  * @public
@@ -4885,18 +4994,18 @@ var Container = /*#__PURE__*/forwardRef(function Container(props, ref) {
4885
4994
  var as = props.as,
4886
4995
  _props$width = props.width,
4887
4996
  width = _props$width === void 0 ? 2 : _props$width,
4888
- restProps = _objectWithoutPropertiesLoose(props, _excluded$v);
4997
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$w);
4889
4998
 
4890
4999
  return /*#__PURE__*/React.createElement(Root$r, _extends({
4891
5000
  "data-ui": "Container"
4892
5001
  }, restProps, {
4893
- "$width": width,
5002
+ "$width": useArrayProp(width),
4894
5003
  forwardedAs: as,
4895
5004
  ref: ref
4896
5005
  }));
4897
5006
  });
4898
5007
 
4899
- var _excluded$u = ["as", "autoRows", "autoCols", "autoFlow", "columns", "gap", "gapX", "gapY", "rows", "children"];
5008
+ var _excluded$v = ["as", "autoRows", "autoCols", "autoFlow", "columns", "gap", "gapX", "gapY", "rows", "children"];
4900
5009
  var Root$q = styled(Box)(responsiveGridStyle);
4901
5010
  /**
4902
5011
  * @public
@@ -4913,38 +5022,38 @@ var Grid = /*#__PURE__*/forwardRef(function Grid(props, ref) {
4913
5022
  gapY = props.gapY,
4914
5023
  rows = props.rows,
4915
5024
  children = props.children,
4916
- restProps = _objectWithoutPropertiesLoose(props, _excluded$u);
5025
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$v);
4917
5026
 
4918
5027
  return /*#__PURE__*/React.createElement(Root$q, _extends({
4919
5028
  "data-as": typeof as === 'string' ? as : undefined,
4920
5029
  "data-ui": "Grid"
4921
5030
  }, restProps, {
4922
- "$autoRows": autoRows,
4923
- "$autoCols": autoCols,
4924
- "$autoFlow": autoFlow,
4925
- "$columns": columns,
4926
- "$gap": gap,
4927
- "$gapX": gapX,
4928
- "$gapY": gapY,
4929
- "$rows": rows,
5031
+ "$autoRows": useArrayProp(autoRows),
5032
+ "$autoCols": useArrayProp(autoCols),
5033
+ "$autoFlow": useArrayProp(autoFlow),
5034
+ "$columns": useArrayProp(columns),
5035
+ "$gap": useArrayProp(gap),
5036
+ "$gapX": useArrayProp(gapX),
5037
+ "$gapY": useArrayProp(gapY),
5038
+ "$rows": useArrayProp(rows),
4930
5039
  forwardedAs: as,
4931
5040
  ref: ref
4932
5041
  }), children);
4933
5042
  });
4934
5043
 
4935
- var _templateObject$q, _templateObject2$h, _templateObject3$a;
5044
+ var _templateObject$p, _templateObject2$g, _templateObject3$9;
4936
5045
  function headingBaseStyle(props) {
4937
5046
  var $accent = props.$accent,
4938
5047
  $muted = props.$muted,
4939
5048
  theme = props.theme;
4940
- return 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 && css(_templateObject2$h || (_templateObject2$h = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && css(_templateObject3$a || (_templateObject3$a = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), theme.sanity.fonts.code.family);
5049
+ return 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 && css(_templateObject2$g || (_templateObject2$g = _taggedTemplateLiteralLoose(["\n color: var(--card-accent-fg-color);\n "]))), $muted && css(_templateObject3$9 || (_templateObject3$9 = _taggedTemplateLiteralLoose(["\n color: var(--card-muted-fg-color);\n "]))), theme.sanity.fonts.code.family);
4941
5050
  }
4942
5051
 
4943
- var _excluded$t = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
5052
+ var _excluded$u = ["accent", "align", "children", "muted", "size", "textOverflow", "weight"];
4944
5053
 
4945
- var _templateObject$p;
5054
+ var _templateObject$o;
4946
5055
  var Root$p = styled.div(headingBaseStyle, responsiveTextAlignStyle, responsiveHeadingFont);
4947
- var SpanWithTextOverflow = styled.span(_templateObject$p || (_templateObject$p = _taggedTemplateLiteralLoose(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"])));
5056
+ var SpanWithTextOverflow = styled.span(_templateObject$o || (_templateObject$o = _taggedTemplateLiteralLoose(["\n display: block;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n"])));
4948
5057
  /**
4949
5058
  * @public
4950
5059
  */
@@ -4960,7 +5069,7 @@ var Heading = /*#__PURE__*/forwardRef(function Heading(props, ref) {
4960
5069
  size = _props$size === void 0 ? 2 : _props$size,
4961
5070
  textOverflow = props.textOverflow,
4962
5071
  weight = props.weight,
4963
- restProps = _objectWithoutPropertiesLoose(props, _excluded$t);
5072
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$u);
4964
5073
 
4965
5074
  var children = childrenProp;
4966
5075
 
@@ -4972,9 +5081,9 @@ var Heading = /*#__PURE__*/forwardRef(function Heading(props, ref) {
4972
5081
  "data-ui": "Heading"
4973
5082
  }, restProps, {
4974
5083
  "$accent": accent,
4975
- "$align": align,
5084
+ "$align": useArrayProp(align),
4976
5085
  "$muted": muted,
4977
- "$size": size,
5086
+ "$size": useArrayProp(size),
4978
5087
  "$weight": weight,
4979
5088
  ref: ref
4980
5089
  }), /*#__PURE__*/React.createElement("span", null, children));
@@ -4994,7 +5103,7 @@ function inlineBaseStyle() {
4994
5103
  }
4995
5104
  function inlineSpaceStyle(props) {
4996
5105
  var theme = props.theme;
4997
- return responsive(theme.sanity.media, getResponsiveProp(props.$space), function (spaceIndex) {
5106
+ return _responsive(theme.sanity.media, props.$space, function (spaceIndex) {
4998
5107
  var space = rem(theme.sanity.space[spaceIndex]);
4999
5108
  return {
5000
5109
  margin: "-" + space + " 0 0 -" + space,
@@ -5005,7 +5114,7 @@ function inlineSpaceStyle(props) {
5005
5114
  });
5006
5115
  }
5007
5116
 
5008
- var _excluded$s = ["as", "children", "space"];
5117
+ var _excluded$t = ["as", "children", "space"];
5009
5118
  var Root$o = styled(Box)(inlineBaseStyle, inlineSpaceStyle);
5010
5119
  /**
5011
5120
  * @public
@@ -5015,28 +5124,30 @@ var Inline = /*#__PURE__*/forwardRef(function Inline(props, ref) {
5015
5124
  var as = props.as,
5016
5125
  childrenProp = props.children,
5017
5126
  space = props.space,
5018
- restProps = _objectWithoutPropertiesLoose(props, _excluded$s);
5127
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$t);
5019
5128
 
5020
- var children = childrenToElementArray(childrenProp).filter(Boolean);
5129
+ var children = useMemo(function () {
5130
+ return childrenToElementArray(childrenProp).filter(Boolean).map(function (child, idx) {
5131
+ return /*#__PURE__*/React.createElement("div", {
5132
+ key: idx
5133
+ }, child);
5134
+ });
5135
+ }, [childrenProp]);
5021
5136
  return /*#__PURE__*/React.createElement(Root$o, _extends({
5022
5137
  "data-ui": "Inline"
5023
5138
  }, restProps, {
5024
- "$space": space,
5139
+ "$space": useArrayProp(space),
5025
5140
  forwardedAs: as,
5026
5141
  ref: ref
5027
- }), children.map(function (child, idx) {
5028
- return /*#__PURE__*/React.createElement("div", {
5029
- key: idx
5030
- }, child);
5031
- }));
5142
+ }), children);
5032
5143
  });
5033
5144
 
5034
- var _excluded$r = ["children", "fontSize", "padding", "radius"];
5145
+ var _excluded$s = ["children", "fontSize", "padding", "radius"];
5035
5146
 
5036
- var _templateObject$o;
5147
+ var _templateObject$n;
5037
5148
 
5038
5149
  function kbdStyle() {
5039
- return 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 "])));
5150
+ return 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 "])));
5040
5151
  }
5041
5152
 
5042
5153
  var Root$n = styled.kbd(responsiveRadiusStyle, kbdStyle);
@@ -5052,12 +5163,12 @@ var KBD = /*#__PURE__*/forwardRef(function KBD(props, ref) {
5052
5163
  padding = _props$padding === void 0 ? 1 : _props$padding,
5053
5164
  _props$radius = props.radius,
5054
5165
  radius = _props$radius === void 0 ? 2 : _props$radius,
5055
- restProps = _objectWithoutPropertiesLoose(props, _excluded$r);
5166
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$s);
5056
5167
 
5057
5168
  return /*#__PURE__*/React.createElement(Root$n, _extends({
5058
5169
  "data-ui": "KBD"
5059
5170
  }, restProps, {
5060
- "$radius": radius,
5171
+ "$radius": useArrayProp(radius),
5061
5172
  ref: ref
5062
5173
  }), /*#__PURE__*/React.createElement(Box, {
5063
5174
  as: "span",
@@ -5111,12 +5222,6 @@ function useBoundaryElement() {
5111
5222
  return value || DEFAULT_VALUE;
5112
5223
  }
5113
5224
 
5114
- /**
5115
- * @internal
5116
- */
5117
-
5118
- var RO = typeof window !== 'undefined' && window.ResizeObserver ? window.ResizeObserver : ResizeObserver$1;
5119
-
5120
5225
  function findMaxBreakpoints(media, width) {
5121
5226
  var ret = [];
5122
5227
 
@@ -5144,7 +5249,7 @@ function findMinBreakpoints(media, width) {
5144
5249
  return ret;
5145
5250
  }
5146
5251
 
5147
- var _excluded$q = ["children", "media"];
5252
+ var _excluded$r = ["children", "media"];
5148
5253
  /**
5149
5254
  * DO NOT USE IN PRODUCTION.
5150
5255
  * @beta
@@ -5156,33 +5261,20 @@ var ElementQuery = /*#__PURE__*/forwardRef(function ElementQuery(props, ref) {
5156
5261
  var children = props.children,
5157
5262
  _props$media = props.media,
5158
5263
  media = _props$media === void 0 ? theme.sanity.media : _props$media,
5159
- restProps = _objectWithoutPropertiesLoose(props, _excluded$q);
5160
-
5161
- var _useState = useState(function () {
5162
- return window.innerWidth;
5163
- }),
5164
- width = _useState[0],
5165
- setWidth = _useState[1];
5264
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$r);
5166
5265
 
5167
5266
  var forwardedRef = useForwardedRef(ref);
5168
5267
 
5169
- var _useState2 = useState(null),
5170
- element = _useState2[0],
5171
- setElement = _useState2[1];
5172
-
5173
- useEffect(function () {
5174
- if (!element) return;
5268
+ var _useState = useState(null),
5269
+ element = _useState[0],
5270
+ setElement = _useState[1];
5175
5271
 
5176
- var handleResizeEntries = function handleResizeEntries(entries) {
5177
- setWidth(entries[0].contentRect.width);
5178
- };
5272
+ var elementSize = useElementSize(element);
5273
+ var width = useMemo(function () {
5274
+ var _elementSize$border$w;
5179
5275
 
5180
- var ro = new RO(handleResizeEntries);
5181
- ro.observe(element);
5182
- return function () {
5183
- return ro.disconnect();
5184
- };
5185
- }, [element]);
5276
+ return (_elementSize$border$w = elementSize == null ? void 0 : elementSize.border.width) != null ? _elementSize$border$w : window.innerWidth;
5277
+ }, [elementSize]);
5186
5278
  var max = useMemo(function () {
5187
5279
  return findMaxBreakpoints(media, width);
5188
5280
  }, [media, width]);
@@ -5288,7 +5380,7 @@ function LayerProvider(props) {
5288
5380
  _props$zOffset = props.zOffset,
5289
5381
  zOffsetProp = _props$zOffset === void 0 ? 0 : _props$zOffset;
5290
5382
  var parent = useContext(LayerContext);
5291
- var zOffset = useResponsiveProp(zOffsetProp);
5383
+ var zOffset = useArrayProp(zOffsetProp);
5292
5384
  var maxMediaIndex = zOffset.length - 1;
5293
5385
  var mediaIndex = Math.min(useMediaIndex(), maxMediaIndex);
5294
5386
  var zIndex = parent ? parent.zIndex + zOffset[mediaIndex] : zOffset[mediaIndex];
@@ -5326,21 +5418,22 @@ function LayerProvider(props) {
5326
5418
  }, children);
5327
5419
  }
5328
5420
 
5329
- var _excluded$p = ["children", "style"],
5421
+ var _excluded$q = ["children", "style"],
5330
5422
  _excluded2$1 = ["children", "zOffset"];
5331
5423
 
5332
- var _templateObject$n;
5333
- var Root$m = styled.div(_templateObject$n || (_templateObject$n = _taggedTemplateLiteralLoose(["\n position: relative;\n"])));
5424
+ var _templateObject$m;
5425
+ var Root$m = styled.div(_templateObject$m || (_templateObject$m = _taggedTemplateLiteralLoose(["\n position: relative;\n"])));
5334
5426
  var LayerChildren = /*#__PURE__*/forwardRef(function LayerChildren(props, ref) {
5335
5427
  var children = props.children,
5336
5428
  _props$style = props.style,
5337
- style = _props$style === void 0 ? EMPTY_RECORD$1 : _props$style,
5338
- restProps = _objectWithoutPropertiesLoose(props, _excluded$p);
5429
+ style = _props$style === void 0 ? EMPTY_RECORD : _props$style,
5430
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$q);
5339
5431
 
5340
5432
  var _useLayer = useLayer(),
5341
5433
  zIndex = _useLayer.zIndex;
5342
5434
 
5343
5435
  return /*#__PURE__*/React.createElement(Root$m, _extends({}, restProps, {
5436
+ "data-ui": "Layer",
5344
5437
  ref: ref,
5345
5438
  style: _extends({}, style, {
5346
5439
  zIndex: zIndex
@@ -5433,14 +5526,14 @@ function Portal(props) {
5433
5526
  function useUnique(value) {
5434
5527
  var valueRef = useRef(value);
5435
5528
 
5436
- if (!isEqual(valueRef.current, value)) {
5529
+ if (!_isEqual(valueRef.current, value)) {
5437
5530
  valueRef.current = value;
5438
5531
  }
5439
5532
 
5440
5533
  return valueRef.current;
5441
5534
  }
5442
5535
 
5443
- function isEqual(objA, objB) {
5536
+ function _isEqual(objA, objB) {
5444
5537
  if (!objA || !objB) {
5445
5538
  return objA === objB;
5446
5539
  }
@@ -5482,8 +5575,8 @@ function PortalProvider(props) {
5482
5575
  }, children);
5483
5576
  }
5484
5577
 
5485
- var _templateObject$m;
5486
- var Root$l = styled.div(_templateObject$m || (_templateObject$m = _taggedTemplateLiteralLoose(["\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n"])));
5578
+ var _templateObject$l;
5579
+ var Root$l = styled.div(_templateObject$l || (_templateObject$l = _taggedTemplateLiteralLoose(["\n display: block;\n width: 0;\n height: 0;\n position: absolute;\n overflow: hidden;\n"])));
5487
5580
  /**
5488
5581
  * @public
5489
5582
  */
@@ -5665,11 +5758,11 @@ function _isScrollable(el) {
5665
5758
  return style.overflowX.includes('auto') || style.overflowX.includes('scroll') || style.overflowY.includes('auto') || style.overflowY.includes('scroll');
5666
5759
  }
5667
5760
 
5668
- var _excluded$o = ["as", "gap", "getItemKey", "items", "onChange", "renderItem"];
5761
+ var _excluded$p = ["as", "gap", "getItemKey", "items", "onChange", "renderItem"];
5669
5762
 
5670
- var _templateObject$l, _templateObject2$g;
5671
- var Root$k = styled.div(_templateObject$l || (_templateObject$l = _taggedTemplateLiteralLoose(["\n position: relative;\n"])));
5672
- var ItemWrapper = styled.div(_templateObject2$g || (_templateObject2$g = _taggedTemplateLiteralLoose(["\n position: absolute;\n left: 0;\n right: 0;\n"])));
5763
+ var _templateObject$k, _templateObject2$f;
5764
+ var Root$k = styled.div(_templateObject$k || (_templateObject$k = _taggedTemplateLiteralLoose(["\n position: relative;\n"])));
5765
+ var ItemWrapper = styled.div(_templateObject2$f || (_templateObject2$f = _taggedTemplateLiteralLoose(["\n position: absolute;\n left: 0;\n right: 0;\n"])));
5673
5766
  /**
5674
5767
  * @beta
5675
5768
  */
@@ -5684,7 +5777,7 @@ var VirtualList = /*#__PURE__*/forwardRef(function VirtualList(props, ref) {
5684
5777
  items = _props$items === void 0 ? [] : _props$items,
5685
5778
  onChange = props.onChange,
5686
5779
  renderItem = props.renderItem,
5687
- restProps = _objectWithoutPropertiesLoose(props, _excluded$o);
5780
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$p);
5688
5781
 
5689
5782
  var space = useTheme().sanity.space;
5690
5783
  var forwardedRef = useForwardedRef(ref);
@@ -5729,17 +5822,16 @@ var VirtualList = /*#__PURE__*/forwardRef(function VirtualList(props, ref) {
5729
5822
  scrollEl.addEventListener('scroll', _handleScroll, {
5730
5823
  passive: true
5731
5824
  });
5732
- var ro = new ResizeObserver(function (entries) {
5733
- setScrollHeight(entries[0].contentRect.height);
5825
+
5826
+ var disposeElementSizeListener = _elementSizeObserver.subscribe(scrollEl, function (scrollElementSize) {
5827
+ setScrollHeight(scrollElementSize.content.height);
5734
5828
  });
5735
- ro.observe(scrollEl);
5736
5829
 
5737
5830
  _handleScroll();
5738
5831
 
5739
5832
  return function () {
5740
5833
  scrollEl.removeEventListener('scroll', _handleScroll);
5741
- ro.unobserve(scrollEl);
5742
- ro.disconnect();
5834
+ disposeElementSizeListener();
5743
5835
  };
5744
5836
  }
5745
5837
 
@@ -5814,13 +5906,13 @@ var VirtualList = /*#__PURE__*/forwardRef(function VirtualList(props, ref) {
5814
5906
  }, children));
5815
5907
  });
5816
5908
 
5817
- var _templateObject$k, _templateObject2$f, _templateObject3$9;
5818
- var Root$j = styled.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"])));
5819
- var BorderPath = styled.path(_templateObject2$f || (_templateObject2$f = _taggedTemplateLiteralLoose(["\n fill: var(--card-shadow-outline-color);\n"])));
5820
- var ShapePath = styled.path(_templateObject3$9 || (_templateObject3$9 = _taggedTemplateLiteralLoose(["\n fill: var(--card-bg-color);\n"])));
5909
+ var _templateObject$j, _templateObject2$e, _templateObject3$8;
5910
+ var Root$j = styled.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"])));
5911
+ var BorderPath = styled.path(_templateObject2$e || (_templateObject2$e = _taggedTemplateLiteralLoose(["\n fill: var(--card-shadow-outline-color);\n"])));
5912
+ var ShapePath = styled.path(_templateObject3$8 || (_templateObject3$8 = _taggedTemplateLiteralLoose(["\n fill: var(--card-bg-color);\n"])));
5821
5913
  var PopoverArrow = /*#__PURE__*/forwardRef(function PopoverArrow(props, ref) {
5822
5914
  return /*#__PURE__*/React.createElement(Root$j, _extends({
5823
- "data-ui": "PopoverArrow"
5915
+ "data-ui": "Popover__arrow"
5824
5916
  }, props, {
5825
5917
  ref: ref
5826
5918
  }), /*#__PURE__*/React.createElement("svg", {
@@ -5836,316 +5928,309 @@ var PopoverArrow = /*#__PURE__*/forwardRef(function PopoverArrow(props, ref) {
5836
5928
  })));
5837
5929
  });
5838
5930
 
5839
- /*
5840
-
5841
- The order of popper phases:
5931
+ 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"];
5842
5932
 
5843
- - beforeRead
5844
- - read
5845
- - afterRead
5846
- - beforeMain
5847
- - main
5848
- - afterMain
5849
- - beforeWrite
5850
- - write
5851
- - afterWrite
5933
+ function popoverCardStyle(props) {
5934
+ var $boundaryWidth = props.$boundaryWidth;
5935
+ return {
5936
+ maxWidth: $boundaryWidth ? $boundaryWidth - 16 + "px" : 'calc(100% - 16px)'
5937
+ };
5938
+ }
5852
5939
 
5853
- */
5940
+ var Root$i = /*#__PURE__*/memo(styled(Card)(popoverCardStyle));
5941
+ /**
5942
+ * @internal
5943
+ */
5854
5944
 
5855
- function getPopoverModifiers(props) {
5856
- var allowedAutoPlacements = props.allowedAutoPlacements,
5945
+ var PopoverCard = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function PopoverCard(props, ref) {
5946
+ var marginsProp = props.__unstable_margins,
5857
5947
  arrow = props.arrow,
5858
- arrowElement = props.arrowElement,
5859
- boundaryElement = props.boundaryElement,
5860
- constrainSize = props.constrainSize,
5861
- distance = props.distance,
5862
- fallbackPlacements = props.fallbackPlacements,
5863
- margins = props.margins,
5864
- matchReferenceWidth = props.matchReferenceWidth,
5865
- open = props.open,
5866
- preventOverflow = props.preventOverflow,
5867
- skidding = props.skidding,
5868
- tether = props.tether,
5869
- tetherOffset = props.tetherOffset; // NOTE: For later viewers:
5870
- // Prior to adding this change, the popover would get `maxWidth: 0` the 2nd time it
5871
- // was opened, when used with `constrainSize`. I was looking for a way to "reset"
5872
- // the size of the popover as measured by Popper.js, and this seems to be a workaround.
5873
-
5874
- if (!open) {
5875
- return [];
5876
- }
5948
+ arrowRef = props.arrowRef,
5949
+ arrowX = props.arrowX,
5950
+ arrowY = props.arrowY,
5951
+ availableHeight = props.availableHeight,
5952
+ availableWidth = props.availableWidth,
5953
+ boundaryWidth = props.boundaryWidth,
5954
+ children = props.children,
5955
+ padding = props.padding,
5956
+ placement = props.placement,
5957
+ overflow = props.overflow,
5958
+ radius = props.radius,
5959
+ referenceWidthProp = props.referenceWidth,
5960
+ scheme = props.scheme,
5961
+ shadow = props.shadow,
5962
+ strategy = props.strategy,
5963
+ tone = props.tone,
5964
+ width = props.width,
5965
+ xProp = props.x,
5966
+ yProp = props.y,
5967
+ restProps = _objectWithoutPropertiesLoose(props, _excluded$o);
5877
5968
 
5878
- var detectOverflowOptions = {
5879
- altAxis: !constrainSize,
5880
- boundary: boundaryElement || undefined,
5881
- padding: 8,
5882
- tether: tether,
5883
- tetherOffset: tetherOffset
5884
- };
5885
- return [constrainSize && _extends({}, maxSizeModifier, {
5886
- options: detectOverflowOptions
5887
- }), constrainSize && {
5888
- name: 'applyMaxSize',
5889
- enabled: true,
5890
- phase: 'beforeWrite',
5891
- requires: ['maxSize'],
5892
- fn: function fn(_ref) {
5893
- var state = _ref.state;
5894
- var _state$modifiersData$ = state.modifiersData.maxSize,
5895
- width = _state$modifiersData$.width,
5896
- height = _state$modifiersData$.height;
5897
- state.styles.popper = _extends({}, state.styles.popper, {
5898
- maxWidth: width + "px",
5899
- maxHeight: height + "px"
5900
- });
5901
- }
5902
- }, arrow && {
5903
- name: 'arrow',
5904
- options: {
5905
- element: arrowElement,
5906
- padding: 4
5907
- }
5908
- }, (constrainSize || preventOverflow) && {
5909
- name: 'preventOverflow',
5910
- options: detectOverflowOptions
5911
- }, {
5912
- name: 'offset',
5913
- options: {
5914
- offset: [skidding, distance]
5915
- }
5916
- }, margins && {
5917
- name: 'margins',
5918
- enabled: true,
5919
- phase: 'beforeRead',
5920
- fn: function fn(_ref2) {
5921
- var state = _ref2.state;
5922
- var rects = state.rects;
5923
-
5924
- if (rects.reference) {
5925
- rects.reference.x += margins[3];
5926
- rects.reference.y += margins[1];
5927
- rects.reference.width -= margins[1] + margins[3];
5928
- rects.reference.height -= margins[0] + margins[2];
5929
- }
5930
- }
5931
- }, {
5932
- name: 'flip',
5933
- options: {
5934
- allowedAutoPlacements: allowedAutoPlacements,
5935
- boundary: boundaryElement || undefined,
5936
- fallbackPlacements: fallbackPlacements,
5937
- padding: 8
5938
- }
5939
- }, matchReferenceWidth && {
5940
- name: 'matchWidth',
5941
- enabled: true,
5942
- phase: 'beforeWrite',
5943
- requires: ['computeStyles'],
5944
- fn: function fn(_ref3) {
5945
- var state = _ref3.state;
5946
- var width = state.rects.reference.width;
5947
- state.styles.popper.width = width + "px";
5948
- },
5949
- effect: function effect(_ref4) {
5950
- var state = _ref4.state;
5951
- var refElement = state.elements.reference;
5969
+ var _useLayer = useLayer(),
5970
+ zIndex = _useLayer.zIndex; // top right bottom left
5952
5971
 
5953
- if (refElement instanceof HTMLElement) {
5954
- state.elements.popper.style.width = refElement.offsetWidth - (margins ? margins[1] + margins[3] : 0) + "px";
5955
- }
5956
- }
5957
- }].filter(Boolean);
5958
- }
5959
5972
 
5960
- function usePopoverModifiers(props) {
5961
- var allowedAutoPlacements = props.allowedAutoPlacements,
5962
- arrow = props.arrow,
5963
- arrowElement = props.arrowElement,
5964
- boundaryElement = props.boundaryElement,
5965
- constrainSize = props.constrainSize,
5966
- distance = props.distance,
5967
- fallbackPlacements = props.fallbackPlacements,
5968
- margins = props.margins,
5969
- matchReferenceWidth = props.matchReferenceWidth,
5970
- open = props.open,
5971
- preventOverflow = props.preventOverflow,
5972
- skidding = props.skidding,
5973
- tether = props.tether,
5974
- tetherOffset = props.tetherOffset;
5975
- return useMemo(function () {
5976
- return getPopoverModifiers({
5977
- allowedAutoPlacements: allowedAutoPlacements,
5978
- arrow: arrow,
5979
- arrowElement: arrowElement,
5980
- boundaryElement: boundaryElement,
5981
- constrainSize: constrainSize,
5982
- distance: distance,
5983
- fallbackPlacements: fallbackPlacements,
5984
- margins: margins,
5985
- matchReferenceWidth: matchReferenceWidth,
5986
- open: open,
5987
- preventOverflow: preventOverflow,
5988
- skidding: skidding,
5989
- tether: tether,
5990
- tetherOffset: tetherOffset
5991
- });
5992
- }, [allowedAutoPlacements, arrow, arrowElement, boundaryElement, constrainSize, distance, fallbackPlacements, margins, matchReferenceWidth, open, preventOverflow, skidding, tether, tetherOffset]);
5993
- }
5973
+ var margins = useMemo(function () {
5974
+ return marginsProp || [0, 0, 0, 0];
5975
+ }, [marginsProp]); // translate according to margins
5994
5976
 
5995
- 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"];
5977
+ var referenceWidth = referenceWidthProp ? referenceWidthProp - margins[1] - margins[3] : undefined;
5978
+ var x = (xProp != null ? xProp : 0) + margins[3];
5979
+ var y = (yProp != null ? yProp : 0) + margins[0];
5980
+ var maxWidth = availableWidth ? Math.min(availableWidth - 8, referenceWidth || Infinity) : undefined;
5981
+ var rootStyle = useMemo(function () {
5982
+ return {
5983
+ position: strategy,
5984
+ top: y,
5985
+ left: x,
5986
+ zIndex: zIndex,
5987
+ width: referenceWidth,
5988
+ maxWidth: referenceWidth ? undefined : maxWidth
5989
+ };
5990
+ }, [referenceWidth, maxWidth, strategy, x, y, zIndex]);
5991
+ var wrapperStyle = useMemo(function () {
5992
+ return {
5993
+ minHeight: 25,
5994
+ maxHeight: availableHeight ? availableHeight - 8 : undefined
5995
+ };
5996
+ }, [availableHeight]);
5997
+ var staticSide = placement && FLOATING_STATIC_SIDES[placement.split('-')[0]];
5998
+ var arrowStyle = useMemo(function () {
5999
+ var style = {
6000
+ left: arrowX !== null ? arrowX : undefined,
6001
+ top: arrowY !== null ? arrowY : undefined,
6002
+ right: undefined,
6003
+ bottom: undefined
6004
+ };
6005
+ if (staticSide) style[staticSide] = -27;
6006
+ return style;
6007
+ }, [arrowX, arrowY, staticSide]);
6008
+ return /*#__PURE__*/React.createElement(Root$i, _extends({}, restProps, {
6009
+ "$boundaryWidth": boundaryWidth,
6010
+ "data-placement": placement,
6011
+ "data-ui": "Popover",
6012
+ radius: radius,
6013
+ ref: ref,
6014
+ scheme: scheme,
6015
+ shadow: shadow,
6016
+ style: rootStyle,
6017
+ tone: tone,
6018
+ "$width": width
6019
+ }), /*#__PURE__*/React.createElement(Box, {
6020
+ "data-ui": "Popover__wrapper",
6021
+ overflow: overflow,
6022
+ padding: padding,
6023
+ sizing: "border",
6024
+ style: wrapperStyle
6025
+ }, children), arrow && /*#__PURE__*/React.createElement(PopoverArrow, {
6026
+ ref: arrowRef,
6027
+ style: arrowStyle
6028
+ }));
6029
+ }));
6030
+ PopoverCard.displayName = 'PopoverCard';
5996
6031
 
5997
- var _templateObject$j, _templateObject2$e, _templateObject3$8;
5998
- var Root$i = styled(Layer)(function (_ref) {
5999
- var $preventOverflow = _ref.$preventOverflow;
6000
- return 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 && css(_templateObject2$e || (_templateObject2$e = _taggedTemplateLiteralLoose(["\n &[data-popper-reference-hidden='true'] {\n display: none;\n }\n "]))));
6001
- });
6002
- var PopoverCard = styled(Card)(function (_ref2) {
6003
- var $constrainSize = _ref2.$constrainSize;
6004
- return 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);
6005
- });
6006
- /**
6007
- * @public
6008
- */
6032
+ 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"];
6009
6033
 
6010
- var Popover = /*#__PURE__*/forwardRef(function Popover(props, ref) {
6011
- var _theme$sanity$layer;
6034
+ function size(scope) {
6035
+ return size$1({
6036
+ apply: function apply(args) {
6037
+ if (scope.constrainSize) {
6038
+ scope.setAvailableWidth(args.availableWidth);
6039
+ scope.setAvailableHeight(args.availableHeight);
6040
+ }
6041
+
6042
+ if (scope.matchReferenceWidth) {
6043
+ scope.setReferenceWidth(args.rects.reference.width);
6044
+ }
6045
+ },
6046
+ boundary: scope.boundaryElement || undefined
6047
+ });
6048
+ }
6049
+
6050
+ var Popover = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function Popover(props, ref) {
6051
+ var _theme$sanity$layer, _useElementSize, _middlewareData$arrow, _middlewareData$arrow2;
6012
6052
 
6013
- var boundaryElementContext = useBoundaryElement();
6014
6053
  var theme = useTheme();
6054
+ var boundaryElementContext = useBoundaryElement();
6015
6055
 
6016
6056
  var margins = props.__unstable_margins,
6017
- allowedAutoPlacements = props.allowedAutoPlacements,
6018
6057
  _props$arrow = props.arrow,
6019
- arrow = _props$arrow === void 0 ? true : _props$arrow,
6058
+ arrowProp = _props$arrow === void 0 ? true : _props$arrow,
6020
6059
  _props$boundaryElemen = props.boundaryElement,
6021
- boundaryElementProp = _props$boundaryElemen === void 0 ? boundaryElementContext.element : _props$boundaryElemen,
6022
- child = props.children,
6060
+ boundaryElement = _props$boundaryElemen === void 0 ? boundaryElementContext.element : _props$boundaryElemen,
6061
+ childProp = props.children,
6062
+ _props$constrainSize = props.constrainSize,
6063
+ constrainSize = _props$constrainSize === void 0 ? false : _props$constrainSize,
6023
6064
  content = props.content,
6024
- constrainSize = props.constrainSize,
6025
6065
  disabled = props.disabled,
6026
6066
  fallbackPlacements = props.fallbackPlacements,
6027
- _props$open = props.open,
6028
- open = _props$open === void 0 ? false : _props$open,
6029
- padding = props.padding,
6067
+ matchReferenceWidthProp = props.matchReferenceWidth,
6068
+ open = props.open,
6069
+ _props$overflow = props.overflow,
6070
+ overflow = _props$overflow === void 0 ? props.constrainSize ? 'auto' : undefined : _props$overflow,
6071
+ paddingProp = props.padding,
6030
6072
  _props$placement = props.placement,
6031
- placement = _props$placement === void 0 ? 'bottom' : _props$placement,
6032
- _props$portal = props.portal,
6033
- portalProp = _props$portal === void 0 ? false : _props$portal,
6034
- preventOverflow = props.preventOverflow,
6073
+ placementProp = _props$placement === void 0 ? 'bottom' : _props$placement,
6074
+ portal = props.portal,
6075
+ _props$preventOverflo = props.preventOverflow,
6076
+ preventOverflow = _props$preventOverflo === void 0 ? true : _props$preventOverflo,
6035
6077
  _props$radius = props.radius,
6036
- radius = _props$radius === void 0 ? 3 : _props$radius,
6037
- referenceElementProp = props.referenceElement,
6038
- matchReferenceWidth = props.matchReferenceWidth,
6039
- _props$shadow = props.shadow,
6040
- shadow = _props$shadow === void 0 ? 3 : _props$shadow,
6078
+ radiusProp = _props$radius === void 0 ? 3 : _props$radius,
6079
+ referenceElement = props.referenceElement,
6041
6080
  scheme = props.scheme,
6042
- _props$style = props.style,
6043
- style = _props$style === void 0 ? EMPTY_RECORD$1 : _props$style,
6044
- tether = props.tether,
6045
- tetherOffset = props.tetherOffset,
6081
+ _props$shadow = props.shadow,
6082
+ shadowProp = _props$shadow === void 0 ? 3 : _props$shadow,
6046
6083
  _props$tone = props.tone,
6047
6084
  tone = _props$tone === void 0 ? 'inherit' : _props$tone,
6048
6085
  _props$width = props.width,
6049
- width = _props$width === void 0 ? 0 : _props$width,
6086
+ widthProp = _props$width === void 0 ? undefined : _props$width,
6050
6087
  _props$zOffset = props.zOffset,
6051
- zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.popover.zOffset : _props$zOffset,
6088
+ zOffsetProp = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.popover.zOffset : _props$zOffset,
6052
6089
  restProps = _objectWithoutPropertiesLoose(props, _excluded$n);
6053
6090
 
6091
+ var boundarySize = (_useElementSize = useElementSize(boundaryElement)) == null ? void 0 : _useElementSize.border;
6092
+ var padding = useArrayProp(paddingProp);
6093
+ var radius = useArrayProp(radiusProp);
6094
+ var shadow = useArrayProp(shadowProp);
6095
+ var width = useArrayProp(widthProp);
6096
+ var zOffset = useArrayProp(zOffsetProp);
6097
+
6098
+ var _useState = useState(undefined),
6099
+ availableWidth = _useState[0],
6100
+ setAvailableWidth = _useState[1];
6101
+
6102
+ var _useState2 = useState(undefined),
6103
+ availableHeight = _useState2[0],
6104
+ setAvailableHeight = _useState2[1];
6105
+
6106
+ var _useState3 = useState(undefined),
6107
+ referenceWidth = _useState3[0],
6108
+ setReferenceWidth = _useState3[1];
6109
+
6054
6110
  var forwardedRef = useForwardedRef(ref);
6055
- var portal = usePortal();
6111
+ var arrowRef = useRef(null);
6112
+ var rootBoundary = 'viewport';
6113
+ var middleware = useMemo(function () {
6114
+ var ret = []; // Flip the floating element when leaving the boundary box
6056
6115
 
6057
- var _useState = useState(null),
6058
- referenceElement = _useState[0],
6059
- setReferenceElement = _useState[1];
6116
+ if (constrainSize || preventOverflow) {
6117
+ ret.push(flip({
6118
+ boundary: boundaryElement || undefined,
6119
+ fallbackPlacements: fallbackPlacements,
6120
+ padding: 8,
6121
+ rootBoundary: rootBoundary
6122
+ }));
6123
+ } // Track sizes
6060
6124
 
6061
- var _useState2 = useState(null),
6062
- popperElement = _useState2[0],
6063
- setPopperElement = _useState2[1];
6064
6125
 
6065
- var _useState3 = useState(null),
6066
- arrowElement = _useState3[0],
6067
- setArrowElement = _useState3[1];
6068
-
6069
- var popperReferenceElement = referenceElementProp || referenceElement;
6070
- var modifiers = usePopoverModifiers({
6071
- allowedAutoPlacements: allowedAutoPlacements,
6072
- arrow: arrow,
6073
- arrowElement: arrowElement,
6074
- boundaryElement: boundaryElementProp || portal.boundaryElement,
6075
- constrainSize: constrainSize,
6076
- distance: arrow ? 4 : 0,
6077
- fallbackPlacements: fallbackPlacements,
6078
- margins: margins,
6079
- matchReferenceWidth: matchReferenceWidth,
6080
- open: open,
6081
- preventOverflow: preventOverflow,
6082
- skidding: 0,
6083
- tether: tether,
6084
- tetherOffset: tetherOffset
6085
- });
6086
- var popper = usePopper(popperReferenceElement, popperElement, {
6087
- placement: placement,
6088
- modifiers: modifiers
6089
- });
6090
- var attributes = popper.attributes,
6091
- forceUpdate = popper.forceUpdate,
6092
- styles = popper.styles;
6093
- var setRef = useCallback(function (el) {
6094
- var childRef = child.ref;
6095
- setReferenceElement(el);
6126
+ ret.push(size({
6127
+ boundaryElement: boundaryElement,
6128
+ constrainSize: constrainSize,
6129
+ matchReferenceWidth: matchReferenceWidthProp,
6130
+ setAvailableHeight: setAvailableHeight,
6131
+ setAvailableWidth: setAvailableWidth,
6132
+ setReferenceWidth: setReferenceWidth
6133
+ })); // Define distance between reference and floating element
6134
+
6135
+ ret.push(offset({
6136
+ mainAxis: arrowProp ? 4 : 0
6137
+ })); // Shift the popover so its sits with the boundary eleement
6138
+
6139
+ if (preventOverflow) {
6140
+ ret.push(shift({
6141
+ boundary: boundaryElement || undefined,
6142
+ rootBoundary: rootBoundary,
6143
+ padding: 8
6144
+ }));
6145
+ } // Place arrow
6146
+
6147
+
6148
+ if (arrowProp) {
6149
+ ret.push(arrow({
6150
+ element: arrowRef,
6151
+ padding: 4
6152
+ }));
6153
+ }
6154
+
6155
+ return ret;
6156
+ }, [arrowProp, boundaryElement, constrainSize, fallbackPlacements, matchReferenceWidthProp, preventOverflow]);
6157
+
6158
+ var _useFloating = useFloating({
6159
+ middleware: middleware,
6160
+ placement: placementProp,
6161
+ whileElementsMounted: autoUpdate
6162
+ }),
6163
+ x = _useFloating.x,
6164
+ y = _useFloating.y,
6165
+ placement = _useFloating.placement,
6166
+ reference = _useFloating.reference,
6167
+ floating = _useFloating.floating,
6168
+ middlewareData = _useFloating.middlewareData,
6169
+ strategy = _useFloating.strategy;
6170
+
6171
+ var arrowX = (_middlewareData$arrow = middlewareData.arrow) == null ? void 0 : _middlewareData$arrow.x;
6172
+ var arrowY = (_middlewareData$arrow2 = middlewareData.arrow) == null ? void 0 : _middlewareData$arrow2.y;
6173
+ var setArrow = useCallback(function (arrowEl) {
6174
+ arrowRef.current = arrowEl;
6175
+ }, []);
6176
+ var setFloating = useCallback(function (node) {
6177
+ forwardedRef.current = node;
6178
+ floating(node);
6179
+ }, [floating, forwardedRef]);
6180
+ var setReference = useCallback(function (node) {
6181
+ reference(node);
6182
+ var childRef = childProp == null ? void 0 : childProp.ref;
6096
6183
 
6097
6184
  if (typeof childRef === 'function') {
6098
- childRef(el);
6185
+ childRef(node);
6099
6186
  } else if (childRef) {
6100
- childRef.current = el;
6187
+ childRef.current = node;
6101
6188
  }
6102
- }, [child]);
6103
- var setRootRef = useCallback(function (el) {
6104
- setPopperElement(el);
6105
- forwardedRef.current = el;
6106
- }, [forwardedRef]);
6107
- var popoverStyle = useMemo(function () {
6108
- return _extends({}, style, styles.popper);
6109
- }, [style, styles]);
6189
+ }, [childProp, reference]);
6190
+ var child = useMemo(function () {
6191
+ if (!childProp || referenceElement) return null;
6192
+ return /*#__PURE__*/cloneElement(childProp, {
6193
+ ref: setReference
6194
+ });
6195
+ }, [childProp, referenceElement, setReference]);
6110
6196
  useEffect(function () {
6111
- if (forceUpdate) {
6112
- try {
6113
- forceUpdate();
6114
- } catch (_) {// ignore caught error
6115
- }
6116
- }
6117
- }, [content, forceUpdate, open, popperReferenceElement]);
6197
+ if (referenceElement) reference(referenceElement);
6198
+ }, [reference, referenceElement]);
6118
6199
 
6119
6200
  if (disabled) {
6120
- return child || /*#__PURE__*/React.createElement(React.Fragment, null);
6201
+ return childProp || /*#__PURE__*/React.createElement(React.Fragment, null);
6121
6202
  }
6122
6203
 
6123
- var node = /*#__PURE__*/React.createElement(Root$i, _extends({
6124
- "data-ui": "Popover"
6125
- }, restProps, {
6126
- "$preventOverflow": preventOverflow,
6127
- ref: setRootRef,
6128
- style: popoverStyle,
6204
+ var popover = /*#__PURE__*/React.createElement(LayerProvider, {
6129
6205
  zOffset: zOffset
6130
- }, attributes.popper), /*#__PURE__*/React.createElement(PopoverCard, {
6131
- "$constrainSize": constrainSize,
6132
- "data-ui": "PopoverCard",
6206
+ }, /*#__PURE__*/React.createElement(PopoverCard, _extends({}, restProps, {
6207
+ __unstable_margins: margins,
6208
+ arrow: arrowProp,
6209
+ arrowRef: setArrow,
6210
+ arrowX: arrowX,
6211
+ arrowY: arrowY,
6212
+ availableWidth: constrainSize ? availableWidth : undefined,
6213
+ availableHeight: constrainSize ? availableHeight : undefined,
6214
+ boundaryWidth: boundarySize == null ? void 0 : boundarySize.width,
6215
+ overflow: overflow,
6133
6216
  padding: padding,
6217
+ placement: placement,
6134
6218
  radius: radius,
6219
+ ref: setFloating,
6220
+ referenceWidth: matchReferenceWidthProp ? referenceWidth : undefined,
6135
6221
  scheme: scheme,
6136
6222
  shadow: shadow,
6223
+ strategy: strategy,
6137
6224
  tone: tone,
6225
+ x: x,
6226
+ y: y,
6138
6227
  width: width
6139
- }, arrow && /*#__PURE__*/React.createElement(PopoverArrow, {
6140
- ref: setArrowElement,
6141
- style: styles.arrow
6142
6228
  }), content));
6143
- return /*#__PURE__*/React.createElement(React.Fragment, null, child && !referenceElementProp ? /*#__PURE__*/cloneElement(child, {
6144
- ref: setRef
6145
- }) : child || /*#__PURE__*/React.createElement(React.Fragment, null), open && /*#__PURE__*/React.createElement(React.Fragment, null, portalProp && /*#__PURE__*/React.createElement(Portal, {
6146
- __unstable_name: typeof portalProp === 'string' ? portalProp : undefined
6147
- }, node), !portalProp && node));
6148
- });
6229
+ return /*#__PURE__*/React.createElement(React.Fragment, null, open && /*#__PURE__*/React.createElement(React.Fragment, null, portal ? /*#__PURE__*/React.createElement(Portal, {
6230
+ __unstable_name: typeof portal === 'string' ? portal : undefined
6231
+ }, popover) : popover), child);
6232
+ }));
6233
+ Popover.displayName = 'Popover';
6149
6234
 
6150
6235
  var _templateObject$i, _templateObject2$d;
6151
6236
  function radioBaseStyle() {
@@ -6254,7 +6339,7 @@ function inputTextSizeStyle(props) {
6254
6339
  var theme = props.theme,
6255
6340
  $fontSize = props.$fontSize;
6256
6341
  var sizes = theme.sanity.fonts.text.sizes;
6257
- return responsive(theme.sanity.media, getResponsiveProp($fontSize), function (sizeIndex) {
6342
+ return _responsive(theme.sanity.media, $fontSize, function (sizeIndex) {
6258
6343
  return textSize(sizes[sizeIndex] || sizes[2]);
6259
6344
  });
6260
6345
  }
@@ -6306,10 +6391,10 @@ var Select = /*#__PURE__*/forwardRef(function Select(props, forwardedRef) {
6306
6391
  "data-read-only": !disabled && readOnly ? '' : undefined,
6307
6392
  "data-ui": "Select"
6308
6393
  }, restProps, {
6309
- "$fontSize": fontSize,
6310
- "$padding": padding,
6311
- "$radius": radius,
6312
- "$space": space,
6394
+ "$fontSize": useArrayProp(fontSize),
6395
+ "$padding": useArrayProp(padding),
6396
+ "$radius": useArrayProp(radius),
6397
+ "$space": useArrayProp(space),
6313
6398
  disabled: disabled || readOnly,
6314
6399
  ref: ref
6315
6400
  }), children), /*#__PURE__*/React.createElement(IconBox, {
@@ -6337,7 +6422,7 @@ function responsiveStackSpaceStyle(props) {
6337
6422
  var _theme$sanity = theme.sanity,
6338
6423
  media = _theme$sanity.media,
6339
6424
  space = _theme$sanity.space;
6340
- return responsive(media, getResponsiveProp(props.$space), function (spaceIndex) {
6425
+ return _responsive(media, props.$space, function (spaceIndex) {
6341
6426
  return {
6342
6427
  gridGap: rem(space[spaceIndex])
6343
6428
  };
@@ -6359,13 +6444,13 @@ var Stack = /*#__PURE__*/forwardRef(function Stack(props, ref) {
6359
6444
  "data-as": typeof as === 'string' ? as : undefined,
6360
6445
  "data-ui": "Stack"
6361
6446
  }, restProps, {
6362
- "$space": space,
6447
+ "$space": useArrayProp(space),
6363
6448
  forwardedAs: as,
6364
6449
  ref: ref
6365
6450
  }));
6366
6451
  });
6367
6452
 
6368
- var _templateObject$g, _templateObject2$b, _templateObject3$6, _templateObject4$4, _templateObject5$3, _templateObject6$1, _templateObject7;
6453
+ var _templateObject$g, _templateObject2$b, _templateObject3$6, _templateObject4$4, _templateObject5$3, _templateObject6$2, _templateObject7;
6369
6454
  /* Root */
6370
6455
 
6371
6456
  function switchBaseStyles() {
@@ -6409,7 +6494,7 @@ function switchThumbStyles(props) {
6409
6494
  var checkedOffset = trackWidth - trackPadding * 2 - size;
6410
6495
  var indeterminateOffset = trackWidth / 2 - size / 2 - trackPadding;
6411
6496
  var checked = $indeterminate !== true && props.$checked === true;
6412
- return css(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteralLoose(["\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ", ";\n top: ", ";\n height: ", ";\n width: ", ";\n border-radius: ", ";\n transition-property: transform;\n transition-duration: ", "ms;\n transition-timing-function: ", ";\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n\n ", "\n\n ", "\n "])), rem(trackPadding), rem(trackPadding), rem(size), rem(size), rem(size / 2), input["switch"].transitionDurationMs, input["switch"].transitionTimingFunction, checked && css(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), checkedOffset), $indeterminate && css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), indeterminateOffset));
6497
+ return css(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteralLoose(["\n &:not([hidden]) {\n display: block;\n }\n position: absolute;\n left: ", ";\n top: ", ";\n height: ", ";\n width: ", ";\n border-radius: ", ";\n transition-property: transform;\n transition-duration: ", "ms;\n transition-timing-function: ", ";\n background: var(--switch-fg-color);\n transform: translate3d(0, 0, 0);\n\n ", "\n\n ", "\n "])), rem(trackPadding), rem(trackPadding), rem(size), rem(size), rem(size / 2), input["switch"].transitionDurationMs, input["switch"].transitionTimingFunction, checked && css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), checkedOffset), $indeterminate && css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n transform: translate3d(", "px, 0, 0);\n "])), indeterminateOffset));
6413
6498
  }
6414
6499
 
6415
6500
  var _excluded$j = ["checked", "className", "disabled", "indeterminate", "readOnly", "style"];
@@ -6458,7 +6543,7 @@ var Switch = /*#__PURE__*/forwardRef(function Switch(props, forwardedRef) {
6458
6543
  })));
6459
6544
  });
6460
6545
 
6461
- var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius"];
6546
+ var _excluded$i = ["border", "customValidity", "disabled", "fontSize", "padding", "radius", "weight"];
6462
6547
 
6463
6548
  var _templateObject$f;
6464
6549
  var Root$d = styled.span(textInputRootStyle);
@@ -6481,32 +6566,42 @@ var TextArea = /*#__PURE__*/forwardRef(function TextArea(props, forwardedRef) {
6481
6566
  padding = _props$padding === void 0 ? 3 : _props$padding,
6482
6567
  _props$radius = props.radius,
6483
6568
  radius = _props$radius === void 0 ? 1 : _props$radius,
6569
+ weight = props.weight,
6484
6570
  restProps = _objectWithoutPropertiesLoose(props, _excluded$i);
6485
6571
 
6486
6572
  var ref = useForwardedRef(forwardedRef);
6573
+ var rootTheme = useRootTheme();
6487
6574
  useCustomValidity(ref, customValidity);
6488
6575
  return /*#__PURE__*/React.createElement(Root$d, {
6489
6576
  "data-ui": "TextArea"
6490
6577
  }, /*#__PURE__*/React.createElement(InputRoot$1, null, /*#__PURE__*/React.createElement(Input$1, _extends({
6491
- "data-as": "textarea"
6578
+ "data-as": "textarea",
6579
+ "data-tone": rootTheme.tone
6492
6580
  }, restProps, {
6493
- "$fontSize": fontSize,
6494
- "$padding": padding,
6581
+ "$fontSize": useArrayProp(fontSize),
6582
+ "$padding": useArrayProp(padding),
6583
+ "$space": useArrayProp(0),
6584
+ "$tone": rootTheme.tone,
6585
+ "$weight": weight,
6495
6586
  disabled: disabled,
6496
6587
  ref: ref
6497
6588
  })), /*#__PURE__*/React.createElement(Presentation$1, {
6498
6589
  "$border": border,
6499
- "$radius": radius
6590
+ "$radius": useArrayProp(radius),
6591
+ "$tone": rootTheme.tone,
6592
+ "data-tone": rootTheme.tone
6500
6593
  })));
6501
6594
  });
6502
6595
 
6503
- var _excluded$h = ["border", "clearButton", "disabled", "fontSize", "icon", "iconRight", "onClear", "padding", "prefix", "radius", "readOnly", "space", "suffix", "customValidity", "type"];
6596
+ var _excluded$h = ["border", "clearButton", "disabled", "fontSize", "icon", "iconRight", "onClear", "padding", "prefix", "radius", "readOnly", "space", "suffix", "customValidity", "type", "weight"];
6504
6597
 
6505
- var _templateObject$e, _templateObject2$a, _templateObject3$5, _templateObject4$3, _templateObject5$2;
6598
+ var _templateObject$e, _templateObject2$a, _templateObject3$5, _templateObject4$3, _templateObject5$2, _templateObject6$1;
6506
6599
  var CLEAR_BUTTON_BOX_STYLE = {
6507
6600
  zIndex: 2
6508
6601
  };
6509
- var Root$c = styled.span(textInputRootStyle);
6602
+ var Root$c = styled(Card).attrs({
6603
+ forwardedAs: 'span'
6604
+ })(textInputRootStyle);
6510
6605
  var InputRoot = styled.span(_templateObject$e || (_templateObject$e = _taggedTemplateLiteralLoose(["\n flex: 1;\n min-width: 0;\n display: block;\n position: relative;\n"])));
6511
6606
  var Prefix = styled(Card).attrs({
6512
6607
  forwardedAs: 'span'
@@ -6517,7 +6612,8 @@ var Suffix = styled(Card).attrs({
6517
6612
  var Input = styled.input(responsiveInputPaddingStyle, textInputBaseStyle, textInputFontSizeStyle);
6518
6613
  var Presentation = styled.span(responsiveRadiusStyle, textInputRepresentationStyle);
6519
6614
  var LeftBox = styled(Box)(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n left: 0;\n"])));
6520
- var RightCard = styled(Card)(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
6615
+ var RightBox = styled(Box)(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 0;\n right: 0;\n"])));
6616
+ var RightCard = styled(Card)(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteralLoose(["\n background-color: transparent;\n position: absolute;\n top: 0;\n right: 0;\n"])));
6521
6617
  /**
6522
6618
  * @public
6523
6619
  */
@@ -6529,7 +6625,7 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6529
6625
  _props$disabled = props.disabled,
6530
6626
  disabled = _props$disabled === void 0 ? false : _props$disabled,
6531
6627
  _props$fontSize = props.fontSize,
6532
- fontSize = _props$fontSize === void 0 ? 2 : _props$fontSize,
6628
+ fontSizeProp = _props$fontSize === void 0 ? 2 : _props$fontSize,
6533
6629
  icon = props.icon,
6534
6630
  iconRight = props.iconRight,
6535
6631
  onClear = props.onClear,
@@ -6540,16 +6636,20 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6540
6636
  radiusProp = _props$radius === void 0 ? 1 : _props$radius,
6541
6637
  readOnly = props.readOnly,
6542
6638
  _props$space = props.space,
6543
- space = _props$space === void 0 ? 3 : _props$space,
6639
+ spaceProp = _props$space === void 0 ? 3 : _props$space,
6544
6640
  suffix = props.suffix,
6545
6641
  customValidity = props.customValidity,
6546
6642
  _props$type = props.type,
6547
6643
  type = _props$type === void 0 ? 'text' : _props$type,
6644
+ weight = props.weight,
6548
6645
  restProps = _objectWithoutPropertiesLoose(props, _excluded$h);
6549
6646
 
6550
6647
  var ref = useForwardedRef(forwardedRef);
6551
- var padding = useResponsiveProp(paddingProp);
6552
- var radius = useResponsiveProp(radiusProp); // Transient properties
6648
+ var rootTheme = useRootTheme();
6649
+ var fontSize = useArrayProp(fontSizeProp);
6650
+ var padding = useArrayProp(paddingProp);
6651
+ var radius = useArrayProp(radiusProp);
6652
+ var space = useArrayProp(spaceProp); // Transient properties
6553
6653
 
6554
6654
  var $hasClearButton = Boolean(clearButton);
6555
6655
  var $hasIcon = Boolean(icon);
@@ -6588,17 +6688,19 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6588
6688
  "$border": border,
6589
6689
  "$hasPrefix": $hasPrefix,
6590
6690
  "$hasSuffix": $hasSuffix,
6591
- "$radius": radius
6691
+ "$radius": radius,
6692
+ "$tone": rootTheme.tone,
6693
+ "data-tone": rootTheme.tone
6592
6694
  }, icon && /*#__PURE__*/React.createElement(LeftBox, {
6593
6695
  padding: padding
6594
6696
  }, /*#__PURE__*/React.createElement(Text, {
6595
6697
  size: fontSize
6596
- }, /*#__PURE__*/isValidElement(icon) && icon, isValidElementType(icon) && /*#__PURE__*/createElement(icon))), !$hasClearButton && iconRight && /*#__PURE__*/React.createElement(RightCard, {
6698
+ }, /*#__PURE__*/isValidElement(icon) && icon, isValidElementType(icon) && /*#__PURE__*/createElement(icon))), !$hasClearButton && iconRight && /*#__PURE__*/React.createElement(RightBox, {
6597
6699
  padding: padding
6598
6700
  }, /*#__PURE__*/React.createElement(Text, {
6599
6701
  size: fontSize
6600
6702
  }, /*#__PURE__*/isValidElement(iconRight) && iconRight, isValidElementType(iconRight) && /*#__PURE__*/createElement(iconRight))));
6601
- }, [border, fontSize, icon, iconRight, padding, radius, $hasClearButton, $hasPrefix, $hasSuffix]); // Render clear button (memoized)
6703
+ }, [border, fontSize, icon, iconRight, padding, radius, rootTheme.tone, $hasClearButton, $hasPrefix, $hasSuffix]); // Render clear button (memoized)
6602
6704
 
6603
6705
  var clearButtonBoxPadding = useMemo(function () {
6604
6706
  return padding.map(function (v) {
@@ -6617,7 +6719,7 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6617
6719
  });
6618
6720
  }, [padding]);
6619
6721
  var clearButtonProps = useMemo(function () {
6620
- return typeof clearButton === 'object' ? clearButton : EMPTY_RECORD$1;
6722
+ return typeof clearButton === 'object' ? clearButton : EMPTY_RECORD;
6621
6723
  }, [clearButton]);
6622
6724
  var clearButtonNode = useMemo(function () {
6623
6725
  return !disabled && !readOnly && clearButton && /*#__PURE__*/React.createElement(RightCard, {
@@ -6649,15 +6751,19 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6649
6751
  }, /*#__PURE__*/React.createElement("span", null, suffix));
6650
6752
  }, [radius, suffix]);
6651
6753
  return /*#__PURE__*/React.createElement(Root$c, {
6652
- "data-ui": "TextInput"
6754
+ "data-ui": "TextInput",
6755
+ tone: rootTheme.tone
6653
6756
  }, prefixNode, /*#__PURE__*/React.createElement(InputRoot, null, /*#__PURE__*/React.createElement(Input, _extends({
6654
- "data-as": "input"
6757
+ "data-as": "input",
6758
+ "data-tone": rootTheme.tone
6655
6759
  }, restProps, {
6760
+ "$fontSize": fontSize,
6656
6761
  "$iconLeft": $hasIcon,
6657
6762
  "$iconRight": $hasIconRight || $hasClearButton,
6658
6763
  "$padding": padding,
6659
6764
  "$space": space,
6660
- "$fontSize": fontSize,
6765
+ "$tone": rootTheme.tone,
6766
+ "$weight": weight,
6661
6767
  disabled: disabled,
6662
6768
  readOnly: readOnly,
6663
6769
  ref: ref,
@@ -6666,13 +6772,15 @@ var TextInput = /*#__PURE__*/forwardRef(function TextInput(props, forwardedRef)
6666
6772
  });
6667
6773
 
6668
6774
  var _templateObject$d, _templateObject2$9, _templateObject3$4;
6669
- var Root$b = styled.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"])));
6775
+ var Root$b = styled.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"])));
6670
6776
  var Border = styled.path(_templateObject2$9 || (_templateObject2$9 = _taggedTemplateLiteralLoose(["\n fill: var(--card-shadow-outline-color);\n"])));
6671
6777
  var Shape = styled.path(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteralLoose(["\n fill: var(--card-bg-color);\n"])));
6672
6778
  var TooltipArrow = /*#__PURE__*/forwardRef(function TooltipArrow(props, ref) {
6673
6779
  var restProps = _extends({}, props);
6674
6780
 
6675
- return /*#__PURE__*/React.createElement(Root$b, _extends({}, restProps, {
6781
+ return /*#__PURE__*/React.createElement(Root$b, _extends({
6782
+ "data-ui": "Tooltip__arrow"
6783
+ }, restProps, {
6676
6784
  ref: ref
6677
6785
  }), /*#__PURE__*/React.createElement("svg", {
6678
6786
  width: "15",
@@ -6685,7 +6793,7 @@ var TooltipArrow = /*#__PURE__*/forwardRef(function TooltipArrow(props, ref) {
6685
6793
  })));
6686
6794
  });
6687
6795
 
6688
- var _excluded$g = ["allowedAutoPlacements", "boundaryElement", "children", "content", "disabled", "fallbackPlacements", "placement", "portal", "scheme", "zOffset"];
6796
+ var _excluded$g = ["boundaryElement", "children", "content", "disabled", "fallbackPlacements", "placement", "portal", "scheme", "shadow", "zOffset"];
6689
6797
 
6690
6798
  var _templateObject$c;
6691
6799
  var Root$a = styled(Layer)(_templateObject$c || (_templateObject$c = _taggedTemplateLiteralLoose(["\n pointer-events: none;\n"])));
@@ -6694,73 +6802,101 @@ var Root$a = styled(Layer)(_templateObject$c || (_templateObject$c = _taggedTemp
6694
6802
  */
6695
6803
 
6696
6804
  var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
6697
- var _theme$sanity$layer;
6805
+ var _theme$sanity$layer, _middlewareData$arrow, _middlewareData$arrow2;
6698
6806
 
6699
6807
  var boundaryElementContext = useBoundaryElement();
6700
6808
  var theme = useTheme();
6701
6809
 
6702
- var allowedAutoPlacements = props.allowedAutoPlacements,
6703
- _props$boundaryElemen = props.boundaryElement,
6810
+ var _props$boundaryElemen = props.boundaryElement,
6704
6811
  boundaryElement = _props$boundaryElemen === void 0 ? boundaryElementContext == null ? void 0 : boundaryElementContext.element : _props$boundaryElemen,
6705
- children = props.children,
6812
+ childProp = props.children,
6706
6813
  content = props.content,
6707
6814
  disabled = props.disabled,
6708
- fallbackPlacements = props.fallbackPlacements,
6815
+ fallbackPlacementsProp = props.fallbackPlacements,
6709
6816
  _props$placement = props.placement,
6710
- placement = _props$placement === void 0 ? 'bottom' : _props$placement,
6817
+ placementProp = _props$placement === void 0 ? 'bottom' : _props$placement,
6711
6818
  portal = props.portal,
6712
6819
  scheme = props.scheme,
6820
+ _props$shadow = props.shadow,
6821
+ shadow = _props$shadow === void 0 ? 2 : _props$shadow,
6713
6822
  _props$zOffset = props.zOffset,
6714
6823
  zOffset = _props$zOffset === void 0 ? (_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.tooltip.zOffset : _props$zOffset,
6715
6824
  restProps = _objectWithoutPropertiesLoose(props, _excluded$g);
6716
6825
 
6826
+ var fallbackPlacements = useArrayProp(fallbackPlacementsProp);
6717
6827
  var forwardedRef = useForwardedRef(ref);
6718
6828
 
6719
6829
  var _useState = useState(null),
6720
6830
  referenceElement = _useState[0],
6721
6831
  setReferenceElement = _useState[1];
6722
6832
 
6723
- var _useState2 = useState(null),
6724
- popperElement = _useState2[0],
6725
- setPopperElement = _useState2[1];
6833
+ var arrowRef = useRef(null);
6834
+ var rootBoundary = 'viewport';
6835
+ var middleware = useMemo(function () {
6836
+ var ret = []; // Flip the floating element when leaving the boundary box
6726
6837
 
6727
- var _useState3 = useState(null),
6728
- arrowElement = _useState3[0],
6729
- setArrowElement = _useState3[1];
6838
+ ret.push(flip({
6839
+ boundary: boundaryElement || undefined,
6840
+ fallbackPlacements: fallbackPlacements,
6841
+ padding: 4,
6842
+ rootBoundary: rootBoundary
6843
+ })); // Define distance between reference and floating element
6730
6844
 
6731
- var popper = usePopper(referenceElement, popperElement, {
6732
- placement: placement,
6733
- modifiers: [{
6734
- name: 'arrow',
6735
- options: {
6736
- element: arrowElement,
6737
- padding: 4
6738
- }
6739
- }, {
6740
- name: 'preventOverflow',
6741
- options: {
6742
- altAxis: true,
6743
- boundary: boundaryElement || undefined,
6744
- padding: 4
6745
- }
6746
- }, {
6747
- name: 'offset',
6748
- options: {
6749
- offset: [0, 3]
6750
- }
6751
- }, {
6752
- name: 'flip',
6753
- options: {
6754
- allowedAutoPlacements: allowedAutoPlacements,
6755
- fallbackPlacements: fallbackPlacements
6756
- }
6757
- }]
6758
- });
6759
- var forceUpdate = popper.forceUpdate;
6845
+ ret.push(offset({
6846
+ mainAxis: 3
6847
+ })); // Shift the tooltip so its sits with the boundary eleement
6848
+
6849
+ ret.push(shift({
6850
+ boundary: boundaryElement || undefined,
6851
+ rootBoundary: rootBoundary,
6852
+ padding: 4
6853
+ })); // Place arrow
6854
+
6855
+ ret.push(arrow({
6856
+ element: arrowRef,
6857
+ padding: 2
6858
+ }));
6859
+ return ret;
6860
+ }, [boundaryElement, fallbackPlacements]);
6861
+
6862
+ var _useFloating = useFloating({
6863
+ middleware: middleware,
6864
+ placement: placementProp,
6865
+ whileElementsMounted: autoUpdate
6866
+ }),
6867
+ x = _useFloating.x,
6868
+ y = _useFloating.y,
6869
+ placement = _useFloating.placement,
6870
+ reference = _useFloating.reference,
6871
+ floating = _useFloating.floating,
6872
+ middlewareData = _useFloating.middlewareData,
6873
+ update = _useFloating.update,
6874
+ strategy = _useFloating.strategy;
6875
+
6876
+ var rootStyle = useMemo(function () {
6877
+ return {
6878
+ position: strategy,
6879
+ top: y != null ? y : 0,
6880
+ left: x != null ? x : 0
6881
+ };
6882
+ }, [strategy, x, y]);
6883
+ var staticSide = placement && FLOATING_STATIC_SIDES[placement.split('-')[0]];
6884
+ var arrowX = (_middlewareData$arrow = middlewareData.arrow) == null ? void 0 : _middlewareData$arrow.x;
6885
+ var arrowY = (_middlewareData$arrow2 = middlewareData.arrow) == null ? void 0 : _middlewareData$arrow2.y;
6886
+ var arrowStyle = useMemo(function () {
6887
+ var style = {
6888
+ left: arrowX !== null ? arrowX : undefined,
6889
+ top: arrowY !== null ? arrowY : undefined,
6890
+ right: undefined,
6891
+ bottom: undefined
6892
+ };
6893
+ if (staticSide) style[staticSide] = -15;
6894
+ return style;
6895
+ }, [arrowX, arrowY, staticSide]);
6760
6896
 
6761
- var _useState4 = useState(false),
6762
- isOpen = _useState4[0],
6763
- setIsOpen = _useState4[1];
6897
+ var _useState2 = useState(false),
6898
+ isOpen = _useState2[0],
6899
+ setIsOpen = _useState2[1];
6764
6900
 
6765
6901
  var handleBlur = useCallback(function () {
6766
6902
  return setIsOpen(false);
@@ -6794,15 +6930,7 @@ var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
6794
6930
  return function () {
6795
6931
  window.removeEventListener('mousemove', handleWindowMouseMove);
6796
6932
  };
6797
- }, [isOpen, referenceElement]);
6798
- useEffect(function () {
6799
- if (forceUpdate) {
6800
- try {
6801
- forceUpdate();
6802
- } catch (_) {// ignore caught error
6803
- }
6804
- }
6805
- }, [forceUpdate, content]); // Close when `disabled` changes to `true`
6933
+ }, [isOpen, referenceElement]); // Close when `disabled` changes to `true`
6806
6934
 
6807
6935
  useEffect(function () {
6808
6936
  if (disabled) setIsOpen(false);
@@ -6810,40 +6938,61 @@ var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
6810
6938
 
6811
6939
  useEffect(function () {
6812
6940
  if (!content) setIsOpen(false);
6813
- }, [content]);
6814
-
6815
- var setRef = function setRef(el) {
6816
- setPopperElement(el);
6817
- forwardedRef.current = el;
6818
- };
6941
+ }, [content]); // Update reference
6819
6942
 
6820
- if (!children) return /*#__PURE__*/React.createElement(React.Fragment, null);
6821
- if (disabled) return children;
6822
- var referenceProps = {
6823
- onBlur: handleBlur,
6824
- onFocus: handleFocus,
6825
- onMouseEnter: handleMouseEnter,
6826
- onMouseLeave: handleMouseLeave,
6827
- ref: setReferenceElement
6828
- };
6829
- var referenceNode = /*#__PURE__*/cloneElement(children, referenceProps);
6830
- var popperNode = /*#__PURE__*/React.createElement(Root$a, _extends({
6943
+ useEffect(function () {
6944
+ return reference(referenceElement);
6945
+ }, [reference, referenceElement]);
6946
+ var setArrow = useCallback(function (arrowEl) {
6947
+ arrowRef.current = arrowEl;
6948
+ update();
6949
+ }, [update]);
6950
+ var setFloating = useCallback(function (node) {
6951
+ forwardedRef.current = node;
6952
+ floating(node);
6953
+ }, [floating, forwardedRef]);
6954
+ var childRef = childProp == null ? void 0 : childProp.ref;
6955
+ var setReference = useCallback(function (node) {
6956
+ if (typeof childRef === 'function') {
6957
+ childRef(node);
6958
+ } else if (childRef) {
6959
+ childRef.current = node;
6960
+ } // childRef.current = node
6961
+
6962
+
6963
+ setReferenceElement(node);
6964
+ }, [childRef]);
6965
+ var child = useMemo(function () {
6966
+ if (!childProp) return null;
6967
+ return /*#__PURE__*/cloneElement(childProp, {
6968
+ onBlur: handleBlur,
6969
+ onFocus: handleFocus,
6970
+ onMouseEnter: handleMouseEnter,
6971
+ onMouseLeave: handleMouseLeave,
6972
+ ref: setReference
6973
+ });
6974
+ }, [childProp, handleBlur, handleFocus, handleMouseEnter, handleMouseLeave, setReference]);
6975
+ if (!child) return /*#__PURE__*/React.createElement(React.Fragment, null);
6976
+ if (disabled) return child;
6977
+ var root = /*#__PURE__*/React.createElement(Root$a, _extends({
6831
6978
  "data-ui": "Tooltip"
6832
- }, restProps, popper.attributes.popper, {
6833
- ref: setRef,
6834
- style: popper.styles.popper,
6979
+ }, restProps, {
6980
+ ref: setFloating,
6981
+ style: rootStyle,
6835
6982
  zOffset: zOffset
6836
6983
  }), /*#__PURE__*/React.createElement(Card, {
6984
+ "data-ui": "Tooltip__card",
6985
+ "data-placement": placement,
6837
6986
  radius: 2,
6838
6987
  scheme: scheme,
6839
- shadow: 3
6988
+ shadow: shadow
6840
6989
  }, content, /*#__PURE__*/React.createElement(TooltipArrow, {
6841
- ref: setArrowElement,
6842
- style: popper.styles.arrow
6990
+ ref: setArrow,
6991
+ style: arrowStyle
6843
6992
  })));
6844
- return /*#__PURE__*/React.createElement(React.Fragment, null, referenceNode, isOpen && /*#__PURE__*/React.createElement(React.Fragment, null, portal && /*#__PURE__*/React.createElement(Portal, {
6993
+ return /*#__PURE__*/React.createElement(React.Fragment, null, child, isOpen && /*#__PURE__*/React.createElement(React.Fragment, null, portal ? /*#__PURE__*/React.createElement(Portal, {
6845
6994
  __unstable_name: typeof portal === 'string' ? portal : undefined
6846
- }, popperNode), !portal && popperNode));
6995
+ }, root) : root));
6847
6996
  });
6848
6997
 
6849
6998
  var _templateObject$b, _templateObject2$8, _templateObject3$3, _templateObject4$2, _templateObject5$1;
@@ -6851,7 +7000,7 @@ var _templateObject$b, _templateObject2$8, _templateObject3$3, _templateObject4$
6851
7000
  * @internal
6852
7001
  */
6853
7002
 
6854
- var Root$9 = styled.div(_templateObject$b || (_templateObject$b = _taggedTemplateLiteralLoose(["\n /* position: relative; */\n line-height: 0;\n"])));
7003
+ var Root$9 = styled.div(_templateObject$b || (_templateObject$b = _taggedTemplateLiteralLoose(["\n line-height: 0;\n"])));
6855
7004
  /**
6856
7005
  * @internal
6857
7006
  */
@@ -6861,7 +7010,7 @@ var ListBox = styled(Box)(_templateObject2$8 || (_templateObject2$8 = _taggedTem
6861
7010
  * @internal
6862
7011
  */
6863
7012
 
6864
- var ResultsPopover = styled(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"])));
7013
+ var ResultsPopover = styled(Popover)(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteralLoose(["\n &[data-popper-reference-hidden='true'] {\n display: none;\n }\n"])));
6865
7014
  var rotate = keyframes(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteralLoose(["\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n"])));
6866
7015
  /**
6867
7016
  * @internal
@@ -6972,27 +7121,22 @@ function autocompleteReducer(state, msg) {
6972
7121
  /**
6973
7122
  * @internal
6974
7123
  */
6975
- var EMPTY_RECORD = {};
6976
- /**
6977
- * @internal
6978
- */
6979
-
6980
7124
  var AUTOCOMPLETE_LISTBOX_IGNORE_KEYS = ['Control', 'Shift', 'Alt', 'Enter', 'Home', 'End', 'PageUp', 'PageDown', 'Meta', 'Tab', 'CapsLock'];
6981
7125
  /**
6982
7126
  * @internal
6983
7127
  */
6984
7128
 
6985
- var AUTOCOMPLETE_POPOVER_MARGINS = [0, 1, 1, 1];
7129
+ var AUTOCOMPLETE_POPOVER_MARGINS = [0, 1, 0, 0];
6986
7130
  /**
6987
7131
  * @internal
6988
7132
  */
6989
7133
 
6990
- var AUTOCOMPLETE_POPOVER_PLACEMENT = 'bottom-start';
7134
+ var AUTOCOMPLETE_POPOVER_PLACEMENT = 'bottom';
6991
7135
  /**
6992
7136
  * @internal
6993
7137
  */
6994
7138
 
6995
- var AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS = ['top-start'];
7139
+ var AUTOCOMPLETE_POPOVER_FALLBACK_PLACEMENTS = ['bottom', 'top'];
6996
7140
 
6997
7141
  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"];
6998
7142
 
@@ -7088,7 +7232,7 @@ var InnerAutocomplete = /*#__PURE__*/forwardRef(function InnerAutocomplete(props
7088
7232
  var popoverMouseWithinRef = useRef(false);
7089
7233
  var listBoxId = id + "-listbox";
7090
7234
  var options = Array.isArray(optionsProp) ? optionsProp : EMPTY_ARRAY;
7091
- var padding = useResponsiveProp(paddingProp);
7235
+ var padding = useArrayProp(paddingProp);
7092
7236
  var currentOption = useMemo(function () {
7093
7237
  return value !== null ? options.find(function (o) {
7094
7238
  return o.value === value;
@@ -7432,6 +7576,7 @@ var InnerAutocomplete = /*#__PURE__*/forwardRef(function InnerAutocomplete(props
7432
7576
  var content = useMemo(function () {
7433
7577
  if (filteredOptions.length === 0) return null;
7434
7578
  return /*#__PURE__*/React.createElement(ListBox, _extends({
7579
+ "data-ui": "AutoComplete__results",
7435
7580
  onKeyDown: handleListBoxKeyDown,
7436
7581
  padding: 1
7437
7582
  }, listBox, {
@@ -7439,6 +7584,7 @@ var InnerAutocomplete = /*#__PURE__*/forwardRef(function InnerAutocomplete(props
7439
7584
  }), /*#__PURE__*/React.createElement(Stack, {
7440
7585
  as: "ul",
7441
7586
  "aria-multiselectable": false,
7587
+ "data-ui": "AutoComplete__resultsList",
7442
7588
  id: listBoxId,
7443
7589
  ref: listBoxElementRef,
7444
7590
  role: "listbox",
@@ -7518,9 +7664,11 @@ var Breadcrumbs = /*#__PURE__*/forwardRef(function Breadcrumbs(props, ref) {
7518
7664
  maxLength = props.maxLength,
7519
7665
  separator = props.separator,
7520
7666
  _props$space = props.space,
7521
- space = _props$space === void 0 ? 2 : _props$space,
7667
+ spaceRaw = _props$space === void 0 ? 2 : _props$space,
7522
7668
  restProps = _objectWithoutPropertiesLoose(props, _excluded$e);
7523
7669
 
7670
+ var space = useArrayProp(spaceRaw);
7671
+
7524
7672
  var _useState = useState(false),
7525
7673
  open = _useState[0],
7526
7674
  setOpen = _useState[1];
@@ -7616,7 +7764,7 @@ function dialogStyle(_ref) {
7616
7764
  function responsiveDialogPositionStyle(props) {
7617
7765
  var theme = props.theme;
7618
7766
  var media = theme.sanity.media;
7619
- return responsive(media, getResponsiveProp(props.$position), function (position) {
7767
+ return _responsive(media, props.$position, function (position) {
7620
7768
  return {
7621
7769
  '&&': {
7622
7770
  position: position
@@ -7664,10 +7812,13 @@ var DialogCard = /*#__PURE__*/forwardRef(function DialogCard(props, ref) {
7664
7812
  id = props.id,
7665
7813
  onClickOutside = props.onClickOutside,
7666
7814
  onClose = props.onClose,
7667
- radius = props.radius,
7815
+ radiusProp = props.radius,
7668
7816
  scheme = props.scheme,
7669
- shadow = props.shadow,
7670
- width = props.width;
7817
+ shadowProp = props.shadow,
7818
+ widthProp = props.width;
7819
+ var radius = useArrayProp(radiusProp);
7820
+ var shadow = useArrayProp(shadowProp);
7821
+ var width = useArrayProp(widthProp);
7671
7822
  var forwardedRef = useForwardedRef(ref);
7672
7823
 
7673
7824
  var _useState = useState(null),
@@ -7754,7 +7905,7 @@ var Dialog = /*#__PURE__*/forwardRef(function Dialog(props, ref) {
7754
7905
  _props$__unstable_hid = props.__unstable_hideCloseButton,
7755
7906
  hideCloseButton = _props$__unstable_hid === void 0 ? false : _props$__unstable_hid,
7756
7907
  _props$cardRadius = props.cardRadius,
7757
- cardRadius = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7908
+ cardRadiusProp = _props$cardRadius === void 0 ? 3 : _props$cardRadius,
7758
7909
  _props$cardShadow = props.cardShadow,
7759
7910
  cardShadow = _props$cardShadow === void 0 ? 4 : _props$cardShadow,
7760
7911
  children = props.children,
@@ -7765,17 +7916,22 @@ var Dialog = /*#__PURE__*/forwardRef(function Dialog(props, ref) {
7765
7916
  onClickOutside = props.onClickOutside,
7766
7917
  onClose = props.onClose,
7767
7918
  _props$padding = props.padding,
7768
- padding = _props$padding === void 0 ? 4 : _props$padding,
7919
+ paddingProp = _props$padding === void 0 ? 4 : _props$padding,
7769
7920
  portal = props.portal,
7770
7921
  _props$position = props.position,
7771
- position = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7922
+ positionProp = _props$position === void 0 ? dialog.position || 'fixed' : _props$position,
7772
7923
  scheme = props.scheme,
7773
7924
  _props$width = props.width,
7774
- width = _props$width === void 0 ? 0 : _props$width,
7925
+ widthProp = _props$width === void 0 ? 0 : _props$width,
7775
7926
  _props$zOffset = props.zOffset,
7776
- zOffset = _props$zOffset === void 0 ? dialog.zOffset || ((_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.dialog.zOffset) : _props$zOffset,
7927
+ zOffsetProp = _props$zOffset === void 0 ? dialog.zOffset || ((_theme$sanity$layer = theme.sanity.layer) == null ? void 0 : _theme$sanity$layer.dialog.zOffset) : _props$zOffset,
7777
7928
  restProps = _objectWithoutPropertiesLoose(props, _excluded$d);
7778
7929
 
7930
+ var cardRadius = useArrayProp(cardRadiusProp);
7931
+ var padding = useArrayProp(paddingProp);
7932
+ var position = useArrayProp(positionProp);
7933
+ var width = useArrayProp(widthProp);
7934
+ var zOffset = useArrayProp(zOffsetProp);
7779
7935
  var preDivRef = useRef(null);
7780
7936
  var postDivRef = useRef(null);
7781
7937
  var cardRef = useRef(null);
@@ -7870,9 +8026,11 @@ var Hotkeys = /*#__PURE__*/forwardRef(function Hotkeys(props, ref) {
7870
8026
  padding = props.padding,
7871
8027
  radius = props.radius,
7872
8028
  _props$space = props.space,
7873
- space = _props$space === void 0 ? 1 : _props$space,
8029
+ spaceProp = _props$space === void 0 ? 1 : _props$space,
7874
8030
  restProps = _objectWithoutPropertiesLoose(props, _excluded$c);
7875
8031
 
8032
+ var space = useArrayProp(spaceProp);
8033
+
7876
8034
  if (!keys || keys.length === 0) {
7877
8035
  return /*#__PURE__*/React.createElement(React.Fragment, null);
7878
8036
  }
@@ -8283,17 +8441,18 @@ var Menu = /*#__PURE__*/forwardRef(function Menu(props, ref) {
8283
8441
  var MenuButton = /*#__PURE__*/forwardRef(function MenuButton(props, ref) {
8284
8442
  var _props$__unstable_dis = props.__unstable_disableRestoreFocusOnClose,
8285
8443
  disableRestoreFocusOnClose = _props$__unstable_dis === void 0 ? false : _props$__unstable_dis,
8286
- boundaryElement = props.boundaryElement,
8444
+ deprecated_boundaryElement = props.boundaryElement,
8287
8445
  buttonProp = props.button,
8288
8446
  id = props.id,
8289
8447
  menuProp = props.menu,
8290
8448
  onClose = props.onClose,
8291
- placement = props.placement,
8292
- popoverScheme = props.popoverScheme,
8293
- portal = props.portal,
8449
+ deprecated_placement = props.placement,
8450
+ deprecated_popoverScheme = props.popoverScheme,
8451
+ _props$portal = props.portal,
8452
+ deprecated_portal = _props$portal === void 0 ? true : _props$portal,
8294
8453
  popover = props.popover,
8295
- popoverRadius = props.popoverRadius,
8296
- preventOverflow = props.preventOverflow;
8454
+ deprecated_popoverRadius = props.popoverRadius,
8455
+ deprecated_preventOverflow = props.preventOverflow;
8297
8456
 
8298
8457
  var _useState = useState(false),
8299
8458
  open = _useState[0],
@@ -8441,14 +8600,14 @@ var MenuButton = /*#__PURE__*/forwardRef(function MenuButton(props, ref) {
8441
8600
  }, [buttonProp, handleButtonClick, handleButtonKeyDown, id, open, setButtonRef]);
8442
8601
  var popoverProps = useMemo(function () {
8443
8602
  return _extends({
8444
- boundaryElement: boundaryElement,
8445
- placement: placement,
8446
- portal: portal,
8447
- radius: popoverRadius,
8448
- overflow: preventOverflow,
8449
- scheme: popoverScheme
8603
+ boundaryElement: deprecated_boundaryElement,
8604
+ placement: deprecated_placement,
8605
+ portal: deprecated_portal,
8606
+ radius: deprecated_popoverRadius,
8607
+ preventOverflow: deprecated_preventOverflow,
8608
+ scheme: deprecated_popoverScheme
8450
8609
  }, popover || {});
8451
- }, [boundaryElement, placement, popover, popoverRadius, portal, preventOverflow, popoverScheme]);
8610
+ }, [deprecated_boundaryElement, deprecated_preventOverflow, deprecated_placement, popover, deprecated_popoverRadius, deprecated_portal, deprecated_popoverScheme]);
8452
8611
  return /*#__PURE__*/React.createElement(Popover, _extends({}, popoverProps, {
8453
8612
  content: menu,
8454
8613
  "data-ui": "MenuButton__popover",
@@ -8485,7 +8644,7 @@ function selectableColorStyle(props) {
8485
8644
  * @internal
8486
8645
  */
8487
8646
 
8488
- var Selectable = styled(Box)(responsiveBorderStyle, responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8647
+ var Selectable = styled(Box)(responsiveRadiusStyle, selectableBaseStyle, selectableColorStyle);
8489
8648
 
8490
8649
  function useMenu() {
8491
8650
  var value = useContext(MenuContext);
@@ -8518,8 +8677,7 @@ function MenuGroup(props) {
8518
8677
  onClick = props.onClick,
8519
8678
  _props$padding = props.padding,
8520
8679
  padding = _props$padding === void 0 ? 3 : _props$padding,
8521
- _props$popover = props.popover,
8522
- popover = _props$popover === void 0 ? {} : _props$popover,
8680
+ popover = props.popover,
8523
8681
  _props$radius = props.radius,
8524
8682
  radius = _props$radius === void 0 ? 2 : _props$radius,
8525
8683
  _props$space = props.space,
@@ -8633,7 +8791,7 @@ function MenuGroup(props) {
8633
8791
  "aria-pressed": as === 'button' ? withinMenu : undefined,
8634
8792
  "data-pressed": as !== 'button' ? withinMenu : undefined,
8635
8793
  "data-selected": !withinMenu && active ? '' : undefined,
8636
- "$radius": radius,
8794
+ "$radius": useArrayProp(radius),
8637
8795
  "$tone": tone,
8638
8796
  onClick: handleClick,
8639
8797
  onKeyDown: handleKeyDown,
@@ -8732,21 +8890,20 @@ var MenuItem = /*#__PURE__*/forwardRef(function MenuItem(props, forwardedRef) {
8732
8890
  setRootElement(el);
8733
8891
  }, [ref]);
8734
8892
  return /*#__PURE__*/React.createElement(Selectable, _extends({
8735
- "data-as": as,
8736
- "data-ui": "MenuItem",
8737
- forwardedAs: as
8893
+ "data-ui": "MenuItem"
8738
8894
  }, restProps, {
8739
8895
  "aria-pressed": as === 'button' && pressed,
8740
8896
  "data-pressed": as !== 'button' && pressed ? '' : undefined,
8741
8897
  "data-selected": active ? '' : undefined,
8742
8898
  "data-disabled": disabled ? '' : undefined,
8743
- "$radius": radius,
8899
+ forwardedAs: as,
8900
+ "$radius": useArrayProp(radius),
8901
+ "$padding": useArrayProp(0),
8744
8902
  "$tone": tone,
8745
8903
  disabled: disabled,
8746
8904
  onClick: handleClick,
8747
8905
  onMouseEnter: onItemMouseEnter,
8748
8906
  onMouseLeave: onItemMouseLeave,
8749
- padding: 0,
8750
8907
  ref: setRef,
8751
8908
  role: "menuitem",
8752
8909
  tabIndex: -1,
@@ -8828,7 +8985,7 @@ var Skeleton = /*#__PURE__*/forwardRef(function Skeleton(props, ref) {
8828
8985
  }, [delay]);
8829
8986
  return /*#__PURE__*/React.createElement(Root$4, _extends({}, restProps, {
8830
8987
  "$animated": animated,
8831
- "$radius": radius,
8988
+ "$radius": useArrayProp(radius),
8832
8989
  "$visible": visible,
8833
8990
  ref: ref
8834
8991
  }));
@@ -8844,13 +9001,15 @@ var Root$3 = styled(Skeleton)(function (_ref) {
8844
9001
  theme = _ref.theme;
8845
9002
  var media = theme.sanity.media;
8846
9003
  var font = theme.sanity.fonts[$style];
8847
- var styles = responsive(media, $size, function (sizeIndex) {
9004
+
9005
+ var styles = _responsive(media, $size, function (sizeIndex) {
8848
9006
  var fontSize = font.sizes[sizeIndex];
8849
9007
  var capHeight = fontSize.lineHeight - fontSize.ascenderHeight - fontSize.descenderHeight;
8850
9008
  return {
8851
9009
  height: capHeight
8852
9010
  };
8853
9011
  });
9012
+
8854
9013
  return styles;
8855
9014
  });
8856
9015
  /**
@@ -8863,7 +9022,7 @@ var TextSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref) {
8863
9022
  size = _props$size === void 0 ? 2 : _props$size,
8864
9023
  restProps = _objectWithoutPropertiesLoose(props, _excluded$7);
8865
9024
 
8866
- var $size = useResponsiveProp(size);
9025
+ var $size = useArrayProp(size);
8867
9026
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
8868
9027
  "$size": $size,
8869
9028
  ref: ref,
@@ -8880,7 +9039,7 @@ var LabelSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref) {
8880
9039
  size = _props$size2 === void 0 ? 2 : _props$size2,
8881
9040
  restProps = _objectWithoutPropertiesLoose(props, _excluded2);
8882
9041
 
8883
- var $size = useResponsiveProp(size);
9042
+ var $size = useArrayProp(size);
8884
9043
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
8885
9044
  "$size": $size,
8886
9045
  ref: ref,
@@ -8897,7 +9056,7 @@ var HeadingSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref)
8897
9056
  size = _props$size3 === void 0 ? 2 : _props$size3,
8898
9057
  restProps = _objectWithoutPropertiesLoose(props, _excluded3);
8899
9058
 
8900
- var $size = useResponsiveProp(size);
9059
+ var $size = useArrayProp(size);
8901
9060
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
8902
9061
  "$size": $size,
8903
9062
  ref: ref,
@@ -8914,7 +9073,7 @@ var CodeSkeleton = /*#__PURE__*/forwardRef(function TextSkeleton(props, ref) {
8914
9073
  size = _props$size4 === void 0 ? 2 : _props$size4,
8915
9074
  restProps = _objectWithoutPropertiesLoose(props, _excluded4);
8916
9075
 
8917
- var $size = useResponsiveProp(size);
9076
+ var $size = useArrayProp(size);
8918
9077
  return /*#__PURE__*/React.createElement(Root$3, _extends({}, restProps, {
8919
9078
  "$size": $size,
8920
9079
  ref: ref,
@@ -9788,5 +9947,5 @@ var TreeItem = /*#__PURE__*/memo(function TreeItem(props) {
9788
9947
  }, children)));
9789
9948
  });
9790
9949
 
9791
- export { Autocomplete, Avatar, AvatarCounter, AvatarStack, Badge, BoundaryElementProvider, Box, Breadcrumbs, Button, Card, Checkbox, Code, CodeSkeleton, Container, Dialog, DialogContext, DialogProvider, ElementQuery, ErrorBoundary, Flex, Grid, Heading, HeadingSkeleton, Hotkeys, Inline, KBD, Label, LabelSkeleton, Layer, LayerProvider, Menu, MenuButton, MenuDivider, MenuGroup, MenuItem, Popover, Portal, PortalProvider, Radio, RO as ResizeObserver, Select, Skeleton, Spinner, SrOnly, Stack, Switch, Tab, TabList, TabPanel, Text, TextArea, TextInput, TextSkeleton, ThemeColorProvider, ThemeProvider, Toast, ToastProvider, Tooltip, Tree, TreeItem, VirtualList, _hasFocus, _isEnterToClickElement, _isScrollable, _raf, _raf2, attemptFocus, createColorTheme, fillCSSObject, focusFirstDescendant, focusLastDescendant, getResponsiveProp, getResponsiveSpace, hexToRgb, hslToRgb, isFocusable, isHTMLAnchorElement, isHTMLButtonElement, isHTMLElement, isHTMLInputElement, isHTMLSelectElement, isHTMLTextAreaElement, multiply$1 as multiply, parseColor, rem, responsive, responsiveCodeFontStyle, responsiveHeadingFont, responsiveLabelFont, responsiveTextAlignStyle, responsiveTextFont, rgbToHex, rgbToHsl, rgba, screen$1 as screen, studioTheme, useBoundaryElement, useClickOutside, useCustomValidity, useDialog, useElementRect, useForwardedRef, useGlobalKeyDown, useLayer, useMediaIndex, usePortal, usePrefersDark, useResponsiveProp, useRootTheme, useTheme, useToast, useTree };
9950
+ export { Autocomplete, Avatar, AvatarCounter, AvatarStack, Badge, BoundaryElementProvider, Box, Breadcrumbs, Button, Card, Checkbox, Code, CodeSkeleton, Container, Dialog, DialogContext, DialogProvider, ElementQuery, ErrorBoundary, Flex, Grid, Heading, HeadingSkeleton, Hotkeys, Inline, KBD, Label, LabelSkeleton, Layer, LayerProvider, Menu, MenuButton, MenuDivider, MenuGroup, MenuItem, Popover, Portal, PortalProvider, Radio, Select, Skeleton, Spinner, SrOnly, Stack, Switch, Tab, TabList, TabPanel, Text, TextArea, TextInput, TextSkeleton, ThemeColorProvider, ThemeProvider, Toast, ToastProvider, Tooltip, Tree, TreeItem, VirtualList, _ResizeObserver, _elementSizeObserver, _fillCSSObject, _getArrayProp, _getResponsiveSpace, _hasFocus, _isEnterToClickElement, _isScrollable, _raf, _raf2, _responsive, attemptFocus, createColorTheme, focusFirstDescendant, focusLastDescendant, hexToRgb, hslToRgb, isFocusable, isHTMLAnchorElement, isHTMLButtonElement, isHTMLElement, isHTMLInputElement, isHTMLSelectElement, isHTMLTextAreaElement, multiply$1 as multiply, parseColor, rem, responsiveCodeFontStyle, responsiveHeadingFont, responsiveLabelFont, responsiveTextAlignStyle, responsiveTextFont, rgbToHex, rgbToHsl, rgba, screen$1 as screen, studioTheme, useArrayProp, useBoundaryElement, useClickOutside, useCustomValidity, useDialog, useElementRect, useElementSize, useForwardedRef, useGlobalKeyDown, useLayer, useMediaIndex, usePortal, usePrefersDark, useRootTheme, useTheme, useToast, useTree };
9792
9951
  //# sourceMappingURL=sanity-ui.module.js.map